Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[hplip et cups] permissions et règles udev (résolu)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
tmasscool
Apprentice
Apprentice


Joined: 27 Jul 2005
Posts: 151

PostPosted: Sat Jul 12, 2008 2:32 pm    Post subject: [hplip et cups] permissions et règles udev (résolu) Reply with quote

J'ai enfin trouvé pourquoi je ne pouvais pas imprimer lorsque j'utilisais le hp backend dans cups.

En fait, hplip utilise la libusb et non pas le module usblp pour accéder à l'imprimante.
Donc l'accès se fait par /dev/bus/usb/NUM_BUS/NUM_DEVICE et non pas sur /dev/usb/lpX
Code:
genbox timas # lsusb
Bus 003 Device 002: ID 03f0:0204 Hewlett-Packard DeskJet 815c
Si on regarde les permissions:
Code:
genbox timas # ls /dev/bus/usb/003/002 -l
crw-rw-r-- 1 root plugdev 189, 257 jui 12 16:16 /dev/bus/usb/003/002

On s'aperçoit que le groupe est plugdev, alors qu'il devrait lp.
En changeant le groupe à lp, on arrive à imprimer. Le problème est donc de corriger les règles udev pour que les imprimantes sur /dev/bus/usb/NUM_BUS/NUM_DEVICE soient automatiquement assignés à lp et non plus à plugdev.
Voici mon /etc/udev/rules.d/50-udev-default.rules concernant la libusb ...
Code:
# libusb device nodes
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"

Quelqu'un peut me filer un coup de main ? Je pense que plusieurs personnes sont touchées par ce problème, j'ai vu différents topics à ce sujet...

Merci d'avance


Last edited by tmasscool on Thu Jul 17, 2008 2:52 pm; edited 1 time in total
Back to top
View user's profile Send private message
salamandrix
Apprentice
Apprentice


Joined: 03 Aug 2006
Posts: 245

PostPosted: Sat Jul 12, 2008 9:00 pm    Post subject: Reply with quote

La règle que j'utilise pour mon hp (dans /etc/udev/rules.d/10-local.rules) :
Quote:

SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1812", MODE:="0660", OWNER:="root", GROUP:="lp"

idVendor et idProduct peuvent être obtenus avec lsusb (en tant que root autrement l'imprimante n'est pas listée en simple user).

Si cela peut t'aider.
Back to top
View user's profile Send private message
tmasscool
Apprentice
Apprentice


Joined: 27 Jul 2005
Posts: 151

PostPosted: Wed Jul 16, 2008 2:20 pm    Post subject: Reply with quote

l'ordinateur en question est un portable, et je suis amené à le brancher sur plusieurs imprimantes hp. Le fait de devoir créer une règle par périphérique n'est pas une solution pratique.

D'autant plus que des règles udev existent déjà pour les imprimantes hp dans : /etc/udev/rules.d/70-hpmud.rules, mais elles ne semblent pas fonctionner. La question c'est pourquoi ?

Code:
genbox rules.d # cat /etc/udev/rules.d/70-hpmud.rules
# Udev rules file for HP printer products.

ACTION!="add", GOTO="hpmud_rules_end"

SUBSYSTEM!="usb|usb_device", GOTO="hpmud_rules_end"
SUBSYSTEM=="usb", ENV{DEVTYPE}!="usb_device" ,GOTO="hpmud_rules_end"

# Check for AiO products (0x03f0xx11).
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="??11", GROUP="lp"
# Check for Photosmart products (0x03f0xx02).
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="??02", GROUP="lp"
# Check for Business Inkjet products (0x03f0xx12).
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="??12", GROUP="lp"
# Check for Deskjet products (0x03f0xx04).
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="??04", GROUP="lp"
# Check for LaserJet products (0x03f0xx17).
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="??17", GROUP="lp"

LABEL="hpmud_rules_end"
Back to top
View user's profile Send private message
salamandrix
Apprentice
Apprentice


Joined: 03 Aug 2006
Posts: 245

PostPosted: Wed Jul 16, 2008 5:33 pm    Post subject: Reply with quote

Normalement udev applique les règles selon l'ordre alphabétique des fichiers. Si un fichier après 70-hpmud.rules donne une règle udev pour ce matériel, alors c'est cette dernière règle qui sera appliquée.
Pour palier à ce comportement on peut utiliser ":=" à la place de "=".
édit : le := permet d'ignorer les règles suivantes qui s'appliqueraient sur ce périphérique.
Donc deux possibilité à mon avis :
1. Modifier directement 70-hpmud.rules pour remplacer = par := (au niveau du groupe).
2. Recopier le fichier 70-hpmud.rules en par exemple 10-local_hpmud.rules puis remplacer les signes = par := . L'avantage ici c'est qu'en cas de mise à jour et d'un etc-update, tu ne devrais pas avoir de soucis.
En espérant que cela t'aide.
Back to top
View user's profile Send private message
bob1977
Guru
Guru


