← Back to team overview

sslug-teknik team mailing list archive

Re: USB-scanner under kerne 2.6.5

 

Anders Gnistrup wrote:

Mogens Jæger wrote:

dmu2201 wrote:

Anders Gnistrup wrote:

Hej

Jeg har en USB-scanner som jeg meget gerne vil snakke med under kerne 2.6.5. Så vidt jeg har fundet ud af skal man bruge "libusb" men hvordan pokker aktiver man det?

Mit problem er at sane-find-scanner ingenting finder men i /proc/bus/usb/devices finder jeg :
T:  Bus=05 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs=  1
P:  Vendor=04b8 ProdID=011b Rev= 1.00
S:  Manufacturer=EPSON
S:  Product=EPSON Scanner



Generelt er Epson fuldt understøttet af SANE, med få undtagelser, f.eks. er model 1270 med en snapscan bagende, og fungerer muligvis med denne. Prøv at se her: http://www.sane-project.org/lists/sane-mfgs-cvs.html#Z-EPSON

Den er fuldt understøttet.
Det der er problemet er at få installeret den under Linux Kerne 2.6.5 hvor modulet scanner er fjernet og erstattet af libusb, hotplug og udev i userspace.

Mit problem er at informationen om installeringen af disse er meget sparsom og ville derfor hører om der var nogen der havde fået det til at spille. Det er endnu ikke lykkedes mig.

Hilsen Anders



.

Hej Alle

Jeg har fået løst mit problem og fundet årsagen. Da det vil blive et generelt problem for alle tror jeg at det vil være en rigtig god ide lige at skrive lidt ned hvad jeg egentlig kom frem til.

Under kerne 2.6.5 er scanner.o modullet røget helt ud og erstattet af userspace modulet libusb. (At kalde det et "lib" er egentlig en smule forkert.) Yderligere er der sket det at devfs understøttelse i kernen er røget helt ud og erstattet af udev. En beskrivelse af dette kan findes http://webpages.charter.net/decibelshelp/LinuxHelp_UDEVPrimer.html

Jeg fik sat kernen op, kompileret og genstartet. Jeg prøvede at finde min scanner uden resultat. Så måtte jeg til at arbejde lidt med udev. Stadig intet resultat... Fik læst lidt mere om udev og fandt ud af at den også skulle bruge "hotplug" som jeg så fik installeret. Herefter kunne jeg finde min scanner, mus og printer under /sys/bus/usb/devices. Det var en stor hjælp da jeg her kunne finde information om SYSFS{vendor} og andre. Men jeg kunne stadig ikke finde min scanner med sane-find-scanner.

Så jeg gik igang med at understøtte min printer under udev og det blev til følgene i /etc/udev/udev.rules.

BUS="usb", SYSFS{product}="HL-1450 series", SYMLINK="usblp0"
BUS="usb", SYSFS{product}="USB Trackball", NAME="input/mouse0", SYMLINK="mouse"

Der er en rigtig god side som beskriver ovenståene på http://www.reactivated.net/udevrules.php Det fede er nu at jeg kan tage mit USB-kabel til min printer ud, sætte den over i en anden port men printeren tilgås stadig igennem /dev/usblp0 (grundet SYMLINK). Rigtig rart at man på den måde kan lave en direkte binding mellem en fysisk enhed og et symlink char device. Virklig en forbedring til tidligere (specielt med folk med to USB printere). Det virkede også fint for min mus.

Jeg prøvede at sætte linien for min scanner ind i /etc/udev/udev.conf

BUS="usb", SYSFS{idVendor}="04b8", SYMLINK="epson2400"

udev,hotplug og min kerne var sat rigtigt op (min printer virkede jo fint), men jeg kunne stadig ikke finde min scanner.....

Så jeg satte følgene ind i /etc/hotplug/usb.usermap

scanner 0x0003 0x04b8 0x011b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000

Jeg er i tvivl om det overhovedet har nogen effekt.

Så jeg installerede libusb. Til min store overraskelse blev min scanner stadig IKKE fundet!!!! Så jeg måtte til at undersøge lidt om hvordan sane egentlig tilgik scannerene. Det er korrekt at sane bruge libusb men den bruger også en backend, nemlig sane-backend.
Jeg fandt filen /etc/sane.d/epson.conf og fik sat følgene ind

   usb usblib
   usb 0x04b8 0x011b

Det der står er er at sane skal bruge libusb og at devicet er lavet af epson 0x04b8, og har et produkt id = 0x011b. Det er måske et overkill at tage det hele med (jeg har læst om folk som uden problemer kunne nå deres scanner gennem libusb blot ved at skrive "usb" og ikke mere). så skulle libusb og sane-beckend virke men...

Så jeg prøvede igen med sane-find-scanner. Men med samme resultet STADIG INGEN SCANNER. Hvad pokker var der galt? efter at have søgt på nettet, prøvet med trial and error i to dages tid fandt jeg løsningen. Jeg bruger gentoo som installition og skulle blot angive USE="usb" i /etc/make.canf (eller at angive den på kommendo linien) for at få usb support under sane (hvis du bruger RH osv vil usb support være med). Da det var klaret blev min scanner fundet under

bash-2.05b$ sane-find-scanner

# No SCSI scanners found. If you expected something different, make sure that
 # you have loaded a SCSI driver for your SCSI adapter.

found USB scanner (vendor=0x04b8, product=0x011b) at libusb:005:002

Jubii :-)

Og få sekunder efter havde jeg scannet mit første billede i gimp.

Det eneste problem jeg har tilbage er at der desværre ikke bliver lavet en symlink fra /dev/epson2400 til libusb:005:002. Hvis det lukkes nogen at oprette symlinket vil jeg gerne høre om det. Det har sikkert noget at gøre med et manglene link mellem libusb og hotplug.

Hilsen Anders


References