Linux
以下は、いくつかの Linux ディストリビューション向けのインストールコマンドです。
Ubuntu 20.04 以降 / Debian 10 以降
NOTE
gdb-multiarchは、Arm Cortex-M プログラムをデバッグする際に使用する GDB コマンドです。
$ sudo apt install gdb-multiarch minicom libunwind-dev
Fedora 32 以降
NOTE
gdbは、Arm Cortex-M プログラムをデバッグする際に使用する GDB コマンドです。
$ sudo dnf install gdb minicom libunwind-devel
Arch Linux
NOTE
gdbは、Arm Cortex-M プログラムをデバッグする際に使用する GDB コマンドです。
$ sudo pacman -S arm-none-eabi-gdb minicom libunwind
その他のディストリビューション
NOTE
arm-none-eabi-gdbは、Arm Cortex-M プログラムをデバッグする際に使用する GDB コマンドです。
Arm のビルド済み
ツールチェーン のパッケージがないディストリビューションでは、「Linux
64-bit」ファイルをダウンロードし、その bin ディレクトリをパスに追加してください。やり方の一例を示します。
$ mkdir -p ~/local
$ cd ~/local
$ tar xjf /path/to/downloaded/XXX.tar.bz2
次に、使用しているシェルの適切な初期化ファイル
(たとえば ~/.zshrc や ~/.bashrc)で、好みのエディターを使って PATH に次の内容を追加します。
PATH=$PATH:$HOME/local/XXX/bin
udev ルール
これらのルールにより、micro:bit のような USB デバイスを root 権限、つまり sudo なしで使用できます。
以下の内容で、このファイルを /etc/udev/rules.d に作成してください。
$ cat /etc/udev/rules.d/69-microbit.rules
# micro:bit 用 CMSIS-DAP
ACTION!="add|change", GOTO="microbit_rules_end"
SUBSYSTEM=="usb", ATTR{idVendor}=="0d28", ATTR{idProduct}=="0204", TAG+="uaccess"
LABEL="microbit_rules_end"
次のコマンドで udev ルールを再読み込みします。
$ sudo udevadm control --reload
コンピューターにボードが接続されている場合は、いったん取り外してから再度接続するか、次の コマンドを実行してください。
$ sudo udevadm trigger
権限の確認
USB ケーブルを使って micro:bit をコンピューターに接続します。
micro:bit は /dev/bus/usb に USB デバイス(ファイル)として現れるはずです。どのように
列挙されたかを確認してみましょう。
$ lsusb | grep -i "NXP Arm mbed"
Bus 001 Device 065: ID 0d28:0204 NXP Arm mbed
$ # ^^^ ^^^
私の場合、micro:bit はバス #1 に接続され、デバイス #65 として列挙されました。これは
ファイル /dev/bus/usb/001/065 が micro:bit であることを意味します。ファイルの権限を確認しましょう。
$ ls -l /dev/bus/usb/001/065
crw-rw-r--+ 1 nobody nobody 189, 64 Sep 5 14:27 /dev/bus/usb/001/065
権限は crw-rw-r--+ になっているはずです。末尾の + に注意してください。そのうえで、次のコマンドを実行してアクセス権を確認します。
$ getfacl /dev/bus/usb/001/065
getfacl: Removing leadin '/' from absolute path names
# file: dev/bus/usb/001/065
# owner: nobody
# group: nobody
user::rw-
user:<YOUR-USER-NAME>:rw-
group::rw-
mask::rw-
other::r-
上の一覧に、自分のユーザー名が rw- 権限付きで表示されるはずです。そうでない場合は、
udev rules を確認し、次のコマンドで再読み込みを試してください。
$ sudo udevadm control --reload
$ sudo udevadm trigger
それでは、next section に進んでください。