x11vnc配置方法

Posted on By 李继龙

前言

大家好哇,我又来折腾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正式版了