Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[RISOLTO][HW] udev /dev/ttyUSB* non creato con FTDI
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
fdrcmoro
n00b
n00b


Joined: 17 Nov 2010
Posts: 5

PostPosted: Thu Nov 18, 2010 1:40 am    Post subject: [RISOLTO][HW] udev /dev/ttyUSB* non creato con FTDI Reply with quote

Salve a tutti,
sto lavorando con una Gumstix, ovvero una single-board computer. Con questa scheda è possibile comunicare attraverso una usb console via ssh.
In un sistema precedente con installato Ubuntu una volta effettuato il plug-in del cavo usb il device veniva riconosciuto e visualizzato in /dev/ttyUSB0 e tramite kermit era possibile far partire una console seriale.

Da pochi giorni ho eseguito una formattazione del mio pc ed ho deciso di installare Gentoo senza pormi minimamente il problema che qualcosa potesse andar storto. O meglio, il problema me lo sono posto ma il riconoscimento di un device usb era l'ultimo dei miei pensieri.
Comunque manco a dirlo non riesco più ad ottenere il collegamento con la Gumstix.
Il mio sistema monta un kernel 2.6.34-gentoo-r12 e ovviamente udev è stato "mergiato".
Ma procediamo per gradi. Prima di tutto ho ricompilato il kernel inserendo il supporto USB seriale e FTDI, che corrisponderebbero ai moduli usbserial e ftdi_sio, io li ho compilati come built-in.

Al plug del device il risultato di tail -f /var/log/messages è il seguente:
Code:

