如何為樹莓派編譯官方版本Linux內(nèi)核

這篇文章將為大家詳細(xì)講解有關(guān)如何為樹莓派編譯官方版本Linux內(nèi)核,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

創(chuàng)新互聯(lián)成立與2013年,先為南安等服務(wù)建站,南安等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為南安企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

為樹莓派編譯Linux內(nèi)核的文章在網(wǎng)上面有很多,但是大部分文章中記錄的是直接從GitHub上面拉取官方的repository,然后用官方的一整套工具鏈編譯生成Linux內(nèi)核,沒有人嘗試過直接從Linux Kernel官網(wǎng)下載源碼然后編譯生成Linux內(nèi)核的。自己花了點(diǎn)時(shí)間編譯了kernel官網(wǎng)上的Linux內(nèi)核源碼,并且也成功了,特此來記錄一下研究的過程。

下面所有的操作全部在/home/test/RPI/目錄下,所用的樹莓派硬件版本為3B。

首先,從這里下載交叉編譯工具鏈,然后解壓:

wget -c http://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabihf/gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf.tar.xz
xz -d gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf.tar.xz
tar xvf gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf.tar

然后配置交叉編譯環(huán)境:

sudo apt-get install libncurses-dev build-essential
export PATH=$PATH:/home/test/RPI/gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf/bin/

其中,ncurses是終端下的界面庫,是編譯menuconfig階段的依賴項(xiàng);build-essential主要用來提供編譯時(shí)的make命令。

然后,下載內(nèi)核源碼并解壓:

wget -c https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.104.tar.xz
xz -d linux-4.19.104.tar.xz
tar xvf linux-4.19.104.tar

然后進(jìn)入源碼目錄開始配置內(nèi)核:

cd linux-4.19.104/
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2835_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

這里主要使用了內(nèi)核源碼中自帶的bcm2835_defconfig配置,這個(gè)是編譯官方內(nèi)核源碼的關(guān)鍵。

在編譯menuconfig階段,會彈出內(nèi)核配置窗口,在這里可以對內(nèi)核進(jìn)行相關(guān)的配置:

如何為樹莓派編譯官方版本Linux內(nèi)核

這里為了演示,直接采用默認(rèn)配置,選擇"Exit"后按回車保存并退出。

接下來就可以開始編譯內(nèi)核了:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 zImage modules dtbs

為了加快內(nèi)核編譯的速度,這里加上了-j參數(shù),具體編譯時(shí)間取決于電腦配置。
待內(nèi)核編譯完成之后,就可以對zImage文件進(jìn)行處理,最終生成樹莓派可直接引導(dǎo)的文件:

cd arch/arm/boot/
wget -c https://raw.githubusercontent.com/raspberrypi/linux/rpi-4.19.y/scripts/mkknlimg
chmod +x mkknlimg
./mkknlimg zImage kernel.img

開始執(zhí)行安裝過程:

cd ../../../
mkdir install
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules_install INSTALL_MOD_PATH=/home/test/RPI/linux-4.19.104/install/

這一步主要用來創(chuàng)建lib目錄,方便后面直接將里面的modules目錄拷貝到內(nèi)存卡系統(tǒng)目錄。

拔下樹莓派上的內(nèi)存卡,插上電腦,開始復(fù)制文件:

mv /media/test/boot/kernel7.img /media/test/boot/kernel7.img.1
cp /home/test/RPI/linux-4.19.104/arch/arm/boot/kernel.img /media/test/boot/kernel7.img
cp /home/test/RPI/linux-4.19.104/arch/arm/boot/dts/*.dtb /media/test/boot/
sudo cp -r /home/test/RPI/linux-4.19.104/install/lib/ /media/test/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/

復(fù)制完成后,拔下內(nèi)存卡,再插到樹莓派上面,然后開機(jī)啟動(dòng),ssh連上樹莓派,使用如下命令查看內(nèi)核版本信息:

uname -a

這是之前系統(tǒng)的內(nèi)核版本信息:

如何為樹莓派編譯官方版本Linux內(nèi)核

這是使用新的內(nèi)核后的版本信息:

如何為樹莓派編譯官方版本Linux內(nèi)核

可以明顯看到,內(nèi)核被替換成了新編譯的內(nèi)核,內(nèi)核替換成功。

經(jīng)實(shí)際測試,樹莓派在替換新內(nèi)核后也能夠正常的啟動(dòng),至于具體哪些板載功能收到了影響,具體也沒有測試過。另外,這次的測試僅在3B上面進(jìn)行,對于本方法在其他硬件版本上面是否可行,可能還需要進(jìn)一步的測試。

關(guān)于如何為樹莓派編譯官方版本Linux內(nèi)核就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

分享文章:如何為樹莓派編譯官方版本Linux內(nèi)核
轉(zhuǎn)載來于:http://bm7419.com/article30/jjscpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站維護(hù)、建站公司、關(guān)鍵詞優(yōu)化、搜索引擎優(yōu)化、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名