1. 程式人生 > >imx6q 網路除錯方式彙總

imx6q 網路除錯方式彙總

前面完成了linux平臺的移植,下面介紹部分除錯手段,可以加快專案開發速度.先簡介除錯手段

( 1 ) 在uboot下使用TFTP下載linux核心.這樣可以只要重啟開發板就可以載入新的核心,方便你在進行核心移植時,隨時測試新配置的核心.

( 2 ) 通過NFS掛載根檔案系統.同理,也是隻要重啟開發板就可以掛載新的根檔案系統,方便你在進行根檔案系統移植時,隨時測試新跟檔案系統.

( 3 ) 通過telnet訪問開發板.目的就是使用網路代替串列埠終端與開發板進行互動,因為有時裝置沒有外接串列埠到機殼,在進行現場除錯時,使用網路基本可以不用開啟裝置外殼.

( 4 ) 通過NFS與除錯計算機進行檔案共享.配合telnet,就可完成通過網路就可以完成檔案的傳輸等工作.

( 5 ) 通過ftp進行檔案的傳輸.將開發板設定成ftp伺服器,這樣遠端控制端只要使用遵守ftp協議的軟體就可以與開發板進行檔案的上傳和下傳,這個於NFS共享不同之處在於,ftp客戶端軟體豐富,而且自己的上位機軟體也可以簡單實現.

下面依次進行介紹

1. 配置計算機網路

我的電腦配置了兩塊網絡卡,一個為乙太網介面ETH0,一個為WIFI介面WLAN0,我準備讓WLAN0作為外網介面,可以上網;ETH0作為內網介面,連線開發板.

( 1 ) 讓我的ETH0配置為靜態IP,

sudo vi /etc/network/interfaces

auto eth0
iface eth0 inet static
        address 192.168.1.101
        netmask 255.255.255.0

這樣我網段192.168.1.*的網路通訊都走ETH0網絡卡了

( 2 ) 配置防火牆,讓防火牆放過我的開發板

sudo ufw allow from 192.168.1.103

我的開發板地址為192.168.1.103,這樣我就可以和開發板無障礙的通訊了.


1. tftp下載linux核心

(1)配置pc機,開啟TFTP服務

①安裝相關軟體包
sudo apt-get install tftpd (服務端)
sudo apt-get install tftp (客戶端)
sudo apt-get install xinetd

②配置tftp服務

cd /etc/xinetd.d/
sudo vim tftp
輸入
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = shirf
server = /usr/sbin/in.tftpd
server_args = -s /home/shirf/my_explore/tftp_file/
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}

其中user=shirf為使用者名稱,server_args = -s /home/shirf/my_explore/tftp_file/ 為tftp共享目錄。

③建立tftp共享目錄

cd /home/shirf/my_explore/

mkdir tftp_file/

這個目錄的許可權可以根據具體情況更改,我用的預設許可權

④重啟tftp服務

sudo   /etc/init.d/xinetd  restart

⑤測試

在tftp共享目錄中,建立檔案

vi hello_world

輸入你的內容。

tftp 192.168.1.101

tftp> get hello_world
Received 14 bytes in 0.0 seconds
tftp>
這是檢視你獲取的檔案,

tftp> q

退出

至此,tftp伺服器配置完畢

2. nfs掛載根檔案系統

PC端:

sudo apt-get install portmap nfs-kernel-server

sudo vi /etc/exports

/home/shirf/my_explore/nfs_file 192.168.1.103(rw,sync,no_root_squash)

我的共享資料夾為/home/shirf/my_explore/nfs_file 我只允許192.168.1.103訪問我的共享資料夾

sudo /etc/init.d/nfs-kernel-server restart 重啟nfs服務

至此,通過網路掛載核心和根檔案系統的pc端已經配置完畢,下面就是從uboot端配置成從網路下載核心和根檔案系統了。

更改uboot環境變數為

"bootcmd=run bootcmd_net\0"
即可執行網路掛載部分。

