久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1804|回復: 0
打印 上一主題 下一主題
收起左側

移植5.4內核到迅為I.MX6ULL開發板

[復制鏈接]
跳轉到指定樓層
樓主
本篇推文會加到后續的文檔里面,另外等QT視頻錄制完成以后,就開始更新終結者驅動和系統移植的視頻,后續的驅動移植教程和視頻也全部會在本次移植的5.4內核上進行講解和錄制。大家也可以趁著端午節親手移植感受下。
獲取Linux內核源碼
NXP官方提供了I.MX6ULL的Linux內核源碼,我們可以使用git來獲取Linux 5.4.3的內核源碼(為了大家學習方便我們給大家提供了下載好的核源碼,后續會保存在光盤資料的“i.MX6UL終結者光盤資料\05_uboot linux源碼”目錄下“i.MX6ULL_Kernel_5.4.3.tar.bz2”)。

下面我們通過git下載5.4.3內核源碼。輸入以下命令獲取源碼:
下載完成會在當前目錄下生成“linux-imx”文件,如下圖所示:
然后我們使用“cd linux-imx”命令進入到下載的內核目錄下,我們可以打開當前目錄下的“Makefile“文件,查看下現在的內核版本,運行結果如下圖所示:
從上圖我們可以看到下載的內核版本并不是5.4.3,那么我們是不是下載錯了呢?答案是:我們沒有下載錯的。因為我們下載的NXP提供的這套Linux源碼,里面包含了所有版本的分支,我們需要使用命令檢索出對應的版本。下面我們開始講解如何檢索出我們想要的版本。首先我們可以使用git命令查看都有哪些分支,我們可以輸入“git branch -a”查看所有的分支。
我們需要檢索出“5.4.3”版本的內核源碼,我們可以輸入命令“git checkout origin/imx_5.4.3_2.0.0”(其中的origin/imx_5.4.3_2.0.0是我們要檢索出的分支,大家如果想要檢索出其它分支,只需要把這個名字改成對應的分支名字就可以),運行結果如下圖所示:
從上圖我們可以看到已經檢索出了“5.4.3”的分支,我們再次打開內核源碼目錄下的“Makefile”文件,如下圖所示:
從上圖我們可以看到當前的內核版本是“5.4.3”了。

搭建編譯環境
Linux 5.4.3的編譯環境和默認4.1.15用的交叉編譯器一樣,也是“gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz”,關于交叉編譯器的搭建,可以參考“i.mx6ull終結者開發板使用手冊”的4.3章節“搭建交叉編譯環境”和29.1章節 安裝第三方庫。

編譯內核
為了編譯方便,我們可以創建一個腳本,我們在命令行輸入“vi create.sh”,并輸入以下內容:
#!/bin/bash
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
make imx_v7_defconfig
make zImage -j8
給腳本一個執行權限,然后我們運行“./create.sh”腳本,開始編譯Linux內核,如下圖所示:
編譯完成,會在“arch/arm/boot”目錄下生成“zImage”鏡像文件,如下圖所示:

編譯生成了鏡像文件以后,接下來我們需要編譯設備樹文件。首先我們進到“arch/arm/boot/dts”目錄,這里面保存著imx6ull的默認設備樹配置文件。然后我們輸入“ls imx6ull*”命令,查看與i.MX6ULL處理器相關的設備樹文件,運行結果如下圖所示

