第9章 嵌入式Linux RK3399開發(fā)環(huán)境構(gòu)建_第1頁
第9章 嵌入式Linux RK3399開發(fā)環(huán)境構(gòu)建_第2頁
第9章 嵌入式Linux RK3399開發(fā)環(huán)境構(gòu)建_第3頁
第9章 嵌入式Linux RK3399開發(fā)環(huán)境構(gòu)建_第4頁
第9章 嵌入式Linux RK3399開發(fā)環(huán)境構(gòu)建_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《嵌入式系統(tǒng)設(shè)計(jì)原理》嵌入式Linux系統(tǒng)軟件部署實(shí)驗(yàn)主講人:賴樹明東莞理工學(xué)院01嵌入式Linux硬件平臺(tái)搭建02課程作業(yè)01嵌入式Linux硬件平臺(tái)搭建U-Boot移植RootFS根文件系統(tǒng)ARM編譯器安裝linux內(nèi)核移植RK3399固件燒錄Linux系統(tǒng)硬件平臺(tái)搭建ARM編譯器安裝01在線快速安裝:終端輸入命令:sudoaptinstallgcc-aarch64-linux-gnu

安裝,可以省后面配置環(huán)境變量的步驟,但是編譯器的版本不一定有你需要的,因此,后面學(xué)習(xí)自己安裝,學(xué)習(xí)配置環(huán)境變量。Linux歷史在線安裝Arm編譯器編譯器下載

地址:/components/toolchain/binaries/在該網(wǎng)站上可以下載到當(dāng)前各種版本的ARM編譯器,本書選擇7.3-2018.05

版本,點(diǎn)擊進(jìn)入內(nèi)部下載頁面下載ARM編譯器Linux系統(tǒng)硬件平臺(tái)搭建ARM編譯器安裝01Linux歷史下載ARM編譯器本書選擇aarch64-linux-gnu,點(diǎn)擊進(jìn)入內(nèi)部下載頁面點(diǎn)擊后在彈出的頁面中點(diǎn)擊

gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz

即可下載到編譯工具包。Linux系統(tǒng)硬件平臺(tái)搭建ARM編譯器安裝01Armlinux編譯器:6.軟件工具/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xzLinux歷史ARMLinux編譯器安裝1.復(fù)制到Linux系統(tǒng)解壓$sudotar-xfgcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz-C/usr/2.把編譯器所在目錄添加到添加系統(tǒng)環(huán)境變量中修改~/.bashrc文件,

