最近入手了海信Q5平板, 准备将它改造为类似笔记本的”生产力机器”.
使用AidLearning可以在安卓系统上跑一个Linux子系统, 同时AidLearning内置xfce桌面, 但是在软件生态上Linux for arm还是不尽如人意. 因此我的思路是以台式机作为真正的工作机, 运行远程桌面服务端, 安卓平板作为远程桌面客户端, 搭配蓝牙键盘以及手机作为触控板实现类似笔记本电脑的效果. 需要解决的问题有:
- 搭建虚拟专用网连接台式机以及安卓平板以及手机
- 选择好用的远程桌面(服务端以及客户端)
- 将手机作为触控板接入台式机或者安卓平板
- 解决安卓平板与台式机之间互传文件的问题
虚拟专用网
我使用了单位提供的Easyconnect VPN. 除此之外可以使用蒲公英VPN.
记得后文中出现的各设备的IP为其在VPN中的IP, 不是真实内网中的IP.
远程桌面
我使用的系统为Ubuntu 20.04, 其常用的远程桌面有tigervnc/tightvnc, x11vnc, xrdp. 为了避免网络连接丢失时候台式机上运行的程序自动退出, 我只能选择x11vnc, 其余集中远程桌面方案都会在连接断开时候清除所有在该连接中打开的程序.
注意
x11vnc与gdm冲突, 如果使用的display manager是gdm, 需要将其换成lightdm:sudo apt install lightdm, 如果后面有跳出选项, 选择lightdm.
安装x11vnc并自启动
安装:
sudo apt udpate
sudo apt install x11vnc -y
生成密码文件
x11vnc -storepasswd
编辑文件/lib/systemd/system/x11vnc.service, 写入
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -multiptr -rfbauth /home/chin/.vnc/passwd -rfbport 5900 -shared -ncache_cr
[Install]
WantedBy=multi-user.target
参数含义:
| 参数名 | 含义 |
|---|---|
| multiptr | 允许服务器与客户端两个鼠标独立切同时活动 |
| rfbauth | 密码文件路径 |
| rfbport | 使用端口号 |
| ncache_cr | 使用缓存加速 |
| shared | 允许多可客户端同时登录一个服务器端 |
开启端口5000(端口号与上述文件对应即可), 启动x11vnc.service:
sudo ufw allow 5900
sudo systemctl enable x11vnc
sudo systemctl start x11vnc
安卓平板客户端
VNC Viewer可以在https://www.realvnc.com/en/connect/download/viewer/android/或者https://vnc-viewer.en.softonic.com/找到. VNC Viewer在给台式机输入组合键的时候会出bug, 同时它以整个平板的触摸屏作为远程桌面的触控板, 这个操作逻辑又不像安卓又不像桌面系统, 于是放弃.
转而使用Remmina. Remmina并不支持安卓系统, 所以需要先安装AidLearning, 借用其Linux桌面环境(基于debian)运行Remmina, 再远程连接到台式机.
# 进入AidLearning的桌面后再终端模拟器中执行
apt update
apt install remmina -y
remmina
手机作为触控板
我很想将手机作为安卓平板的触控板, 奈何做不到, 所以不得不用手机作为台式机的触控板使用, 加上VNC远程桌面, 实际使用的时候延迟还是蛮大的, 也因此需要给x11vnc加入multiptr参数. 详见手机给电脑做触控板.
文件传输
我打算使用sftp实现文件互传(较为安全并且配置简单).
台式机需要安装openssh-server, AidLearning的桌面环境下也可以安装这个.
sudo apt update
sudo apt install openssh-server -y
安卓平板可以使用ES文件管理器连接sftp读写台式机上的文件, 台式机(Ubuntu)以及开启AidLearning的安卓平板可以通过gigolo互相挂载对方的文件系统到自己的文件系统中.
sudo apt install gigolo -y
gigolo
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!