(注:本文參考資料:朱有鵬嵌入式課程。本文為個人學習記錄,如有錯誤,歡迎指正。)
1. 設置網絡
設置開發板與虛擬主機Ubuntu的網絡連接。
(1)將開發板與Windows主機用網線相連;
(2)開發板進入uboot命令行,設置開發板的IP地址和子網掩碼,即環境變量ipaddr、netmask的值。注意確保開發板與虛擬主機Ubuntu處於同一網段。此處設為:
netmask = 255.255.255.0 ipaddr = 192.168.1.200 |
(3)在虛擬主機Ubuntu設置選項中,將網絡適配器配置為“橋接模式”;
P.S.:VMware的網絡模式:橋接模式、NAT模式、僅主機模式詳解
![]() |
(4)進入VMware的“編輯”菜單,進入“虛擬網絡編輯器”界面,將虛擬機橋接至有線網卡。因為開發板與虛擬主機Ubuntu是通過網線連接的,故它們之間的通信只能通過有線網卡進行。
![]() |
(5)設置Ubuntu的靜態IP地址。默認情況下,Ubuntu的IP地址動態分配的,但動態IP地址不便於tftp下載操作,故將其IP地址設置為靜態IP地址。設置方法:vim /etc/network/interfaces,填充以下內容。(若該路徑下無該文件,則創建該文件)
# interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 |
填充后,保存該文件,重啟網卡,即可生效。Ubuntu重新網卡命令如下(不同版本可能會有差異):
ifdown eth0 //關閉網卡0
ifup eth0 //開啟網卡0
|
![]() |
![]() |
P.S.:若設置無誤,但ping失敗,可嘗試關閉Ubuntu和Windows下的防火牆。
2. 搭建tftp服務器
(1)安裝tftp所需軟件,tftp-hpa、tftpd-hpa、xinetd。在Ubuntu終端在運行如下命令進行安裝:
sudo apt-get install tftp-hpa tftpd-hpa sudo apt-get install xinetd |
(2)配置/etc/xinetd.conf
若該路徑下沒有xinetd.conf文件,則創建。在該文件中填充如下內容:
# Simple configuration file for xinetd # # Some defaults, and include /etc/xinetd.d/ defaults { # Please note that you need a log_type line to be able to use log_on_success # and log_on_failure. The default is the following : # log_type = SYSLOG daemon info } includedir /etc/xinetd.d |
(3)配置/etc/default/tftpd-hpa
在該文件中填充如下內容:
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/tftpboot" #tftp服務器在路徑,可以根據需要修改 TFTP_ADDRESS="0.0.0.0:69"TFTP_OPTIONS="-l -c -s" |
(4)配置/etc/xinetd.d/tftp
若該路徑下沒有tftp文件,則創建。在該文件中填充如下內容:
service tftp { socket_type = dgram wait = yes disable = no user = root protocol = udp server = /usr/sbin/in.tftpd server_args = -s /tftpboot #配置服務器的文件的存放位置 #log_on_success += PID HOST DURATION #log_on_failure += HOST per_source = 11 cps =100 2 flags =IPv4 } |
(5)修改文件夾權限
修改存放服務器文件的文件夾的權限,一般設置為最寬松的權限。運行如下命令:
sudo mkdir /tftpboot //創建tftpboot文件夾,用於存放服務器文件 sudo chmod 777 /tftpboot //修改文件夾權限 |
(6)重啟服務
重新啟動服務,上述配置即可生效。運行如下命令:
sudo service tftpd-hpa restart sudo /etc/init.d/xinetd reload sudo /etc/init.d/xinetd restart |
3. 測試
(1)本地測試
在Ubuntu本地環境下,測試tftp服務器能否工作。
1)在/tftpboot目錄下創建一個file.c文件;
2)在另外的目錄下,在Ubuntu終端下運行“ sudo tftp localhost”命令,進入到tftp命令符下;
3)在tftp命令符下,運行命令“get file.c”,若無錯誤提示,則成功從tftp服務器獲取file.c文件;
4)在tftp命令符下,運行命令“put file”,即可將該文件上傳至tftp服務器中。
(2)下載測試
在開發板的uboot終端下,從Ubuntu的tftp服務器獲取內核鏡像。
1)在uboot終端,運行tftpboot命令,從tftp服務器下載內核鏡像。
tftpboot命令格式:tftpboot 30008000 192.168.1.100:zImage。不同版本其命令格式可能會有差異,可以通過help命令查看。
tftpboot 30008000 192.168.1.100:zImage //從tftp服務器下載zImage到DDR中的0x30008000地址處 |
2)運行“bootm 30008000”,即可成功啟動內核。