最近入手一英伟达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