在文件最后添加以下代碼:導(dǎo)出編譯器所在目錄,exportPATH=/usr/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin:$PATH3.讓環(huán)境變量生效1)方法一:重啟或注銷系統(tǒng)2)方法二:關(guān)當(dāng)前終端,重新開一個(gè)終端3)方法三:當(dāng)前終端輸入source~/.bashrc命令。4.查看編譯器版本信息$aarch64-linux-gnu-gcc-vLinux系統(tǒng)硬件平臺(tái)搭建U-Boot、linux內(nèi)核移植01Bootloader+linuxkernel+rootfsLinux系統(tǒng)組成bootloader:?jiǎn)?dòng)引導(dǎo)程序,相當(dāng)于電腦主板BIOS。很多種,其中最常用一種U-boot。linuxkernel:操作系統(tǒng)內(nèi)核,可以和Windows操作系統(tǒng)內(nèi)核類比,linux系統(tǒng)核心功能rootfs:根文件系統(tǒng),可以和Windows操作系統(tǒng)內(nèi)核類比,Windows安裝完成后C盤的系統(tǒng)文件,程序文件,程序運(yùn)行的庫文件。它的作用存放系統(tǒng)運(yùn)行需要各種命令以及命令運(yùn)行需要各庫文件,以及系統(tǒng)軟件配置信息,軟件安裝信息。基本的嵌入式linux硬件平臺(tái):需要制作bootloader+linuxkernel+rootfs,并且下載到開發(fā)板上,并且讓它們可以相互聯(lián)系.常見種類Linux系統(tǒng)硬件平臺(tái)搭建U-Boot移植01BootLoader描述x86ARMPowerPCLILOLinux磁盤引導(dǎo)程序是否否GRUBGNU的LILO替代程序是否否Loadlin從DOS引導(dǎo)Linux是否否ROLO從ROM引導(dǎo)Linux而不需要BIOS是否否Etherboot通過以太網(wǎng)卡啟動(dòng)Linux系統(tǒng)的固件是否否LinuxBIOS完全替代BUIS的Linux引導(dǎo)程序是否否BLOBLART等硬件平臺(tái)的引導(dǎo)程序否是否U-boot通用引導(dǎo)程序是是是RedBoot基于eCos的引導(dǎo)程序是是是常見Bootloader選擇U-Boot的理由:①開源免費(fèi);②支持多種嵌入式操作系統(tǒng)內(nèi)核,③支持多個(gè)處理器系列;④較高的可靠性和穩(wěn)定性;⑤高度靈活的功能設(shè)置;⑥豐富的設(shè)備驅(qū)動(dòng)源碼;⑦較為豐富的開發(fā)調(diào)試文檔與強(qiáng)大的網(wǎng)絡(luò)技術(shù)支持;嵌入式Linux硬件平臺(tái)搭建步驟ARMLinux編譯器安裝編譯Uboot編譯Linux內(nèi)核源碼制作rootfsLinux系統(tǒng)硬件平臺(tái)搭建U-Boot移植01下載到ARMRK3399開發(fā)板上Linux系統(tǒng)硬件平臺(tái)搭建U-Boot移植01B-boot官方網(wǎng)站:

https://www.denx.de/project/u-boot/U-boot直接下載地址:

https://ftp.denx.de/pub/u-boot/

(舊下載地址)U-boot直接下載地址:

https://source.denx.de/u-boot/u-boot

