最近入手一英偉達jetson nano,安裝的是ubuntu 18.04。可是手頭上缺乏一個顯示器,本着省錢,簡單,高效的原則,採用一根網線組建一個筆記本電腦和jetson nano之間局域網,實現VNC viewer訪問ubuntu18.04 unity桌面,並安裝ftp,建立ftp用戶,實現ftp傳文件。ubuntu
首先直連我的電腦和<font color="red">jetson nano</font>。本人的筆記本是mac,沒有網口,用的是type-C轉RJ45口鏈接的jetson。我採用的方案是共享wifi給網口。vim
參考連接。這篇博文修改用了dhcp,而後經過ifconfig的方式先找到蘋果電腦的地址,而後再在樹莓派的/etc/network/interfaces設置了靜態ip,保證這個靜態ip和ifconfig出來的ip處於同一網段。通常來講,ubuntu網卡默認是dhcp的方式,在沒有顯示器的狀況下設置靜態ip設置會比較麻煩。其實,網絡共享設置或者不設置dhcp都沒啥影響,只要兩邊能ping通通常問題都不大。而後終端輸入arp -a,得到jetson的ip地址是192.168.3.6。以下圖,[bridge]類型的ip確定是Jetson nano的。把這個ip地址記下來,後面創建鏈接和ftp都會用到。之後每次從新鏈接,若是192.168.3.6失效了(mac重啓,換了固定IP,jetson鏈接過其餘電腦等等),說明jetson那邊dhcp動態分配了一個新的ip,終端從新輸入arp -a,得到新的jetson的ip地址就好了。windows
至此,就實現了mac和Jetson之間的網絡鏈接,而且jetson也能夠訪問互聯網。若是有顯示器能夠接上去上個百度悄悄話,或者先用終端ssh訪問測試一下。bash
若是Jetson nano的ubuntu沒有裝ssh,須要執行sudo apt-get install openssh-server,安裝一下ssh。sudo service ssh start啓動ssh服務,並sudo ps -e |grep ssh #查看ssh服務是否啓動。以下圖表示已經開啓。服務器
在Mac端打開終端直接ssh登錄。ssh ubuntu的用戶名@ip,第一次會告訴你那邊的權限不太夠,是否繼續,填yes便可。成功後ping一下百度,能夠訪問互聯網,沒毛病。網絡
須要注意的是,因爲mac在網絡中的配置其實是usb轉出的網絡,因此就算採用手動ipv4的方式配置ip地址爲固定的192.168.138.1,最終實際上在jetson上對應的eth0的通訊的ip倒是192.168.3.6。若是是自帶網口的windows本,配置會更簡單,jetson上對應的eth0的通訊的ip就直接是192.168.138.X了。session
常見的vnc的服務端有tightvncviewer,vnc4server等,可是對ubuntu的支持都不太好,tightvncviewer好久沒有更新了,也沒有在ubuntu上試過,而vnc4server只支持gnome桌面,還須要安裝gnome桌面桌面。因此選擇x11vnc。app
apt-get update apt-get install x11vnc
x11vnc -storepasswd
而後須要輸入兩次密碼。這個指令默認將密碼存儲在~/.vnc/passwd中ssh
sudo vim /lib/systemd/system/x11vnc.service [Unit] Description=Start x11vnc at startup. After=multi-user.target [Service] Type=simple User=你的用戶名 ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth ~/.vnc/passwd -rfbport 5900 -shared [Install] WantedBy=multi-user.target
首先解釋一下x11vnc幾個參數的含義,能夠查v=x11vnc –help得到資料。
-auth file表示權限文件放置的地方。-auth guess會去猜想默認的位置。
-rfbauth表示密碼放置的地方
-repeat 默認是-norepeat。好像是和鍵盤重複按下去相關的,若是是-repeat,表示鍵盤能夠連按。不太肯定。
-noxdamage表示Do not use the X DAMAGE extension to detect framebuffer,暫時還不太理解
-forever表示持續監聽新的客戶端請求,若是第一個鏈接的客戶端不慎斷開,vnc應用程序仍然運行等待下一個請求的到來。相對應的是-once,它表示若是第一個客戶端斷開了,就直接退出程序。
-shared表示vnc是共享的,多個客戶端能夠同時訪問這個服務端。
-rfbport表示鏈接的端口號,新版本的x11vnc的幫助文檔說已經棄用(passed)。ide
另外這個步驟有一個巨大的天坑,因爲ubuntu默認是禁止root權限登錄的,默認以用戶安裝系統建立的帳戶去登錄,因此[Service]下必定要加上User=你的用戶名這一項,不然系統默認會用root帳戶啓動vnc,到時候用客戶端訪問非root帳戶的桌面,會報錯:the connection is refused by te computer。能夠用ps -aux |grep x11vnc查看當前的x11vnc服務是屬於哪一個用戶的。折騰了我快兩小時,當時配置命名徹底沒問題的。我也是暈。
sudo systemctl daemon-reload sudo systemctl enable x11vnc.service sudo systemctl start x11vnc.service reboot
服務器若是沒有外接外接顯示器,x-session不能從外部獲取分辨率,須要在xorg.conf中設置虛擬分辨率。參考這個。
找到/etc/X11/xorg.conf,若是沒有直接手動建立就行,並添加以下代碼(客戶端顯示屏分辨率是1680×1050,能夠根據實際狀況修改Virtual參數)。主要是Section ‘Screen」段的內容,若是已經有Section 「Device」或者Section 「Monitor」能夠不用加不用改,最後加上Section ‘Screen」段便可。
Section 「Device」 Identifier 「Configured Video Device」 EndSection Section 「Monitor」 Identifier 「Configured Monitor」 EndSection Section 「Screen」 Identifier 「Default Screen」 Monitor 「Configured Monitor」 Device 「Configured Video Device」 SubSection 「Display」 Depth 24 Virtual 1280 800 EndSubSection EndSection
終於,搞定了這一塊。至少一塊顯示屏的錢省下來了,hdmi接口的少說也要個七八百吧?
sudo apt-get update sudo apt-get install vsftpd
mkdir ~/ftp
sudo useradd -d ~/ftp -s /bin/bash ftpname
併爲爲新建的用戶設置密碼:passwd fit-name
(本人設置的都是ftper)
設置屬性值(經過去掉#註釋的方式)
anonymous_enable=NO #禁止匿名訪問 local_enable=YES write_enable =YES
service vsftpd start