首先根據(jù)這篇博客,保證自己的開發(fā)板與Ubuntu主機處于同一個網(wǎng)段,并且可以ping通
【IMX6ULL驅(qū)動開發(fā)學習】03.設(shè)置IMX6ULL開發(fā)板與虛擬機在同一網(wǎng)段
1. 在uboot中設(shè)置網(wǎng)絡(luò)
首先啟動自己的板子進入Linux系統(tǒng),使用 ifconfig 命令或者 ifconfig -a 命令查看自己網(wǎng)卡的地址
ifconfig
ifconfig -a
我的網(wǎng)卡地址是這個
52:15:66:2E:16:71
重啟板子,uboot倒計時時,按任意鍵進入uboot
設(shè)置 ethaddr
setenv ethaddr 52:15:66:2E:16:71
接著設(shè)置自己的ip
setenv ipaddr 192.168.1.100
設(shè)置服務(wù)器ip
setenv serverip 192.168.1.200
保存變量
saveenv
重啟后按任意鍵進入uboot
測試ping命令
Hit any key to stop autoboot: 0
=> ping 192.168.1.200
FEC1 Waiting for PHY auto negotiation to complete.... done
Using FEC1 device
host 192.168.1.200 is alive
=>
出現(xiàn)這兩句,就說明網(wǎng)絡(luò)通了
Using FEC1 device
host 192.168.1.200 is alive
2. 服務(wù)器端設(shè)置tftp服務(wù),拷貝內(nèi)核與設(shè)備樹到tftp目錄
安裝tftp服務(wù)端
sudo apt install tftpd-hpa
在家目錄下新建tftp共享文件夾
mkdir tftpboot
chmod 777 tftpboot
設(shè)置 /etc/default/tftpd-hpa 文件
主要設(shè)置 TFTP_DIRECTORY=“/home/me/tftpboot”,設(shè)置tftp共享目錄
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/me/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"
#TFTP_OPTIONS="--secure"
將內(nèi)核文件和設(shè)備樹文件復制到tftp共享目錄下
zImage 的路徑 /home/…/…/Linux內(nèi)核文件/arch/arm/boot/
dtb 的路徑 /home/…/…/Linux內(nèi)核文件/arch/arm/boot/dts
cp zImage /home/me/tftpboot
cp ***.dtb /home/me/tftpboot
重啟tftp服務(wù)
sudo service tftpd-hpa restart
3. 設(shè)置nfs服務(wù)器
Ubuntu主機端確保虛擬機打開nfs服務(wù)
首先安裝nfs服務(wù)
sudo apt-get install nfs-kernel-server rpcbind
配置nfs共享目錄
sudo gedit /etc/exports
/etc/exports 文件最后添加一行(根據(jù)自己的文件路徑而定)
/home/me/imx6ull_nfs *(rw,sync,no_root_squash,no_subtree_check)
表示 /home/me/imx6ull_nfs 目錄下的文件都可以被掛載共享,* 表示可以可以被所有的服務(wù)器掛載,而不是只能共享給一個服務(wù)器
執(zhí)行以下命令使配置生效
sudo exportfs -r
最后一步,將你自己的文件系統(tǒng)拷貝到你的nfs共享目錄下**(注意要是解壓后的根文件系統(tǒng)哦)**
4. 測試手動從tftp服務(wù)器加載內(nèi)核 & 設(shè)備樹
啟動開發(fā)板,按任意鍵進入uboot命令行
(1)加載內(nèi)核
tftp 80800000 zImage
(2)加載設(shè)備樹
tftp 83000000 imx6ull-alientek-emmc.dtb
(3)啟動內(nèi)核和設(shè)備樹
(bootz用于啟動zImage和ext4文件系統(tǒng),
? 命令格式:bootz 內(nèi)核地址 文件系統(tǒng)地址 設(shè)備樹地址
? 如果內(nèi)存中沒有文件系統(tǒng)則用 - 代替)
bootz 80800000 - 83000000
(4)測試成功,設(shè)置ubootcmd(這是uboot倒計時后要后執(zhí)行的命令)
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000'
保存變量
saveenv
5. 使用NFS掛載根文件系統(tǒng)
第4步操作中,我們加載了內(nèi)核與設(shè)備樹,之后就會開始啟動內(nèi)核,那根文件系統(tǒng)呢?
根文件系統(tǒng)的加載需要在uboot中設(shè)置 bootargs,bootargs是傳遞給內(nèi)核的參數(shù),
告訴內(nèi)核從哪里加載根文件系統(tǒng)、IP、控制臺等等
原本的 bootargs
=> print bootargs
bootargs=console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw
輸入以下命令修改bootargs
(將 root=/dev/mmcblk1p2 改成 root=/dev/nfs nfsroot=192.168.1.200:/home/me/imx6ull_nfs)
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.1.200:/home/me/imx6ull_nfs rootwait rw'
保存變量
saveenv
============================
PS:博客經(jīng)過了幾次修改,后面這些是暫時被刪除的部分,因為怕后面需要,所以就先放在這里,讀者不用管
輸入 pri 查看當前uboot內(nèi)的變量,把 ubootargs 和 ubootcmd 先保存下來
用于之后恢復原值
(1)設(shè)置 ubootargs
setenv bootargs 'console=tty0 console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
console用來設(shè)置 linux 終端(或者叫控制臺),也就是通過什么設(shè)備來和Linux進行交互,是串口還是屏幕?
這里設(shè)置console為ttymxc0,因為linux啟動以后I.MX6ULL 的串口1在linux下的設(shè)備文件就是/dev/ttymxc0,115200是串口的波特率
= - = - = - = - = - = - =
root用來設(shè)置根文件系統(tǒng)的位置,root=/dev/mmcblk1p2 用于指明根文件系統(tǒng)存放在mmcblk1 設(shè)備的分區(qū) 2 中。
root 后面有rootwait rw,rootwait表示等待 mmc 設(shè)備初始化完成以后再掛載,否則的話mmc 設(shè)備還沒初始化完成就掛載根文件系統(tǒng)會出錯的。rw表示根文件系統(tǒng)是可以讀寫的。
(2)設(shè)置ubootcmd(Uboot倒計時后要后執(zhí)行的命令)
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000'
最后保存變量,然后重啟uboot
saveenv
重啟文章來源地址http://www.zghlxwxcb.cn/news/detail-506598.html
boot
(3)測試
恢復 bootcmd 變量值,從emmc中啟動內(nèi)核和設(shè)備樹
setenv bootcmd 'run findfdt;mmc dev ${mmcdev};mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else run netboot; fi; fi; else run netboot; fi'
最后保存變量,然后重啟uboot文章來源:http://www.zghlxwxcb.cn/news/detail-506598.html
saveenv
重啟
boot
到了這里,關(guān)于【IMX6ULL驅(qū)動開發(fā)學習】10.設(shè)置uboot使用網(wǎng)絡(luò)加載zImage和dtb的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!