Joined: 16 Mar 2004
Posts: 387

PostPosted: Thu Jul 17, 2008 11:20 am    Post subject: Reply with quote

Je ne peux pas t'aider concernant udev mais as-tu essayer de te rajouter dans le groupe plugdev ou tu as une raison de ne pas le faire?
Back to top
View user's profile Send private message
salamandrix
Apprentice
Apprentice


Joined: 03 Aug 2006
Posts: 245

PostPosted: Thu Jul 17, 2008 1:30 pm    Post subject: Reply with quote

bob1977 wrote:
Je ne peux pas t'aider concernant udev mais as-tu essayer de te rajouter dans le groupe plugdev ou tu as une raison de ne pas le faire?

Si le groupe sur le device est plugdev, cups ne lance pas l'impression (tout du moins celle-ci est en échec), même si l'user appartient à ce groupe. Il est nécessaire que le groupe soit lp pour que cups imprime. Je ne sais pas si cela est volontaire (pour des raisons de sécurité) ou non, mais lorsque j'ai eu ce souci sur le pc de ma sœur, il m'a fallu quelques heures pour comprendre ce problème.

Le problème est surtout que selon les mises à jour de udev, les règles peuvent changer du jour au lendemain (de bonnes règles deviennent mauvaises et réciproquement certainement). D'où l'intérêt de faire ses propres règles pour son matériel. Maintenant dans le cas d'un portable, c'est sûr que c'est beaucoup plus contraignant.
Back to top
View user's profile Send private message
ghoti
Advocate
Advocate


Joined: 30 Dec 2002
Posts: 3624
Location: Belgium

PostPosted: Thu Jul 17, 2008 2:28 pm    Post subject: Reply with quote

salamandrix wrote:
Si un fichier après 70-hpmud.rules donne une règle udev pour ce matériel, alors c'est cette dernière règle qui sera appliquée.

Tu es sûr de ça ?
Je croyais au contraire que la recherche s'arrêtait dès qu'une correspondance était trouvée et qu'il fallait donc placer ses propres règles dans des fichiers situés avant les fichiers par défaut.
D'ailleurs, tu le dis toi-même plus haut :
salamandrix wrote:
La règle que j'utilise pour mon hp (dans /etc/udev/rules.d/10-local.rules) :

Ou alors, j'ai pas compris ce que tu voulais dire ?
Back to top
View user's profile Send private message
salamandrix
Apprentice
Apprentice


Joined: 03 Aug 2006
Posts: 245

PostPosted: Thu Jul 17, 2008 2:45 pm    Post subject: Reply with quote

ghoti wrote:
salamandrix wrote:
Si un fichier après 70-hpmud.rules donne une règle udev pour ce matériel, alors c'est cette dernière règle qui sera appliquée.

Tu es sûr de ça ?
Je croyais au contraire que la recherche s'arrêtait dès qu'une correspondance était trouvée et qu'il fallait donc placer ses propres règles dans des fichiers situés avant les fichiers par défaut.

À l'époque où j'ai été confronté à ce problème, c'était le cas, et c'est certainement encore le cas aujourd'hui (je peux redémarrer pour vérifier).
ghoti wrote:

D'ailleurs, tu le dis toi-même plus haut :
salamandrix wrote:
La règle que j'utilise pour mon hp (dans /etc/udev/rules.d/10-local.rules) :

Ou alors, j'ai pas compris ce que tu voulais dire ?

