最近換了新的筆記本,就把老的筆記本裝了ubuntu,使用體驗比虛擬機好很多,就算是老筆記本的配置,帶個ubuntu還是非常流暢的,就是要重新配置環境,這篇文章就來記錄下環境配置。
| 交叉編譯器安裝
交叉編譯參考交叉編譯器安裝這篇推文,具體步驟記錄得非常清楚。想要獲取當前路徑,可以使用 pwd 命令:
| uboot編譯
uboot編譯參照uboot初探這篇推文,里邊有相關介紹和操作,這里就不做過多介紹。
可以通過從網絡啟動Linux系統這篇文章了解相關內容,在ubuntu20中查看ip地址可以使用 ip addr查看,在win11中可以使用ipconfig查看ip,在保證網線接到同一局域網中,還需要配置uboot才能ping通win11和win11,win11需要關閉防火墻,配置如下:
setenvipaddr192.168.2.50//開發板IP地址 setenvethaddrb81d:01:00:00//開發板網卡MAC地址 setenvgatewayip192.168.2.1//開發板默認網關 setenvnetmask255.255.255.0//開發板子網掩碼 setenvserverip192.168.2.55/服務器地址,也就是Ubuntu地址 saveenv//保存環境變量
配置完后再重啟開發板,再ping通win11和ubuntu,確保它們都在同一局域網下面。最后再搭建TFTP服務,測試linux能否正常通過網絡啟動。
測試啟動
1、設置環境變量
進入uboot中,輸入下面配置:
setenvbootargs'console=ttymxc0,115200root=/dev/mmcblk1p2rootwaitrw' setenvbootcmd'tftp80800000zImage;tftp83000000imx6ull-14x14-evk-emmc.dtb;bootz80800000-83000000' saveenv
2、下載文件
進入uboot中,輸入下面命令:
tftp80800000zImage tftp83000000imx6ull-14x14-evk-emmc.dtb
3、啟動內核
進入uboot中,輸入下面命令:
bootz80800000-83000000
| 編譯內核
內核的編譯可以參考移植內核這篇推文,里邊有相關內容介紹及實現過程等。
內核編譯配置如下:
#!/bin/sh #編譯之前先清理 makeARCH=armCROSS_COMPILE=arm-linux-gnueabihf-distclean #配置Linux內核 makeARCH=armCROSS_COMPILE=arm-linux-gnueabihf-imx_v7_mfg_defconfig #編譯Linux內核 makeARCH=armCROSS_COMPILE=arm-linux-gnueabihf-all-j16
最終會生成一個很重要的文件,就是zImage文件,下方是它存放在系統中的詳細路徑:
Linux內核鏡像文件: 存放路徑為arch/arm/boot/zImage IMX6ULL EVK開發板對應的設備樹文件: 存放路徑為arch/arm/boot/dts/imx6ull-14x14-evk.dtb
| 編譯根文件系統
根文件系統相關知識可以借鑒根文件系統構建這篇推文,詳細介紹了如何從零到一構建一個根文件系統。
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
如果遇到根文件掛載失敗的,可以借鑒以下下面的方法:
原因:因為ubuntu的nfs版本為version4,而板子的nfs版本為version2,所以直接掛載上去無法識別
解決方法:在 /etc/default/nfs-kernel-server的最后一行添加以下代碼:
RPCNFSDOPTS="--nfs-version2,3,4--debug--syslog"
具體看下圖(使用命令:sudo gedit nfs-kernel-server):
| 新字符驅動
字符驅動可以借鑒新字符設備驅動模板這篇文章,里邊有完整的相關說明及源代碼;從官方下載了Linux kernel源碼進行編譯,遇到如下錯誤:
cc1: error: code model kernel does not support PIC mode 解決方法:打開官方內核源碼,在Makefile中對應修改一下:
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
圖片如下:
最后加載驅動,然后測試應用程序,到此驅動開發環境基本搭建完成!
審核編輯:劉清
-
Linux系統
+關注
關注
4文章
594瀏覽量
27441 -
虛擬機
+關注
關注
1文章
919瀏覽量
28269 -
Uboot
+關注
關注
4文章
125瀏覽量
28256 -
TFTP協議
+關注
關注
0文章
5瀏覽量
5512 -
Ubuntu系統
+關注
關注
0文章
91瀏覽量
3993
原文標題:i.MX6ULL|快速配置環境
文章出處:【微信號:玩轉單片機,微信公眾號:玩轉單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論