Bugzilla – Bug 113636
ttyACM device not created on connecting phone
Last modified: 2005-12-09 01:46:42 UTC
I have a Motorola e680 phone which has a modem mode that works over USB. It uses a Belcarra USB LAN driver under kernel 2.4 with which one can connect to the phone. Recently, a driver/fix for usblan was merged with the mainline kernel. http://kernel.org/git/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=blobdiff;h=1748159e462e7b86c5f1827abc96263d95b854de;hp=0eefc14449aa01749246eddf4482e52b0f898028 Hence, it is now possible to use this phone in a 'plug and play' fashion with the new kernel. E.g.: http://pashkovsky.com/phpbb/viewtopic.php?t=20 According to that reporter, the phone works out of the box on Fedora Core 4. I have tried the same on SUSE beta3 but no drivers get loaded for the phone. On connecting the phone, output from /var/log/messages: kernel: usb 2-1: new full speed USB device using uhci_hcd and address 2 Output of lsusb: calvin@dungeon:~> lsusb Duplicate product spec at line 2453 product 0846:4240 WG111 WiFi Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 002: ID 22b8:3802 Motorola PCS C330/A780 GSM Phone Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 But the device isn't associated with any driver and no /dev/ttyACM0 device is created. I think it should either use cdc-acm or usbnet device.. not sure though. I am trying to get access to a Fedora Core 4 system and see how things work there. Will update this report then.
Okay, experimenting a bit more, I was able to telnet to my phone :-) This is how it worked: 1) Put the phone into modem mode and connect it to the usb port. 2) This causes the event (in /var/log/messages) kernel: usb 2-2: new full speed USB device using uhci_hcd and address 2 3) Then 'modprobe cdc_acm' This creates /dev/ttyACM0 kernel: cdc_acm 2-2:1.0: ttyACM0: USB ACM device kernel: usbcore: registered new driver cdc_acm kernel: drivers/usb/class/cdc-acm.c: v0.23:USB Abstract Control Model driver for USB modems and ISDN adapters 4) Now I set the phone in usblan mode. This is done by "echo 'at+mode=99' > /dev/ttyACM0" This mode is specific to this phone, afaik. Why the phone goes into usblan mode: kernel: usb 2-2: USB disconnect, address 2 kernel: usb 2-2: new full speed USB device using uhci_hcd and address 3 5) Then I load the usbnet module: 'modprobe usbnet' kernel: usb0: register usbnet at usb-0000:00:1d.1-2, pseudo-MDLM (BLAN) device, ee:b7:58:5c:97:50 kernel: usbcore: registered new driver usbnet 6) As soon as usb0 device was created, yast came up and offered to configure the interface. I did and now I can telnet to the phone. > ifconfig usb0 usb0 Link encap:Ethernet HWaddr EE:B7:58:5C:97:50 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::ecb7:58ff:fe5c:9750/64 Scope:Link I don't know how much of this could or should be automated.. at least the autoloading of 'cdc_acm'? Thanks.
What does /proc/bus/usb/devices show when your phone is first plugged in?
Output of /proc/bus/usb/devices -------------------------------- T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.13-rc6-git13-4-default ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=0000:00:1d.7 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.13-rc6-git13-4-default uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:1d.2 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.13-rc6-git13-4-default uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:1d.1 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=02(comm.) Sub=02 Prot=00 MxPS=16 #Cfgs= 1 P: Vendor=22b8 ProdID=3802 Rev= 0.00 S: Manufacturer=Motorola S: Product=Motorola USB Modem C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=(none) E: Ad=83(I) Atr=03(Int.) MxPS= 16 Ivl=10ms I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none) E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.13-rc6-git13-4-default uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:1d.0 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
Yes, the cdc-acm driver should have been loaded automatically when the device was plugged in. Please test the final version of 10.0 and reopen if this still happens there.
Closed.
Closed why? This is a kernel bug...
Sorry, I couldn't update with a test on 10.0 final... haven't been running 10.0 :-) Will try to install 10.0 this weekend and update this report.
FWIW, this is what happens on 10.0 Final. It is identical to my last report from 10.0 Beta3 1. On connecting phone, event (from /var/log/messages): kernel: usb 2-1: new full speed USB device using uhci_hcd and address 4 2. Output of /proc/bus/usb/devices: --------------------------------------- T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.13-15-default ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=0000:00:1d.7 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.13-15-default uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:1d.2 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.13-15-default uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:1d.1 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 4 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=02(comm.) Sub=02 Prot=00 MxPS=16 #Cfgs= 1 P: Vendor=22b8 ProdID=3802 Rev= 0.00 S: Manufacturer=Motorola S: Product=Motorola USB Modem C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=(none) E: Ad=83(I) Atr=03(Int.) MxPS= 16 Ivl=10ms I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none) E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.13-15-default uhci_hcd S: Product=UHCI Host Controller S: SerialNumber=0000:00:1d.0 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms ----------------------------------------------------- 3. Now 'modprobe cdc_acm' : kernel: cdc_acm 2-1:1.0: ttyACM0: USB ACM device kernel: usbcore: registered new driver cdc_acm kernel: drivers/usb/class/cdc-acm.c: v0.23:USB Abstract Control Model driver for USB modems and ISDN adapters 4. # echo 'at+mode=99' > /dev/ttyACM0 kernel: usb 2-1: USB disconnect, address 4 kernel: usb 2-1: new full speed USB device using uhci_hcd and address 5 5. # modprobe usbnet kernel: usb0: register usbnet at usb-0000:00:1d.1-1, pseudo-MDLM (BLAN) device, ce:4d:96:cd:b8:c8 kernel: usbcore: registered new driver usbnet ifup: No configuration found for usb0 6. Yast hardware detection comes up offering to configure the network interface.
module should be loaded properly in the 10.1 kernel (or the updated 10 kernel), this was a kernel bug that is now fixed.
fixed