PR

【Linux】UbuntuでArduino IDEで書き込もうとしてもエラーが出る

次のようなエラーが、書き込んだときに出る。

“””
最大262144バイトのフラッシュメモリのうち、スケッチが39092バイト(14%)を使っています。 最大32768バイトのRAMのうち、グローバル変数が3952バイト(12%)を使っていて、ローカル変数で28816バイト使うことができます。 “/home/rinta/.arduino15/packages/arduino/tools/dfu-util/0.11.0-arduino5/dfu-util” –device 0x2341:0x0069,:0x0369 -D “/home/rinta/.cache/arduino/sketches/15101D5580BA5AA3AD16F3F883402733/sketchnov22a.ino.bin” -a0 -Q dfu-util: Cannot open DFU device 2341:0069 found on devnum 4 (LIBUSBERROR_ACCESS) dfu-util: No DFU capable USB device available dfu-util 0.11-arduino4

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Failed uploading: uploading error: exit status 74
“””

スポンサーリンク
スポンサーリンク
スポンサーリンク

解決方法

1. USBアクセス権限の問題(Linux)

  • LIBUSB_ERROR_ACCESS は、現在のユーザーにUSBデバイスへのアクセス権限がないことを意味します。
  • 対処法
sudo chmod a+rw /dev/bus/usb/XXX/YYY
  • dfu-util を使うには、sudo を使うか、udev ルールを設定する必要があります。
  • 一時的に試すには:※ XXX と YYY は lsusb コマンドで確認できます。

2. udevルールの設定

  • もっと機械的にしたくて、永続的に解決するには、まず「lsusb」を実行して下さい:
rinta@rinta-HP-LapTop:~$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 0408:5483 Quanta Computer, Inc. HP HD Camera
Bus 003 Device 005: ID 2341:0369 Arduino SA Santiago DFU
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 06cb:00f0 Synaptics, Inc. 
Bus 001 Device 003: ID 0bda:c85c Realtek Semiconductor Corp. Bluetooth Radio
Bus 001 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

その時、Arduino〜があるはずです。そのときにほしいのが「2341:0369」がある部分です。
※この数字は環境によって変わると思います
次のコードでファイルを作成

sudo nano /etc/udev/rules.d/99-arduino-dfu.rules

そして以下の内容を書く

SUBSYSTEM=="usb", ATTR{idVendor}=="左側", ATTR{idProduct}=="右側", MODE="0666"

##例
SUBSYSTEM=="usb", ATTR{idVendor}=="2341", ATTR{idProduct}=="0369", MODE="0666

これでリスタート:

sudo udevadm control --reload-rules
sudo udevadm trigger

3. DFUモードに入っていない

  • 一部のArduino(特にLeonardoやDueなど)は、DFUモードに手動で入る必要があります。
  • 対処法:
    • リセットボタンを2回押す(または押しながらUSB接続)してDFUモードに入る。

4. ボードの選択ミス

  • Arduino IDEで正しいボードとポートが選択されているか確認してください。

コメント

タイトルとURLをコピーしました