(新的下載地址,使用git進(jìn)行管理)Linux歷史U-Boot源碼獲得從官方網(wǎng)站上下載的源碼中,如果沒有直接支持你的開發(fā)板,則需要下載下來,再修改移植,修改工作要求開發(fā)者對(duì)目標(biāo)板CPU的啟動(dòng)流程、時(shí)鐘配置、DDR時(shí)序配置等底層技術(shù)和U-Boot源碼啟動(dòng)流程、框架等都比較熟悉,才會(huì)高效完成。一般情況下,芯片廠家本身會(huì)提供demo板,并提供配套的U-Boot,開發(fā)者為提高效率,一般都會(huì)參考官方提供的demo。Linux系統(tǒng)硬件平臺(tái)搭建U-Boot移植01做為底層開發(fā)者,需要對(duì)U-boot的文件結(jié)構(gòu)和作用有一個(gè)認(rèn)識(shí),方便后面深入學(xué)習(xí)修改及移植。Linux歷史U-Boot文件介紹序號(hào)目錄特性說明1board平臺(tái)依賴存放開發(fā)板相關(guān)的目錄文件2arch構(gòu)架相關(guān)存放各種芯片構(gòu)架相關(guān)的文件3api通用存放U-Boot提供的接口函數(shù)4common通用通用的代碼,涵蓋各個(gè)方面,以命令行處理為主5disk通用磁盤分區(qū)相關(guān)代碼6lib通用存放u-boot源碼中使用的庫函數(shù)7nand_spl通用NAND存儲(chǔ)器啟動(dòng)相關(guān)代碼8include通用頭文件和開發(fā)板配置文件,所有板的配置文件都在configs目錄下Linux系統(tǒng)硬件平臺(tái)搭建U-Boot移植01做為底層開發(fā)者,需要對(duì)U-boot的文件結(jié)構(gòu)和作用有一個(gè)認(rèn)識(shí),方便后面深入學(xué)習(xí)修改及移植。Linux歷史U-Boot文件介紹序號(hào)目錄特性說明9common通用通用的多功能函數(shù)實(shí)現(xiàn)10net通用存放網(wǎng)絡(luò)相關(guān)程序11fs通用存放文件系統(tǒng)相關(guān)程序12post通用存放上電自檢程序13drivers通用通用的設(shè)備驅(qū)動(dòng)程序,主要的驅(qū)動(dòng)是以太網(wǎng)接口14disk通用硬盤接口程序15examples應(yīng)用例程一些獨(dú)立運(yùn)行的應(yīng)用程序例子16tools工具存放制作S-Record或者U-Boot等的工具Linux系統(tǒng)硬件平臺(tái)搭建U-Boot移植01U-Boot重點(diǎn)關(guān)注的文件①rk平臺(tái)公共配置文件:include/configs/rk_default_config.h②rk33xx系列平臺(tái)配置文件:include/configs/rk33plat.h③rk33xx系列平臺(tái)架構(gòu)頭文件夾:arch/arm/include/asm/arch-rk33xx/④rk33xx系列平臺(tái)架構(gòu)文件夾,包括clock、irq、timer等實(shí)現(xiàn):arch/arm/cpu/armv8/rk33xx/⑤板級(jí)平臺(tái)核心文件夾,分類存放了各廠家芯片制作的各種開發(fā)板驅(qū)動(dòng)文件,本書使用的開發(fā)板相關(guān)的是board/rockchip/rk33xx/文件夾:board/rockchip/rk33xx/⑥各種接口驅(qū)動(dòng)文件夾,如LCD、RTC、SPI、I2C、USB等驅(qū)動(dòng):drivers/Linux系統(tǒng)硬件平臺(tái)搭建U-Boot移植01編譯器下載①rk平臺(tái)公共配置文件:include/configs/rk_default_config.h②rk33xx系列平臺(tái)配置文件:include/configs/rk33plat.h③rk33xx系列平臺(tái)架構(gòu)頭文件夾:arch/arm/include/asm/arch-rk33xx/④rk33xx系列平臺(tái)架構(gòu)文件夾,包括clock、irq、timer等實(shí)現(xiàn):arch/arm/cpu/armv8/rk33xx/⑤板級(jí)平臺(tái)核心文件夾,分類存放了各廠家芯片制作的各種開發(fā)板驅(qū)動(dòng)文件,本書使用的開發(fā)板相關(guān)的是board/rockchip/rk33xx/文件夾:board/rockchip/rk33xx/⑥各種接口驅(qū)動(dòng)文件夾,如LCD、RTC、SPI、I2C、USB等驅(qū)動(dòng):drivers/Linux系統(tǒng)硬件平臺(tái)搭建U-Boot移植01U-Boot可以在不同硬件平臺(tái)上運(yùn)行,但是需要開發(fā)者根據(jù)自己的硬件進(jìn)行局部代碼修改,適配硬件。涉及到代碼修改,對(duì)開發(fā)者技術(shù)要求就非常高了。本節(jié)針對(duì)已經(jīng)適配到開發(fā)板的U-Boot源碼進(jìn)行編譯,生成二進(jìn)制的BootLoader系統(tǒng)引導(dǎo)程序。U-Boot移植Linux歷史U-Boot文件源碼:4.示例代碼\source\u-boot.tar.bz2復(fù)制u-boot.tar.bz2到Ubuntu系統(tǒng)中目錄中:這里存放在~/work/nanopc-t4/system/目錄

進(jìn)入~/work/nanopc-t4/system/執(zhí)行解壓命令:tar-xfu-boot.tar.bz2命令終端進(jìn)入解壓后的u-boot源碼目錄,配置u-boot:makerk3399_linux_defconfig進(jìn)入配置界面進(jìn)行二次配置,并配置U-Boot子版本號(hào):

makemenuconfig說明:makemenuconfig會(huì)彈出圖形配置界面,該圖形配置界面依賴ncurses-devel庫,如果Ubuntu系統(tǒng)中還沒有安裝,需要先在線安裝。

