2017年7月7日金曜日

Ubuntu で Digispark Kickstarter

OS を Windows 10 から Ubuntu 17.04 に変えまして、Arduino IDE を使い始めたのですが Digispark Kickstarter に書き込みをしようとしたところエラーが発生しました。このあたりについてに日本語の情報が少ないようなのでメモ書き程度ですが記事にします。

■ スケッチ書き込み時に libusb-0.1-4 が見つからないと言われる

マイコンボードに書き込む」ボタンを押し「> Please plug in the device ... 」と表示されたところでUSBを差すと「error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory」とエラーが発生します。

最大6012バイトのフラッシュメモリのうち、スケッチが812バイト(13%)を使っています。
グローバル変数は13バイトのRAMを使用しています。
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
/home/kiya/.arduino15/packages/digistump/tools/micronucleus/2.0a4/micronucleus: error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory
どうやらライブラリーが足りないようです。

解決策は下記のページに書かれていました。
https://askubuntu.com/questions/311401/libusb-0-1-so-4-shared-lib-error-in-ubuntu-64-bit-system

[kiya@kiya ~]$ sudo apt-get install libusb-0.1-4

■ スケッチ書き込み時に micronucleus で例外が発生したと言われる

これでうまくゆくかと思ったら今度は「micronucleus: library/micronucleus_lib.c:66: micronucleus_connect: Assertion `res >= 4' failed.」というエラーが発生します…

最大6012バイトのフラッシュメモリのうち、スケッチが812バイト(13%)を使っています。
グローバル変数は13バイトのRAMを使用しています。
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
> Please plug in the device ...
micronucleus: library/micronucleus_lib.c:66: micronucleus_connect: Assertion `res >= 4' failed.
> Press CTRL+C to terminate the program.
Aborted (core dumped)
え〜、ツールの中で例外が発生したの?そんなこと言われたってどうしたいいのかわからないです…

対策は下記のページに書かれていました。どうやらデバイスへのアクセス権が不足しているらしいです。
https://digistump.com/wiki/digispark/tutorials/linuxtroubleshooting

1. 下記の内容の「/etc/udev/rules.d/49-micronucleus.rules」というファイルを作ります。

[kiya@kiya ~]$ sudo vi /etc/udev/rules.d/49-micronucleus.rules
# UDEV Rules for Micronucleus boards including the Digispark.
# This file must be placed at:
#
# /etc/udev/rules.d/49-micronucleus.rules    (preferred location)
#   or
# /lib/udev/rules.d/49-micronucleus.rules    (req'd on some broken systems)
#
# After this file is copied, physically unplug and reconnect the board.
#
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
#
# If you share your linux system with other users, or just don't like the
# idea of write permission for everybody, you can replace MODE:="0666" with
# OWNER:="yourusername" to create the device owned by you, or with
# GROUP:="somegroupname" and mange access using standard unix groups.
2. ルールをリロードします。
[kiya@kiya ~]$ sudo udevadm control --reload-rules

以上でスケッチを書き込めるようになりました。


0 件のコメント: