View previous topic :: View next topic |
Author |
Message |
tmasscool Apprentice
Joined: 27 Jul 2005 Posts: 151
|
Posted: Sat Jul 12, 2008 2:32 pm Post subject: [hplip et cups] permissions et règles udev (résolu) |
|
|
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 |
|
|
salamandrix Apprentice
Joined: 03 Aug 2006 Posts: 245
|
Posted: Sat Jul 12, 2008 9:00 pm Post subject: |
|
|
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 |
|
|
tmasscool Apprentice
Joined: 27 Jul 2005 Posts: 151
|
Posted: Wed Jul 16, 2008 2:20 pm Post subject: |
|
|
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 |
|
|
salamandrix Apprentice
Joined: 03 Aug 2006 Posts: 245
|
Posted: Wed Jul 16, 2008 5:33 pm Post subject: |
|
|
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 |
|
|
bob1977 Guru
Joined: 16 Mar 2004 Posts: 387
|
Posted: Thu Jul 17, 2008 11:20 am Post subject: |
|
|
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 |
|
|
salamandrix Apprentice
Joined: 03 Aug 2006 Posts: 245
|
Posted: Thu Jul 17, 2008 1:30 pm Post subject: |
|
|
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 |
|
|
ghoti Advocate
Joined: 30 Dec 2002 Posts: 3631 Location: Belgium
|
Posted: Thu Jul 17, 2008 2:28 pm Post subject: |
|
|
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 |
|
|
salamandrix Apprentice
Joined: 03 Aug 2006 Posts: 245
|
Posted: Thu Jul 17, 2008 2:45 pm Post subject: |
|
|
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 |
|
|
tmasscool Apprentice
Joined: 27 Jul 2005 Posts: 151
|
Posted: Thu Jul 17, 2008 2:50 pm Post subject: |
|
|
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 |
|
|
salamandrix Apprentice
Joined: 03 Aug 2006 Posts: 245
|
Posted: Thu Jul 17, 2008 2:55 pm Post subject: |
|
|
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
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 |
|
|
bob1977 Guru
Joined: 16 Mar 2004 Posts: 387
|
Posted: Thu Jul 17, 2008 2:58 pm Post subject: |
|
|
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 |
|
|
ghoti Advocate
Joined: 30 Dec 2002 Posts: 3631 Location: Belgium
|
Posted: Thu Jul 17, 2008 3:08 pm Post subject: |
|
|
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'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 |
|
|
|
|
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
|
|