sudoapt-getinstalllibncurses5-devLinux系統(tǒng)硬件平臺(tái)搭建U-Boot移植01U-Boot二次配置makemenuconfig

后彈出右邊所示的配置界面,切換到

Generalsetup--->

--->Localversion-appendtoU-Bootrelease

Linux系統(tǒng)硬件平臺(tái)搭建U-Boot移植01U-Boot二次配置進(jìn)入以下界面:

Generalsetup--->

--->Localversion-appendtoU-Bootrelease回車進(jìn)入:輸入你想要的版本號(hào),輸入完畢,回車確認(rèn)。最根據(jù)界面提示退出配置界面,記得在退出過程選擇保存配置。Linux系統(tǒng)硬件平臺(tái)搭建U-Boot移植01U-Boot可以在不同硬件平臺(tái)上運(yùn)行,但是需要開發(fā)者根據(jù)自己的硬件進(jìn)行局部代碼修改,適配硬件。涉及到代碼修改,對(duì)開發(fā)者技術(shù)要求就非常高了。本節(jié)針對(duì)已經(jīng)適配到開發(fā)板的U-Boot源碼進(jìn)行編譯,生成二進(jìn)制的BootLoader系統(tǒng)引導(dǎo)程序。U-Boot移植Linux歷史U-Boot文件源碼:4.示例代碼\source\u-boot.tar.bz2復(fù)制u-boot.tar.bz2到Ubuntu系統(tǒng)中目錄中:這里存放在~/work/nanopc-t4/system/目錄

進(jìn)入~/work/nanopc-t4/system/執(zhí)行解壓命令:tar-xfu-boot.tar.bz2命令終端進(jìn)入解壓后的u-boot源碼目錄,配置u-boot:makerk3399_linux_defconfig繼續(xù)上一步操作,編譯u-boot:makeCROSS_COMPILE=aarch64-linux-gnu--j8查看生成的二進(jìn)制文件:$ls*.bin*.imgrk3399_loader_v1.12.109.bintrust.imgu-boot.binuboot.img把以上文件復(fù)制到Windows系統(tǒng)存放,后面需要下載到開發(fā)板上。Linux系統(tǒng)硬件平臺(tái)搭建U-Boot移植01U-Boot版本啟動(dòng)延時(shí)的時(shí)間設(shè)置為1秒,啟動(dòng)時(shí)可能來不及按鍵進(jìn)入命令行模式,如果需要在開發(fā)階段進(jìn)入命令行模式,可需要修改文件u-boot/include/configs/rk33plat.h文件,找到CONFIG_BOOTDELAY宏,位置大概在202行,

修改其值為想要的延時(shí)啟動(dòng)時(shí)間,單位是秒,#defineCONFIG_BOOTDELAY5修改延時(shí)時(shí)間Linux歷史繼續(xù)上一步操作,編譯u-boot:makeCROSS_COMPILE=aarch64-linux-gnu--j8查看生成的二進(jìn)制文件:$ls*.bin*.imgrk3399_loader_v1.12.109.bintrust.imgu-boot.binuboot.img把以上文件復(fù)制到Windows系統(tǒng)存放,后面需要下載到開發(fā)板上。編譯U-BootLinux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01Linux內(nèi)核官方網(wǎng)址:

/

首頁上可以下載到是新版本的源碼。所在已經(jīng)發(fā)布版本的源碼下載地址:

/pub/linux/kernel/Linux內(nèi)核源碼獲得官方網(wǎng)站上下載的內(nèi)核不一定完全支持你的需求,一般都需要移植以適配你的開發(fā)板,其中涉及到要修改的內(nèi)容非常多,技術(shù)要求很高。因此,為了提高開發(fā)效率,直接下載芯片公司和開發(fā)板公司提供配套的Linux內(nèi)核源碼,再進(jìn)行二次開發(fā)。Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01Linux內(nèi)核官方網(wǎng)址:

