2014年6月29日日曜日

Raspberry Piカーネルクロスコンパイル環境を整える

http://www.raspberrypi.org/documentation/linux/kernel/building.md
に従って、カーネルクロスコンパイル環境を準備。

Ubuntuがいいみたいなので、VMware上に構築。32bit版の方が都合が良さそうなので、
https://www.ubuntulinux.jp/download/ja-remix
から、ubuntu-ja-14.04-desktop-i386.isoを入手。

日本語キーボードが使えるよう、GUIの右上キーボード型のアイコンから設定。
カーネルソースとクロスコンパイラをgitからとってきてmake。

pi@ubuntu:~$ sudo apt-get install git
pi@ubuntu:~$ git clone https://github.com/raspberrypi/tools
pi@ubuntu:~$ git clone --depth=1 https://github.com/raspberrypi/linux
pi@ubuntu:~$ cd linux
pi@ubuntu:~/linux$ make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- bcmrpi_defconfig
pi@ubuntu:~/linux$ make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-

インストールは、Raspberry PiのSDカードをVMwareに直接接続して書き込み。

pi@ubuntu:~/linux$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdd      8:48   1  14.9G  0 disk 
├─sdd1   8:49   1   1.4G  0 part 
├─sdd2   8:50   1     1K  0 part 
├─sdd3   8:51   1    32M  0 part /media/pi/SETTINGS
├─sdd5   8:53   1    60M  0 part /media/pi/BOOT
└─sdd6   8:54   1  13.3G  0 part /media/pi/root

SDカードはこんな感じでマウントされているので、/media/pi/rootに各種ファイルをインストールし、/media/pi/BOOTにブートイメージをコピーする。

pi@ubuntu:~/linux$ make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=/media/pi/root modules
pi@ubuntu:~/linux$ sudo make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=/media/pi/root modules_install
pi@ubuntu:~/linux$ sudo cp /media/pi/BOOT/kernel.img /media/pi/BOOT/kernel-backup.img 
pi@ubuntu:~/linux$ sudo cp arch/arm/boot/Image /media/pi/BOOT/kernel.img

SDカードをRaspberry Piに戻せば完了。
 

0 件のコメント:

コメントを投稿