2015年5月24日日曜日

vimtutor

vimtutor で viの使い方を勉強した。
lesson2.7 くらいまで。全角と半角の切り替えに手間取ります。

2015年5月17日日曜日

QEMUでRaspberryPi

今度はシステムエミュレーションをやってみたが、やっぱりpulseaudioのエラーで止まってしまう。

qemu-system-arm -kernel qemu/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda /media/mobile/FAT32/Hardware/RaspberryPi/OSMC_TGT_rbp1_20150331.img
pulseaudio: set_sink_input_volume() failed
pulseaudio: Reason: Invalid argument
pulseaudio: set_sink_input_mute() failed
pulseaudio: Reason: Invalid argument
Uncompressing Linux... done, booting the kernel.
 こちらのサイトなど参考にさせてもらうも、理解不能
http://kernhack.hatenablog.com/entry/2013/07/02/222432

2015年5月16日土曜日

RaspberryPiをQEMUで

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