小时的速度
8.1 傳輸文件的多種方法
在嵌入式開發中,涉及交叉編譯:在 PC 上編譯,在開發板上運行。所以就涉及 PC 和開發板之間的文件
傳輸,方法有多種:網絡傳輸、串口傳輸、USB 傳輸,當然,還有最笨的方法:U 盤拷貝。
一般的日常開發流程為:
a. 在 Windows 上閱讀修改代碼,然后通過 FileZilla 把代碼傳到 VMWare 中的 Ubuntu;
b. 在 Ubuntu 上編譯程序;
c. 把程序下載到開發板上,運行驗證,
d. 在 Windows 下通過串口操作開發板。
所以在 Windows、Ubuntu、開發板三者間,兩兩之間都存在文件的傳輸。
當然,有人不喜歡 Windows,PC 只用純 Linux,這些高手已經熟練掌握各種 Linux 命令,不再存在文件傳輸的障礙。
總之,各種需求都存在,比如某些筆記本沒有網口,那可以使用 USB 線連接開發板,開發板模擬出網卡;在工地上網口、USB 口統統沒有,那我們還可以使用串口。
我們會一一列舉,作為初學者,不需要驗證全部章節,選擇合適你的即可。
8.2 在 Windows 上通過串口和開發板傳輸文件
如果只是偶爾傳輸小文件,可以直接使用串口。
注意:在開發過程中,使用 NFS 是最方便的。
8.2.1 用 MobaXterm 打開串口、啟動開發板
這不用介紹了吧。
8.2.2 使用 rz 命令通過串口下載 Windows 文件到開發板上
可以在開發板上使用 rz 命令,將 PC 上的文件傳輸到開發板。
請參考《5.3.2 使用rz命令通過串口下載Windows文件到開發板上》
8.2.3 使用 sz 命令讓開發板向 PC 發送文件
可以在開發板上使用 sz 命令,將開發板的文件上傳給PC。
請參考《5.3.3 使用 sz 命令通過串口把開發板文件上傳給 PC》。
8.3 通過 USB 給開發板傳文件
尚未實現。
8.4 安裝網絡服務
在嵌入式開發中,網絡服務帶來了很多便利,特別是 Ubuntu 上的 NFS 服務。使用 NFS 服務,開發板可以掛載 Ubuntu 上的某個目錄,假設開發板把 Ubuntu 上的/home/book 目錄掛載到自己的/mnt 目錄,那么在開發過程中,可以如此操作:
a. 在 Ubuntu 上的/home/book/abc 目錄中編譯程序
b. 開發板可以直接運行/mnt/abc 下的程序
在 Ubuntu 上編譯程序,開發板可以立刻執行程序,免去了上傳、下載等等繁瑣的操作。
Windows 推出了 WSL 子系統(Windows Subsystem for Linux),這確實是個很牛的產品。可惜它不支持NFS 服務,否則我們早就舍棄 Ubuntu 而采用 WSL 了。
當然,網絡服務不僅僅有 NFS,還有 TFTP、SSH 等服務。如果只是傳輸文件,可以使用 TFTP、SSH 等服務,比如:
a. 在 Ubuntu 啟動 TFTP 服務,開發板通過 tftp 命令和 Ubuntu 互傳文件;
b. 在 Windows 啟動 TFTP 服務,開發板通過 tftp 命令和 Windows 互傳文件;
c. 在開發板上啟動 SSH 服務,Windows 通過 FileZilla 登錄開發板,互傳文件。
上述場景各有其存在的道理:
如果開發板沒安裝 SSH 服務,那么就可以通過 tftp 命令使用 Ubuntu 或 Windows 的 TFTP 服務。
如果開發板安裝了 SSH 服務,那么使用 FileZilla 傳輸文件時是完全的 GUI 操作,非常方便。
開發、調試過程使用 Ubuntu 的 NFS 服務,這是最方便的。
NFS、TFTP、SSH 等服務,都是基于網絡的。開發板可以使用網線和電腦相連,也可以使用 USB OTG 線與電腦相連,后者通過虛擬的 USB 網卡使用網絡。
使用網線,還是使用 USB OTG 線?有網卡、有網線就用網線,沒有再選擇 USB OTG 線。
下面章節講解怎么安裝、配置各種服務,作為初學者建議先使用 NFS,其他的先不管。
8.4.1 在 Ubuntu 中安裝、配置 NFS
如果你使用的是我們提供的 Ubuntu,那么已經安裝好了 NFS 服務。查看一下/etc/export 的內容,就知道開發板可以掛載哪一個目錄。如果該文件中沒有指定目錄,請繼續往下看。
如果你的 Ubuntu 未安裝 NFS 服務,那么在確保 Ubuntu 可以上網的前提下,執行以下命令:
sudo apt-get install nfs-kernel-server
1
注意:如果 Ubuntu 無法上網,使用 VMware 橋接網絡時請參考《1.3 VMware 橋接網絡設置》,使用 VMware NAT 網絡或 Docker 時請參考《第四章 使用 NAT 配置 Ubuntu 網絡》和《第五章 安裝軟件及開發示例》。
然后,還得修改/etc/exports,添加類似以下的內容,下面的例子里允許開發板通過 NFS 訪問 Ubuntu的/home/book 目錄:
/home/book *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
1
最后,重啟 NFS 服務,在 Ubuntu 上執行以下命令:
sudo /etc/init.d/nfs-kernel-server restart
1
可以在 Ubuntu 上通過 NFS 掛載自己,驗證一下 NFS 可用:
sudo mount -t nfs -o nolock,vers=3 127.0.0.1:/home/book /mntls /mnt
1
再次重申:NFS 是一種網絡服務,開發板可以通過網線連接 Ubuntu 來使用 NFS 服務;甚至也可以通過USB OTG 線連接 Ubuntu,通過虛擬的 USB 網卡使用 NFS 服務。
8.4.2 Ubuntu 安裝 TFTP 服務
注意:使用 VMware NAT 網絡或 Docker 時,不需要在 Ubuntu 中安裝 TFTP 服務,而是在 Windows 運行tftpd64 程序。
在 Ubuntu 中執行以下命令安裝 TFTP 服務:
book@100ask:~$ sudo apt-get install tftp-hpa tftpd-hpa
1
然后,創建 TFTP 服務器工作目錄,并打開 TFTP 服務配置文件,如下:
book@100ask:~$ mkdir -p /home/book/tftpboot
book@100ask:~$ sudo chmod 777 /home/book/tftpboot
book@100ask:~$ sudo vim /etc/default/tftpd-hpa
1
2
3
在配置文件/etc/default/tftpd-hpa 中,添加以下字段:
TFTP_DIRECTORY="/home/book/tftpboot"
TFTP_OPTIONS="-l -c -s"
1
2
最后,重啟 TFTP 服務:
book@100ask:~$ sudo service tftpd-hpa restart
1
查看 tftp 服務是否在運行,運行如下命令,即可查看是否在后臺運行。
book@100ask:~$ ps –aux | grep “tftp”
1
在這里插入圖片描述
8.4.3 在 Windows 安裝 TFTP 服務
Windows 上的 TFTP 服務由一個應用程序 tftpd64 提供,下載后雙擊運行,再做些設置即可。tftpd64 的前身是 tftpd32,它是 32 位的程序。對于 64 位電腦,請使用 tftpd64。
tftpd64 的官網為:http://tftpd32.jounin.net/,建議下載“portable edition”版本,無需安裝直接運行。官網不好打開的話,直接百度搜“tftpd64”即可,它是免費軟件。
把“網盤配套資料\01_Tools (工具)\01_Tools.zip”解壓后,也有此工具。
tftpd64 的使用非常簡單,運行后只需要設置 3 步:
a. 選擇目錄(開發板將從這個目錄讀、寫文件)
b. 通過 IP 選擇網卡
有些電腦有多個網卡,選擇哪個網卡?使用 VMware 橋接網絡時請參考《1.3 VMware 橋接網絡設置》,使用 VMware NAT 網絡或 Docker 時請參考《第四章 使用 NAT 配置 Ubuntu 網絡》和《第五章 安裝軟件及開
發示例》。
在這里插入圖片描述
c. 設置防火墻,直接關閉防火墻;或是允許 tftpsever 使用網絡:
對于 Windows 10 可以按下圖操作,對于其他操作系統,請自行百度:
在這里插入圖片描述
8.5 沒有網卡時可以使用 OTG 虛擬 USB 網卡
如果你的電腦有網卡,請使用真實網卡。
如果你的電腦沒有網卡,那么用 USB 線連接 PC 和開發板的 USB OTG 口,開發板可以模擬出一個 USB 網卡。Windows 使用這個 USB 網卡比較復雜,我們一般是在 VMWare 中把它連接到 Ubuntu,讓開發板和 Ubuntu通過該虛擬網卡來交互。
8.5.1 安裝、設置虛擬 USB 網卡
再次聲明:電腦有真實網卡,建議使用真實網卡,那就不需要看本節內容。
開發板的 USB OTG 口通過 USB 線接到 Ubunut 時,開發板是 USB 從設備,開發板可以模擬 U 盤、USB 串口、USB 網卡;Ubuntu 看到的就是一個 U 盤、USB 串口或是 USB 網卡。Ubuntu 可以通過這樣的 USB 網卡跟
開發板進行網絡通信,反過來開發板當然也就可以通過這個 USB 網卡掛載 Ubunut 的 NFS 目錄。
開發板要安裝 USB 驅動程序以模擬 USB 網卡,Ubuntu 要安裝 USB 網卡驅動程序。幸運的是,Ubuntu 中自帶該 USB 網卡的驅動程序,并且會自動安裝驅動程序。
所以,我們要做的事情不多:
a. 在開發板上安裝 USB 驅動程序,它會在開發板里虛擬出網卡 usb0,需要設置 IP
b. 在 VMWare 上把虛擬網卡連接到 Ubuntu,在 Ubuntu 中設置 IP
8.5.1.1 在開發板上安裝 USB OTG 網卡模塊驅動程序并設置 IP
如下所示,我們需要先在開發板終端上執行“modprobe -f g_ether”來安裝驅動模塊程序,安裝成功的示意圖如下所示。
[root@imx6ull:~]# modprobe -f g_ether
1
在這里插入圖片描述
該驅動會給開發板模擬出網卡 usb0,使用以下命令設置其 IP,我們取 IP 為 10.10.70.1:
[root@imx6ull:~]# ifconfig usb0 10.10.70.1
1
sd
在安裝 g_ether 驅動時,開發板就已經模擬出了一個 USB 網卡。一旦連接開發板的 USB OTG 口到電腦,就相當于給電腦插上了一個 USB 網卡,設備管理器會自動識別到新的設備。
8.5.1.2 在 VMWare 中連接虛擬網卡設備至 Ubuntu 并設置 IP
如下圖所示,在開發板上安裝 g_ether 驅動并連接 USB OTG 線到 PC 上后,PC 會發現一個新的網卡。
我們需要讓 VMWare 把這個網卡連接到 Ubuntu 上,依次點擊“虛擬機”–>“可移動設備”–>“Netchip RNDIS/Ethernet Gadget”–> “連接(斷開與主機的連接)?”,如下圖所示:
在這里插入圖片描述
成功后,Ubuntu 系統下會多出一個新網卡,執行“ifconfig -a”命令查看網卡名,如下圖所示,新網卡名為“ens35u1”。
注意:不同系統上新網卡的名字可能不同,再次接插 USB OTG 線時 Ubuntu 中新網卡名也會變化。
在這里插入圖片描述
使用以下命令設置其 IP,我們取 IP 為 10.10.70.2:
book@100ask:~$ sudo ifconfig ens35u1 10.10.70.2
1
在這里插入圖片描述
8.5.1.3 測試網絡并使用 NFS 服務
分配完 IP 地址后,我們就可以通過 ping 命令來測試 Ubuntu 和開發板系統是否可以互通,測試命令如下所示。
在開發板 ping Ubuntu 的 IP:
[root@imx6ull:~]# ping -I usb0 10.10.70.2
1
在這里插入圖片描述
確認開發板和 Ubuntu 網絡互通后,就可以在開發板上掛載 Ubuntu 的 NFS 目錄來互傳文件了:
在這里插入圖片描述
8.5.1.4 常見問題
有時候你會發現開發板和 Ubuntu 無法 ping 通對方,多試幾次就可以:
a. 試試重新拔插 USB OTG 線
b. 試試在開發板上先禁止網卡,再啟用網卡,比如:
[root@imx6ull:~]# ifconfig usb0 down
[root@imx6ull:~]# ifconfig usb0 10.10.70.1
1
2
c. 試試在 Ubuntu 上先禁止網卡,再啟用網卡,假設虛擬網卡名為 ens35u1,可以試試這樣的命令:
book@100ask:~$ sudo ifconfig ens35u1 down
book@100ask:~$ sudo ifconfig ens35u1 10.10.70.2
1
2
注意:Ubuntu 上的虛擬網卡名不一定是 ens35u1,需要執行“ifconfig -a”命令確認。
8.6 使用網絡服務傳輸文件
8.6.1 開發板掛載 Ubuntu 的 NFS 目錄
開發板和 Ubuntu 之間網絡互通之后,就可以在兩者之間傳輸文件了。
開發板上不一定安裝有 FTP 服務、SSH 等服務,所以不一定能使用 FTP 等工具登錄開發板。
但是開發板的系統一般都自帶 mount 命令,并且支持 NFS 文件系統。所以可以在開發板上執行 mount 命令掛載 Ubuntu 的某個目錄。這樣就可以在開發板和 Ubuntu 之間傳文件了。
開發板使用 NFS 掛載 Ubuntu 的前提是:Ubuntu 中已經安裝了 NFS 服務,并且在/etc/exports 中配置了某個目錄供掛載。
使用 NAT 網絡時,確保開發板可以 ping 通 Windows 后,就可以通過 NFS 掛載 Ubuntu 中的某個目錄。
使用橋接網絡時,確保開發板可以 ping 通 Ubuntu 后,就可以通過 NFS 掛載 Ubuntu 中的某個目錄。
哪些目錄呢?請查看 Ubuntu 的/etc/exports 文件。
如果你使用的是VMware NAT方式,或是使用docker,假設Windows IP為192.168.1.100,在開發板上執行以下命令(注意:必須指定port為2049、mountport為9999):
[root@imx6ull:~]# mount -t nfs -o nolock,vers=3,port=2049,mountport=9999 192.168.1.100:/home/book/nfs_rootfs /mnt
[root@imx6ull:~]# cp /mnt/hello ./hello
1
2
如果你使用的是VMware橋接方式,假設Ubuntu IP為192.168.1.100,在開發板上執行以下命令:
[root@imx6ull:~]# mount -t nfs -o nolock,vers=3 192.168.1.100:/home/book/nfs_rootfs /mnt
[root@imx6ull:~]# cp /mnt/hello ./hello
1
2
如果一切正常,你可以在 Ubuntu 上把文件放到/home/book/nfs_rootfs 目錄中,在開發板上可以從/mnt目錄中訪問該文件。
8.6.2 開發板通過 tftp 傳輸 Ubuntu 文件
注意:使用 VMware NAT 網絡或 Docker,無法使用 tftp 命令訪問 Ubuntu,本節針對使用 VMware 橋接網絡。
注意:使用 VMware NAT 網絡或 Docker,可以使用 tftp 命令訪問 Windows,請參考《8.6.3 開發板通過 tftp 傳輸 Windows 文件》。
8.6.2.1 在開發板上使用 tftp 命令下載文件
首先確保你已經將要下載的文件上傳至 Ubuntu 系統中 tftp 服務的目錄內,如下圖所示我的 tftp 服務目錄內有 zImage 100ask_imx6ull-14x14.dtb 兩個文件,我的 Ubuntu 主機 IP 地址為 192.168.1.123。
在這里插入圖片描述
比如我要下載 Ubuntu 服務器下的 zImage 文件,則在開發板上執行如下命令。
[root@imx6ull:~]# tftp -g -r zImage 192.168.1.123
1
下載后的文件如下圖所示。
在這里插入圖片描述
8.6.2.2 在開發板上使用 tftp 命令上傳文件
比如我們現在開發板家目錄下創建一個 1.txt 的文本文件,然后寫入 111111…. :
在這里插入圖片描述
在這里插入圖片描述
然后在開發板上執行如下命令上傳此文件到 Ubuntu 服務器的 tftp 服務目錄下。
[root@imx6ull:~]# tftp -p -l 1.txt 192.168.1.123
1
此時我們查看 Ubuntu 服務器的 tftp 服務目錄下,即可看到之前在開發板上創建的 1.txt 。
在這里插入圖片描述
8.6.3 開發板通過 tftp 傳輸 Windows 文件
在 Windows 的 TFTP 服務由軟件 tftpd64.exe 實現,它無需安裝,解壓就可運行。
重要的是:需要設置防火墻,請參考《8.4.3 在 Windows 安裝 TFTP 服務》。
首先啟動 tftpd64.exe,設置好文件目錄,選擇 IP。假設該 IP 為 192.168.1.99。那么開發板可以使用tftp 命令向該 IP 上傳文件,或是下載文件。
在這里插入圖片描述
8.6.3.1 在開發板上使用 tftp 命令下載文件
首先確保你已經將要下載的文件放入 Windows 中上圖所選的目錄里,比如 zImage。
然后可以在開發板上執行如下命令(假設 Windows Ip 是 192.168.1.99):
[root@imx6ull:~]# tftp -g -r zImage 192.168.1.99
1
這就會從 Windows 下載文件,效果如下圖:
在這里插入圖片描述
下載后的文件保存在開發板的當前目錄下,如下圖所示:
在這里插入圖片描述
8.6.3.2 在開發板上使用 tftp 命令上傳文件
比如我們想把/boot/zImage 文件上傳到 Windows(假設 IP 為 192.168.1.99),可以在開發板上執行如下命令:
[root@imx6ull:~]# cd /boot
[root@imx6ull:/boot]# tftp -p -l zImage 192.168.1.99
1
2
效果如下圖:
在這里插入圖片描述
8.6.4 在 Windows 上通過 FileZilla 和開發板傳輸文件
Windows 和開發板之間可以通過 TFTP 服務,或是 SSH 服務傳輸文件。前者需要在開發板上輸入 tftp 命令,后者可以在純 GUI 界面操作。
100ASK_IMX6ULL 自帶的 Linux 系統中,已經安裝并開啟了 SSH 服務,所以只要網絡聯通,就可以通過FileZilla 和開發板傳輸文件。
注意:在開發過程中,使用 NFS 是最方便的。
8.6.4.1 確保 Windows 和開發板之間網絡聯通
假設 Windows 和開發板之間網絡已經聯通,可以通過下列方法確認。
確定開發板 IP,假設為 192.168.1.100:
使用串口連接開發板,執行 ifconfig 命令查看或是配置 IP,如下圖所示:
在這里插入圖片描述
在 Windows 命令行 ping 開發板,確保網絡聯通:
啟動 Windows 命令行,執行 ping 192.168.1.100,如果下圖所示:
在這里插入圖片描述
8.6.4.2 啟動 FileZilla 連接開發板
在 FileZilla 中輸入開發板的 IP,輸入用戶名 root,輸入端口號 22,就可以回車連接開發板了,如下圖:
在這里插入圖片描述
第一次連接開發板時,會有如下提示:
在這里插入圖片描述
連接成功后,就可以直接拖動文件進行傳輸了:
在這里插入圖片描述
8.7 開發板使用 NFS 根文件系統
注意:所謂根文件系統就是類似 Windows 的 C 盤,里面存放有必須的 APP、庫文件、配置文件。通過 NFS可以把 Ubuntu 的某個目錄,當作板子的“C 盤”──Linux 中稱之為根文件系統。
Buildroot編譯完成之后生成的rootfs.tar.bz2,可以解壓之后放到NFS服務器上作為NFS ROOT文件系統供開發板使用。使用NFS文件系統,便于程序的開發調試。所謂NFS服務器,就是我們在VMWare上運行的Ubuntu。
使用NFS根文件文件系統之前時,我們一般還會在u-boot使用tftpboot命令從Ubuntu或Windows中下載內核文件zImage和設備樹文件,所以:
① 使用VMware橋接網絡時:
Ubuntu上既要配置NFS服務,也要配置TFTP服務。
① 使用VMware NAT網絡或Docker時:
Ubuntu上要配置NFS服務,Windows要運行tftpd64程序。
對于Ubuntu,如果你按照《5.2 安裝Ubuntu軟件》來安裝過Ubuntu的軟件,那么NSF和TFTP服務都安裝好了。
也可以手工安裝這些服務,請參考《8.4.1 在Ubuntu中安裝、配置NFS》安裝NFS服務,參考《8.4.2 Ubuntu安裝TFTP服務》安裝TFTP服務。
8.7.1 準備好文件
使用NFS根文件系統時,涉及3個文件:uImage、設備樹(比如stm32mp157c-100ask-512d-lcd-v1.dtb)、rootfs.tar.bz2(解壓到Ubuntu某個目錄,比如/home/book/nfs_rootfs)。
在U-Boot中通過tftpboot命令從Ubuntu/Windows中下載內核文件uImage、stm32mp157c-100ask-512dlcd-v1.dtb, 設置Uboot啟動參數使用Ubuntu的某個目錄(比如/home/book/nfs_rootfs)作為根文件系統。
拷貝內核和設備樹文件到 tftp 目錄:
如果使用 VMware 橋接網絡,將出廠鏡像或者自行編譯的 zImage 和設備樹文件 100ask_imx6ull-14x14.dtb,拷貝到 Ubuntu 的 /home/book/tftpboot 目錄。
如果使用 VMware NAT 網絡或 Docker,需要把這些文件復制到 Windows tftpd64 程序所指定的目錄。
把根文件系統壓縮包解壓到 NFS 目錄:
把使用 buildroot 構建得到的根文件系統 rootfs.tar.bz2(在 buildroot2019.02/output/images 目錄
下),復制、解壓到 Ubuntu 的/etc/exports 文件中指定的目錄里,即復制到/home/book/nfs_rootfs 目錄
下,并解壓(注意:解壓時要用 sudo):
book@100ask:~/100ask_stm32mp157_pro-sdk/Buildroot_2020.02.x/output/images $ cp -rf rootfs.tar ~/nfs_rootfs/
book@100ask: ~/100ask_stm32mp157_pro-sdk/Buildroot_2020.02.x/output/images$ cd ~/nfs_rootfs
book@100ask:~/nfs_rootfs$ sudo tar xjf rootfs.tar
1
2
3
8.7.2 進入 uboot 界面
使用 mobaxterm 工具打開開發板串口,此時將開發板上電,在打印 u-boot 時按下任意鍵進入 uboot 界面。
在這里插入圖片描述
8.7.2.1 測試開發板與 Ubuntu/Windows 是否聯通 (1) 如果使用 VMware 橋接網絡
查看 Ubuntu 系統 IP 地址,如下圖所示在 Ubuntu 系統終端里使用 ifconfig 查看所有網絡設備的信息,獲取到當前網卡設備的 IP 地址為 192.168.1.15 (也就意味著改 IP 地址的網段是 192.168.1.1)
在這里插入圖片描述
先在 u-boot 中設置開發板 IP 為 192.168.1.112,然后在 u-boot 中使用 ping 命令測試開發板與 Ubuntu系統是否連通(出現“alive”就表示聯通):命令如下:
=> setenv ipaddr 192.168.1.112
=> ping 192.168.1.158
1
2
如果提示 host is alive 就表示開發板和 Ubuntu 系統可以互通,截圖示例如下所示。
在這里插入圖片描述
(2) 如果使用 VMware NAT 網絡或 Docker
只需要確保開發板和 Windows 的網絡是聯通的,在 Windows 命令行中執行“ipconfig”確定 Windows IP,然后在 Uboot 中 ping Windows IP。
可能由于防火墻或殺毒軟件的原因導致 Uboot 無法 ping 通 Windows,那也沒關系,繼續往下走,有問題再說。
注意:板子正在運行 Uboot 時,Windows 是無法 ping 通開發板,因為 Uboot 的網絡功能不完善。如果想通過 Windows ping 開發板來驗證網絡,可以讓開發板啟動進入 Linux 后再去 ping 開發板。
如果有網絡問題,請參考:
《第 2 篇 環境搭建、Linux 基本操作、工具使用》
《6.4 驗證開發板網絡》
8.7.2.2 使用網絡啟動文件系統
注意:Uboot 只能使用 eth0,網線必須接入 eth0,如下:
在這里插入圖片描述
(1) 對于使用 VMware NAT 網絡或 Docker
先在 Windows 啟動 tftpd64,并在該程序所指定目錄里放入 zImage 和設備樹文件。
再在 Ubuntu 的/home/book/nfs_rootfs 目錄下解壓好根文件系統。
然后在 U-Boot 控制臺執行以下命令啟動單板,假設 Windows IP 是 192.168.1.100:
=> setenv serverip 192.168.1.100 //設置服務器的 IP 地址,這里指的是 Windows IP
=> setenv ipaddr 192.168.1.112 //設置開發板的 IP 地址。
=> tftpboot 0xc4000000 stm32mp157c-100ask-512d-lcd-v1.dtb; tftpboot c4100000 uImage; setenv
bootargs root=/dev/nfs
nfsroot=192.168.1.158:/home/book/nfs_rootfs,vers=3,tcp,port=2049,mountport=9999 rw ip=dhcp;
bootm c4100000 - 0xc4000000
1
2
3
4
5
6
要注意的是上面第 4 條命令,必須指定“port=2049,mountport=9999”,這樣才能訪問到 Ubuntu 的 NFS目錄。
(2) 對于使用 VMware 橋接網絡
先在 Ubuntu 的 TFTP 目錄中放入 zImage 和設備樹文件,再在/home/book/nfs_rootfs 目錄下解壓好根文件系統。
然后在 U-Boot 控制臺執行以下命令啟動單板,假設 Ubuntu IP 是 192.168.1.224:
=> setenv serverip 192.168.1.158 //設置服務器的 IP 地址,這里指的是 Ubuntu 主機 IP
=> setenv ipaddr 192.168.1.112 //設置開發板的 IP 地址。
=> tftpboot 0xc4000000 stm32mp157c-100ask-512d-lcd-v1.dtb; tftpboot c4100000 uImage; setenv
bootargs root=/dev/nfs nfsroot=192.168.1.158:/home/book/nfs_rootfs,vers=3 rw ip=dhcp; bootm
c4100000 - 0xc4000000
1
2
3
4
5
在這里插入圖片描述
-end-
全文下載:
嵌入式Linux系統開發完全手冊 第二版
線上教學網站:
https://www.100ask.net/index
百問網開發板:
https://weidongshan.tmall.com/
技術交流群(鴻蒙開發/Linux/嵌入式/驅動/資料下載)
QQ群:869222007
友情贊助
http://www.gzlzygy.com/
總結