在上圖中列出的所有與i.MX6ULL處理器相關的設備樹文件,我們只需要關注其中的四個,分別是:
“imx6ull.dtsi”,
“imx6ul-14x14-evk.dtsi”,
“imx6ull-14x14-evk.dts”,
“imx6ull-14x14-evk-emmc.dts”
“imx6ull-14x14-evk-gpmi-weim.dts”。
其中的“imx6ull.dtsi”文件是i.MX6ULL處理器的核心配置文件,里面定義了i.MX6ULL處理器所有的內部資源。
文件“imx6ul-14x14-evk.dtsi”里面定義了一些與外設相關的驅動。
文件“imx6ull-14x14-evk.dts”會包含“imx6ull.dtsi”和“imx6ul-14x14-evk.dtsi”這兩個文件。
文件“imx6ull-14x14-evk-emmc.dts”會包含“imx6ull-14x14-evk.dts”,該文件是針對EMMC存儲的。
文件“imx6ull-14x14-evk-gpmi-weim.dts”會包含“imx6ull-14x14-evk.dts”,該文件是針對NAND FLASH存儲的。
通過上面的分析,實際我們最終需要編譯的就兩個文件“imx6ull-14x14-evk-emmc.dts”(EMMC存儲)和“imx6ull-14x14-evk-gpmi-weim.dts”(NAND FLASH存儲)。
使用過迅為電子提供的4.1.15內核的朋友可能會注意到我們的燒寫工具在燒寫鏡象的時候設備樹文件會有好幾個(針對不同屏幕的)。如果這些文件缺少任意一個,燒寫工具打開就會失敗。同時這幾個文件的名字在uboot里面也會用到(uboot里面這幾個文件的名字也是固定的),所以為了能夠繼續使用4.1.15的燒寫工具,我們需要在5.4.3內核里面創建對應的這幾個設備樹名字:
topeet_emmc_10_1.dts
topeet_emmc_1024x600.dts
topeet_emmc_4_3.dts
topeet_emmc_5_0.dts
topeet_emmc_7_0.dts
topeet_emmc_9_7.dts
topeet_emmc_hdmi.dts
topeet_nand_10_1.dts
topeet_nand_1024x600.dts
topeet_nand_4_3.dts
topeet_nand_5_0.dts
topeet_nand_7_0.dts
topeet_nand_9_7.dts
topeet_nand_hdmi.dts
在上面的這些設備樹文件中,以“topeet_emmc”開頭的是支持商業級核心板 (EMMC存儲)的,以“topeet_nand”開頭的是支持工業級核心板(NAND FLASH存儲)的。
我先們創建商業級核心板(EMMC存儲)的這幾個設備述文件,上面我們講到了默認設備樹文件里面的“imx6ull-14x14-evk-emmc.dts”是針對EMMC存儲的配置文件,我們以該文件為模板,創建商業級核心板(EMMC存儲)對應的幾個設備樹文件,使用下面的命令:
cp imx6ull-14x14-evk-emmc.dts topeet_emmc_10_1.dts
cp imx6ull-14x14-evk-emmc.dts topeet_emmc_1024x600.dts
cp imx6ull-14x14-evk-emmc.dts topeet_emmc_4_3.dts
cp imx6ull-14x14-evk-emmc.dts topeet_emmc_5_0.dts
cp imx6ull-14x14-evk-emmc.dts topeet_emmc_7_0.dts
cp imx6ull-14x14-evk-emmc.dts topeet_emmc_9_7.dts
cp imx6ull-14x14-evk-emmc.dts topeet_emmc_hdmi.dts
然后我們繼續創建工業級核心板(NAND FLASH存儲)相關的幾個設備樹文件,上面我們講到了默認設備樹文件里面的“imx6ull-14x14-evk-gpmi-weim.dts”是針對NAND FLASH存儲的配置文件,我們以該文件為模板,創建工業級核心板(NAND FLASH存儲)對應的幾個設備樹文件,使用下面的命令:
cp imx6ull-14x14-evk-gpmi-weim.dts topeet_nand_10_1.dts
cp imx6ull-14x14-evk-gpmi-weim.dts topeet_nand_1024x600.dts
cp imx6ull-14x14-evk-gpmi-weim.dts topeet_nand_4_3.dts
cp imx6ull-14x14-evk-gpmi-weim.dts topeet_nand_5_0.dts
cp imx6ull-14x14-evk-gpmi-weim.dts topeet_nand_7_0.dts
cp imx6ull-14x14-evk-gpmi-weim.dts topeet_nand_9_7.dts
cp imx6ull-14x14-evk-gpmi-weim.dts topeet_nand_hdmi.dts
至此,關于設備樹的文件我們都創建完成了,由于NAND FLASH和EMMC的 核心板,Uboot在獲取設備數文件的時候不一樣(EMMC是按照分區的方式訪問,NAND FLASH是按照偏移地址讀取數據),所以在NAND FLASH的核心板,我們需要把對應的幾個設備樹文件拼接成一個文件(按照固定的偏移大小拼接),我們在4.1.15的內核里面提供了這個拼接程序,衛浴內核源碼的“arch/arm/boot/dts”目錄下,文件名字是“create_dtb”,如下圖所示:


我們拷貝該文件到5.4.3內核的“arch/arm/boot/dts”目錄下面,如下圖所示:

然后我們使用“chmod 777 create_dtb”命令,給文件“create_dtb”可執行權限,運行結果如下圖所示:

然后我們回到5.4.3內核源碼的根目錄下,如下圖所示:

然后我們修改內核編譯腳本(在里面添加設備樹文件的編譯),我們添加下面的腳本到“create.sh”腳本里面:
make topeet_emmc_4_3.dtb
make topeet_emmc_5_0.dtb
make topeet_emmc_7_0.dtb
make topeet_emmc_1024x600.dtb
make topeet_emmc_9_7.dtb
make topeet_emmc_10_1.dtb
make topeet_emmc_hdmi.dtb

make topeet_nand_4_3.dtb
make topeet_nand_5_0.dtb
make topeet_nand_7_0.dtb
make topeet_nand_1024x600.dtb
make topeet_nand_9_7.dtb
make topeet_nand_10_1.dtb
make topeet_nand_hdmi.dtb

