秋霞步兵区国产精品,国产精品视频二区第二页,亚洲aⅴ欧美综合一区二区三区,亚洲日韩欧美一区二区不卡

      1. <small id="x8tpb"></small>
        <address id="x8tpb"></address>

        新疆信息港歡迎您!

        新疆信息港
        新疆信息港 > 科技 >嵌入式Linux系列第4篇:Kernel編譯下載

        嵌入式Linux系列第4篇:Kernel編譯下載

        2020-08-21 07:45:07
        來源:互聯(lián)網(wǎng)
        閱讀:-

        1.引言本篇接上一篇,給大家介紹Linux Kernel的編譯和下載運(yùn)行,達(dá)到的預(yù)期效果是都下載到板子后,可以正常通過串口登錄到Linux系統(tǒng)里。2.Linux Kernel編譯NUC972 Linux Kernel下載地址為 github....

        1.引言

        本篇接上一篇,給大家介紹Linux Kernel的編譯和下載運(yùn)行,達(dá)到的預(yù)期效果是都下載到板子后,可以正常通過串口登錄到Linux系統(tǒng)里。

        2.Linux Kernel編譯

        NUC972 Linux Kernel下載地址為 github.com/OpenNuvoton/NUC970_Linux_Kernel

        下載完成后,放到Ubuntu虛擬機(jī)的~/nuc972/kernel 文件夾下,解壓縮。

        嵌入式Linux系列第4篇:Kernel編譯下載

        嵌入式Linux系列第4篇:Kernel編譯下載

        編譯前還記得前兩篇文章說的吧,我們先source /home/topsemic/nuc972/toolchain/environment.sh

        進(jìn)入到內(nèi)核目錄,第一步先執(zhí)行make nuc972_defconfig 生成.config文件,

        這一步是不是很眼熟,和上一講uboot編譯是類似的。

        嵌入式Linux系列第4篇:Kernel編譯下載

        第二步執(zhí)行:make uImage,編譯內(nèi)核,報(bào)錯(cuò)了,錯(cuò)誤是不是和編譯uboot也類似啊。

        嵌入式Linux系列第4篇:Kernel編譯下載

        同樣的我們也是要改Makefile

        這次我們用vim來改一次,

        嵌入式Linux系列第4篇:Kernel編譯下載

        提示我們不支持vim這個(gè)指令,那我們安裝一下吧,人家都給提示了,輸入sudo apt install vim

        下面是安裝過程

        嵌入式Linux系列第4篇:Kernel編譯下載

        OK,安裝完畢,Ubuntu系統(tǒng)安裝個(gè)東西真是方便啊,一條指令就搞定了。輸入vim Makefile 顯示如下:

        嵌入式Linux系列第4篇:Kernel編譯下載

        花花綠綠的看著不錯(cuò)啊,先找到設(shè)置交叉編譯鏈的地方,具體方法如下圖1、2、3步驟描述

        嵌入式Linux系列第4篇:Kernel編譯下載

        修改方法第一篇博客介紹的大家還記得嗎?先輸入I,進(jìn)入到插入模式,然后修改即可

        嵌入式Linux系列第4篇:Kernel編譯下載

        然后ESC退出插入模式,最后輸入:wq保存退出即可。

        嵌入式Linux系列第4篇:Kernel編譯下載

        以后大家多使用vim吧。

        修改完Makefile后,再一次make uImage,

        嵌入式Linux系列第4篇:Kernel編譯下載

        靠,什么情況,又報(bào)錯(cuò)了,我記得之前沒遇到這個(gè)錯(cuò)誤啊。

        網(wǎng)上查了下,說是和文件系統(tǒng)有關(guān),是權(quán)限的問題,使用sudo 編譯就行,于是我激動(dòng)的sudo make uImage,咦

        嵌入式Linux系列第4篇:Kernel編譯下載

        這個(gè)命令找不動(dòng),不應(yīng)該啊,我已經(jīng)source了,而且輸入arm-none- Table鍵也能找到啊,

        嵌入式Linux系列第4篇:Kernel編譯下載

        于是又尋求度娘,有人說Makefile路徑問題,于是我再改一次,把絕對路徑加上

        嵌入式Linux系列第4篇:Kernel編譯下載

        再來一次,

        這次倒是沒有剛才arm-none-linux-gnueabi-gcc找不到的問題,不過還是有一開始提示的錯(cuò)誤:

        嵌入式Linux系列第4篇:Kernel編譯下載

        這是怎么回事? 我靈機(jī)一動(dòng),上面提示沒有../rootfs

        嵌入式Linux系列第4篇:Kernel編譯下載

        于是,我cd .. ,回到上級目錄,mkdir rootfs 建了一個(gè)rootfs文件夾,再次進(jìn)入到內(nèi)核目錄,輸入sudo make uImage

        這一次看起來不太一樣,好像要成功的樣子,

        嵌入式Linux系列第4篇:Kernel編譯下載

        不過最后還是有點(diǎn)小問題,還是目錄沒有的問題,我們再回到上級目錄建個(gè)文件夾image

        最后再來一次sudo make uImage

        嵌入式Linux系列第4篇:Kernel編譯下載

        怎么還有錯(cuò)誤,我之前編譯根本沒有這些問題的啊,郁悶了。。。

        再次上網(wǎng)搜索,說這個(gè)命令是uboot編譯出來的,因?yàn)闆]有找到它的原因,我看了下我的uboot 里tools目錄,果然是有這個(gè)命令的,

        嵌入式Linux系列第4篇:Kernel編譯下載

        有網(wǎng)友說把它復(fù)制到交叉編譯鏈的bin目錄里就行了,于是我放進(jìn)去嘗試,還是有問題,最后又百度,有網(wǎng)友說還得改個(gè)名字,前面得加上交叉編譯的名字,于是加上arm-none-linux-gnueabi-,

        嵌入式Linux系列第4篇:Kernel編譯下載

        最后再次編譯,終于大功告成,不容易?。?/p>

        嵌入式Linux系列第4篇:Kernel編譯下載

        在image目錄里的970uimage就是我們需要的文件了。

        嵌入式Linux系列第4篇:Kernel編譯下載

        3.燒寫kernel

        1)具體怎么燒錄,上一篇已經(jīng)描述過了,這里要注意燒寫地址:

        嵌入式Linux系列第4篇:Kernel編譯下載

        2)另外上一節(jié)已經(jīng)把uboot燒寫進(jìn)去了,這里不再重復(fù)了

        3)這里還要再燒個(gè)env.txt

        嵌入式Linux系列第4篇:Kernel編譯下載

        板子里有三個(gè)東西就可以了。

        4.運(yùn)行

        1)使用debug串口連接上后,會(huì)進(jìn)入如下界面

        嵌入式Linux系列第4篇:Kernel編譯下載

        2)這時(shí)參考官方文檔輸入set bootcmd nboot 0x7fc0 0 0x200000\; bootm 0x7fc0

        嵌入式Linux系列第4篇:Kernel編譯下載

        提示如下:

        嵌入式Linux系列第4篇:Kernel編譯下載

        這什么情況,官方文檔逗我玩呢??

        后來發(fā)現(xiàn)把set 改為setenv就好了,寫文檔的人得靠點(diǎn)譜啊,不然真是坑人啊。

        然后再輸入 saveenv

        嵌入式Linux系列第4篇:Kernel編譯下載

        3)按下復(fù)位鍵,這時(shí)就呼呼的跑起來了

        嵌入式Linux系列第4篇:Kernel編譯下載

        靠,又出現(xiàn)錯(cuò)誤了,這個(gè)足足卡了我1個(gè)多小時(shí)今天晚上。

        最后也是靈光一現(xiàn),定位到是上面編譯內(nèi)核時(shí)提示的rootfs文件夾有問題那里,難道我自己隨便建個(gè)空的rootfs就可以嗎?

        另外回憶之前我用別人提供好的bsp包沒出現(xiàn)這個(gè)問題,那里默認(rèn)是有rootfs文件目錄的,于是把那里的rootfs搞過來,解壓后,再重新編譯下(先sudo make clean,再sudo make uImage)并重新下載一次就ok了。我猜測內(nèi)核里用到rootfs文件夾里的東西。 原來都沒有考慮過這個(gè)問題啊我。

        最后成功的現(xiàn)象是:

        嵌入式Linux系列第4篇:Kernel編譯下載

        可以成功登陸進(jìn)去,輸入指令了!

        至于這個(gè)rootfs文件夾里東西是怎么來的,我們下篇文章再說。

        5.結(jié)束語

        本篇文章寫下來,自己收獲了很多,本以為之前調(diào)通的東西,很容易就操作出來了,沒想到遇到這么多新的問題,不過遇到問題是好事,會(huì)讓你思考一些原來沒有注意到的地方。

        順便提下,這里內(nèi)核默認(rèn)用的ramdisk根文件系統(tǒng),這個(gè)文件系統(tǒng)是存在RAM里的,所以你在里面寫入東西,一斷電就沒有了。這和常規(guī)在NAND上的Yaffs2文件系統(tǒng)不一樣。下一篇介紹如果換成NAND Yaffs2文件系統(tǒng)。

        經(jīng)過這一篇的講解,你如果實(shí)際動(dòng)手實(shí)現(xiàn)后,應(yīng)該對嵌入式Linux更加感興趣了吧,相當(dāng)于我們會(huì)重裝系統(tǒng)了。雖然困難重重,但是不要放棄。

        有任何問題歡迎大家留言交流討論。

        下期會(huì)給大家介紹如何改成NAND Yaffs2文件系統(tǒng)。

        該系列往期文章見:

        1.從單片機(jī)轉(zhuǎn)Linux系列第1篇:開發(fā)環(huán)境搭建

        2.嵌入式Linux系列第2篇:運(yùn)行Hello World

        3.嵌入式Linux系列第3篇:uboot編譯下載

        推薦閱讀:天秀時(shí)尚網(wǎng)

        免責(zé)聲明:本文僅代表企業(yè)觀點(diǎn),與新疆信息港無關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實(shí)相關(guān)內(nèi)容。
        熱門圖片
        熱門搜索