前言
大家好哇,我又來折騰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正式版了
