自作キーボードのファームウェア焼き込み(QMK)をサクっとRaspberry Pi2でやっていく
備忘録
参考にしたページ
https://iot.keicode.com/raspberry-pi/faq-username.php
https://babe-mt.hatenablog.com/entry/2018/02/27/094353
https://r7cancer.hatenablog.com/entry/2019/10/18/153458
ベースは自分で前に書いたこれ
http://bobbyquine.hatenablog.com/entry/2018/09/18/143051
少しキーマップを変えようと思ったのだけれど,現在QMKファームウェアを焼き込める環境を持っていなかった.メイン環境に入れるのは何か嫌だったしArchなので必要パッケージを探し直すのも面倒くさかったため,部屋に転がってたRaspberry Piで焼き込んで見ることに.
ここではRaspberry Pi用のSDカードにOSを焼き込むところからやっていく.
ここからメインPCはArch,Raspberry PiはRasPiのプロンプト表示を行う.今回,Raspberry Piにはディスプレイ等はつながず,sshでの操作を考えている.
https://www.raspberrypi.org/downloads/raspbian/
ここからRaspbian Buster Liteのzipをダウンロードし,それを解凍する.ファイル名は時期によって日付が違うので注意
[Arch ] $ unzip 2020-02-13-raspbian-buster-lite.zip
そしてその後SDカードをArch に差し込み確認.
[Arch ] $ ls /dev/
ここでSDカードは
/dev/mmcblk0
であるとして先ほどDLし,解凍して得られたimgファイルをSDカードに焼き込んでいく.
[Arch ] $ sudo dd if=./raspbian-buster-lite.img of=/dev/mmcblk0
焼き込みが終わったら,今回はssh接続で作業を行っていくため,初回起動時からsshdを有効にしなければならない.
[Arch ] $ sudo mount /dev/mmcblk0p1 /mnt
[Arch ] $ sudo touch /mnt/ssh
[Arch ] $ sudo umount /mnt
終わったらSDカードをRaspberry Piにさして,LANケーブルを差し,電源を入れて起動する.
基本DHCP接続になっていると思うのでarp-scan でRasPiに割り当てられたIPアドレスを探す.
ここでArchのRasPiと接続しているインターフェースをenp1s0として,
[Arch ] $ sudo arp-scan -I enp1s0 -l
192.168.1.15 ab:cd:ef:gh:ij:kl Raspberry Pi Foundation
と言うように分かる.
初期IDとパスワードはpi/raspberryであるから,
[Arch ] $ ssh pi@192.168.1.15
passward:raspberry
としてログイン.そうしたら
[RasPi ] $ sudo apt update && sudo apt upgrade
[RasPi ] $ sudo apt install git gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi arvdude
[RasPi ] $ git clone https://github.com/qmk/qmk_firmware.git
今回なぜかこれでmakeを行うと怒られた.どうにも~/qmk_firmware/lib/lufa/の中身が空っぽになってしまっている.しょうがないので
https://github.com/qmk/qmk_firmware
ここのなかからlufaディレクトリの中身だけzipでdlしてRasPiの方の空だったところにぶち込んだ.
ここから先は私の使用するergo42について書いていく.
そしたら~/qmk_firmware/keyboards/ergo42/keymaps/default/keymap.cをいじって好きな配列にしたらergo42を接続し
[RasPi ] $ cd ~/qmk_firmware/
[RasPi] $ make ergo42/rev1:default:avrdude
途中
Detecting USB port, reset your controller now..............
と出たらergo42のリセットボタンを押す.ちょっと待てば焼き込みは終わる.
ergo42は左右分離なので左右両方ともについて同様の作業を行う.