ACPI administration advocacy advocacy advocacy opinion alsa amarok apache apple apt aptitude audio audo authentication automount avi awk bash BIOS boot business cache calendar calibre cdr cdrecord censorship commandline computerscience console convert cron cut database date debian degree design desktop development disk dpkg dvd economics education emacs email europe exim faad ffmpeg file files firefox firewall flash foss freedom ftp fun fuse git gnumeric graphics grep growisofs grub gtkpod hardware hardware html idiocy image imagemagick images installation ip iphone ipod iptables iso itunes ivman kde kernel keyboard knoppix lame laptop latex linux locale lockin longlines m4a microsoft mimetypes minitab mount mp3 mp4 mplayer multimedia music mysql network nfs nfs4 nmap openbox openoffice opinion opinion partition pdf perl php politics postgresql printing privacy programming rant remote rhythmbox rss rsync rxvt scp screengrab screenshot script scripting scsi security sed server shell siteadmin sitenews sitesoftware skype skype slackware sound sox spam spreadsheet ssh statistics subversion sudo svk swap t23 t43 terminal text thinkpad thunderbird time timezone ubuntu udev upgrade usb usbmount users uuid versioncontrol vfat video vnc windows wine wordpress wordprocessing X40 xwindows xwindows youtube
So there I was ready to start scanning. The scanner was plugged into the usb port, syslog said it was there, so why when I started xsane I was told 'No devices available'?
Hmmm, try doing it as root. That worked, but xsane says that using it as root was extremely naughty and that my grandmother would be roasted and eaten by cannibals, or something to that effect.
So, this was obviously a permissions problem. But the permissions of which device would I have to change?
I hit google and found this page about usb cameras. Given that I'm running hotplug and kernel 2.6, Linux sets up the device when I plug it in. That's nice, but it still didn't tell me what permissions I needed to set.
The problem unravels thusly. The file /etc/hotplug/usb/libsane.usermap contains a list of all the scanners that could be plugged in. In each case, it tells hotplug to run the script at /etc/hotplug/usb/libusbscanner. This is the meat of the script:
if [ -z "$DEVICE" ] ; then IF=`echo $DEVPATH | sed 's/\(bus\/usb\/devices\/\)\(.*\)-\(.*\)/\2/'` DEV=`echo $DEVPATH | sed 's/\(bus\/usb\/devices\/\)\(.*\)-\(.*\)/\3/'` DEV=`expr $DEV + 1` DEVICE=`printf '/proc/bus/usb/%.03d/%.03d' $IF $DEV` fi if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then chown root:scanner "$DEVICE" chmod 0660 "$DEVICE" fi
As you can see from the second and third lines up from the bottom, the device is made read/writable by root and everyone in the 'scanner' group. So, there you have it, you have to be a member of the scanner group.
adduser paul scanner
at the command line, as root, solved the problem.