最近买了个Nvidia的jetsonnano,安装了ubuntu18.04。但是手边缺少监视器。本着省钱、简单、高效的原则,在笔记本和jetsonnano之间用一根网线搭建局域网,让VNCviewer访问ubuntu18.04unity桌面,安装ftp,创建ftp用户,实现ftp传输文件。1、实现笔记本电脑与jetson之间的网络通信。首先,直接连接个人电脑和jetsonnano。我的笔记本是没有网口的mac,我用的是jetson连接type-C转RJ45口。我采用的解决方案是共享wifi到网口。参考链接。本博文使用dhcp修改,然后先通过ifconfig找到苹果电脑的地址,然后在树莓派的/etc/network/interfaces中设置一个静态ip,保证静态ip和ifconfig得到的ip是一致的在同一网络部分。一般来说,ubuntu网卡默认是dhcp的方式,在没有监控的情况下设置静态ip设置会比较麻烦。其实网络共享设置或者不设置dhcp都没有影响,只要双方都能ping通,一般问题不大。然后在终端输入arp-a得到jetson的ip地址为192.168.3.6。如下图,[bridge]类型的ip必须属于Jetsonnano。记下这个ip地址,后面建立连接和ftp用到。以后每次重连,如果192.168.3.6失败(mac重启,换了一个固定IP,jetson连上其他电脑等),说明jetson端的dhcp动态分配了一个新的ip,并且终端重新输入arp-a,得到新jetson的ip地址即可。至此,就实现了mac与Jetson的网络连接,jetson也可以上网了。如果有监控可以连接到上次百度私信,或者先用终端ssh访问测试一下。如果Jetsonnano的ubuntu没有安装ssh,需要执行sudoapt-getinstallopenssh-server安装ssh。sudoservicesshstart启动ssh服务,sudops-e|grepssh#查看ssh服务是否启动。下图表示已启用。在Mac上打开终端,直接ssh登录。sshubuntu用户名@ip,第一次会提示那里权限不够,如果想继续,填yes即可。成功后,ping百度,就可以上网了,没问题。需要注意的是,由于网络中mac的配置实际上是usb转过来的网络,所以即使手动ipv4配置ip地址为固定的192.168.138.1,jetson上对应的eth0通信实际上也会是ip192.168.3.6。如果是自带网口的windows笔记本,配置会更简单,jetson上对应的eth0通讯ip直接为192.168.138.X。2、安装x11vnc服务器常见的vnc服务器有tightvncviewer、vnc4server等,但对ubuntu的支持不是很好。tightvncviewer好久没有更新了,也没有在ubuntu上试用过,而且vnc4server只支持gnome桌面,还需要安装gnome-desktop桌面。所以选择x11vnc。1.apt-getinstallX11VNCapt-getupdateapt-getinstallx11vnc2.设置VNC密码x11vnc-storepasswd然后需要输入两次密码。该命令默认将密码存放在~/.vnc/passwd3.配置自启动文件(Ubuntu15.04及以后版本)sudovim/lib/systemd/system/x11vnc.service[Unit]Description=Startx11vncatstartup.After=multi-user.target[Service]Type=simpleUser=你的用户名ExecStart=/usr/bin/x11vnc-authguess-forever-loop-noxdamage-repeat-rfbauth~/.vnc/passwd-rfbport5900-shared[Install]WantedBy=multi-user.target先解释一下x11vnc的几个参数的含义,可以查看v=x11vnc–help获取信息。-authfile表示授权文件放置的位置。-authguess将猜测默认位置。-rfbauth表示密码放在哪里-repeat默认是-norepeat。好像和键盘反复按有关。如果是-repeat,表示键盘可以重复按下。没有把握。-noxdamage表示不使用XDAMAGE扩展来检测framebuffer,目前还不是很了解-forever表示持续监听新的客户端请求,如果第一个连接的客户端意外断开连接,vnc应用程序仍在运行,等待一个请求到来。对应的是-once,表示如果第一个client断开,直接退出程序即可。-shared表示vnc是共享的,多个客户端可以同时访问这个服务器。-rfbport表示连接的端口号,新版x11vnc的帮助文档说已经deprecated(passed)了。此外,这一步有一个巨大的天坑。由于ubuntu默认禁止root权限登录,所以默认使用安装系统的用户创建的账号登录。因此,在[服务]下,您必须添加User=您的用户名。否则系统会默认以root账户启动vnc,客户端访问非root账户的桌面时会报错:theconnectionisrefusedbytecomputer。您可以使用ps-aux|grepx11vnc查看当前x11vnc服务属于哪个用户。折腾了差不多两个小时,配置命名当时完全没问题。我也晕了。4.启动服务,重启服务器sudosystemctldaemon-reloadsudosystemctlenablex11vnc.servicesudosystemctlstartx11vnc.servicereboot如果服务器没有外接显示器,x-session无法从外部获取分辨率,需要在xorg.conf中设置虚拟分辨率。参考这个。找到/etc/X11/xorg.conf,如果没有直接手动创建,添加如下代码(客户端显示屏分辨率为1680×1050,可以根据实际情况修改Virtual参数)。主要是Section'Screen'部分的内容。如果已经有Section"Device"或Section"Monitor",则无需添加或修改,只需在末尾添加Section'Screen'部分即可。Section“Device”标识符“ConfiguredVideoDevice”EndSectionSection“Monitor”标识符“ConfiguredMonitor”EndSectionSection“Screen”标识符“DefaultScreen”Monitor“ConfiguredMonitor”Device“ConfiguredVideoDevice”SubSection“Display”Depth24Virtual1280800EndSubS这块。至少省了一块显示屏的成本,hdmi接口至少要七八百吧?三、安装ftp实现简单的文件传输1、在Ubuntu中安装VSFTPD服务器sudoapt-getupdatesudoapt-getinstallvsftpd2。为FTP工作目录mkdir~/ftp3创建一个文件夹。创建一个新的FTP用户并设置密码和工作目录ftpname是您为ftp创建的用户名sudouseradd-d~/ftp-s/bin/bashftpname并为新创建的用户设置密码:passwdfit-name(我设置的都是ftper)4、修改vsftpd配置文件,使用命令打开vsftpd.conf设置属性值(去掉#注释)anonymous_enable=NO#禁止匿名访问local_enable=YESwrite_enable=YES5.启动ftp服务服务vsftpdstart6。安装叉车,享受Let'splaywithget,put