/

首頁上可以下載到是新版本的源碼。所在已經(jīng)發(fā)布版本的源碼下載地址:

/pub/linux/kernel/Linux內(nèi)核源碼獲得官方網(wǎng)站上下載的內(nèi)核不一定完全支持你的需求,一般都需要移植以適配你的開發(fā)板,其中涉及到要修改的內(nèi)容非常多,技術(shù)要求很高。因此,為了提高開發(fā)效率,直接下載芯片公司或開發(fā)板公司提供配套的Linux內(nèi)核源碼,再進(jìn)行二次開發(fā)。本書配套Linux內(nèi)核文件源碼:4.示例代碼\source\kernel-rockchip-nanopi4-4.4.y.tgz復(fù)制Linux內(nèi)核到Ubuntu系統(tǒng)中目錄中:這里存放在~/work/nanopc-t4/system/目錄

進(jìn)入~/work/nanopc-t4/system/執(zhí)行解壓命令:tar-xfkernel-rockchip-nanopi4-4.4.y.tgz進(jìn)入解壓后的linux源碼目錄:cdkernel-rockchip/加載開發(fā)板對(duì)應(yīng)的基礎(chǔ)配置:makeARCH=arm64xyd_rk3399_linux_defconfigLinux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01Linux內(nèi)核源碼頂層目錄序號(hào)名稱說明1fs內(nèi)核支持文件系統(tǒng)代碼2security主要包含SELinux(Security-EnhancedLinux)模塊,SELinux是美國國家安全局(NSA)對(duì)于強(qiáng)制訪問控制的實(shí)現(xiàn),是Linux歷史上最杰出的新安全子系統(tǒng)3block塊設(shè)備I/O調(diào)度支持代碼,如SD卡等設(shè)備4include包括編譯核心所需要的大部分頭文件,例如與平臺(tái)無關(guān)的頭文件在include/linux子目錄下,include/scsi目錄則是有關(guān)scsi設(shè)備的頭文件目錄5Makefile這個(gè)Makefile文件是用來組織內(nèi)核的各模塊,記錄各個(gè)模塊相互之間的聯(lián)系和依賴關(guān)系,編譯時(shí)使用,一般在每個(gè)目錄下都有一個(gè).depend文件和一個(gè)Makefile文件,這兩個(gè)文件都是編譯時(shí)使用的輔助文件6sound音頻子系統(tǒng)實(shí)現(xiàn),ALSA、OSS音頻設(shè)備的驅(qū)動(dòng)核心代碼和常用設(shè)備驅(qū)動(dòng)7initlinux系統(tǒng)初始化文件,其中一個(gè)main.c就是Linux進(jìn)入C代碼階段的入口,也是Linux啟動(dòng)的第一個(gè)進(jìn)程本節(jié)學(xué)習(xí)講解一下如何學(xué)習(xí)Linux內(nèi)核源碼結(jié)構(gòu)以及文件作用,后期學(xué)習(xí)內(nèi)核移植,和驅(qū)動(dòng)程序開發(fā)是必須掌握的基礎(chǔ)知識(shí)。Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01Linux內(nèi)核源碼頂層目錄8mm內(nèi)存管理相關(guān)代碼9ipc進(jìn)程間通信相關(guān)代碼10net核心的網(wǎng)絡(luò)部分代碼,實(shí)現(xiàn)了各種常見的網(wǎng)絡(luò)協(xié)議,其每個(gè)子目錄對(duì)應(yīng)于網(wǎng)絡(luò)的一個(gè)方面11crypto常用加密和散列算法,如AES、SHA等,還有一些壓縮和CRC校驗(yàn)算法12Documentation內(nèi)核使用說明書13tools編譯內(nèi)核需要使用的工具14drivers各種硬件或軟件設(shè)備驅(qū)動(dòng)代碼15kernellinux內(nèi)核的核心文件16samples部分Linux底層API函數(shù)使用的例子17libLinux內(nèi)核實(shí)現(xiàn)需要使用的與平臺(tái)無關(guān)的核心的庫代碼18usr用戶程序相關(guān)代碼19scripts裁剪配置內(nèi)核選項(xiàng)時(shí)使用的腳本文件20firmware以固件的形式存放硬件驅(qū)動(dòng)文件21arch存放架構(gòu)相關(guān)的文件夾,其中32位ARM處理器的目錄是arch/arm/,64位ARM處理器的目錄是arch/arm64/序號(hào)名稱說明Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01

