前面我們已經(jīng)使用官方給的鏡像搭建好了樹(shù)莓派的開(kāi)發(fā)環(huán)境,可以說(shuō)已經(jīng)可以上手應(yīng)用了,但是如果官方提供的內(nèi)核有些功能不能滿(mǎn)足我們的需要或者需要對(duì)內(nèi)核進(jìn)行部分裁剪,那么就需要對(duì)樹(shù)莓派的內(nèi)核進(jìn)行裁剪,這里我們教一下大家如何更新樹(shù)莓派內(nèi)核。
官方網(wǎng)址:https://github.com/raspberrypi
上面列出了樹(shù)莓派所有的開(kāi)源軟件
我們只需要以上三個(gè)文件即可,下面的工程可以了解一下
網(wǎng)頁(yè)直接下載
到所需要下載的工程,左上角選版本,右方有一個(gè) download ZIP 按鈕可直接下載(筆者下載完成后,在 linux 中解壓提示出錯(cuò),Windows 又非常慢切內(nèi)核建議不要在 Windows 環(huán)境解壓,所以筆者不建議使用這種辦法)。
使用 git 下載
$ mkdir raspeberrypi_src
$ cd raspberrypi_src
$ git clone git://github.com/raspberrypi/firmware.git
$ git clone git://github.com/raspberrypi/linux.git
$ git clone git://github.com/raspberrypi/tools.git
會(huì)得到三個(gè)文件夾:firmware linux tools
在運(yùn)行的樹(shù)莓派中運(yùn)行
$ls /proc/
可看到一個(gè)叫 config.gz 的文件,他是當(dāng)前的樹(shù)莓派配置選項(xiàng)記錄文件,我們將他拷出,放入我們的內(nèi)核源碼目錄樹(shù)下。
$cp /proc/config /home/pi
我們這里使用前面交過(guò)的 samba 拷出并拷入內(nèi)核源碼目錄下,不熟悉的人可參考前面文章。
在 linux 內(nèi)核源碼下執(zhí)行
$zcat config.gz > .config
修改內(nèi)核源碼 makefile ARCH 類(lèi)型和編譯器路徑$vi Makefile +195
,找到以上類(lèi)似代碼,改為如圖所示。
查看、修改配置選項(xiàng)$make menuconfig
,可出現(xiàn)以下界面。
如果不做修改,直接選中 exit 即可(注意使用鍵盤(pán)操作)。
編譯內(nèi)核鏡像$make
在arch/arm/boot
目錄下可以看到一個(gè)叫zImage
的文件,就是我們新的內(nèi)核,但是樹(shù)莓派需要另外一種格式的鏡像,需要進(jìn)行處理一下,執(zhí)行以下命令
$cd tools/mkimage
$./imagetool-uncompressed.py ../../linux/arch/arm/boot/zImage
即可在當(dāng)前文件夾下看到一個(gè)叫kernel.img
的文件,就是我們需要的新內(nèi)核了。
提取 modules 上一步其實(shí)不但編譯出來(lái)了內(nèi)核的源碼,一些模塊文件也編譯出來(lái)了,這里我們提取一下,
$cd raspberrypi_src
$mkdir modules
$cd linux
$ make modules_install INSTALL_MOD_PATH=../modules
即可在 modules 得到我們需要的模塊文件。
將SD卡拔下插在電腦上(可使用讀卡器)
升級(jí)內(nèi)核,將新編好的內(nèi)核拷入 SD 卡,改名為:kernel_new.img
。打開(kāi) boot 目錄下
找到config.txt
文件,加入:kernel=kernel_new.img
這一行。
升級(jí) boot,將firmware/boot/
目錄下文件拷入 SD 卡 boot 目錄:fbootcode.bin fixup.dat fixup_cd.dat start.elf
modules/lib/modules
拷入樹(shù)莓派文件系統(tǒng)/lib
下
更多建議: