RaspberryPiの最適イメージをつくろうと思い立ち、仮想環境でやることにした。
以下のサイトを参考にし、結局は完結出来なかったが備忘録残します。
http://blog.unfindable.net/archives/7508
QEMUには「ユーザーモードエミュレーション」という機能があり、これはシステム全てをエミュレートするのではなく、ARMバイナリ(qemu-user-staticのこと?)をユーザーモードで動作させ、プロセスとして起動するというものらしい
$ sudo apt-get install qemu-user-static
フルモードで起動する場合は以下のコマンドで、イメージファイルを指定するのだが、
http://blog.unfindable.net/archives/tag/qemu
qemu-system-arm -kernel qemu/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda /media/mobile/FAT32/Hardware/RaspberryPi/2014-01-07-wheezy-raspbian.img -redir tcp:10022::22 -redir tcp:15901::5901
ユーザーエミュレーションモードで起動する場合は、イメージファイルをマウントしておき(以下のrootfsフォルダ)、
sudo QEMU_CPU=arm1176 chroot rootfs
環境変数 QEMU_CPU にARMを指定することで、プロセスとして起動できる。※途中、かなり省略
x-windowを起動したり、vnc接続などがうまくいかなかった。
1.イメージダウンロード
wget http://downloads.raspberrypi.org/raspbian/images/raspbian-2014-01-09/2014-01-07-wheezy-raspbian.zip
2.ユーザーモード用QEMUインストール
sudo apt-get install qemu-user-static
3.イメージのマウント先作成(1回のみ)
mkdir rootfs
4.イメージのマウント
offsetはイメージの2番目パーティションの開始点(最初のバーティションはboot用?)
sudo mount -o offset=50036736 qemu/2015-02-18-wheezy-minibian.img rootfs
5.以下はイメージ内の ld.so.preload をコメントアウトするもの(イメージにつき1回のみ)
sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/
sudo sed -i 's/^/#/' rootfs/etc/ld.so.preload
6.以下の環境変数でARMとしてQEMUが振る舞う
sudo QEMU_CPU=arm1176 chroot rootfs
以下はイメージのセクタ調査、マウント、起動のターミナルの例
mobile@mobile-ThinkPad-X201s:~/qemu$ fdisk -l 2*.img
ディスク 2015-02-18-wheezy-minibian.img: 511 MB, 511705088 バイト
ヘッド 4, セクタ 16, シリンダ 15616, 合計 999424 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x0004a452
デバイス ブート 始点 終点 ブロック Id システム
2015-02-18-wheezy-minibian.img1 16 97727 48856 b W95 FAT32
2015-02-18-wheezy-minibian.img2 97728 999423 450848 83 Linux
mobile@mobile-ThinkPad-X201s:~/qemu$ cd ..
mobile@mobile-ThinkPad-X201s:~$ sudo mount -o offset=50036736 qemu/2015-02-18-wheezy-minibian.img rootfs
[sudo] password for mobile:
mobile@mobile-ThinkPad-X201s:~$ sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin
mobile@mobile-ThinkPad-X201s:~$ sudo QEMU_CPU=arm1173 chroot rootfs
Unable to find CPU definition
mobile@mobile-ThinkPad-X201s:~$ sudo QEMU_CPU=arm1176 chroot rootfs
root@mobile-ThinkPad-X201s:/# cat /etc/issue
Raspbian GNU/Linux 7 \n \l → 起動OSがRaspbianになった
root@mobile-ThinkPad-X201s:/#
通常のUbuntuでは以下となる
mobile@mobile-ThinkPad-X201s:~$ cat /etc/issue
Ubuntu 14.04.2 LTS \n \l
0 件のコメント:
コメントを投稿