久久久精品久久久久久96,91国高清在线,欧美日韩高清国产aⅴ一区,在线观看亚洲欧美一区二区三区

<sub id="e1sa3"></sub>

    <pre id="e1sa3"><del id="e1sa3"></del></pre>
    <noscript id="e1sa3"></noscript>

      新疆信息港歡迎您!

      新疆信息港
      新疆信息港 > 科技 >嵌入式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)核,報錯了,錯誤是不是和編譯uboot也類似啊。

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

      同樣的我們也是要改Makefile

      這次我們用vim來改一次,

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

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

      下面是安裝過程

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

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

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

      花花綠綠的看著不錯啊,先找到設(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編譯下載

      靠,什么情況,又報錯了,我記得之前沒遇到這個錯誤啊。

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

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

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

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

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

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

      再來一次,

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

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

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

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

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

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

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

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

      最后再來一次sudo make uImage

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

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

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

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

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

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

      最后再次編譯,終于大功告成,不容易啊!

      嵌入式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)這里還要再燒個env.txt

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

      板子里有三個東西就可以了。

      4.運(yùn)行

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

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

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

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

      提示如下:

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

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

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

      然后再輸入 saveenv

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

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

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

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

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

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

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

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

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

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

      5.結(jié)束語

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

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

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

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

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

      該系列往期文章見:

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

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

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

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

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