查看內(nèi)核編譯幫助:makeARCH=arm64help64位開發(fā)板配置幫助

makeARCH=armhelp32位開發(fā)板配置幫助

如果不想傳遞ARCH參數(shù),需要修改內(nèi)核源碼頂層目錄的Makefile文件,然后直接makehelp也可以。要修改Makefile,首先找到內(nèi)核源碼頂層目錄下的Makefile,打開并找到以下內(nèi)容:

ARCH

?=$(SUBARCH)

CROSS_COMPILE ?=$(CONFIG_CROSS_COMPILE:"%"=%)

修改為:

ARCH

?=arm64

CROSS_COMPILE ?=aarch64-linux-gnu-Linux內(nèi)核編譯常用命令內(nèi)核編譯清除目標(biāo)命令:①clean表示移除大部分編譯生成的文件,但保留配置文件及足夠編譯外部模塊文件的相關(guān)信息,makeclean后的源碼還可以用于編譯外部模塊;②mrprope表示移除全部的生成文件、配置文件及各種備份文件,makemrprope后不能再編譯外部模塊;③distclean相當(dāng)于mrprope

效果再加上刪除補(bǔ)丁文件,以最大化方式清除文件,不建議開發(fā)者使用。Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01內(nèi)核配置裁剪命令:內(nèi)核裁剪一般有3種方法,一是采用程序代碼的方式,二是采用nconfig菜單操作,三是采用menuconfig菜單操作,一般使用menuconfig代替,menuconfig比nconfig操作起來更人性化一點(diǎn),內(nèi)核裁剪命令:makeARCH=arm64menuconfigLinux內(nèi)核編譯常用命令編譯命令:makeall:編譯所有文件,其實(shí)直接輸入make就是等效于makeall.makemodules:只編譯所有的模塊文件,就是內(nèi)核配置為m選項(xiàng)對(duì)應(yīng)的代碼文件;makemodules_install:安裝好的模塊文件復(fù)制到INSTALL_MOD_PATH變量指定的位置,默認(rèn)是/目錄

。

Linux源碼頂層命令終端輸入:標(biāo)準(zhǔn)方法,下面使用nanopi4_linux_defconfig配置為例:makeall:編譯所有文件,其實(shí)直接輸入make就是等效于makeall.makemodules:只編譯所有的模塊文件,就是內(nèi)核配置為m選項(xiàng)對(duì)應(yīng)的代碼文件;makemodules_install:安裝好的模塊文件復(fù)制到INSTALL_MOD_PATH變量指定的位置,默認(rèn)是/目錄

。

Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01內(nèi)核配置裁剪命令:內(nèi)核裁剪一般有3種方法,一是采用程序代碼的方式,二是采用nconfig菜單操作,三是采用menuconfig菜單操作,一般使用menuconfig代替,menuconfig比nconfig操作起來更人性化一點(diǎn),內(nèi)核裁剪命令:makeARCH=arm64menuconfigLinux內(nèi)核編譯常用命令編譯命令:makeall:編譯所有文件,其實(shí)直接輸入make就是等效于makeall.makemodules:只編譯所有的模塊文件,就是內(nèi)核配置為m選項(xiàng)對(duì)應(yīng)的代碼文件;makemodules_install:安裝好的模塊文件復(fù)制到INSTALL_MOD_PATH變量指定的位置,默認(rèn)是/目錄

。

