前言
大家好哇,我又来折腾vnc了,为啥又要折腾vnc呢,因为上次配置好tigervnc后我发现了个很严重的问题—没法关机和重启
因为桌面环境对我来说主要作用就两个,一是方便关机/重启,二是能够方便的找文件和改文件(主要是配置文件),别的就没啥了,所以我就又开始折腾了
起初我以为是桌面环境的问题,然后我就谷歌去了 “xfce 桌面关机” ,结果看来看去就三,四篇文章跟我的问题相关,我全部照着做了一遍之后发现没啥用,之后我都还原回去了
不过有一些文章倒是给了个线索“只有root用户才能关机/重启”,后来我才发现一个问题,这个桌面好像不能切换用户啊,登陆界面都是锁死ubuntu用户的
之后我又想“一个成熟的桌面环境不可能没这功能啊”,于是我就又谷歌去了 “xfce 登录root” ,结果搜出来的信息没一个相关的,这时我就确定他一定有这功能了,然后我就开始折腾了
折腾了很久还是不知道怎么切换到root用户,倒是脑壳先炸了,后来我突发灵感想到了vnc服务,然后我就把树莓派接到电视上一探究竟,果然是可以切换用户的,而且普通用户也可以关机/重启,OMG 折腾了三天才发现问题的根源
正文
首先安装命令如下
$ sudo apt-get install x11vnc
然后先创建个文件夹再创建密码文件
$ sudo mkdir -p /etc/vnc
$ sudo x11vnc -storepasswd /etc/vnc/
这里我就不贴手动运行命令了,因为实在太长了,索性直接上服务得了
/etc/systemd/system/x11vnc.service
[Unit]
Description=start x11vnc
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -display :0 -desktop Ubuntu-Aarch64 -auth 显示管理器地址 -forever -loop -noxdamage -repeat -rfbauth /etc/vnc/passwd -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target
需要注意的是显示管理器地址需要自行指定,因为他会随桌面环境的不同而不同,例如xfce桌面环境的地址是 /var/run/lightdm/root/:0
至于如何查询可以参考这个帖子: https://unix.stackexchange.com/a/325336
也可以直接填个 guess
让他自己判断
再来个启用三连就能用了
$ sudo systemctl daemon-reload
$ sudo systemctl enable x11vnc.service
$ sudo systemctl start x11vnc.service
如果你没连接显示设备的话,那么这个服务应该是启动失败的,原因不明,但是解决方法还是有的,就是安装虚拟显卡驱动
首先还是安装命令
$ sudo apt-get install xserver-xorg-video-dummy
接下来就是创建配置文件 /etc/X11/xorg.conf
Section "Device"
Identifier "Dummy"
Driver "dummy"
VideoRam 64000
Option "IgnoreEDID" "true"
Option "NoDDC" "true"
EndSection
Section "Monitor"
Identifier "Monitor"
HorizSync 15.0-100.0
VertRefresh 15.0-200.0
EndSection
Section "Screen"
Identifier "Screen"
Monitor "Monitor"
Device "Dummy"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x720"
EndSubSection
EndSection
再修改个文件加点配置
/boot/firmware/usercfg.txt
framebuffer_width=1280
framebuffer_height=720
然后重启就完事了
需要注意的是这个方法有个副作用,就是连接显示设备会黑屏,解决方法是把 /etc/X11/xorg.conf
文件删了,再重启就行了
还是官方系统好啊!不用这么折腾~,我估计有一天还得回去装raspbian(听说已经改叫”raspberry pi os”了),只等他发布arm64正式版了