cd ./arch/arm/boot/dts/
./create_dtb imx6ul_topeet_nand.dtb topeet_nand_4_3.dtb topeet_nand_7_0.dtb topeet_nand_10_1.dtb topeet_nand_1024x600.dtb topeet_nand_5_0.dtb topeet_nand_9_7.dtb topeet_nand_hdmi.dtb
上面的腳本主要是使用make命令編譯出對應的設備樹文件(比如我們要編譯“topeet_emmc_4_3.dts”這個設備樹文件,那我們直接輸入“make topeet_emmc_4_3.dtb”命令即可,其它設備樹文件的編譯與此類似,這里不再一一描述)。編譯出所有的設備樹文件(EMMC存儲和NAND FLASH存儲)以后,我們使用“./create_dtb imx6ul_topeet_nand.dtb topeet_nand_4_3.dtb topeet_nand_7_0.dtb topeet_nand_10_1.dtb topeet_nand_1024x600.dtb topeet_nand_5_0.dtb topeet_nand_9_7.dtb topeet_nand_hdmi.dtb”命令把NAND FLASH的設備樹文件拼接成一個文件,即“topeet_nand_hdmi.dtb”文件(也就是上面添加的腳本的最后一條)。添加完以后的腳本如下圖所示:
添加完成設備樹的編譯腳本以后,我們直接運行內核編譯腳本“./create.sh”開始編譯內核和設備樹,如下圖所示:
編譯過程如下圖所示:
我們可以看到在“arch/arm/boot”目錄下生成了“zImage”內核鏡像,在“arch/arm/boot/dts”目錄下生成了設備樹文件:如下圖所示:
接下來我們開始燒寫編譯生成的鏡像到i.MX6ULL終結者開發板。Uboot我們依然使用開發板光盤資料里面的“i.MX6UL終結者光盤資料\08_開發板系統鏡像\01_Uboot”目錄下的對應鏡像,文件系統我們使用“i.MX6UL終結者光盤資料\08_開發板系統鏡像\03_文件系統鏡像\03_Yocto文件系統”目錄下的對應文件系統鏡像。內核和設備樹我們根據自己使用的核心板類型(工業級或商業級),選擇5.4.3內核編譯生成的對應鏡像和設備樹文件(關于i.MX6ULL終結者開發板鏡像的燒寫,大家可以參考開發板使用手冊的:第六章 I.MX6ULL鏡像燒寫)。這里我們不在詳細介紹。
使用MFG燒寫完成以后,如果我們有4.3寸屏,可以連接好4.3寸屏幕(內核默認的設備樹配置支持4.3寸屏顯示),然后開發板正常啟動,我們可以看到串口的打印的內核啟動信息,如下圖所示:
從上圖我們可以看到內核的版本是5.4.3。文件系統起來以后,我們也可以在調試串口輸入“uname -a”命令,查看系統版本的信息,運行結果如下圖所示:
從上圖我們同樣也可以看到內核的版本是5.4.3。同時我們可以看到4.3寸屏幕也會有QT綜合例程在運行,由于默認的內核沒有配置觸摸驅動,我們可以使用鼠標來操作。在后續的章節我們將會逐步完善開發板上的外設驅動。
至此基于官方5.4.3的內核經過我們的修改,編譯,已經可以在迅為電子的iMX6ULL終結者開發板上運行起來了。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区在线免费观看 | k8久久久一区二区三区 | 国产精品久久久久国产a级 欧美日韩国产免费 | 亚洲欧美激情视频 | 欧美激情精品久久久久久 | 97免费视频在线观看 | 一级黄色片毛片 | 伊人春色在线 | 午夜久久久久久久久久一区二区 | 国产成人精品视频在线观看 | 国产高清免费在线 | 国产高清视频一区 | 99re6在线 | 午夜激情影院 | 黄色日本片 | 自拍偷拍中文字幕 | 青娱乐av| 插插插干干干 | 欧美一区二区三区在线免费观看 | 中文字幕四虎 | 国产精品黄色 | 毛片a级毛片免费播放100 | 狠狠的干| 国产精品美女久久久久久久网站 | 免费观看一区二区三区毛片 | 九色 在线 | 免费黄色成人 | 日日摸日日爽 | 亚洲欧美日韩精品久久亚洲区 | 欧美精品一区二区三区在线 | 激情婷婷成人 | 一区二区三区亚洲精品国 | 一区二区三区欧美 | 久久久久久国产精品久久 | 国产探花| 一区二区免费高清视频 | av中文字幕网 | 欧美激情精品久久久久 | 久久久tv| 日韩欧美三区 | 操网站|