在Linux系統下經過TFTP或NFS燒寫內核

一直想直接經過Linux系統往JZ2440開發板中燒寫內核,但網上的教程千篇一概都是藉助Windows平臺上的TFTP工具燒寫的,十分不爽,由於我不喜歡在虛擬機上玩Linux!摸索了一下午,終於搞定了,下來記錄一下燒錄過程。本文主要講訴TFTP燒寫內核的過程,NFS的先挖個坑。 #開發環境html

sudo apt-get install tftpd-hpa tftp-hpa
sudo vim /etc/default/tftpd-hpa

vim終端信息修改成: linux

圖片裏的配置信息爲:vim

# /etc/default/tftpd-hpa                                                               
   
 TFTP_USERNAME="tftp"
 TFTP_DIRECTORY="/home/china/ftproot"
 TFTP_ADDRESS="0.0.0.0:69"
 TFTP_OPTIONS="-l -c -s"

裏面的TFTP_DIRECTORY路徑能夠這樣看到,之後用tftp協議傳輸時,文件須要拷貝到這個文件夾裏面! 網絡

每修改一次配置信息,都須要重啓一次tftp服務工具

sudo service tftpd-hpa restart

驗證TFTP服務正常開啓測試

tftp 192.168.1.218
tftp> get hello
tftp> quit

tftp配置成功!下面開始記錄如何在Linux下經過tftp服務燒寫內核。 #在Linux系統下經過TFTP服務燒寫內核 ##第一步:在Linux下經過minicom串口助手鍊接JZ2440開發板 啓動JZ2440開發板後,點擊鍵盤,不讓其啓動裏面的Linux系統,如圖: ui

這個時候要輸入q方可出現OpenJTAG界面命令行

OpenJTAG>

##第二步:配置網絡環境 這個時候須要按照JZ2440配套的PDF資料裏的韋東山講解配置網絡了,不然不能讓Linux和JZ2440開發板通訊。 配置要求3d

  • 讓開發板網段和Linux系統處於同一網段(如IP地址爲192.168.1.x)
  • 網關配置一致 如今能夠在Linux下經過ifconfig命令查看IP地址,能夠經過route -n命令查看網關

而後在OpenJATG界面使用命令配置u-boot的網絡環境rest

set ipaddr 192.168.1.18
set serverip 192.168.1.218
set gatewayip 192.168.1.1
save
  • 第一行命令是配置開發板的IP地址,保證在同一網段的狀況下不衝突便可
  • 第二行命令是配置做爲服務端的Linux地址,這個IP地址是經過上面的ifconfig獲得的,不可胡寫!
  • 第三行命令是配置網關,經過上面的route -n獲得,不可胡寫!
  • 第四行是保存以上配置,下次再燒寫內核時不須要重複配置了

韋東山的文檔細節以下,詳情可參考這個PDF文檔。

在OpenJATG中

ping 192.168.1.218

一下,看能不能出來alive呢?

說明配置正確!O(∩_∩)O哈哈~ 可使用print查看配置狀況,其餘命令能夠詳見help

網絡環境配置成功!呼啦啦~ ##第三步:開始放大招了——燒內核! 1)把要燒寫的uImage內核文件copy到Linux系統下的tftp服務掛載文件夾下面,如圖:

細心的小夥伴發現了,這個uImage的權限被調到了最高,是的,必需要這樣作,不然在接下來的傳輸中會出現permission denied哦,圖片中的lm命令是我自定義的命令,和ls -al的做用是同樣同樣的。 2)進入minicom串口助手裏面 那個

OpenJATG>

還在等你輸入命令呢。 如今要參考韋東山《嵌入式Linux應用開發徹底手冊》P291中的內容:

不要着急在

OpenJATG>

命令行中輸入書本上的命令,這些命令有三分之二都是過期的!估計這個命令是適配JZ2440V1版本的,而我這個是V3版本的 由於我在按照上面命令燒寫內核時,板子根本啓動不了Linux系統!最後返回來在Windows平臺下經過DNW工具燒寫發現問題所在了。 左邊是經過DNW正確的擦除和寫入信息,右邊呢... ...

因此,要在

OpenJATG>

中輸入如下命令: **記得把uImage的權限給777了哦

tftp 0x30000000 uImage
nand erase 0x60000 0x00200000
nand write.jffs2 0x30000000 0x60000 $(filesize)
ps: linux-3.x內核用$filesize

燒寫完後,直接執行如下命令就能夠啓動了

OpenJATG> boot

下圖來自Ubuntu18.04 LTS測試

相關文章
相關標籤/搜索