這裡我出了點問題,我使用直連線連線開發板和PC機,uboot通過tftp載入核心時,一直在超時,觀察開發板端的指示燈,發現活動燈在閃爍,當通過pc端的wireshark發現無任何資料,判斷可能需要交叉線,換了根交叉線,還是不行,後來只能講開發板和pc機通過路由器(交換機也可)連線,就可以正常掛載核心和根檔案系統。通過閱讀手冊,網路端現在之所以可以通過直連線(無任何交換裝置)就可以實現連個兩個pc機進行通訊,是因為phy晶片的功能,phy晶片有自動探測和交叉收發線的功能,但是上述問題並未解決,暫時先使用路由器,後期有時間了在試試更改uboot原始碼看看是不是需要配置什麼暫存器,因為同樣的硬體在正常啟動linux後,可以使用網路於pc機通訊。

3. telnet與開發板互動

修改profile檔案,新增開機自啟動telnet服務,新增內容如下
#start telnet 
mkdir /dev/pts                 
mount -t devpts devpts /dev/pts
telnetd -l /bin/sh
echo
echo "start telnet ok."

我的profile就變為

# /etc/profile: system-wide .profile file for the Bourne shells

PATH=/bin:/sbin:/usr/bin:/usr/sbin
export LD_LIBRARY_PATH=/lib:/usr/lib

#start telnet
mkdir /dev/pts
mount -t devpts devpts /dev/pts
telnetd -l /bin/sh

echo
echo -n "Processing /etc/profile... "
echo "Done"
echo

重啟裝置reboot.
/ # netstat -an                                                                 
Active Internet connections (servers and established)                           
Proto Recv-Q Send-Q Local Address           Foreign Address         State       
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN      
netstat: /proc/net/tcp6: No such file or directory                              
netstat: /proc/net/udp6: No such file or directory                              
netstat: /proc/net/raw6: No such file or directory                              
Active UNIX domain sockets (servers and established)                            
Proto RefCnt Flags       Type       State         I-Node Path  

開啟了一個埠號為23的tcp伺服器,並且處於監聽狀態.

此時,我在我的計算機端使用telnet連結我的開發板

我的計算機ip為192.168.1.101,使用192.168.1.103即可完成遠端訪問開發板如下圖

[email protected]:/etc/xinetd.d$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 30:65:ec:19:2f:bf  
          inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::3265:ecff:fe19:2fbf/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:19910 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21121 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1573165 (1.5 MB)  TX bytes:15315686 (15.3 MB)

[email protected]:/etc/xinetd.d$ telnet 192.168.1.103
Trying 192.168.1.103...
Connected to 192.168.1.103.
Escape character is '^]'.

/ # ls
bin         etc         linuxrc     proc        sys         var
boot        home        lost+found  root        tmp
dev         lib         mnt         sbin        usr
/ #

最後就是退出終端使用

ctrl+],然後在輸入q回車即可.

同時,也可使用帶使用者名稱稱登入

建立登陸的使用者資料夾,我的passwd登陸名稱是imx6q,登陸後進入/home/imx6q/目錄

mkdir home/imx6q
修改telnet登陸方式
#telnetd -l /bin/sh
telnetd -l /bin/login

使用/bin/login登陸

此時使用PC機普通使用者登陸,

[email protected]:/$ telnet 192.168.1.103
Trying 192.168.1.103...
Connected to 192.168.1.103.
Escape character is '^]'.

(none) login: imx6q
Password: 
mkdir: can't create directory '/dev/pts': File exists
mount: permission denied (are you root?)

Processing /etc/profile... Done

~ $

使用PC機進行超級使用者登陸
[email protected]:/$ telnet 192.168.1.103
Trying 192.168.1.103...
Connected to 192.168.1.103.
Escape character is '^]'.

(none) login: root
Password: 
mkdir: can't create directory '/dev/pts': File exists
mount: mounting devpts on /dev/pts failed: Device or resource busy