Linux源碼頂層命令終端輸入:標(biāo)準(zhǔn)方法,下面使用nanopi4_linux_defconfig配置為例:makeall:編譯所有文件,其實(shí)直接輸入make就是等效于makeall.makemodules:只編譯所有的模塊文件,就是內(nèi)核配置為m選項(xiàng)對(duì)應(yīng)的代碼文件;makemodules_install:安裝好的模塊文件復(fù)制到INSTALL_MOD_PATH變量指定的位置,默認(rèn)是/目錄

。

Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01本節(jié)學(xué)習(xí)如何進(jìn)行Linux內(nèi)核裁剪,內(nèi)核可裁剪的選項(xiàng)非常多,本節(jié)只介紹幾個(gè)選項(xiàng),讓大家發(fā)解裁剪方法,以及Linux內(nèi)核的可裁剪特征,本節(jié)以

nanopi4_linux_defconfig

作為基礎(chǔ)配置,在上面進(jìn)行配置,Linux內(nèi)核源碼根目錄中輸入makeARCH=arm64nanopi4_linux_defconfig即可加載基礎(chǔ)配置

。接著輸入makeARCH=arm64menuconfig可以彈出圖形配置界面,根據(jù)需要找到要裁剪的選項(xiàng)進(jìn)行配置。Linux內(nèi)核裁剪配置交叉編譯器前綴:

找到以下層級(jí),回車,輸入編譯器前綴:

aarch64-linux-gnu-

->Generalsetup

->

Cross-compilertoolprefix說明:aarch64-linux-gnu-是自己的編譯器前綴,根據(jù)實(shí)際情況調(diào)整。配置Linux本地版本號(hào):

找到以下層級(jí),回車,輸入子版本號(hào),可以是一個(gè)字符串:-dgeducation

->Generalsetup

->

Localversion-appendtokernelrelease說明:如果內(nèi)核版本是

4.4.168,

則加上自己定義的版本號(hào),完全版本就是4.4.168-dgeducation。Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01本節(jié)學(xué)習(xí)如何進(jìn)行Linux內(nèi)核裁剪,內(nèi)核可裁剪的選項(xiàng)非常多,本節(jié)只介紹幾個(gè)選項(xiàng),讓大家發(fā)解裁剪方法,以及Linux內(nèi)核的可裁剪特征,本節(jié)以

nanopi4_linux_defconfig

作為基礎(chǔ)配置,在上面進(jìn)行配置,Linux內(nèi)核源碼根目錄中輸入makeARCH=arm64nanopi4_linux_defconfig即可加載基礎(chǔ)配置

。接著輸入makeARCH=arm64menuconfig可以彈出圖形配置界面,根據(jù)需要找到要裁剪的選項(xiàng)進(jìn)行配置。Linux內(nèi)核裁剪配置交叉編譯器前綴:

找到以下層級(jí),回車,輸入編譯器前綴:

aarch64-linux-gnu-

->Generalsetup

->

Cross-compilertoolprefix說明:aarch64-linux-gnu-是自己的編譯器前綴,根據(jù)實(shí)際情況調(diào)整。配置Linux本地版本號(hào):

找到以下層級(jí),回車,輸入子版本號(hào),可以是一個(gè)字符串:-dgeducation

->Generalsetup

->

Localversion-appendtokernelrelease說明:如果內(nèi)核版本是

4.4.168,

則加上自己定義的版本號(hào),完全版本就是4.4.168-dgeducation。Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01本節(jié)學(xué)習(xí)如何進(jìn)行Linux內(nèi)核裁剪,內(nèi)核可裁剪的選項(xiàng)非常多,本節(jié)只介紹幾個(gè)選項(xiàng),讓大家發(fā)解裁剪方法,以及Linux內(nèi)核的可裁剪特征,本節(jié)以

nanopi4_linux_defconfig

作為基礎(chǔ)配置,在上面進(jìn)行配置,Linux內(nèi)核源碼根目錄中輸入makeARCH=arm64nanopi4_linux_defconfig即可加載基礎(chǔ)配置

