[SOLVED] Arduino UNO, Gentoo Linux AMD64, "Inappropriate ioctl for device"

Hello,
I have just received my Arduino today, and I almost have it all working.
I am not using the Java IDE since I like using Makefiles instead to keep things more organized.
I've build the AVR toolchain using crossdev, and I have a Makefile building the hex file without any errors.
My only problem is when uploading the hex file.

The parameters being passed to avrdude during upload.

/usr/bin/avrdude -q -V -p atmega328p -C /etc/avrdude.conf -c stk500v1 -b 19200 -P /dev/bus/usb/004/001 \
                        -U flash:w:build-cli/helloworld.hex:i
avrdude: ser_open(): can't set attributes for device "/dev/bus/usb/004/001": Inappropriate ioctl for device
make: *** [raw_upload] Error 1

dmesg output when connecting the UNO.

[ 2395.594907] hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0020
[ 2395.594926] ehci_hcd 0000:00:1d.7: GetStatus port 5 status 001803 POWER sig=j CSC CONNECT
[ 2395.594942] hub 1-0:1.0: port 5, status 0501, change 0001, 480 Mb/s
[ 2395.698024] hub 1-0:1.0: debounce: port 5: total 100ms stable 100ms status 0x501
[ 2395.749295] ehci_hcd 0000:00:1d.7: port 5 full speed --> companion
[ 2395.749305] ehci_hcd 0000:00:1d.7: GetStatus port 5 status 003801 POWER OWNER sig=j CONNECT
[ 2395.749316] hub 1-0:1.0: port 5 not reset yet, waiting 50ms
[ 2395.749325] usb usb4: wakeup_rh (auto-start)
[ 2395.800024] ehci_hcd 0000:00:1d.7: GetStatus port 5 status 003002 POWER OWNER sig=se0 CSC
[ 2395.800055] hub 4-0:1.0: state 7 ports 2 chg 0000 evt 0002
[ 2395.800067] uhci_hcd 0000:00:1d.2: port 1 portsc 0093,00
[ 2395.800078] hub 4-0:1.0: port 1, status 0101, change 0001, 12 Mb/s
[ 2395.904030] hub 4-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101
[ 2396.007024] usb 4-1: new full speed USB device using uhci_hcd and address 5
[ 2396.128020] usb 4-1: ep0 maxpacket = 8
[ 2396.152228] usb 4-1: skipped 3 descriptors after interface
[ 2396.158214] usb 4-1: default language 0x0409
[ 2396.190206] usb 4-1: udev 5, busnum 4, minor = 388
[ 2396.190213] usb 4-1: New USB device found, idVendor=2341, idProduct=0001
[ 2396.190219] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 2396.190225] usb 4-1: Product: Arduino Uno
[ 2396.190230] usb 4-1: Manufacturer: Arduino (www.arduino.cc)
[ 2396.190235] usb 4-1: SerialNumber: 74839373933351409071
[ 2396.190398] usb 4-1: usb_probe_device
[ 2396.190408] usb 4-1: configuration #1 chosen from 1 choice
[ 2396.193224] usb 4-1: adding 4-1:1.0 (config #1, interface 0)
[ 2396.193384] usb 4-1: adding 4-1:1.1 (config #1, interface 1)
[ 2396.193564] drivers/usb/core/inode.c: creating file '005'
[ 2396.193624] hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0020

I have a feeling I need to do something with udev, but I'm not sure what.
Has anyone else experienced this same error?

There doesn't seem to be a driver associated with the usb port, and you're trying to have avrdude talk to the raw usb device. As I don't have an uno, I unfortunately can't tell you what the kernel should spit out.

http://arduino.cc/playground/Linux/All

On my Ubuntu system, the Arduino Uno is listed as /dev/ttyACM0, think this should apply for all distros. Have you tried using -P /dev/ttyACM0 ?

1 Like

That was the issue! I just compiled the right driver and it made a /dev/ttyACM0 for me. Everything works now. Thanks!

Can you share how you compiled the right drivers please ?

Help me too. I am facing the same error, when My Board is programmed as an Programmer: ArduinoISP

Tell me how and from where did you install the drivers on ubuntu?

Yeah, I'm getting "inappropriate ioctl for device" (error 25) from platformio using my arduino mega (kubuntu os). This thread seems to have found a solution but it never told us what the solution was...