树莓派和Mac OSx之间的屏幕共享

23

我想使用内置在OSx中的屏幕共享应用程序来操作在我的树莓派打开的实际X会话。

仅仅是为了明确,我想在我的VNC会话中看到树莓派通过HDMI发送的相同图像。这样我就可以在我的计算机上移动鼠标,光标也会在树莓派屏幕上移动。

我尝试了几种vnc服务器和配置的组合,但都没有成功。


1
嗨!投票支持这个问题,这样它就不会被删除了。我在下面的答案中努力了:https://dev59.com/IVwY5IYBdhLWcg3wq5Qd#32361133 ;) - fguillen
2个回答

40

因为我花了好几个小时来解决这个问题,所以我自己回答一下,以防有人需要这些说明,就像我希望找到它们一样。

首先,最流行的vnc服务器(tightvncserver)不能满足我的要求,即在我的VNC客户端应用程序和树莓派屏幕中,X会话必须相同

能够完成工作的vnc服务器是x11vnc

安装x11vnc

sudo apt-get install x11vnc

看起来需要您设置一个密码:

x11vnc -storepasswd

测试安装和连接

您可以立即启动VNC服务器:

x11vnc -forever -usepw -display :0 -ultrafilexfer

检查服务是否处于活动状态并正在监听

$ sudo netstat -nlp | grep vnc
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      2575/x11vnc  

只需打开屏幕共享并输入 Raspberry 的 IP 地址即可从您的 Mac 连接:

输入图像描述

使x11vnc在启动时自动运行

配置:

# ~/.config/autostart/x11vnc.desktop
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Comment=
Exec=x11vnc -forever -usepw -display :0 -ultrafilexfer
StartupNotify=false
Terminal=false
Hidden=false

请确保能够顺利访问该文件:

sudo chmod a+r ~/.config/autostart/x11vnc.desktop

让树莓派在Mac的共享网络中可见

sudo apt-get install netatalk
sudo apt-get install avahi-daemon
sudo update-rc.d avahi-daemon defaults

配置:

# /etc/avahi/services/afpd.service
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
   <name replace-wildcards="yes">%h</name>
   <service>
      <type>_afpovertcp._tcp</type>
      <port>548</port>
   </service>
</service-group>

配置 2:

# /etc/avahi/services/rfb.service
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_rfb._tcp</type>
    <port>5900</port>
  </service>
</service-group>

重新启动服务:

sudo /etc/init.d/avahi-daemon restart

在Mac上查找树莓派

使用 Finder 进入 Shared > All... 部分,您应该能够找到您的树莓派。从那里,您可以点击 Share Screen... 按钮。

输入图像描述


如果您有改进此手册的评论,请不要犹豫提出建议。我感觉安装netatalk和文件/etc/avahi/services/rfb.service这一步骤是不必要的,我认为这是我在尝试使用tightvncserver时做的事情。 - fguillen
不错,Fernando!(+1)。我已经在使用avahi和x11vc以及vnc4server选项了。我喜欢x11vnc的原因是它显示了主桌面的主要会话(而其他我尝试过的服务器,包括tightvnc,似乎使用了不同的桌面/屏幕)。对我来说,x11vnc感觉比vnc4server慢一点(我可能是错的)。通过X11看到GLES将是很棒的! - George Profenza
一个建议:如果任何步骤都无法正常工作,请尝试关闭并重新启动树莓派,我不是在开玩笑 ;) - fguillen
我收到了“#〜/ .config / autostart / x11vnc.desktop不存在”的警告 - 我是否需要先扩展存储或访问主文件夹之前的任何特定内容? - Andrew Lazarus

4
我发现这篇文章很有用,但我不得不去寻找以下信息来完成我的设置 - 希望这能帮助其他人。
只需澄清一下,您需要执行以下步骤:
1. 打开终端并输入命令cd ~/.config/ 2. 输入命令mkdir autostart 3. 输入命令nano x11vnc.desktop 4. 粘贴上面列出的代码
然后,您可能还想通过在/boot/config.txt中设置或取消注释以下行来更改分辨率:
hdmi_force_hotplug=1
hdmi_group=1
hdmi_mode=16 # (or any other pi resolution you want, 16 is for 1080p) Reboot your Pi (sudo reboot)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接