2015年4月10日 星期五

Raspberry Pi : Kernel image

Ref: https://www.raspberrypi.org/documentation/linux/kernel/building.md

在 PC 上用 cross compile 的方式來做 :

1. 安裝工具

$ git clone https://github.com/raspberrypi/tools

把目錄 : 

tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin 

設定到 PATH 

2. 安裝 source

$ git clone --depth=1 https://github.com/raspberrypi/linux

3. 把 SD card 插入, 用 lsblk 可以看到

sdb
   sdb1
   sdb2

4. 編譯 kernel 

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

Open the following menu :
Device Drivers
Network device support
Wireless LAN

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 

如果 compile 時發現 libstdc++.so.6 有問題的話

sudo apt-get install libc6-i386 lib32z1 lib32stdc++6


5. 建立目錄 mnt/fat32 和 mnt/ext4, 並 mount
    
$ sudo mount /dev/sdb1 mnt/fat32
$ sudo mount /dev/sdb2 mnt/ext4

6. 安裝 kernel


$ sudo cp mnt/fat32/kernel.img mnt/fat32/kernel-backup.img
$ sudo cp arch/arm/boot/Image mnt/fat32/kernel.img

7. 安裝 module

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules
$ sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules_install

8. umount sd card

$ sudo umount mnt/fat32
$ sudo umount mnt/ext4


沒有留言:

張貼留言