Nov 18 02:15:29 Leviathan kernel: [ 5476.771900] hub 2-0:1.0: state 7 ports 6 chg 0000 evt 0004
Nov 18 02:15:29 Leviathan kernel: [ 5476.771909] ehci_hcd 0000:00:1d.7: GetStatus port 2 status 001803 POWER sig=j CSC CONNECT
Nov 18 02:15:29 Leviathan kernel: [ 5476.771916] hub 2-0:1.0: port 2, status 0501, change 0001, 480 Mb/s
Nov 18 02:15:29 Leviathan kernel: [ 5476.875013] hub 2-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x501
Nov 18 02:15:29 Leviathan kernel: [ 5476.926242] ehci_hcd 0000:00:1d.7: port 2 full speed --> companion
Nov 18 02:15:29 Leviathan kernel: [ 5476.926248] ehci_hcd 0000:00:1d.7: GetStatus port 2 status 003801 POWER OWNER sig=j CONNECT
Nov 18 02:15:29 Leviathan kernel: [ 5476.926264] usb usb6: wakeup_rh (auto-start)
Nov 18 02:15:29 Leviathan kernel: [ 5476.926274] hub 2-0:1.0: port 2 not reset yet, waiting 50ms
Nov 18 02:15:29 Leviathan kernel: [ 5476.977019] ehci_hcd 0000:00:1d.7: GetStatus port 2 status 003002 POWER OWNER sig=se0 CSC
Nov 18 02:15:29 Leviathan kernel: [ 5476.977042] hub 6-0:1.0: state 7 ports 2 chg 0000 evt 0004
Nov 18 02:15:29 Leviathan kernel: [ 5476.977050] uhci_hcd 0000:00:1d.0: port 2 portsc 0093,00
Nov 18 02:15:29 Leviathan kernel: [ 5476.977056] hub 6-0:1.0: port 2, status 0101, change 0001, 12 Mb/s
Nov 18 02:15:29 Leviathan kernel: [ 5477.081017] hub 6-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
Nov 18 02:15:29 Leviathan kernel: [ 5477.183016] usb 6-2: new full speed USB device using uhci_hcd and address 12
Nov 18 02:15:29 Leviathan kernel: [ 5477.303009] usb 6-2: ep0 maxpacket = 8
Nov 18 02:15:29 Leviathan kernel: [ 5477.340285] usb 6-2: default language 0x0409
Nov 18 02:15:29 Leviathan kernel: [ 5477.369289] usb 6-2: udev 12, busnum 6, minor = 651
Nov 18 02:15:29 Leviathan kernel: [ 5477.369292] usb 6-2: New USB device found, idVendor=0403, idProduct=6001
Nov 18 02:15:29 Leviathan kernel: [ 5477.369295] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov 18 02:15:29 Leviathan kernel: [ 5477.369298] usb 6-2: Product: FT232R USB UART
Nov 18 02:15:29 Leviathan kernel: [ 5477.369299] usb 6-2: Manufacturer: FTDI
Nov 18 02:15:29 Leviathan kernel: [ 5477.369301] usb 6-2: SerialNumber: A5003vq1
Nov 18 02:15:29 Leviathan kernel: [ 5477.369378] usb 6-2: usb_probe_device
Nov 18 02:15:29 Leviathan kernel: [ 5477.369382] usb 6-2: configuration #1 chosen from 1 choice
Nov 18 02:15:29 Leviathan kernel: [ 5477.372288] usb 6-2: adding 6-2:1.0 (config #1, interface 0)
Nov 18 02:15:29 Leviathan kernel: [ 5477.377326] drivers/usb/core/inode.c: creating file '012'
Nov 18 02:15:29 Leviathan kernel: [ 5477.377346] hub 2-0:1.0: state 7 ports 6 chg 0000 evt 0004


con un live-cd di ubuntu invece tutto funziona correttamente e questo è il risultato di tail -f /var/log/messages:
Code:

Nov 17 00:24:05 ubuntu kernel: [  764.760290] usb 5-2: new full speed USB device using uhci_hcd and address 4
Nov 17 00:24:05 ubuntu kernel: [  764.980813] usb 5-2: configuration #1 chosen from 1 choice
Nov 17 00:24:05 ubuntu kernel: [  764.985447] ftdi_sio 5-2:1.0: FTDI USB Serial Device converter detected
Nov 17 00:24:05 ubuntu kernel: [  764.987437] ftdi_sio: Detected FT232RL
Nov 17 00:24:05 ubuntu kernel: [  764.988800] usb 5-2: FTDI USB Serial Device converter now attached to ttyUSB0


Questi sono invece i risultati su i due sistemi (gentoo e ubuntu live-cd) del comando udevadm monitor

Gentoo:
Code:

KERNEL[1290043207.629323] add      /devices/pci0000:00/0000:00:1d.0/usb6/6-2 (usb)
KERNEL[1290043207.637198] add      /devices/pci0000:00/0000:00:1d.0/usb6/6-2/6-2:1.0 (usb)
UDEV  [1290043207.638520] add      /devices/pci0000:00/0000:00:1d.0/usb6/6-2 (usb)
UDEV  [1290043207.641153] add      /devices/pci0000:00/0000:00:1d.0/usb6/6-2/6-2:1.0 (usb)


Ubuntu live-cd:
Code:

UEVENT[1289953054.789078] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2 (usb)
UEVENT[1289953054.791688] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0 (usb)
UDEV  [1289953054.792747] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2 (usb)
UEVENT[1289953054.796976] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/usb_endpoint/usbdev5.2_ep81 (usb_endpoint)
UEVENT[1289953054.797018] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/usb_endpoint/usbdev5.2_ep02 (usb_endpoint)
UEVENT[1289953054.797043] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2/usb_endpoint/usbdev5.2_ep00 (usb_endpoint)
UDEV  [1289953054.813212] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2/usb_endpoint/usbdev5.2_ep00 (usb_endpoint)
UEVENT[1289953055.143694] add      /module/usbserial (module)
UEVENT[1289953055.144355] add      /bus/usb-serial (bus)
UEVENT[1289953055.144955] add      /bus/usb/drivers/usbserial (drivers)
UDEV  [1289953055.145631] add      /module/usbserial (module)
UDEV  [1289953055.145960] add      /bus/usb/drivers/usbserial (drivers)
UEVENT[1289953055.146104] add      /bus/usb-serial/drivers/generic (drivers)
UEVENT[1289953055.146302] add      /bus/usb/drivers/usbserial_generic (drivers)
UDEV  [1289953055.146369] add      /bus/usb-serial (bus)
UDEV  [1289953055.147515] add      /bus/usb-serial/drivers/generic (drivers)
UDEV  [1289953055.148119] add      /bus/usb/drivers/usbserial_generic (drivers)
UEVENT[1289953055.223765] add      /module/ftdi_sio (module)
UEVENT[1289953055.224014] add      /bus/usb-serial/drivers/ftdi_sio (drivers)
UDEV  [1289953055.224304] add      /module/ftdi_sio (module)
UEVENT[1289953055.224660] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/ttyUSB0 (usb-serial)
UDEV  [1289953055.225224] add      /bus/usb-serial/drivers/ftdi_sio (drivers)
UEVENT[1289953055.225249] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/ttyUSB0/tty/ttyUSB0 (tty)
UEVENT[1289953055.226199] add      /bus/usb/drivers/ftdi_sio (drivers)
UDEV  [1289953055.226734] add      /bus/usb/drivers/ftdi_sio (drivers)
UDEV  [1289953055.227856] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0 (usb)
UDEV  [1289953055.230478] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/usb_endpoint/usbdev5.2_ep81 (usb_endpoint)
UDEV  [1289953055.232888] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/usb_endpoint/usbdev5.2_ep02 (usb_endpoint)
UDEV  [1289953055.234447] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/ttyUSB0 (usb-serial)
UDEV  [1289953055.246308] add      /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/ttyUSB0/tty/ttyUSB0 (tty)


KERNEL nel primo output e UEVENT nel secondo output dovrebbero essere la stessa cosa: ovvero kernel uevent.

Sono riuscito tramite la seguente "rules":
Code:

SSUBSYSTEMS=="usb", ATTRS{product}=="FT232R USB UART", ATTRS{serial}=="A5003vq1", SYMLINK+="gumstix"

ad ottenere il link /dev/gumstix ma quando provo a collegarmi con kermit questo è il risultato:
Code:

> kermit -l /dev/gumstix
/dev/bus/usb/006/013 is not a terminal device
can't open device

> ls -l /dev/gumstix
lrwxrwxrwx 1 root root 15 18 nov 02.20 /dev/gumstix -> bus/usb/006/013


Quello che mi viene da pensare è che /dev/gumstix non sia altro che un collegamento ad uno dei due endpoint della periferica usb e non il collegamento intero. Da quello che ho capito dovrebbero esserci due endpoint, uno IN e uno OUT, che dovrebbero venire uniti per creare il device /dev/ttyUSB*, che in teoria è quello che succede nel log di sistema di Ubuntu.

Ma passiamo alla configurazione del kernel perché credo sia qui il problema (almeno spero).
Code:

Device Drivers  --->
  [*] USB support  --->
    <M>   USB Serial Converter support  --->   
      [*]   USB Generic Serial Driver
      <M>   USB FTDI Single Port Serial Driver
      <M>   USB Fundamental Software Dongle Driver

Queste sono le voci che ho selezionato. Del Dongle Driver non sono molto sicuro ma comunque ho provato anche senza. Nei test sopra era tutto built-in; adesso ho provato a compilarli come moduli. Tutti tranne il Generic Serial Driver che è disponibile solo come built-in.
Mentre il risultato di udevadm monitor è sempre lo stesso, questo è invece il risultato del log di sistema:
Code:

Nov 18 02:56:05 Leviathan kernel: [  788.233077] hub 2-0:1.0: state 7 ports 6 chg 0000 evt 0004
Nov 18 02:56:05 Leviathan kernel: [  788.233086] ehci_hcd 0000:00:1d.7: GetStatus port 2 status 001803 POWER sig=j CSC CONNECT
Nov 18 02:56:05 Leviathan kernel: [  788.233093] hub 2-0:1.0: port 2, status 0501, change 0001, 480 Mb/s
Nov 18 02:56:05 Leviathan kernel: [  788.337011] hub 2-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x501
Nov 18 02:56:05 Leviathan kernel: [  788.388289] ehci_hcd 0000:00:1d.7: port 2 full speed --> companion
Nov 18 02:56:05 Leviathan kernel: [  788.388294] ehci_hcd 0000:00:1d.7: GetStatus port 2 status 003801 POWER OWNER sig=j CONNECT
Nov 18 02:56:05 Leviathan kernel: [  788.388304] hub 2-0:1.0: port 2 not reset yet, waiting 50ms
Nov 18 02:56:05 Leviathan kernel: [  788.388314] usb usb6: wakeup_rh (auto-start)
Nov 18 02:56:05 Leviathan kernel: [  788.439020] ehci_hcd 0000:00:1d.7: GetStatus port 2 status 003002 POWER OWNER sig=se0 CSC
Nov 18 02:56:05 Leviathan kernel: [  788.439044] hub 6-0:1.0: state 7 ports 2 chg 0000 evt 0004
Nov 18 02:56:05 Leviathan kernel: [  788.439052] uhci_hcd 0000:00:1d.0: port 2 portsc 0093,00
Nov 18 02:56:05 Leviathan kernel: [  788.439058] hub 6-0:1.0: port 2, status 0101, change 0001, 12 Mb/s
Nov 18 02:56:05 Leviathan kernel: [  788.543013] hub 6-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
Nov 18 02:56:06 Leviathan kernel: [  788.645013] usb 6-2: new full speed USB device using uhci_hcd and address 7
Nov 18 02:56:06 Leviathan kernel: [  788.765007] usb 6-2: ep0 maxpacket = 8
Nov 18 02:56:06 Leviathan kernel: [  788.802274] usb 6-2: default language 0x0409
Nov 18 02:56:06 Leviathan kernel: [  788.831276] usb 6-2: udev 7, busnum 6, minor = 646
Nov 18 02:56:06 Leviathan kernel: [  788.831279] usb 6-2: New USB device found, idVendor=0403, idProduct=6001
Nov 18 02:56:06 Leviathan kernel: [  788.831281] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov 18 02:56:06 Leviathan kernel: [  788.831284] usb 6-2: Product: FT232R USB UART
Nov 18 02:56:06 Leviathan kernel: [  788.831286] usb 6-2: Manufacturer: FTDI
Nov 18 02:56:06 Leviathan kernel: [  788.831287] usb 6-2: SerialNumber: A5003vq1
Nov 18 02:56:06 Leviathan kernel: [  788.831363] usb 6-2: usb_probe_device
Nov 18 02:56:06 Leviathan kernel: [  788.831367] usb 6-2: configuration #1 chosen from 1 choice
Nov 18 02:56:06 Leviathan kernel: [  788.834272] usb 6-2: adding 6-2:1.0 (config #1, interface 0)
Nov 18 02:56:06 Leviathan kernel: [  788.839307] drivers/usb/core/inode.c: creating file '007'
Nov 18 02:56:06 Leviathan kernel: [  788.839325] hub 2-0:1.0: state 7 ports 6 chg 0000 evt 0004
Nov 18 02:56:06 Leviathan kernel: [  788.845161] usbserial: Unknown symbol usb_autopm_put_interface
Nov 18 02:56:06 Leviathan kernel: [  788.847218] usbserial: Unknown symbol usb_autopm_get_interface
Nov 18 02:56:06 Leviathan kernel: [  788.848566] ftdi_sio: Unknown symbol usb_serial_port_softint
Nov 18 02:56:06 Leviathan kernel: [  788.848778] ftdi_sio: Unknown symbol usb_serial_handle_sysrq_char
Nov 18 02:56:06 Leviathan kernel: [  788.848926] ftdi_sio: Unknown symbol usb_serial_disconnect
Nov 18 02:56:06 Leviathan kernel: [  788.849424] ftdi_sio: Unknown symbol usb_serial_handle_break
Nov 18 02:56:06 Leviathan kernel: [  788.849718] ftdi_sio: Unknown symbol usb_serial_probe
Nov 18 02:56:06 Leviathan kernel: [  788.849797] ftdi_sio: Unknown symbol usb_serial_register
Nov 18 02:56:06 Leviathan kernel: [  788.849880] ftdi_sio: Unknown symbol usb_serial_deregister

A quanto pare c'è un problema con i moduli usbserial e ftdi_sio.

Le funzioni:
usb_serial_port_softint
usb_serial_disconnect
usb_serial_probe
usb_serial_register
usb_serial_deregister
chiamate da ftdi_sio sono definte in drivers/usb/serial/usb-serial.c e include/linux/usb/serial.h, entrambi presenti nei sorgenti del kernel. Suppongo che queste chiamate dovrebbero essere a carico del modulo usbserial.

Le funzioni:
usb_serial_handle_break
usb_serial_handle_sysrq_char
sempre chiamate da ftdi_sio sono definite in drivers/usb/serial/generic.c e include/linux/usb/serial.h. Stavolta mi verrebbe da pensare che si tratti del driver usbserial_generic che è anche chiamato in causa in Ubuntu (vedi udevadm monitor eseguito sulla live-cd mostrato sopra).

Ed infine le funzioni:
usb_autopm_put_interface
usb_autopm_get_interface
chiamate da usbserial sono definite in drivers/usb/core/driver.c e include/linux/usb.h. E qui credo si tratti del modulo usbcore.

Io ho anche provato a compilare tutti i supporti usb come moduli ma niente da fare. E comunque dovrebbe fare differenza in termini di funzionamento il compilare qualcosa come modulo o built-in?

Ecco, questo è in "sintesi" il mio problema. Sono diversi giorni che cerco su google ma niente da fare, non riesco a venirne fuori. Per concludere aggiungo che il sistema attuale (Gentoo) ha questo problema e la stessa cosa con una live-cd di Gentoo. Mentre con Ubuntu che avevo installato prima e la live-cd di Ubuntu menzionata nel post tutto funziona correttamente. Io ho provato ad osservare le differenze di moduli caricati e rules di udev ma temo la cosa sia troppo complicata.
Sempre cercando su google, sono finito su un forum in cui un utente parlava di un problema che aveva con la gumstix e da quello che scriveva ho visto che anche lui usava Gentoo e la console usb gli funzionava correttamente, quindi ho provato a scrivergli una mail sperando abbia buon cuore di rispondermi.
Ho deciso di mettere un post qui prima di tentare di chiedere su qualche forum in inglese, magari lo stesso appena accennato.

Qualche idea? :-)


Last edited by fdrcmoro on Fri Nov 19, 2010 12:16 am; edited 1 time in total
Back to top
View user's profile Send private message
fdrcmoro
n00b
n00b


Joined: 17 Nov 2010
Posts: 5

PostPosted: Fri Nov 19, 2010 12:15 am    Post subject: Reply with quote

Risolto ricompilando il kernel usando la stessa configurazione ma lanciando Genkernel. Adesso funziona correttamente.
Back to top
View user's profile Send private message
bi-andrea
Apprentice
Apprentice


Joined: 09 Mar 2010
Posts: 167
Location: cesenatico

PostPosted: Thu Aug 16, 2012 8:21 pm    Post subject: Reply with quote

quindi hai risolto ricompilando mirando proprio ad usb serial...giusto?
_________________
Quando arrivi a Linux è un trauma, abituati a Windows, quando arrivi a Gentoo è uno spavento col brivido , però quando lo capisci sei uscito dall'università "GNU/Linux" ;)
Back to top
View user's profile Send private message
fdrcmoro
n00b
n00b


Joined: 17 Nov 2010
Posts: 5

PostPosted: Fri Aug 17, 2012 11:08 am    Post subject: Reply with quote

No, che mi ricordi io, non ho fatto alcuna modifica al file di configurazione.
Genkernel in automatico fa qualche settaggio o inizializzazione particolare che io non facevo quando compilavo manualmente.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum