From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Fedora/1.0.4-1.3.1 Firefox/1.0.4 Description of problem: Logging in as Root, the Microtek E3 scanner in hardware browser and is recognized by sane-find-scanner. It is functional in OpenOffice and even in xsane with gimp. Logged in as user, it is not recognized with sane-find-scanner and not usable in OpenOffice or xsane. This same scanner works well in FC3. All hardware is the same and no settings are changed. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1.Log in as user 2.run sane-find-scanner 3. Actual Results: Sane-find scanner reports no scsi scanner found. Expected Results: Sane-find-scanner should report scanner found as sg0. Additional info: This computer runs multiple operating systems via swappable hard drive bay. The scanner is a Microtek E3 - old but reliable - and scsi connected to an Adaptec 2906 using the external connector.
Further testing and information: I did a bad thing and inserted the following lines from /etc/udev/permissions.d/50-udevpermissions into /etc/udev/rules.d/50-udev.rules: # scanner devices scanner:root:root:0600 usb/scanner*:root:root:0600 I then have to boot up with the scanner power off to remove any reference to it. Then shutdown the computer, turn on the scanner, boot up and log in as user. sane-find-scanner then recognizes the scanner as device sg0. These steps must be repeated with each boot up as the scanner is lost each shutdown. Really confusing!!!
With further testing, I found that the three lines added to the file have no effect and were removed. However, the startup procedure stated above is required at every power on boot up of restart of the system. I guess I can live with that. Now, if I could get the Num Lock to come on at startup . . .
Try to load the "sg" module in e.g. rc.local..
Thanks, I tried that suggestion and no joy. It still loses the scanner without the special procedure. The link /dev/scanner linked to /dev/sg0 is not created normally without that procedure. Creating /dev/scanner manually revives the scanner for both root and user. I am learning more about Linux than I ever thought I wanted to.
It seems that there is no hotplug event, if you switch on your scanner. The scsi driver should send a hotplug event. Try to set in /etc/sysconfig/hotplug: DEBUG="yes" and look in /var/log/messages for udev and hotplug messages, if you switch on your scanner, while the system is up.
OK. There is no file /etc/sysconfig/hotplug. I found /etc/hotplug/hotplug.functions with the line # DEBUG="yes" and unremmed that. This generates the following sequence or similar many tines in /var/log/messages: Jun 23 12:39:53 BeeHive default.hotplug[2668]: no runnable /etc/hotplug/block.agent is installed Jun 23 12:39:53 BeeHive default.hotplug[2677]: arguments (scsi_generic) env (PHYSDEVPATH=/devices/platform/host1/target1:0:6/1:0:6:0 SUBSYSTEM=scsi_generic OLDPWD=/ DEVPATH=/class/scsi_generic/sg1 MINOR=1 PATH=/bin:/sbin:/usr/sbin:/usr/bin ACTION=add PWD=/etc/hotplug UDEV_LOG=3 MAJOR=21 MANAGED_EVENT=1 UDEVD_EVENT=1 DEVNAME=/dev/sg1 SHLVL=1 HOME=/ PHYSDEVDRIVER=sd DEBUG=yes PHYSDEVBUS=scsi SEQNUM=454 _=/bin/env) Jun 23 12:39:53 BeeHive default.hotplug[2705]: arguments (vc) env (SUBSYSTEM=vc OLDPWD=/ DEVPATH=/class/vc/vcs2 MINOR=2 PATH=/bin:/sbin:/usr/sbin:/usr/bin ACTION=add PWD=/etc/hotplug UDEV_LOG=3 MAJOR=7 MANAGED_EVENT=1 UDEVD_EVENT=1 DEVNAME=/dev/vcs2 SHLVL=1 HOME=/ DEBUG=yes SEQNUM=457 _=/bin/env) Jun 23 12:39:54 BeeHive default.hotplug[2705]: no runnable /etc/hotplug/vc.agent is installed After following the bootup procedure to get the scanner recognized, sane-find-scanner shows two lines: Found SCSI Scanner "Scanner 1.80" at dev /dev/scanner Found SCSI Scanner "Scanner 1.80" at dev /dev/sg0 Switching the scanner off removes both lines and switching on again returns them. I have no USB devices connected. Could something not be installed that is needed for the SCSI scanner to be detected properly?
hmm... DEVNAME=/dev/sg1 .... maybe sane-find-scanner looks for /dev/sg0, and if none found, gives up... and misses /dev/sg1 ... Is this sg1 every time, you switch on your scanner, after booting up the PC?
/dev/sg0 and /dev/sg1 are present after each bootup or reboot if the scanner is powered up at that time. /dev/scanner is present only the first time but is absent after reboot even if the scanner is left powered up. I checked bug #143313 and got a clue there. I created a new file named /etc/udev/rules.d/20-scanner.rules: # permissions for SCSI sg devices and scanner KERNEL=="sg0", BUS=="scsi", SYMLINK="scanner%e" # KERNEL=="sg[0-9]", BUS=="scsi", SYMLINK="scanner%e" The first lines creates the /dev/scanner sym link at every reboot if the scanner is on. The second line unremmed creates /dev/scanner1 and /dev/scanner2. This can instead be added to 50-udev.rules by inserting: KERNEL=="device-mapper", NAME="mapper/control" # old compat symlinks with enumeration KERNEL=="sr[0-9]*", SYMLINK="cdrom%e" KERNEL=="scd[0-9]*", SYMLINK="cdrom%e" KERNEL=="pcd[0-9]*", SYMLINK="cdrom%e" KERNEL=="fd[0-9]*", SYMLINK="floppy%e" KERNEL=="nst[0-9]", BUS=="scsi", SYMLINK="tape%e" KERNEL=="nosst[0-9]", BUS=="scsi", SYMLINK="tape%e" KERNEL=="sg[0-9]", BUS=="scsi", SYMLINK="scanner%e" KERNEL=="umad*", NAME="infiniband/%k" KERNEL=="issm*", NAME="infiniband/%k" # Section for zaptel device This solves the problem nicely. The scanner can be switched off and on with no problem.
we have to refine the rule, because "sg" could be "any scsi device".. Does this rule work?? BUS=="scsi", KERNEL=="sg[0-9]*", SYSFS{type}=="6", NAME="%k", SYMLINK="scanner%e", MODE="0660"
Great. I now have /dev/sg0 and /dev/scanner only. This is diffrent than the suggestion in bug 143313, which didn't work. I see the difference. I guess the one I did worked since the scanner is my only scsi device. Thanks for the help.
[Please see the thread starting with https://www.redhat.com/archives/fedora-list/2005-August/msg01668.html] RED HAT: please add the lines suggested below to /etc/udev/rules.d/50-udev.rules There seem to be two problems: (1) getting /dev/sg0 (or whatever) owned by the userid logged into the console so that that userid can access the scanner (2) recognizing the scanner in the case that it is turned on after boot. Problem (1) is partly handled by console.perms(5). If there is a /dev/scannerN, it will be chowned at login to the console userid. How can we get /dev/scannerN created? See udev(8). There need to be some additional rules in /etc/udev/rules.d for scanners. Here are two that I think should be standard issue (i.e. done by Red Hat, not the end user). BUS="scsi", SYSFS{vendor}="HP*", SYSFS{model}="C2520A*", SYMLINK="scanner%n" BUS="scsi", SYSFS{vendor}="UMAX*", SYSFS{model}="Astra*", SYMLINK="scanner%n" Problem (2) requires work that I haven't tried to figure out. In my particular setup, the following command, issued by the superuser, gets the system to notice the scanner when it is turned on some time after boot: echo 'scsi add-single-device 0 0 5 0' >/proc/scsi/scsi ^ LUN ^ SCSI ID ^ host adapter channel ^ host adapter This is not very elegant. Contrary to the documentation in proc(5), this command seems to rescan all scsi buses (including USB buses).
BUS=="scsi", KERNEL=="sg[0-9]*", SYSFS{type}=="6", NAME="%k", SYMLINK="scanner%e", MODE="0660" should cover your 2 lines.
The line from #12 seems to work and is much more general. The MODE field does not seem to work as I'd expect: lrwxrwxrwx 1 root root 3 Aug 27 21:52 /dev/scanner -> sg4 crw------- 1 hugh root 21, 4 Aug 27 21:52 /dev/sg4 I think that this comes from the following line in /etc/security/console.perms.d/50-default.perms <console> 0600 <scanner> 0600 root The SYSFS{type}="6" is a bit magical. Where is this 6 documented? All I've found is table 21 on page 35 of http://www.t10.org/ftp/t10/drafts/spc/spc-r11a.pdf [SCSI-3 primary commands]. It would be good if there is documentation that can easily be found starting from the udev(8) manpage.
$ fgrep TYPE_ /usr/include/scsi/scsi.h #define TYPE_DISK 0x00 #define TYPE_TAPE 0x01 #define TYPE_PROCESSOR 0x03 /* HP scanners use this */ #define TYPE_WORM 0x04 /* Treated as ROM by our system */ #define TYPE_ROM 0x05 #define TYPE_SCANNER 0x06 #define TYPE_MOD 0x07 /* Magneto-optical disk - * - treated as TYPE_DISK */ #define TYPE_MEDIUM_CHANGER 0x08 #define TYPE_ENCLOSURE 0x0d /* Enclosure Services Device */ #define TYPE_NO_LUN 0x7f If you don't like the permissions in /etc/security/console.perms.d/50-default.perms just define new ones in a seperate file in /etc/security/console.perms.d/
Thanks to all that have contributed to this bug. Very useful. To get my Epson Perfection 1200S (using the aic7xxx kernel module) working on FC4 I needed to alter the line in comment #12 to include scsi type 3. i.e. BUS=="scsi", KERNEL=="sg[0-9]*", SYSFS{type}=="[36]", NAME="%k", SYMLINK="scanner%e", MODE="0660"
*** Bug 143313 has been marked as a duplicate of this bug. ***
This is fixed in the current version of udev, as the line mentioned above is correctly included. Seems like this bug never got closed. Closing now.