ubuntu 64bit & problem z arduino IDE

Przy okazji ostatniej „wymiany” systemu operacyjnego (z Minta na Ubuntu) postanowiłem w końcu sprawdzić wersję 64-bitową. Cannonical na stronie pobierania Ubuntu sugeruje wersje 64-bitowe, więc chyba są już na tyle stabilne, że warto spróbować. Niestety okazało się, że Arduino IDE przestało działać na nowej wersji systemu.

Opisana sytuacja nie była weryfikowana na innym komputerze, aczkolwiek po ilości zapytań w sieci mogę wnioskować, że nie jestem odosobnionym przypadkiem.

arduino console

Moje środowisko pracy

– nie instalowałem IDE Arduino poprzez instalator systemu, ponieważ chcę korzystać z tego samego środowiska na różnych komputerach,
– w związku z tym IDE Arduino 1.0.5 i 1.5.5 oraz przy okazji Energia (środowisko IDE oparte o Arduino dla mikrokontrolerów TI.com) mam w dedykowanym katalogu na Dropbox,
– sketchbooki i dodatkowe biblioteki (libraries) mam w tym samym katalogu (podzielone dla poszczególnych wersji IDE), dzięki czemu wszędzie tam, gdzie mam dostęp do Dropbox‚a mam też dostęp do swoich projektów,
– rozwiązanie z wieloma komputerami sprawdza się tylko pod systemami linuksowymi (bezwzględna ścieżka dostępu – głównie używana przez sketchbooki zawsze wygląda tak samo: /home/user/Dropbox/elektronika/),
– Arduino IDE zawsze odpalam z konsoli (poleceniem ./arduino wykonanym w odpowiednim katalogu).

Problemy, które się pojawiły

Boldem zaznaczyłem istotne informacje.

java.lang.UnsatisfiedLinkError: /home/user/Dropbox/elektronika/arduino-1.0.5/lib/librxtxSerial.so: /home/user/Dropbox/elektronika/arduino-1.0.5/lib/librxtxSerial.so: niewłaściwa klasa ELF: ELFCLASS32 (Possible cause: architecture word width mismatch) thrown while loading gnu.io.RXTXCommDriver
Exception in thread „main” java.lang.UnsatisfiedLinkError: /home/user/Dropbox/elektronika/arduino-1.0.5/lib/librxtxSerial.so: /home/user/Dropbox/elektronika/arduino-1.0.5/lib/librxtxSerial.so: niewłaściwa klasa ELF: ELFCLASS32 (Possible cause: architecture word width mismatch)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
(…)
at processing.app.Base.main(Base.java:195)

Rozwiązanie problemu

Wychodzę z założenia, że dobrze zadane pytanie w wyszukiwarce, to połowa sukcesu. I tym razem przekonałem się, że to prawda – już w pierwszym wyniku znalazłem wątek, który był strzałem w dziesiątkę:

http://forum.arduino.cc/index.php/topic,3607.0.html

W kilku miejscach użytkownicy pisali o potrzebie prawidłowego linkowania do biblioteki: librxtxSerial.so, co wiązało się z weryfikacją zainstalowania odpowiedniego pakietu oraz utworzenia dowiązania pomiędzy lokalizacjami plików:

sudo apt-get install librxtx-java
ln -sf /usr/lib/librxtxSerial.so lib/librxtxSerial.so

U mnie pomogło. Jeśli mimo wszystko będziecie mieć problem – piszcie, w grupie zawsze łatwiej rozwiązuje się problemy.

Podobał Ci się wpis? - skomentuj lub zalajkuj. Podziel się ze swoimi znajomymi. Każdy aktywny głos to dodatkowa motywacja do pisania bloga! Dzięki.