[Tecnica] Odiare HotPlug

Michele "O-Zone" Pinassi o-zone a zerozone.it
Sab 13 Gen 2007 09:46:29 GMT


Ho un problemino con Hotplug che mi affligge da tempo. Praticamente le 
periferiche USB come scanner e macchina fotografica non funzionano se non da 
root. Ho scoperto che, per farle funzionare anche come utente, devo fare un 
'chmod' in /proc/bus/usb/xxx/xxx, dove xxx sono dei numeri del sistema. 
Stamani ho decido di risolvere la questione e, seguendo Google, ho 
configurato hotplug "a modino". Ho anche abilitato il debug e questo č quello 
che succede quando accendo lo scanner:

Jan 13 09:33:15 gray kernel: usb 2-2: new full speed USB device using uhci_hcd 
and address 7
Jan 13 09:33:15 gray kernel: usb 2-2: Product: USB MFP
Jan 13 09:33:15 gray kernel: usb 2-2: Manufacturer: EPSON
Jan 13 09:33:15 gray kernel: usb 2-2: SerialNumber: RH0010410271027360
Jan 13 09:33:15 gray kernel: drivers/usb/class/usblp.c: usblp0: USB 
Bidirectional printer dev 7 if 1 alt 0 proto 2 vid 0x04B8 pid 0x080E
Jan 13 09:33:15 gray default.hotplug[15712]: arguments (usb) env 
(SUBSYSTEM=usb OLDPWD=/ 
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0 
PATH=/bin:/sbin:/usr/sbin:/usr/bin ACTION=add 
MODALIAS=usb:v04B8p080Ed0100dc00dsc00dp00icFFiscFFipFF PWD=/etc/hotplug 
HOME=/ SHLVL=2 DEVICE=/proc/bus/usb/002/007 INTERFACE=255/255/255 
PRODUCT=4b8/80e/100 TYPE=0/0/0 DEBUG=yes PHYSDEVBUS=usb SEQNUM=1085 
_=/usr/bin/env)
Jan 13 09:33:15 gray default.hotplug[15712]: invoke /etc/hotplug/usb.agent ()
Jan 13 09:33:16 gray usb.agent[15712]: Setup scanner for USB product 
4b8/80e/100
Jan 13 09:33:16 gray default.hotplug[15714]: arguments (usb) env 
(SUBSYSTEM=usb OLDPWD=/ 
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.1 
PATH=/bin:/sbin:/usr/sbin:/usr/bin ACTION=add 
MODALIAS=usb:v04B8p080Ed0100dc00dsc00dp00ic07isc01ip02 PWD=/etc/hotplug 
HOME=/ SHLVL=2 DEVICE=/proc/bus/usb/002/007 INTERFACE=7/1/2 
PRODUCT=4b8/80e/100 TYPE=0/0/0 DEBUG=yes PHYSDEVBUS=usb SEQNUM=1086 
_=/usr/bin/env)
Jan 13 09:33:16 gray default.hotplug[15714]: invoke /etc/hotplug/usb.agent ()
Jan 13 09:33:16 gray usb.agent[15714]: Setup scanner for USB product 
4b8/80e/100
Jan 13 09:33:16 gray default.hotplug[15801]: arguments (usb) env 
(PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.1 SUBSYSTEM=usb 
OLDPWD=/ DEVPATH=/class/usb/lp0 MINOR=0 PATH=/bin:/sbin:/usr/sbin:/usr/bin 
ACTION=add PWD=/etc/hotplug MAJOR=180 HOME=/ SHLVL=2 PHYSDEVDRIVER=usblp 
DEBUG=yes PHYSDEVBUS=usb SEQNUM=1087 _=/usr/bin/env)
Jan 13 09:33:16 gray default.hotplug[15801]: invoke /etc/hotplug/usb.agent ()
Jan 13 09:33:16 gray default.hotplug[15814]: arguments (usb_device) env 
(PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-2 SUBSYSTEM=usb_device 
OLDPWD=/ DEVPATH=/class/usb_device/usbdev2.7 MINOR=134 
PATH=/bin:/sbin:/usr/sbin:/usr/bin ACTION=add PWD=/etc/hotplug MAJOR=189 
HOME=/ SHLVL=2 PHYSDEVDRIVER=usb DEBUG=yes PHYSDEVBUS=usb SEQNUM=1088 
_=/usr/bin/env)
Jan 13 09:33:16 gray default.hotplug[15814]: 
invoke /etc/hotplug/usb_device.agent ()
Jan 13 09:33:16 gray default.hotplug[15706]: arguments (usb) env 
(SUBSYSTEM=usb OLDPWD=/ DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-2 
PATH=/bin:/sbin:/usr/sbin:/usr/bin ACTION=add PWD=/etc/hotplug HOME=/ SHLVL=2 
PHYSDEVDRIVER=usb DEBUG=yes PHYSDEVBUS=usb SEQNUM=1084 _=/usr/bin/env)
Jan 13 09:33:16 gray default.hotplug[15706]: invoke /etc/hotplug/usb.agent ()
Jan 13 09:33:18 gray udev[15879]: creating device node '/dev/usbdev2.7'
Jan 13 09:33:28 gray udev[15876]: configured rule in 
'/etc/udev/rules.d/udev.rules' at line 115 applied, 'lp0' becomes 'usb/%k'
Jan 13 09:33:28 gray udev[15876]: creating device node '/dev/usb/lp0'

l'usermap relativo č questo:

# Epson CX3650 Scanner
scanner 0x0003 0x04b8 0x080e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 
0x00000000


dovrebbe, secondo l'usermap, lanciare lo script "scanner":

#!/bin/bash

if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
    chown root:scanner "$DEVICE"
    chmod 0666 "$DEVICE"
fi

che perņ non viene eseguito, visto che i permessi del file relativo non 
cambiano. Questo il tree della directory /etc/hotplug:

|-- blacklist
|-- dasd.agent
|-- dasd.permissions
|-- firmware.agent
|-- hotplug.functions
|-- ieee1394.agent
|-- input.agent
|-- input.rc
|-- net.agent
|-- pci
|-- pci.agent
|-- pci.rc
|-- scanner
|-- scsi.agent
|-- tape.agent
|-- tape.permissions
|-- usb
|   |-- libsane.usermap
|   `-- usbcam.usermap
|-- usb.agent
|-- usb.distmap
|-- usb.handmap
|-- usb.rc
|-- usb_device.agent
`-- usbcam

Consigli e suggerimenti ?

Oz

-- 
----
O-Zone ! No (C) since 1996
Riding on VFR VTec 2002 "Vuffy"
Home http://www.zerozone.it
Blog http://blog.zerozone.it/user/o-zone
Luna di miele http://www.lunamieleros.info
Photos http://myphotos.zerozone.it/user/o-zone


Maggiori informazioni sulla lista Tecnica