【正點原子I.MX6ULL驅動開發學習筆記】一、基礎環境搭建,快速啓動開發板


下文所使用到的一些工具下載,提取碼: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_DIRECTORYTFTP_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系統,否則按下開發板的復位鍵即可。

開發板啓動後如下圖所示:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章