亚洲国产精品一区|午夜精品久久久久久久99热|草久在线观看高清|欧美精品V国产不卡在线观看

  • <tbody id="6baca"><style id="6baca"><track id="6baca"></track></style></tbody><dl id="6baca"></dl>

      1. <dl id="6baca"><thead id="6baca"></thead></dl>
          <dl id="6baca"></dl>
        1. <acronym id="6baca"><button id="6baca"><sup id="6baca"></sup></button></acronym>

          新疆信息港歡迎您!

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

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

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

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

          1.引言

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

          2.Linux Kernel編譯

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

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

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

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

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

          進入到內(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編譯下載

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

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

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

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

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

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

          以后大家多使用vim吧。

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

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

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

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

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

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

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

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

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

          再來一次,

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

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

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

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

          于是,我cd .. ,回到上級目錄,mkdir rootfs 建了一個rootfs文件夾,再次進入到內(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)友說把它復制到交叉編譯鏈的bin目錄里就行了,于是我放進去嘗試,還是有問題,最后又百度,有網(wǎng)友說還得改個名字,前面得加上交叉編譯的名字,于是加上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燒寫進去了,這里不再重復了

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

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

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

          4.運行

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

          嵌入式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)按下復位鍵,這時就呼呼的跑起來了

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

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

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

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

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

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

          可以成功登陸進去,輸入指令了!

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

          5.結(jié)束語

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

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

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

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

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

          該系列往期文章見:

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

          2.嵌入式Linux系列第2篇:運行Hello World

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

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

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