自作の Linux ディストリビューション (Plamo Linux の野良パッケージ) の ARM 用パッケージの作成を実機を使ってやってるんだけど,そろそろ qemu なりの環境でビルドした方が便利かなぁと.
ネット検索すると img を書き換えて,qemu 対応のカーネルを使うかたちで versatilepb 設定で立ち上げるってのがたくさん出てくるけど,qemu 自体に raspi2 の設定があるのでそれを少し試してみることにしました.
とりあえず Raspbian でトライ.
Raspbian から btb ファイルとカーネルのファイルを取り出し.
% losetup -P /dev/loop0 2017-11-29-raspbian-stretch-lite.img
% mount /dev/loop0p2 /mnt
% mount /dev/loop0p1 /mnt/boot
% cp /mnt/boot/bcm2709-rpi-2-b.dtb .
% cp /mnt/boot/kernel* .
一応,後始末.
% umount /mnt/boot/
% umount /mnt
% losetup -D /dev/loop0
で,qemu の立ち上げ.
% qemu-system-arm -M raspi2 -append "dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2" -cpu arm1176 -dtb bcm2709-rpi-2-b.dtb -sd 2017-11-29-raspbian-stretch-lite.img -kernel kernel7.img -m 1G -smp 4
ブートは出来て,login プロンプトまではいくけどキーボードが効かないなぁ.
じゃあってことで Plamo Linux の野良パッケージ環境でトライ.
同様に Plamo-nora-0.0_arm_20170925_sd.img から kernel7.img と bcm2709-rpi-2-b.dtb を取り出し.
そんでもって qemu 実行.
% qemu-system-arm -M raspi2 -append "dwc_otg.lpm_enable=0 console=tty1 nofont root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro vga16 panic_output=7" -cpu arm1176 -dtb bcm2709-rpi-2-b.dtb -sd Plamo-nora-0.0_arm_20170925_sd.img -kernel kernel7.img -m 1G -smp 4
うーん,raspbian と同じでブートできるけど,やっぱりキーボード入力が出来ないな.
ブート途中で色々とエラーメッセージが出てるのも気になるんだけど,エラーメッセージは PLL 周りのものみたいなのでキーボードが動作しないとのとは直接関係なさそうなんだけど.
うーむ.
やっぱりもう少し調べないとダメだな.raspi2 モードだとキーボード周りのエミュレーションオプションを何かつけないとダメなのかな? device オプションとかつけてみてもダメだったんだけどー.
一応,Raspbian の場合には
% qemu-system-arm -M raspi2 -append "dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2" -cpu arm1176 -dtb bcm2709-rpi-2-b.dtb -sd 2017-11-29-raspbian-stretch-lite.img -kernel kernel7.img -m 1G -smp 4 -serial stdio
な感じに -serial stdio オプションをつけてあげると,qemu を実行したコンソールからシリアルでログインできるようになるので,使い物にはなるんだけど,やっぱりなんだか気持ちが悪い.
試行錯誤途中だけど,そんな感じ.
カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス) | |
金丸 隆志 | |
講談社 |
Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Element14版, Clear)-Physical Computing Lab | |
TechShare | |
TechShare |