树莓派开启远程登录,本来通过raspi-config就可以设置的,但是这里安装的镜像可能不是官方镜像,导致raspi-config设置不生效。早先的版本可能通过raspi-config选择 Interfacing Options ,选择 Enable VNC就可以安装realvnc-vnc-server,但是这个包仓库最近已经不提供下载了,即使通过apt install也无法安装,只能下载deb文件进行安装。
今天就介绍另一种远程服务安装方式的设置,vino-server。
1 apt安装vino
sudo apt install vino
2 修改配置/usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml
添加如下内容到配置文件中:
<key name='enabled' type='b'>
<summary>Enable remote access to the desktop</summary>
<description>
If true, allows remote access to the desktop via the RFB
protocol. Users on remote machines may then connect to the
desktop using a VNC viewer.
</description>
<default>false</default>
</key>
3 设置gnome编译模式
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
4 设置登录不需要加密,不需要确认,并设置vnc密码。(下列命令在命令行执行)
gsettings set org.gnome.Vino require-encryption false
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino authentication-methods "['vnc']"
gsettings set org.gnome.Vino vnc-password $(echo -n '123456'|base64)
这里的vnc密码是123456,可以根据自己实际情况设置。
其实到这里,基本上就配置好了,如果你连着显示器,那么可以直接运行/usr/lib/vino/vino-server,它启动之后,会开启vino服务,监听5900端口,那么你就可以进行远程登录了。
/
5 设置开机自启动,在当前用户目录.config/autostart下添加vino-server.desktop文件,内容如下:
[Desktop Entry]
Type=Application
Name=Vino VNC server
Exec=/usr/lib/vino/vino-server
NoDisplay=true
如果autostart目录不存在可以手动添加。
这个vino-server.desktop会在用户进入桌面之后直接运行。 实际中,我们的树莓派可能很多时候不会连接显示屏,这个时候,因为无法进入桌面,这个服务就不会启动,那么远程vnc就无法连接。
接着我们就要解决如下的问题:
①、用户自动登录
②、登录之后,进入桌面
可能你会觉着奇怪,自动登录之后,不就是进入桌面吗,其实树莓派有个机制,就是自动登录之后,还会检测高清多媒体接口,也就是HDMI接口,它只有感应到了有设备连接,它才会进入桌面。
第一个自动登录解决办法就是添加lightdm配置,我们修改/etc/lightdm/lightdm.conf
[SeatDefaults]
autologin-user=ubuntu
我这里用户名是ubuntu,实际配置需要根据自己设备配置,lightdm.conf不存在就创建。
如果你连着显示器,一般有密码的时候,进入系统,会停留在用户输入密码这里,输入正确的密码之后,才会进入桌面。这个配置就解决了不用输入密码就可以进入系统的问题。
第二个登录之后,进入桌面需要修改/boot/config.txt或者/boot/firmware/config.txt,我这里树莓派4B是要修改/boot/firmware/config.txt,添加如下配置:
hdmi_force_hotplug=1
hdmi_drive=2
之后,重启就可以自动登录,并进入桌面。如下所示,是使用mobaxterm远程vnc登录树莓派的截图:
mobarxterm的session有vnc这个选项,点击的时候需要输入远程主机ip,点击OK之后,要求输入vnc密码,这个密码就是我们在上面vino安装配置第4步中设置的vnc密码,它不是树莓派用户密码。
有的说自动登录可以修改/etc/systemd/system/getty.targets.wants/getty@tty1.service
在ExecStart命令这里去掉 -o '-p -- \\u' 选项,添加--autologin ubuntu就可以。如果是root用户,就设置--autologin root,我这里修改了,并没有生效,所以最后使用修改lightdm配置的办法。
另外,如果raspi-config配置好使的话,通过raspi-config并设置 Boot Options,选择B1 Desktop / CLI 并选择B4 Desktop Autologin 也可以自动登录:
但是,奈何我的配置不生效,这个raspi-config工具可能对应的版本不对。