Mais si tu relis mon post tu verras que je parle de mettre ":=" (deux points égal) et non "=" (égal tout seul) car justement le ":=" permet d'ignorer par la suite les règles qui pourraient s'appliquer.
Exemple pour mon imprimante : si j'ai "GROUP=lp", une autre règle s'appliquera par la suite qui mettra le groupe à plugdev (c'était le comportement que j'avais à l'époque, et qui était gênant), par contre un "GROUP:=lp" permettra d'ignorer la clé GROUP présent dans les autres règles concernant ce périphérique.
Peut-être me suis-je mal exprimé tout à l'heure.


Last edited by salamandrix on Thu Jul 17, 2008 4:05 pm; edited 1 time in total
Back to top
View user's profile Send private message
tmasscool
Apprentice
Apprentice


Joined: 27 Jul 2005
Posts: 151

PostPosted: Thu Jul 17, 2008 2:50 pm    Post subject: Reply with quote

bob1977 wrote:
Je ne peux pas t'aider concernant udev mais as-tu essayer de te rajouter dans le groupe plugdev ou tu as une raison de ne pas le faire?


Je suis déjà dans le groupe plugdev, mais cups nécessite que le groupe de l'imprimante soit lp pour imprimer.

Sinon, j'ai essayé en faisant le fichier 10-local_hpmud.rules et j'ai remplacé le = du groupe par :=, ça fonctionne... Je marque donc le topic comme résolu.

Merci salamandrix...
Back to top
View user's profile Send private message
salamandrix
Apprentice
Apprentice


Joined: 03 Aug 2006
Posts: 245

PostPosted: Thu Jul 17, 2008 2:55 pm    Post subject: Reply with quote

ghoti >> mea culpa : je viens de redémarrer en mettant un simple "=" et en changeant de groupe pour un bidon. À priori udev à ignorer le changement de groupe sur d'autres règles et met bien mon périphérique pour le groupe bidon (à moins qu'il n'y ait pas de règle général gérant la création de mon imprimante). Pourtant je t'assure qu'il y a six moi peut-être sans ':=' c'était la dernière règle trouvée qui était appliqué :)

édit : cela je vais rester avec mes ":=" on n'est jamais trop prudent :oops:

tmasscool >> de rien, pour une fois que je peux rendre service...

édit 2 : bah en fait il n'y a pas de règle qui gère mon imprimante donc normal que le "=" est suffisant :
Quote:

salamandrix@gentoo ~ $ cat /etc/udev/rules.d/* | grep 1812
#BUS=="usb", SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1812", MODE:="0660", OWNER:="root", GROUP:="lp"
SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1812", MODE:="0660", OWNER:="root", GROUP="users"


Last edited by salamandrix on Thu Jul 17, 2008 3:22 pm; edited 1 time in total
Back to top
View user's profile Send private message
bob1977
Guru
Guru


Joined: 16 Mar 2004
Posts: 387

PostPosted: Thu Jul 17, 2008 2:58 pm    Post subject: Reply with quote

Quote:
Si le groupe sur le device est plugdev, cups ne lance pas l'impression (tout du moins celle-ci est en échec), même si l'user appartient à ce groupe. Il est nécessaire que le groupe soit lp pour que cups imprime. Je ne sais pas si cela est volontaire (pour des raisons de sécurité) ou non, mais lorsque j'ai eu ce souci sur le pc de ma sœur, il m'a fallu quelques heures pour comprendre ce problème.

Le problème est surtout que selon les mises à jour de udev, les règles peuvent changer du jour au lendemain (de bonnes règles deviennent mauvaises et réciproquement certainement). D'où l'intérêt de faire ses propres règles pour son matériel. Maintenant dans le cas d'un portable, c'est sûr que c'est beaucoup plus contraignant.

Ca parait logique.
Quote:
Je suis déjà dans le groupe plugdev, mais cups nécessite que le groupe de l'imprimante soit lp pour imprimer.

Sinon, j'ai essayé en faisant le fichier 10-local_hpmud.rules et j'ai remplacé le = du groupe par :=, ça fonctionne... Je marque donc le topic comme résolu.

Merci salamandrix...

Grâce à Salamandrix, je saurais ce qu'il faut faire vu que j'ai une imprimante HP que je n'ai pas touché depuis des mois. A l'époque où je l'avais configuée sur un autre PC, il n'y avait pas udev.
Back to top
View user's profile Send private message
ghoti
Advocate
Advocate


Joined: 30 Dec 2002
Posts: 3624
Location: Belgium

PostPosted: Thu Jul 17, 2008 3:08 pm    Post subject: Reply with quote

salamandrix wrote:
À l'époque où j'ai été confronté à ce problème, c'était le cas, et c'est certainement encore le cas aujourd'hui (je peux redémarrer pour vérifier).

Inutile de redémarrer : finalement, on dirait bien que tu as raison, du moins partiellement ! :D
D'après ce que j'ai compris, ta description correspond bien aux "udev" actuels, sauf pour certaines variables (NAME ...).
Mais à l'origine, il me semble que ce n'était pas le cas : pour toutes les variables, c'était la première affectation qui comptait, comme si on avait systématiquement utilisé l'opérateur ":=" :?

Bref, je dois retarder d'une guerre :(
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum