Na Ubuntu występują problemy z nowymi płytkami Leonardo ETH – podczas wgrywania skompilowanego szkicu pojawia się komunikat:
avrdude:
ser_open(): can't open device "/dev/ttyACM0": Device or resource busy
avrdude: ser_send(): write error: Bad file descriptor Problem uploading
to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
Spowodowane jest to używanym przez Ubuntu ModemManagerem, służącym do obsługi modemów 3G. Kiedy Modem Manager zauważy nowy port szeregowy, próbuje się z nim skomunikować, myśląc że ma do czynienia z modemem, a przy okazji skutecznie blokuje możliwość zaprogramowania Arduino. Istnieje co prawda lista ignorowanych urządzeń, ale płytki produkowane przez Arduino.org nie zostały do tej pory na nią dodane.
W tej sytuacji należy uruchomić terminal (domyślnie jest to skrót Ctrl+Alt+T), wpisać w jednej linijce:
sudo echo 'ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"' > /etc/udev/rules.d/77-arduino.rules
w przypadku gdyby pojawił się komunikat o braku dostępu trzeba przejść na ścieżkę /etc/udev/rules.d i za pomocą edytora np. vi utworzyć plik 77-arduino.rules i wpisać do niego jedną linijkę:
ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"
a gdy plik się pojawi wpisać komendę:
sudo udevadm trigger
Od tej chwili powinniśmy móc bez problemu zaprogramować nie tylko Arduino Leonardo ETH, ale również inne modele Arduino produkowane przez Arduino.org