文章目錄
下文所使用到的一些工具下載,提取碼:rdw7
一、Windows、Ubuntu和開發板的網絡設置(橋接方式)
將電腦和開發板通過網線連接到路由器上,如下圖所示,要確保三者處於同一個局域網。
1.1、VMWare設置 - 有線網卡
VMWare選擇橋接模式,方法如下:
在橋接模式中選擇有線網卡(最好直接禁用windows的wifi網卡,不易混淆),如下圖操作:
1.2、三者IP設置
Windows的有線網卡IP、ubuntu的IP、開發板的IP,三個IP必須處於同一網段。
- 設置Windows IP【192.168.10.101】
Windows的IP一般都是由路由器DHCP自動分配的,在命令行執行:ipconfig
,查看它的IP。
爲了防止IP頻繁更改,我們將IP設置爲固定IP,設置方法如下:
- 設置Ubuntu IP 【192.168.10.102】
Ubuntu的IP一般都是自動分配的,在命令行執行:ifconfig
,查看它的IP。
同windows一樣,爲了防止IP頻繁更改,我們將IP設置爲固定IP,設置方法如下:
然後保存,關閉再打開網絡連接即可。【需要提醒的一點,關閉再打開之後會看到子網掩碼變成24,這是正常的】
- 設置開發板IP(進入u-boot) 【192.168.10.103】
注意:設置開發板的IP之前,需要下載好U-boot並進入到開發板。【見1.1.4】
setenv ipaddr 192.168.10.103
setenv ethaddr 00:04:9f:04:d2:35
setenv gatewayip 192.168.10.1
setenv netmask 255.255.255.0
setenv serverip 192.168.10.102
saveenv
1.3、ping測試
一般windows有防火牆,Ubuntu或者開發板(運行Linux系統)PING Windows是PING不通的,這個不要緊,只要windows能PING通對方即可。注意,處於運行Uboot的開發板,不迴應PING數據,所以外界是PING不通UBOOT的,只能在UBOOT去PING別的電腦。由上述分析,我們只需測試兩個即可:Windows PING Ubuntu測試 和 u-boot PING Ubuntu測試。
- Windows PING Ubuntu測試
- u-boot PING Ubuntu測試
上面兩個都可以PING通,才能說明三者IP設置沒問題。
二、燒寫u-boot到開發板
2.1、確定SD卡分區
將SD卡通過讀卡器插入到PC【注:SD卡一定要是FAT32格式】,並接入到Ubuntu下。
SD卡分區確定,只需在SD卡插入前後分別在Ubuntu終端輸入ls /dev/sd*
,對比新出現的分區,即是SD卡對應的分區。
eg:我的SD卡插入Ubuntu後出現了/dev/sdb 和 /dev/sdb1,那麼我的SD卡對應的燒寫分區就是
/dev/sdb
2.2、賦予imxdownload腳本權限
chmod 777 imxdownload
2.3、燒寫u-boot.bin到SD卡
./imxdownload u-boot.bin /dev/sdb
三、設置u-boot環境變量,通過 tftp下載zImage和設備樹文件
3.1、ubuntu安裝配置 tftp 服務器
在 Ubuntu 中執行以下命令安裝 TFTP 服務:
sudo apt-get install tftp-hpa tftpd-hpa
然後,創建 TFTP 服務器工作目錄(注意要賦予全部權限),並打開 TFTP 服務配置文件,如下:
mkdir -p /home/clay/tftpboot
sudo chmod 777 /home/clay/tftpboot
sudo vim /etc/default/tftpd-hpa
在配置文件/etc/default/tftpd-hpa
中,修改TFTP_DIRECTORY
和TFTP_OPTIONS
字段,示例如下:
最後重啓tftp服務器:
sudo service tftpd-hpa restart
3.2、驗證tftp服務器
將編譯好的zImage文件放入到ubuntu的/home/clay/tftpboot
目錄,並賦予zImage文件777
權限。
進入開發板的u-boot,輸入tftp 80800000 zImage
下載zImage文件。若如下圖所示,則表示zImage下載成功,tftp服務器搭建成功。
3.2、準備zImage和dtb文件,設置u-boot環境變量
3.2.1、準備zImage和dtb文件
將zImage文件和imx6ull-alientek-emmc.dtb文件放置到/home/clay/tftpboot
目錄,如下圖所示:
注:需要將dtb文件也賦予
777
權限
3.2.2、設置u-boot環境變量
將開發板上的撥碼開關設置爲SD卡啓動,插入SD卡到開發板,進入u-boot。然後設置以下環境變量:
setenv bootcmd 'tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000'
saveenv
四、設置u-boot環境變量,通過nfs掛載根文件系統
4.1、ubuntu安裝配置 nfs
首先,執行以下命令安裝 NFS 服務:
sudo apt-get install nfs-kernel-server
然後編輯/etc/exports 文件,添加 NFS 服務導出的工作目錄:
sudo vim /etc/exports
添加 NFS 目錄:下面以/home/clay/爲例,將其添加到/etc/exports 文件中, 如下:
/home/clay/nfs *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
最後,重啓 NFS 服務:
sudo service nfs-kernel-server restart
4.2、驗證nfs服務器
如果一切正常,可以在 Ubuntu 中測試 NFS 服務:
sudo mount -t nfs 127.0.0.1:/home/clay/nfs /mnt
這樣訪問/mnt
目錄和訪問/home/clay/nfs
目錄就是一樣的了
沒有問題後,取消掛載
sudo umount /mnt
4.3、準備根文件系統,設置u-boot環境變量
4.3.1、準備根文件系統
將rootfs.tar.bz2
文件放置到/home/clay/nfs/rootfs
目錄,然後輸入以下命令進行解壓:
tar -jxvf rootfs.tar.bz2
4.3.2、設置u-boot環境變量
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.10.102:/home/clay/nfs/rootfs ip=192.168.10.103:192.168.10.102:192.168.10.1:255.255.255.0::eth0:off'
saveenv
五、啓動開發板
如果當前在u-boot中,直接輸入boot
即可啓動Linux系統,否則按下開發板的復位鍵即可。
開發板啓動後如下圖所示: