Difference between revisions of "How to setup x11vnc server/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
 
(updated by API)
Line 1: Line 1:
[[How to setup VNC server on NanoPC-T4|English]]
+
[[How to setup x11vnc server|English]]
  
==Step1: 安装VNC Server==
+
==本文适用范围==
 +
* RK3399/RK3568/RK3588平台的ubuntu-focal-desktop系统
 +
* RK3588平台的debian-bullseye-desktop系统
 +
* RK3399平台的FriendlyDesktop请参考此文:[[How to setup VNC server on NanoPC-T4/zh|How to setup VNC server on NanoPC-T4]]
 +
 
 +
==Step1: 安装x11vnc==
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
sudo apt-get install tightvncserver
+
sudo apt update
 +
sudo apt-get install x11vnc net-tools
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
==Step2: 设置密码==
 
==Step2: 设置密码==
运行vnc server一次,会生成配置文件,并提示你为VNC Server设置一个密码:
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
tightvncserver :1
+
su pi
 +
x11vnc -storepasswd
 
</syntaxhighlight>
 
</syntaxhighlight>
设置密码后,为了方便接下来的操作,先退出Vnc server:
+
 
 +
==Step3: 创建.Xauthority==
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
tightvncserver -kill :1
+
touch /home/pi/.Xauthority
 +
xauth add :0 . `mcookie`
 
</syntaxhighlight>
 
</syntaxhighlight>
  
==Step3: 配置VNC server==
+
==Step4: 配置自动登录桌面==
编辑~/.vnc/xstartup文件,在尾部添加:
+
===For ubuntu-focal-desktop===
 +
创建目录与文件
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
lxterminal &
+
sudo mkdir /etc/sddm.conf.d
/usr/bin/lxsession -s LXDE &
+
sudo vim /etc/sddm.conf.d/autologin
 
</syntaxhighlight>
 
</syntaxhighlight>
手动启动VNC Server,测试一下是否可以工作:
+
autologin文件内容如下:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
vncserver -geometry 1280x800
+
[Autologin]
 +
User=pi
 +
Session=lxqt.desktop
 +
Relogin=false
 
</syntaxhighlight>
 
</syntaxhighlight>
在电脑上打开VNC客户端,输入开发板IP地址与5901的端口号,比如开发板的IP是192.168.1.131,则输入 192.168.1.131:5901,如下图所示: <br />
+
重启。
[[File:vncserver-inputaddress.png|frameless|600px]] <br />
+
===For debian-bullseye-desktop===
连接成功的话,进入下一步。
+
默认情况下已经是自动登录,可通过如下文件检查配置
==Step4: 设置开机自动启动VNC server==
+
<syntaxhighlight lang="bash">
新建一个文件 /etc/systemd/system/vncserver@.service,内容如下:
+
$ grep autologin-user /etc/lightdm/lightdm.conf
 +
# autologin-user = User to log in with by default (overrides autologin-guest)
 +
# autologin-user-timeout = Number of seconds to wait before loading default user
 +
autologin-user=pi
 +
autologin-user-timeout=0
 +
</syntaxhighlight>
 +
==Step5: 开机运行x11vnc==
 +
新增文件 /etc/systemd/system/x11vnc.service
 +
<syntaxhighlight lang="bash">
 +
sudo vim /etc/systemd/system/x11vnc.service
 +
</syntaxhighlight>
 +
内容如下
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
[Unit]
 
[Unit]
Description=Start TightVNC server at startup
+
Description=Start x11vnc at startup.
After=syslog.target network.target
+
After=network-online.target
  
 
[Service]
 
[Service]
Type=forking
+
Type=simple
 +
ExecStart=/usr/bin/x11vnc -display :0 -auth /home/pi/.Xauthority -rfbauth /home/pi/.vnc/passwd -rfbport 5900 -forever -loop -noxdamage -repeat -shared -capslock -nomodtweak
 
User=pi
 
User=pi
PAMName=pi
+
Group=pi
PIDFile=/home/pi/.vnc/%H:%i.pid
+
WorkingDirectory=/home/pi
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
+
ExecStop=/bin/kill -TERM $MAINPID
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
+
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/usr/bin/vncserver -kill :%i
+
KillMode=control-group
 +
Restart=on-failure
 +
Environment=DISPLAY=:0
 +
Environment=XAUTHORITY=/home/pi/.Xauthority
  
 
[Install]
 
[Install]
WantedBy=multi-user.target
+
WantedBy=graphical.target
</syntaxhighlight>
+
创建符号链接以实现开机自启动: <br />
+
<syntaxhighlight lang="bash">
+
sudo ln -s /etc/systemd/system/vncserver@.service /etc/systemd/system/multi-user.target.wants/vncserver@1.service
+
 
</syntaxhighlight>
 
</syntaxhighlight>
重启开发板:
+
启用systemd服务
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
sudo reboot
+
sudo systemctl daemon-reload
 +
sudo systemctl restart x11vnc.service
 
</syntaxhighlight>
 
</syntaxhighlight>
==Step5: 连接到VNC server==
+
==Step6: 电脑访问==
在电脑上打开VNC Viewer,输入开发板IP地址与5901的端口号登录开发板,显示桌面如下图所示: <br />
+
使用VNC客户端访问地址:<br />
[[File:vncserver-friendlydesktop.png|frameless|600px]]
+
开发板IP:5900

Revision as of 09:22, 21 June 2024

English

1 本文适用范围

  • RK3399/RK3568/RK3588平台的ubuntu-focal-desktop系统
  • RK3588平台的debian-bullseye-desktop系统
  • RK3399平台的FriendlyDesktop请参考此文:How to setup VNC server on NanoPC-T4

2 Step1: 安装x11vnc

sudo apt update
sudo apt-get install x11vnc net-tools

3 Step2: 设置密码

su pi
x11vnc -storepasswd

4 Step3: 创建.Xauthority

touch /home/pi/.Xauthority
xauth add :0 . `mcookie`

5 Step4: 配置自动登录桌面

5.1 For ubuntu-focal-desktop

创建目录与文件

sudo mkdir /etc/sddm.conf.d
sudo vim /etc/sddm.conf.d/autologin

autologin文件内容如下:

[Autologin]
User=pi
Session=lxqt.desktop
Relogin=false

重启。

5.2 For debian-bullseye-desktop

默认情况下已经是自动登录,可通过如下文件检查配置

$ grep autologin-user /etc/lightdm/lightdm.conf
# autologin-user = User to log in with by default (overrides autologin-guest)
# autologin-user-timeout = Number of seconds to wait before loading default user
autologin-user=pi
autologin-user-timeout=0

6 Step5: 开机运行x11vnc

新增文件 /etc/systemd/system/x11vnc.service

sudo vim /etc/systemd/system/x11vnc.service

内容如下

[Unit]
Description=Start x11vnc at startup.
After=network-online.target
 
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -display :0 -auth /home/pi/.Xauthority -rfbauth /home/pi/.vnc/passwd -rfbport 5900 -forever -loop -noxdamage -repeat -shared -capslock -nomodtweak
User=pi
Group=pi
WorkingDirectory=/home/pi
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
KillMode=control-group
Restart=on-failure
Environment=DISPLAY=:0
Environment=XAUTHORITY=/home/pi/.Xauthority
 
[Install]
WantedBy=graphical.target

启用systemd服务

sudo systemctl daemon-reload
sudo systemctl restart x11vnc.service

7 Step6: 电脑访问

使用VNC客户端访问地址:
开发板IP:5900