。接著輸入makeARCH=arm64menuconfig可以彈出圖形配置界面,根據(jù)需要找到要裁剪的選項(xiàng)進(jìn)行配置。Linux內(nèi)核裁剪配置交叉編譯器前綴:

找到以下層級(jí),回車,輸入編譯器前綴:

aarch64-linux-gnu-

->Generalsetup

->

Cross-compilertoolprefix說明:aarch64-linux-gnu-是自己的編譯器前綴,根據(jù)實(shí)際情況調(diào)整。配置Linux本地版本號(hào):

找到以下層級(jí),回車,輸入子版本號(hào),可以是一個(gè)字符串:-dgeducation

->Generalsetup

->

Localversion-appendtokernelrelease說明:如果內(nèi)核版本是

4.4.168,

則加上自己定義的版本號(hào),完全版本就是4.4.168-dgeducation。Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01配置支持模塊機(jī)制:

找到以下層級(jí),Enableloadablemodulesupport,空格鍵配置為選中狀態(tài),顯示為*號(hào),然后把出現(xiàn)的子菜單也配置為*號(hào),表示選中該項(xiàng):

-Enableloadablemodulesupport[*]Forcedmoduleloading[*]Moduleunloading[*]Forcedmoduleunloading[*]Moduleversioningsupport[*]SourcechecksumforallmodulesLinux內(nèi)核裁剪配置設(shè)備驅(qū)動(dòng)菜單:DeviceDrivers菜單選項(xiàng)很龐大,需要根據(jù)自己的硬件進(jìn)行選擇,具體選項(xiàng)功能說明在后續(xù)驅(qū)動(dòng)課程中用到時(shí)再針對(duì)性講解,目前,我們需要知道內(nèi)核有什么驅(qū)動(dòng),在哪個(gè)位置可以找到它、配置它、使用它即可。Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01配置文件系統(tǒng)類型支持(ext2、3、4支持):

Linux內(nèi)核裁剪Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01配置FATFS文件系統(tǒng)類型支持:找到以下層級(jí):->Filesystems->DOS/FAT/NTFilesystems

->VFAT(Windows-95)fssupport

空格鍵把它配置為選中狀態(tài),顯示為*號(hào)狀態(tài)Linux內(nèi)核裁剪找到以下層級(jí):│->Networkingsupport(NET[=y])│->Networkingoptions│->TCP/IPnetworking(INET[=y])

->

kernellevelautoconfiguration

空格鍵把它配置為選中狀態(tài),顯示為*號(hào)狀態(tài)找到以下層級(jí):│->Filesystems│->NetworkFileSystems

->RootfilesystemonNFS

空格鍵把它配置為選中狀態(tài),顯示為*號(hào)狀態(tài)配置NFS文件系統(tǒng)類型支持:Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01配置文件系統(tǒng)本地語言編碼支持(配置簡(jiǎn)體中文):找到以下層級(jí):->Filesystems->Nativelanguagesupport(NLS[=y])

->SimplifiedChinesecharset(CP936,GB2312)

空格鍵把它配置為選中狀態(tài),顯示為*號(hào)狀態(tài)Linux內(nèi)核裁剪配置UTF-8編碼支持:找到以下層級(jí):->Filesystems->Nativelanguagesupport(NLS[=y])

->NLSUTF-8

空格鍵把它配置為選中狀態(tài),顯示為*號(hào)狀態(tài)配置printk打印時(shí)間戳:找到以下層級(jí):->Kernelhacking->printkanddmesgoptions

->NLSUTF-8

-->Showtiminginformationonprintks

空格鍵把它配置為選中狀態(tài),顯示為*號(hào)狀態(tài)Linux系統(tǒng)硬件平臺(tái)搭建Linux內(nèi)核移植01Linux內(nèi)核編譯需要依賴本地軟件支持,可以通過在線安裝方式,完成依賴工具安裝,命令如下:sudoa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論