Processing /etc/profile... Done

~ #

4. nfs共享檔案

( 1 ) PC端:

sudo apt-get install portmap nfs-kernel-server

sudo vi /etc/exports

/home/shirf/my_explore/nfs_file 192.168.1.103(rw,sync,no_root_squash)

我的共享資料夾為/home/shirf/my_explore/nfs_file 我只允許192.168.1.103訪問我的共享資料夾

sudo /etc/init.d/nfs-kernel-server restart 重啟nfs服務

( 2 )開發板端

mkdir /home/imx6q/nfs_flie

mount -t nfs -o nolock 192.168.1.101:/home/shirf/my_explore/nfs_file /home/imx6q/nfs_flie

我講地址為:192.168.1.101,目錄為/home/shirf/my_explore/nfs_file 掛在到我的/home/imx6q/nfs_flie資料夾上

這樣就通過這個檔案就可實現開發板於PC機的檔案共享.

5. ftp共享檔案

( 1 )建立共享資料夾

mkdir /home/imx6q/ftp_file

chmod 777 ftp_file/

這樣任意登陸使用者都可使用ftp上傳或下載這個資料夾中的資料了

( 2 )啟動ftpd服務

tcpsvd 0 21 ftpd -w /home/imx6q/ftp_file &

使用圖形介面登陸imx6q使用者,輸入密碼,即可上傳、下載、刪除ftp資料夾中的資料了

至此,開發板開啟ftp服務

相關推薦

imx6q 網路除錯方式彙總

前面完成了linux平臺的移植,下面介紹部分除錯手段,可以加快專案開發速度.先簡介除錯手段 ( 1 ) 在uboot下使用TFTP下載linux核心.這樣可以只要重啟開發板就可以載入新的核心,方便你在進行核心移植時,隨時測試新配置的核心. ( 2 ) 通過NFS掛載根檔案系

iOS-95-網路請求方式彙總(包含AFNetworking、NSMutableURLRequest)

文章包涵AFNetworking、NSMutableURLRequest兩種請求方式:get、post、上傳圖片、解決上傳base64編碼圖片過長問題(使用【2、post  第一種配置】即可解決) 比如報錯:err:Error Domain=com.alamofire.er

TensorFlow實現遷移學習程式除錯問題彙總

1ValueError: The specified path: inception_v3.ckpt is a file. Please specify only the path prefix to the checkpoint files. 問題描述:模型放在程式的同一檔案路徑中,但是就

卷積神經網路CNN知識彙總

都2018了,已經有好多專業的大神,介紹卷積神經網路。這裡就記錄一下,我覺得寫的最好的吧。^^ 通俗理解卷積神經網路 通過100張圖一步步理解CNN 知乎:能否對卷積神經網路工作原理做一個直觀的解釋 個人專欄YJangGo:https://blog.csdn.net/u010

virtualbox的四種網路連線方式的學習

在利用virtualbox建立虛擬機器的時候,會發現在設定網路的時候會有四種網路連線方式,如下圖: a. NAT               &n

linux三種網路連線方式的區別

1、橋接:虛擬機器通過本機的真實網絡卡和主機進行通訊。不僅可以和你的本機進行通訊,如果區域網內有同網段的計算機,也可以進行通訊。不過需要佔用同網段的一個ip地址。 2、NAT:虛擬機器通過VMware-8這塊虛擬出來的網絡卡和你的本機進行通訊。 3、host-only:虛擬機器通過VMware-1這

Xcode除錯方法彙總

在開發當中我自己用到的最多的肯定是斷點除錯了,但是強大的Xcode顯然不止這麼一點除錯優化工具,這篇文章就用來記錄並分享我用的幾種方法:【本文持續更新,歡迎大家提出寶貴建議】 一、斷點除錯 【1.普通斷點】斷點(Breakpoint)絕對是除錯程式的第一大選擇,也是掌握的基礎技能。顧名思義,

