Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

qemu で Raspberry Pi のエミュレートを試してみた... けど,Window のキーボードが動作しないなぁ

自作の 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