Comment 18 for bug 460857

Revision history for this message
David (david-depowell) wrote :

Thanks, Kendrik. My linux headers were up to date, and the make went without error. The make install had one error, but it was only rmmod saying that the driver wasn't listed in /proc/modules. Otherwise the patch seemed to go in ok. But it didn't fix all of my problems.

If I type "ls /dev/ttyU*" after a fresh reboot and without any USB devices plugged in, it rightly returns "No such file or directory".
If I plug in the Arduino and type that same line, it returns with "/dev/ttyUSB0". All is well at this point, and is no different from pre-patch.

If I then type "echo hello >/dev/ttyUSB0", the little red LED on the Arduino briefly flashes and the command prompt returns. This is also good, and is different from pre-patch. Before the patch, the LED did not flash.

I didn't try "cat /dev/ttyUSB0" after the patch, because I realized that the program that I have loaded in the Arduino doesn't write to the serial port (Doh!). So what I did instead is fire up Eclipse and try to write to it with AVRDude. It threw out a couple of "programmer not responding" messages and hung. I closed Eclipse and now AVRDude is still running. And just like before with cat, I can't kill it from the command prompt (I've never seen a process that couldn't be forced to end in Linux before - I thought that was a Windows-only problem). Unplugging the Arduino doesn't change anything - it still even shows /dev/ttyUSB0 is there when it's unplugged. Dmesg shows a bunch of repeating errors, most of which may as well be written in Greek as far as I'm concerned. Here's a sample:

<code>
[ 1320.980362] INFO: task khubd:40 blocked for more than 120 seconds.
[ 1320.980369] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 1320.980374] khubd D 0000000000000000 0 40 2 0x00000000
[ 1320.980382] ffff88021763dbe0 0000000000000046 ffff8801ffca70a0 0000000000015880
[ 1320.980392] ffff880217633110 0000000000015880 0000000000015880 0000000000015880
[ 1320.980398] 0000000000015880 ffff880217633110 0000000000015880 0000000000015880
[ 1320.980404] Call Trace:
[ 1320.980418] [<ffffffff8139eb95>] usb_kill_urb+0x85/0xc0
[ 1320.980427] [<ffffffff81078b30>] ? autoremove_wake_function+0x0/0x40
[ 1320.980433] [<ffffffff8139ee46>] ? usb_get_urb+0x16/0x20
[ 1320.980441] [<ffffffff8139d843>] usb_hcd_flush_endpoint+0x123/0x130
[ 1320.980447] [<ffffffff8139f79a>] usb_disable_endpoint+0x5a/0xa0
[ 1320.980453] [<ffffffff8139f829>] usb_disable_device+0x49/0x130
[ 1320.980461] [<ffffffff8139983a>] usb_disconnect+0xca/0x140
[ 1320.980466] [<ffffffff81399c6a>] hub_port_connect_change+0x8a/0x960
[ 1320.980471] [<ffffffff8139b9d2>] hub_events+0x3a2/0x590
[ 1320.980478] [<ffffffff81527799>] ? thread_return+0x48/0x37f
[ 1320.980483] [<ffffffff8139bbc0>] ? hub_thread+0x0/0x190
[ 1320.980488] [<ffffffff8139bbfa>] hub_thread+0x3a/0x190
[ 1320.980493] [<ffffffff81078b30>] ? autoremove_wake_function+0x0/0x40
[ 1320.980498] [<ffffffff8139bbc0>] ? hub_thread+0x0/0x190
[ 1320.980503] [<ffffffff81078746>] kthread+0xa6/0xb0
[ 1320.980509] [<ffffffff810130ea>] child_rip+0xa/0x20
[ 1320.980514] [<ffffffff810786a0>] ? kthread+0x0/0xb0
[ 1320.980518] [<ffffffff810130e0>] ? child_rip+0x0/0x20
[ 1320.980560] INFO: task avrdude:2547 blocked for more than 120 seconds.
[ 1320.980563] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 1320.980566] avrdude D 0000000000000000 0 2547 1 0x00000000
[ 1320.980576] ffff8801d1497c08 0000000000000046 ffff8801ffca70a0 0000000000015880
[ 1320.980583] ffff8801da589a60 0000000000015880 0000000000015880 0000000000015880
[ 1320.980588] 0000000000015880 ffff8801da589a60 0000000000015880 0000000000015880
[ 1320.980594] Call Trace:
[ 1320.980599] [<ffffffff8139eb95>] usb_kill_urb+0x85/0xc0
[ 1320.980605] [<ffffffff81078b30>] ? autoremove_wake_function+0x0/0x40
[ 1320.980623] [<ffffffffa0bf04d1>] ftdi_close+0x31/0x70 [ftdi_sio]
[ 1320.980636] [<ffffffffa0be2909>] serial_down+0x69/0x80 [usbserial]
[ 1320.980645] [<ffffffffa0be2c16>] serial_close+0x76/0xc0 [usbserial]
[ 1320.980660] [<ffffffff812f4249>] tty_release_dev+0x159/0x5f0
[ 1320.980666] [<ffffffff81045d09>] ? __wake_up_common+0x59/0x90
[ 1320.980673] [<ffffffff8104a809>] ? __wake_up_sync_key+0x59/0x70
[ 1320.980678] [<ffffffff812f46f9>] tty_release+0x19/0x30
[ 1320.980684] [<ffffffff81120c00>] __fput+0xf0/0x210
[ 1320.980688] [<ffffffff81120d3d>] fput+0x1d/0x30
[ 1320.980694] [<ffffffff8111cdf8>] filp_close+0x58/0x90
[ 1320.980699] [<ffffffff81060607>] put_files_struct+0x77/0xe0
[ 1320.980704] [<ffffffff810606bf>] exit_files+0x4f/0x60
[ 1320.980708] [<ffffffff81061a0b>] do_exit+0x14b/0x360
[ 1320.980713] [<ffffffff81061c69>] do_group_exit+0x49/0xc0
[ 1320.980717] [<ffffffff81061cf2>] sys_exit_group+0x12/0x20
[ 1320.980727] [<ffffffff81012002>] system_call_fastpath+0x16/0x1b
[ 1714.010686] CE: hpet increasing min_delta_ns to 15000 nsec
</code>

With the intent of full disclosure, I've never actually programmed the Arduino under Linux before, but I had it all working fine with Eclipse back during my XP days. I was forced to "upgrade" to Vista and, after the umpteenth time it told me it couldn't find a suitable driver for something, decided it was time to jump to Ubuntu. I've had nothing but trouble trying to get stuff to work since. Especially USB stuff. Maybe this new machine has a USB hardware problem, I don't know. Some USB stuff does actually work though.