嵌入式開發環境搭建:開發板tftp下載環境搭建


(注:本文參考資料:朱有鵬嵌入式課程。本文為個人學習記錄,如有錯誤,歡迎指正。)

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
Ubuntu下運行“ifconfig”命令,確認IP地址是否設置正確。
(6)在開發板uboot命令下,執行ping命令,確認開發板與Ubuntu是否成功建立網絡連接。
 

P.S.:若設置無誤,但ping失敗,可嘗試關閉Ubuntu和Windows下的防火牆。

2. 搭建tftp服務器

在虛擬主機Ubuntu下,搭建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”,即可成功啟動內核。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM