最近換了新的筆記本,就把老的筆記本裝了ubuntu,使用體驗(yàn)比虛擬機(jī)好很多,就算是老筆記本的配置,帶個(gè)ubuntu還是非常流暢的,就是要重新配置環(huán)境,這篇文章就來記錄下環(huán)境配置。
| 交叉編譯器安裝
交叉編譯參考交叉編譯器安裝這篇推文,具體步驟記錄得非常清楚。想要獲取當(dāng)前路徑,可以使用 pwd 命令:
| uboot編譯
uboot編譯參照uboot初探這篇推文,里邊有相關(guān)介紹和操作,這里就不做過多介紹。
| 從網(wǎng)絡(luò)啟動(dòng) Linux 系統(tǒng)
可以通過從網(wǎng)絡(luò)啟動(dòng)Linux系統(tǒng)這篇文章了解相關(guān)內(nèi)容,在ubuntu20中查看ip地址可以使用 ip addr查看,在win11中可以使用ipconfig查看ip,在保證網(wǎng)線接到同一局域網(wǎng)中,還需要配置uboot才能ping通win11和win11,win11需要關(guān)閉防火墻,配置如下:
setenvipaddr192.168.2.50//開發(fā)板IP地址 setenvethaddrb81d:01:00:00//開發(fā)板網(wǎng)卡MAC地址 setenvgatewayip192.168.2.1//開發(fā)板默認(rèn)網(wǎng)關(guān) setenvnetmask255.255.255.0//開發(fā)板子網(wǎng)掩碼 setenvserverip192.168.2.55/服務(wù)器地址,也就是Ubuntu地址 saveenv//保存環(huán)境變量
配置完后再重啟開發(fā)板,再ping通win11和ubuntu,確保它們都在同一局域網(wǎng)下面。最后再搭建TFTP服務(wù),測(cè)試linux能否正常通過網(wǎng)絡(luò)啟動(dòng)。
測(cè)試啟動(dòng)
1、設(shè)置環(huán)境變量
進(jìn)入uboot中,輸入下面配置:
setenvbootargs'console=ttymxc0,115200root=/dev/mmcblk1p2rootwaitrw' setenvbootcmd'tftp80800000zImage;tftp83000000imx6ull-14x14-evk-emmc.dtb;bootz80800000-83000000' saveenv
2、下載文件
進(jìn)入uboot中,輸入下面命令:
tftp80800000zImage tftp83000000imx6ull-14x14-evk-emmc.dtb
3、啟動(dòng)內(nèi)核
進(jìn)入uboot中,輸入下面命令:
bootz80800000-83000000
| 編譯內(nèi)核
內(nèi)核的編譯可以參考移植內(nèi)核這篇推文,里邊有相關(guān)內(nèi)容介紹及實(shí)現(xiàn)過程等。
內(nèi)核編譯配置如下:
#!/bin/sh #編譯之前先清理 makeARCH=armCROSS_COMPILE=arm-linux-gnueabihf-distclean #配置Linux內(nèi)核 makeARCH=armCROSS_COMPILE=arm-linux-gnueabihf-imx_v7_mfg_defconfig #編譯Linux內(nèi)核 makeARCH=armCROSS_COMPILE=arm-linux-gnueabihf-all-j16
最終會(huì)生成一個(gè)很重要的文件,就是zImage文件,下方是它存放在系統(tǒng)中的詳細(xì)路徑:
Linux內(nèi)核鏡像文件: 存放路徑為arch/arm/boot/zImage IMX6ULL EVK開發(fā)板對(duì)應(yīng)的設(shè)備樹文件: 存放路徑為arch/arm/boot/dts/imx6ull-14x14-evk.dtb
| 編譯根文件系統(tǒng)
根文件系統(tǒng)相關(guān)知識(shí)可以借鑒根文件系統(tǒng)構(gòu)建這篇推文,詳細(xì)介紹了如何從零到一構(gòu)建一個(gè)根文件系統(tǒng)。
uboot配置:
setenvbootargs'console=ttymxc0,115200root=/dev/nfsnfsroot=192.168.2.55:/home/noah/linux/nfs/rootfs,proto=tcprwip=192.168.2.50192.168.2.1off' saveenv
如果遇到根文件掛載失敗的,可以借鑒以下下面的方法:
原因:因?yàn)閡buntu的nfs版本為version4,而板子的nfs版本為version2,所以直接掛載上去無(wú)法識(shí)別
解決方法:在 /etc/default/nfs-kernel-server的最后一行添加以下代碼:
RPCNFSDOPTS="--nfs-version2,3,4--debug--syslog"
具體看下圖(使用命令:sudo gedit nfs-kernel-server):
| 新字符驅(qū)動(dòng)
字符驅(qū)動(dòng)可以借鑒新字符設(shè)備驅(qū)動(dòng)模板這篇文章,里邊有完整的相關(guān)說明及源代碼;從官方下載了Linux kernel源碼進(jìn)行編譯,遇到如下錯(cuò)誤:
cc1: error: code model kernel does not support PIC mode 解決方法:打開官方內(nèi)核源碼,在Makefile中對(duì)應(yīng)修改一下:
ARCH?=arm CROSS_COMPILE?=arm-linux-gnueabihf- #Architectureaspresentincompile.h UTS_MACHINE:=$(ARCH) SRCARCH:=$(ARCH) 和 KBUILD_CFLAGS:=-Wall-Wundef-Wstrict-prototypes-Wno-trigraphs -fno-strict-aliasing-fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89-fno-pie
圖片如下:
最后加載驅(qū)動(dòng),然后測(cè)試應(yīng)用程序,到此驅(qū)動(dòng)開發(fā)環(huán)境基本搭建完成!
審核編輯:劉清
-
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
593瀏覽量
27397 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
917瀏覽量
28196 -
Uboot
+關(guān)注
關(guān)注
4文章
125瀏覽量
28230 -
TFTP協(xié)議
+關(guān)注
關(guān)注
0文章
5瀏覽量
5496 -
Ubuntu系統(tǒng)
+關(guān)注
關(guān)注
0文章
91瀏覽量
3939
原文標(biāo)題:i.MX6ULL|快速配置環(huán)境
文章出處:【微信號(hào):玩轉(zhuǎn)單片機(jī),微信公眾號(hào):玩轉(zhuǎn)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論