Raspberry pi 【樹莓派】重編Kernel,客制化自己的核心

1. 安裝git套件
sudo apt-get install git-core


2.接著在家目錄建立rpi目錄並使用git下載toolchain與kernel source
cd ~
mkdir rpi
cd rpi
git clone https://github.com/raspberrypi/tools
git clone --depth=1 https://github.com/raspberrypi/linux


3.為了方便後續操作,將tools套件所在目錄加到$PATH變數
vi ~/.bashrc


在檔案尾端加入敘述
PATH=$PATH:/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin


作業系統平台是64位元的話,需換成下面這敘述
PATH=$PATH:/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin


----------------------------------------------------------------------
Ubuntu 32 位元版
export PATH=$PATH:~/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian
Ubuntu 64 位元版
export PATH=$PATH:~/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64
----------------------------------------------------------------------


修改完成後重新關聯~/.bashrc讓設定生效
source ~/.bashrc


-------------------------------------------------------------
sudo apt-get install gcc-arm-linux-gnueabihf
-------------------------------------------------------------


進入kernel source目錄,設定預設值,進行編譯!
cd ~/rpi/linux
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcmrpi_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j2


多核心CPU可以在make指令中使用-j <n>參數讓編譯動作分散在各核心中加快整體速度,其中<n>是核心數量,過一段時間完成後若沒出現錯誤就已經完成核心編譯了。


SD卡插入電腦,把剛編譯好的模組檔案與核心檔案取代原先檔案後即完成所有步驟
mkdir /mnt/fat32
mkdir /mnt/ext4
sudo mount /dev/sdb1 /mnt/fat32
sudo mount /dev/sdb2 /mnt/ext4
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
sudo cp /mnt/fat32/kernel.img /mnt/fat32/kernel-backup.img
sudo cp arch/arm/boot/Image /mnt/fat32/kernel.img
sudo umount /mnt/fat32
sudo umount /mnt/ext4


將SD卡插入樹莓派,開機登入後查看歡迎訊息顯示的核心資訊,可以驗證一下核心產生的時間是不是正確的!

參考資料

http://eeliod.blogspot.tw/2015/05/kernel-building.html
   

留言

這個網誌中的熱門文章

python serial 模組使用方法 #1

USB HID 教學 #1(轉載)

USB HID 教學 #2 (轉載)