1. 程式人生 > >開發板linux到虛擬機器linux間的檔案傳輸——scp指令與本地地址的配置

開發板linux到虛擬機器linux間的檔案傳輸——scp指令與本地地址的配置

(除錯了整整一晚上,ping來ping去,開發板和虛擬機器之間就是ping不通。經過自己一頓瞎折騰,總算通了之後卻沒處裝逼,索性來寫一篇部落格。)

(這是我第一次寫部落格,我也是剛開始學嵌入式的新手,而且這篇文章涉及更多的是網路通訊,好多原理也不太懂,所以可能說的也很不詳細。)

(當作是日記吧)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      首先,我用的是BBblack。

      要實現開發板到虛擬機器的檔案傳輸,首先要知道linux下的一個很牛逼的指令:scp。

      scp [email protected]:/home/gyj/main.c     /home/gyj/

      scp跟cp一樣,就是將某路徑的檔案複製到目標路徑裡,但是它牛逼就牛逼在它手長——可以跨到另一個linux上取檔案。如這句指令,意思是從地址為192.168.1.96的(我將虛擬機器linux的本地地址設為192.168.1.96了)使用者名稱為root的linux作業系統中,的/home/gyj/資料夾中取main.c檔案,拷到開發板的linux下的/home/gyj/資料夾中。如果要傳輸資料夾的話,加個引數-r。

      很拗口?去百度吧……

     

      之後會要求你輸入源目標的使用者密碼。就是你虛擬機器上root使用者的密碼了。輸入正確後就會傳輸,傳輸成功後檢視gyj資料夾,就會發現main.c了。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      當然,要實現用這條指令的傳輸顯然沒有那麼簡單(不然我也不會花一晚上來搞了)。

      想要用這條指令,前提是你在開發板上使用ping命令: ping 192.168.1.96 (即虛擬機器linux本地地址)能夠ping通。

      這也是我瞎折騰了一晚上的東西。

      兩步走:①開發板linux與PC互ping能通,②虛擬機器linux與PC互ping能通

      說簡單其實是真的簡單到沒天理……只不過我走了無數種彎路而已。

For ①:

      <1>開發板用網線與主機相連

      <2>在串列埠終端中設定開發板linux的地址,即用指令ifconfig eth0 192.168.1.xxx netmask 255.255.255.0

          (XXX可以是0~255間的任意數字,記住別和虛擬機器linux和PC的本地地址相同了。netmask是設定子網掩碼)

      <3>(我用的win10)控制面板-網路和Internet-更改介面卡設定,找到PC與開發板連結的那個本地連線,修改TCP/IPv4如下,我將PC的IP地址設定為192.168.1.18。

          (如果不能確定是哪個本地連線,可以拔掉互聯的網線,顯示網纜斷開的那個就是了。記住預設閘道器一定要設好。如果設成192.168.2.1的話,PC的IP、虛擬機器linux的IP以及開發板linux的IP 就要設成192.168.2.xx)


      <4>開啟cmd,ping開發板IP,(我把開發板IP設成192.168.1.8),即ping 192.168.1.8。通了。

For ②:

      <1>開啟虛擬機器linux。

      <2>設定ip地址,即 ifconfig eth0 192.168.1.xxx netmask 255.255.255.0 (我將虛擬機器地址設為192.168.1.96)

      <3>ping 192.168.1.18 ——通了

      <4>那麼再ping 開發板的地址 192.168.1.8——也通了。

      <5>沒有第五步了吧。嘗試著在串列埠終端用scp指令傳輸檔案吧。