Bonsoir,
https://anonscm.debian.org/git/sane/sane-backends.git/tree/tools/check-usb-chip.c
La section concernant le LM983x est aux lignes 1004 à 1213.
Le test d'accès aux registres du LM983x se situe entre les lignes 1177
et 1185. Il consiste en 2 écritures de configuration, dans les registres
0x07 et 0x08, puis 2 lectures de ces registres (sans vérification de la
valeur lue), puis enfin 1 lecture du registre 0x69. Une erreur est
détectée au cours de ces 5 accès, avant même que la valeur du registre
0x69 ne soit testée.
L'erreur doit être produite par un appel de la fonction
libusb_bulk_transfer (cf lignes 1006 à 1046, les fonctions
d'écriture/lecture des registres) : valeur de retour négative, ou nombre
d'octets transférés ne correspondant pas à ce qui était demandé.
==> Quelqu'un a-t-il connaissance de problèmes avec cette fonction
libusb_bulk_transfer ?
À plus,
--
Nicolas Rougnon-Glasson
Le 31/10/2017 à 11:43, anne.guilde@??? a écrit :
> Le 08/10/2017 à 16:57, anne.guilde@??? a écrit :
>> Le 11/08/2017 à 19:07, anne.guilde@??? a écrit :
>>> Le 08/08/2017 à 17:18, anne.guilde@??? a écrit :
>>>> bonjour,
>>>>
>>>> J'ai mis sane sur mon serveur pour pouvoir scanner.
>>>>
>>>> J'ai 2 serveurs, un en 32 bits et l'autre en 64.
>>>>
>>>> Depuis une maj, impossible d'accès au scanner sur celui en 64 bits.
>>>> J'avais donc brancher le scanner usb sur celui en 32 bits
>>>>
>>>> Les commandes :
>>>> ---
>>>> # sane-find-scanner
>>>>
>>>> # sane-find-scanner will now attempt to detect your scanner. If the
>>>> # result is different from what you expected, first make sure your
>>>> # scanner is powered up and properly connected to your computer.
>>>>
>>>> # No SCSI scanners found. If you expected something different,
>>>> make sure that
>>>> # you have loaded a kernel SCSI driver for your SCSI adapter.
>>>>
>>>> found USB scanner (vendor=0x04b8 [EPSON], product=0x010f [EPSON
>>>> Scanner 010F], chip=LM9832/3) at libusb:003:017
>>>> found USB scanner (vendor=0x0bda [Generic], product=0x0129
>>>> [USB2.0-CRW]) at libusb:001:004
>>>> # Your USB scanner was (probably) detected. It may or may not be
>>>> supported by
>>>> # SANE. Try scanimage -L and read the backend's manpage.
>>>>
>>>> # Not checking for parallel port scanners.
>>>>
>>>> # Most Scanners connected to the parallel port or other
>>>> proprietary ports
>>>> # can't be detected by this program.
>>>> ----
>>>>
>>>> Il a bien trouvé mon scanner
>>>> found USB scanner (vendor=0x04b8 [EPSON], product=0x010f [EPSON
>>>> Scanner
>>>>
>>>> ---
>>>> # scanimage -L
>>>>
>>>> No scanners were identified. If you were expecting something
>>>> different,
>>>> check that the scanner is plugged in, turned on and detected by the
>>>> sane-find-scanner tool (if appropriate). Please read the documentation
>>>> which came with this software (README, FAQ, manpages).
>>>> ---
>>>>
>>>> Il ne le trouve plus.
>>>>
>>>> Sur le serveur 32 bits
>>>> ---
>>>> ]# scanimage -L
>>>> device `plustek:libusb:002:004' is a Epson Perfection 1250/Photo
>>>> flatbed scanner
>>>> ---
>>>>
>>>> Je suis en train d'essayer de comprendre le problème.
>>>>
>>>> sur le serveur en 32 bits
>>>> ---
>>>> # sane-find-scanner -v -v
>>>> ...
>>>> <device descriptor of 0x04b8/0x010f at 002:003 (EPSON EPSON Scanner
>>>> 010F)>
>>>> bLength 18
>>>> bDescriptorType 1
>>>> bcdUSB 1.10
>>>> bDeviceClass 255
>>>> bDeviceSubClass 0
>>>> bDeviceProtocol 255
>>>> bMaxPacketSize0 8
>>>> idVendor 0x04B8
>>>> idProduct 0x010F
>>>> bcdDevice 1.00
>>>> iManufacturer 1 (EPSON)
>>>> iProduct 2 (EPSON Scanner 010F)
>>>> iSerialNumber 0 ()
>>>> bNumConfigurations 1
>>>> <configuration 0>
>>>> bLength 9
>>>> bDescriptorType 2
>>>> wTotalLength 39
>>>> bNumInterfaces 1
>>>> bConfigurationValue 1
>>>> iConfiguration 0 ()
>>>> bmAttributes 192 (Self-powered)
>>>> MaxPower 2 mA
>>>> <interface 0>
>>>> <altsetting 0>
>>>> bLength 9
>>>> bDescriptorType 4
>>>> bInterfaceNumber 0
>>>> bAlternateSetting 0
>>>> bNumEndpoints 3
>>>> bInterfaceClass 255
>>>> bInterfaceSubClass 0
>>>> bInterfaceProtocol 255
>>>> iInterface 0 ()
>>>> <endpoint 0>
>>>> bLength 7
>>>> bDescriptorType 5
>>>> bEndpointAddress 0x81 (in 0x01)
>>>> bmAttributes 3 (interrupt)
>>>> wMaxPacketSize 1
>>>> bInterval 16 ms
>>>> bRefresh 0
>>>> bSynchAddress 0
>>>> <endpoint 1>
>>>> bLength 7
>>>> bDescriptorType 5
>>>> bEndpointAddress 0x82 (in 0x02)
>>>> bmAttributes 2 (bulk)
>>>> wMaxPacketSize 64
>>>> bInterval 0 ms
>>>> bRefresh 0
>>>> bSynchAddress 0
>>>> <endpoint 2>
>>>> bLength 7
>>>> bDescriptorType 5
>>>> bEndpointAddress 0x03 (out 0x03)
>>>> bmAttributes 2 (bulk)
>>>> wMaxPacketSize 64
>>>> bInterval 0 ms
>>>> bRefresh 0
>>>> bSynchAddress 0
>>>>
>>>> <trying to find out which USB chip is used>
>>>> checking for GT-6801 ...
>>>> this is not a GT-6801 (bDeviceSubClass = 0x0)
>>>> checking for GT-6816 ...
>>>> this is not a GT-6816 (bDeviceClass = 255, bInterfaceClass = 255)
>>>> checking for GT-8911 ...
>>>> this is not a GT-8911 (check 1, bDeviceClass = 255,
>>>> bInterfaceClass = 255)
>>>> checking for MA-1017 ...
>>>> this is not a MA-1017 (bDeviceClass = 255, bInterfaceClass = 255)
>>>> checking for MA-1015 ...
>>>> this is not a MA-1015 (bcdUSB = 0x110)
>>>> checking for MA-1509 ...
>>>> this is not a MA-1509 (bDeviceSubClass = 0x0)
>>>> checking for LM983[1,2,3] ...
>>>> <This USB chip looks like a LM9832/3 (result from sane-backends
>>>> 1.0.21)>
>>>>
>>>> found USB scanner (vendor=0x04b8 [EPSON], product=0x010f [EPSON
>>>> Scanner 010F], chip=LM9832/3) at libusb:002:003
>>>> ...
>>>> ---
>>>>
>>>> il a trouvé le chip LM9832/3.
>>>>
>>>> sur le serveur 64 bits
>>>> ----
>>>> # sane-find-scanner -v -v
>>>> ...
>>>> <device descriptor of 0x04b8/0x010f at 003:015 (EPSON EPSON Scanner
>>>> 010F)>
>>>> bLength 18
>>>> bDescriptorType 1
>>>> bcdUSB 1.10
>>>> bDeviceClass 255
>>>> bDeviceSubClass 0
>>>> bDeviceProtocol 255
>>>> bMaxPacketSize0 8
>>>> idVendor 0x04B8
>>>> idProduct 0x010F
>>>> bcdDevice 1.00
>>>> iManufacturer 1 (EPSON)
>>>> iProduct 2 (EPSON Scanner 010F)
>>>> iSerialNumber 0 ()
>>>> bNumConfigurations 1
>>>> <configuration 0>
>>>> bLength 9
>>>> bDescriptorType 2
>>>> wTotalLength 39
>>>> bNumInterfaces 1
>>>> bConfigurationValue 1
>>>> iConfiguration 0 ()
>>>> bmAttributes 192 (Self-powered)
>>>> MaxPower 2 mA
>>>> <interface 0>
>>>> <altsetting 0>
>>>> bLength 9
>>>> bDescriptorType 4
>>>> bInterfaceNumber 0
>>>> bAlternateSetting 0
>>>> bNumEndpoints 3
>>>> bInterfaceClass 255
>>>> bInterfaceSubClass 0
>>>> bInterfaceProtocol 255
>>>> iInterface 0 ()
>>>> <endpoint 0>
>>>> bLength 7
>>>> bDescriptorType 5
>>>> bEndpointAddress 0x81 (in 0x01)
>>>> bmAttributes 3 (interrupt)
>>>> wMaxPacketSize 1
>>>> bInterval 16 ms
>>>> bRefresh 0
>>>> bSynchAddress 0
>>>> <endpoint 1>
>>>> bLength 7
>>>> bDescriptorType 5
>>>> bEndpointAddress 0x82 (in 0x02)
>>>> bmAttributes 2 (bulk)
>>>> wMaxPacketSize 64
>>>> bInterval 0 ms
>>>> bRefresh 0
>>>> bSynchAddress 0
>>>> <endpoint 2>
>>>> bLength 7
>>>> bDescriptorType 5
>>>> bEndpointAddress 0x03 (out 0x03)
>>>> bmAttributes 2 (bulk)
>>>> wMaxPacketSize 64
>>>> bInterval 0 ms
>>>> bRefresh 0
>>>> bSynchAddress 0
>>>>
>>>> <trying to find out which USB chip is used>
>>>> checking for GT-6801 ...
>>>> this is not a GT-6801 (bDeviceSubClass = 0x0)
>>>> checking for GT-6816 ...
>>>> this is not a GT-6816 (bDeviceClass = 255, bInterfaceClass = 255)
>>>> checking for GT-8911 ...
>>>> this is not a GT-8911 (check 1, bDeviceClass = 255,
>>>> bInterfaceClass = 255)
>>>> checking for MA-1017 ...
>>>> this is not a MA-1017 (bDeviceClass = 255, bInterfaceClass = 255)
>>>> checking for MA-1015 ...
>>>> this is not a MA-1015 (bcdUSB = 0x110)
>>>> checking for MA-1509 ...
>>>> this is not a MA-1509 (bDeviceSubClass = 0x0)
>>>> checking for LM983[1,2,3] ...
>>>> Couldn't access LM983x registers.
>>>> checking for GL646 ...
>>>> this is not a GL646 (bDeviceClass = 255, bInterfaceClass = 255)
>>>> checking for GL646_HP ...
>>>> this is not a GL646_HP (bDeviceSubClass = 0x0)
>>>> checking for GL660+GL646 ...
>>>> this is not a GL660+GL646 (bDeviceClass = 255, bInterfaceClass
>>>> = 255)
>>>> checking for GL84x ...
>>>> this is not a GL84x (bcdUSB = 0x110)
>>>> checking for ICM532B ...
>>>> this is not a ICM532B (check 3, bDeviceSubClass = 0x0)
>>>> checking for PV8630/LM9830 ...
>>>> this is not a PV8630/LM9830 (bDeviceClass = 255)
>>>> checking for M011 ...
>>>> this is not a M011 (bcdUSB = 0x110)
>>>> checking for RTS8822 ...
>>>> this is not a RTS8822 (bDeviceClass = 255)
>>>> checking for rts8858c ...
>>>> this is not a rts8858c (bDeviceClass = 255)
>>>> checking for SQ113 ...
>>>> this is not a SQ113 (bDeviceClass = 255)
>>>> checking for HP4500C/4570C/5500C/5550C/5590/7650 chipset ...
>>>> this is not a HP4500C/4570C/5500C/5550C/5590/7650 chipset
>>>> (bcdUSB = 0x110)
>>>> checking for rts8801/rts8891 ...
>>>> this is not a rts8801/rts8891 (bDeviceClass = 255)
>>>> <Couldn't determine the type of the USB chip (result from
>>>> sane-backends 1.0.21)>
>>>>
>>>> found USB scanner (vendor=0x04b8 [EPSON], product=0x010f [EPSON
>>>> Scanner 010F]) at libusb:003:015
>>>> ...
>>>> ---
>>>>
>>>> Il ne trouve pas le chip
>>>> checking for LM983[1,2,3] ...
>>>> Couldn't access LM983x registers.
>>>>
>>>> c'est quoi un register et pourquoi il n'y aurait pas accès
>>>>
>>>> Si quelqu'un a une idée pour continuer les recherches...
>>>>
>>
>> Je reviens sur mon problème avec sane
>> Couldn't access LM983x registers.
>>
>> Pourquoi avec mon serveur en 64 bits il n'a pas accès au registers
>> et un registers c'est quoi et comment cela fonctionne
>>
>
> Nicolas Rougnon-Glasson m'a posté :
> ----
> La datasheet du LM983x : www.ti.com/lit/ds/symlink/lm9833.pdf
>
> La liste des registres se trouve aux pages 11 à 21.
>
> Un registre, c'est un peu comme une cellule mémoire, mais dont le
> contenu est lié au circuit électronique environnant,
>
> - soit pour le régler et le commander (registre de contrôle,
> accessible en lecture/écriture),
>
> - soit pour rendre compte de son état (registre de statut, accessible
> en lecture seule).
>
> Dans le cas du LM983x, le registre à l'adresse 0x69 contient un numéro
> de version, c'est probablement en lisant ce registre que la version 32
> bits de sane-find-scanner arrive à déterminer qu'il s'agit d'un LM9832
> ou LM9833. Mais pourquoi la version 64 bits n'y arrive pas ?????
> ----
>
> Si quelqu'un avait une idée ...
>
> quelle commande faire?
>
> Merci
> Anne
>
>
>