Arduino Uno cannot upload on Arch Linux

The arduino software says that my serial port /dev/ttyACM0 cannot be found, and I'm part of the uucp group on my Arch profile. When I do a ls -ld /dev/ttyACM0 I get:
crw-rw---- 1 root uucp 166, 0 Jan 10 02:05 /dev/ttyACM0

I get strange errors in dmesg for the device when I plug it in, and the Arduino works fine under Windows 7. I don't know where to start in getting this to work, because I don't know Linux that well :frowning:

I've checked to make sure that my hardware is a revision that doesn't need the firmware update...

Here is the output of dmesg:

[ 4130.189869] usb 3-1: new full speed USB device number 7 using xhci_hcd
[ 4130.231479] xhci_hcd 0000:00:10.0: WARN: short transfer on control ep
[ 4130.238280] xhci_hcd 0000:00:10.0: WARN: short transfer on control ep
[ 4130.248477] xhci_hcd 0000:00:10.0: WARN: short transfer on control ep
[ 4130.257480] xhci_hcd 0000:00:10.0: WARN: short transfer on control ep
[ 4130.260070] usb 3-1: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[ 4130.262676] cdc_acm 3-1:1.0: ttyACM0: USB ACM device
[ 4130.323387] MlmeHardTransmitMgmtRing:: QoS NULL and PHY = 0. MCS = 0.
[ 4130.323396] MlmeHardTransmitMgmtRing:: Using Low Rate to send QOS NULL!!
[ 4140.326528] MlmeHardTransmitMgmtRing:: QoS NULL and PHY = 0. MCS = 0.
[ 4140.326537] MlmeHardTransmitMgmtRing:: Using Low Rate to send QOS NULL!!

Here is the output of lsusb:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 5986:02ac Acer, Inc
Bus 003 Device 007: ID 2341:0001
Bus 008 Device 002: ID 138a:0018 Validity Sensors, Inc.
Bus 007 Device 003: ID 045e:0745 Microsoft Corp. Nano Transceiver v1.0 for Bluetooth
Bus 005 Device 004: ID 1004:618f LG Electronics, Inc. Ally/Optimus One

I would have just attached these, but it wouldn't let me post it that way.

I'm not an Arch Linux user (Ubuntu here), but since nobody has answered...

Have you checked the rest of the serial ports?

cd /dev
ls tty* -l

See what groups those have assigned. Mine (ttySxx) are all dialout group. Many Linux users here have problems if they do not add the dialout group to your user. You might try adding that.

Use this to check what groups your user belongs to.

groups

If you feel you want to add the dialout group to your user

sudo usermod -aG dialout yourusername

You will need to logout and login for the group change to take effect.

If that doesn't do it, maybe someone else will see the problem.

Thanks for the response dude; tty* in /dev is in group tty on my system except for the few that are group uucp. The group dialout isn't even listed in /etc/group

I'm an arch linux user here myself.
To get my board (uno non-smd) working with linux I had to update the arduino firmware http://arduino.cc/en/Hacking/DFUProgramming8U2 there is a known problem with linux and the old firmware.
I suggest you check there first and see if your board is one of the affected.

I said in my post that I had made sure that my hardware did not need the update; the revision number indicated by the unit is the same that the arduino.cc says has been released with the fix already applied.

Oh, my bad I didn't see that there the first time I read it.

Are you a part of the tty group??

@mrichaelblack: For future reference, what group does your Arduino belong to? Is it tty or uucp?
I presume you can access yours.

mrichaelblack:
Oh, my bad I didn't see that there the first time I read it.

Are you a part of the tty group??

Yeah I tried that to no avail :frowning:

Yes mine works fine. It is part of the UUCP group too.
dmesg on connect:
[ 232.556919] usb 1-1.5: new full speed USB device number 5 using ehci_hcd
[ 232.643491] cdc_acm 1-1.5:1.0: ttyACM0: USB ACM device
So mine uses the ehci_hcd where yours tries to use the xhci_hcd for some reason.
my lsusb:
Bus 001 Device 006: ID 2341:0010
is the same as yours, it looks like it is trying to use a different module for the usb, probably due to you having a different chipset. There are several people that are having this problem also (google: arduino xhci_hcd).
It seems that the module shites itself after about 5-7 seconds for most people, which looks to be true in your case according to the timestamps from dmesg.

One person said this helped, adding rwx permissions to the lock directory (note on arch it is at /run/lock not /var/lock) Arduino Playground - All

Upon further reading it seems to be an issue with all usb 3.0 devices and the xhci_hcd module. There is a patch in the works aparently and should come around sooner than later.

Until then what is the output of "lspci | grep USB" on your system

lspci | grep USB:

00:10.0 USB controller: Advanced Micro Devices [AMD] Hudson USB XHCI Controller (rev 03)
00:10.1 USB controller: Advanced Micro Devices [AMD] Hudson USB XHCI Controller (rev 03)
00:12.0 USB controller: Advanced Micro Devices [AMD] Hudson USB OHCI Controller (rev 11)
00:12.2 USB controller: Advanced Micro Devices [AMD] Hudson USB EHCI Controller (rev 11)
00:13.0 USB controller: Advanced Micro Devices [AMD] Hudson USB OHCI Controller (rev 11)
00:13.2 USB controller: Advanced Micro Devices [AMD] Hudson USB EHCI Controller (rev 11)

dmesg seems to have different things to say about the piece each time I plug it in too lol.

You might want to try blacklisting the xhci_hcd module.
There are instructions here Kernel module - ArchWiki
use the modprobe.conf method, you will have to reboot after you blacklist it.

When I blacklist the xhci_hcd module it just makes it so the arduino isn't even recognized. No entry from the output of lsusb, or anything in dmesg.