python 學習彙總38:程式設計方式彙總(命令式,宣告式,函式式)( tcy)

程式設計方式 2018/11/16 ========================================================================= 1.分類 指令式程式設計 宣告式程式設計 函數語言程式設計 =

java獲取Date時間的各種方式彙總

1. 常用的時間獲取方式 public class DateUtils { /** * 獲取時間戳 * 輸出結果:1438692801766 */ @Test public void getTimeStamp() { Date da

虛擬機器與主機無法ping通解決方式彙總

一,ip地址問題         1,純粹的ip地址寫錯                    這種情況要先檢查自己主機和虛擬機器的ip地址 &nb

網路學習資源彙總

Contents What's this network DSA Hardware linux coding 編碼問題code/encode cpp c python golang

簡述python中兩種網路傳輸方式(UDP,TCP)

簡述python中網路傳輸方式(UDP,TCP) socket 套接字 socket(簡稱 套接字) 是程序間通訊一個工具,它能實現把資料從一方傳輸到另外一方,完成不同電腦上程序之間的通訊, 它好比資料的搬運工 在建立socket連線時,有TCP和UDP兩種連線方式。 UDP

網路基礎知識彙總(持續更新)

網路基礎知識彙總 1.網路模型 2.二三層轉發 3.IP路由 4.VLAN 1.網路模型 常見的網路層次劃分有OSI七層協議、TCP/IP四層協議以及TCP/IP五層協議,它們之間的對應關係如下圖所示: 由於工作偏向於底層網路,

[Xcode10 實際操作]七、檔案與資料-(24)真機使用無線網路除錯應用程式

本文將演示如何通過無線網路,在真機上測試應用程式。 首先通過資料線,將移動裝置和電腦連線, 然後點選頂部的【Window】視窗選單, ->【Devices and Simulators】裝置和模擬器。 在彈出的設定視窗【Devices】中, 勾選【Connect via network】通過無

視訊會議常用的四種網路協議方式

視訊會議以操作簡便、高效及低廉的價格受到很多人的青睞,很多企業都有佈置視訊會議系統來加強內部交流。作為憑藉網路進行資料資訊傳輸的操作體系,視訊會議系統在建設過程中,涉及到相關協議標準還是較多的,下面為大家介紹一網路進行資料傳輸的視訊會議系統網路接入的四種形式。 (視訊會議) 1、普通寬頻AD

大資料平臺hbase,phoenix,spark搭建和研發問題和解決方式彙總

#Q Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.tracing.SpanReceiverHost.get $A <hadoop.version>2.7.3</hadoop.version>

Windows下反反除錯技術彙總

一、前言 對於安全研究人員來說,除錯過程中經常會碰到反除錯技術,原因很簡單:除錯可以窺視程式的執行“祕密”,而程式作者想要通過反除錯手段隱藏他們的“祕密”,普通程式需要防止核心程式碼被除錯逆向,惡意程式碼需要隱藏自己的惡意行為防止被跟蹤。就像病毒和殺軟的關係一樣,為了順利的逆向分析,有反除錯手段就有對應的破

RabbitMQ消費方式彙總

在學習本章節前,請先學習之前的章節:Java訪問RabbitMQ:https://www.cnblogs.com/duanjt/p/10057330.htmlRabbitMQ訊息釋出時的權衡:https://www.cnblogs.com/duanjt/p/10075308.html 一、推送Consume

非windows平臺 圖形化 網路除錯工具

packageSenderhttps://packetsender.com/ 基於QT5功能很多 CentOS 7 上不能直接執行提供的編譯後Linux程式版本,不提供原始碼 SocketTesthttps://sourceforge.net/projects/sockettest/ 基於java非常

visualBox的四種網路連線方式

1.Network Address Translation (網路地址轉換,NAT) guest作業系統啟動時,通常使用DHCP獲取IP地址。VirtualBox將對DHCP請求進行處理,並告知guest作業系統所分配到的IP地址和用於路由出站連線的閘道