查看: 5863|回复: 6

pcDuino安装synergy(转)

  [复制链接]
  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-3-14 14:49:44 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 xinxincaijq 于 2013-3-14 16:43 编辑

    原文来自:http://blog.csdn.net/kaijiexue/article/details/8670190

    入手pcDuino的第一件事就是安装synergy,synergy是用来共享键盘鼠标的,既然pcDuino就是一个miniPC 当然要接上显示器玩下咯,HDMI输出网上似乎已经有修改的方法啦,不过暂时没没有试成功

    http://www.the-greathouses.net/blog/2013/03/setting-pcduino-display-resolution/comment-page-1/#comment-601),接上显示器、电源、USB键鼠,开机启动吧,pcDuino上预装的是ubuntu系统,由于对桌面没怎么研究,不知道安装的是什么桌面环境,个人觉得这个桌面环境很差,如果你以为它跟PC上的ubuntu差不多,那你就错了,不过还是有一定可玩性的。

    首先需要到synergy官网上下载相关源码和windows上的客户端

    http://synergy-foss.org/zh-cn/download/?list),我下载的是1.4.10版本的windows 32位 和 源码

    下载好后,使用U盘copy到pcDuino的/home/ubuntu 目录下(PS:默认用户是ubuntu、密码也为ubuntu)

    解压到当前目录吧,进入到synergy-1.4.10-Source目录中,运行./configure,此时会报错没有cmake,查看configure文件

    configure:

    1.      cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release .
    复制代码
    可知需要编译安装synergy需要使用cmake,现在去下载cmake的源码进行编译安装吧,地址:http://www.cmake.org/cmake/resources/software.html

    下载的版本是:cmake-2.8.10.2.tar.gz   (我是在另外一台PC上下载再使用U盘copy过去的,如果你的pcDuino连接的是外网,直接在pcDuino上下载吧,俺只在LAN上运行pcDuino)

    解压到/home/ubuntu目录下,进入cmake-2.8.10.2目录下,同样运行./configure ,make,sudo make install

    安装完cmake后再次进入synergy源码目录,运行./configure ,此时会出现如下错误:

    1.     ./configure
    2.     ...
    3.     CMake Error at CMakeLists.txt:196 (message):
    4.       Missing header: X11/Xlib.hX11/XKBlib.h
    5.     -- Configuring incomplete, errors occurred!
    复制代码
    由于synergy需要使用libx11-dev,而pcDuino上默认是缺少很多的库文件的工具的。

    如果你的pcDuino连接上了外网可以直接使用以下命令下载安装(方便省事,依赖关系都给你解决了):

    apt-get install libx11-dev

    可是我是LAN的网络,可以到http://www.debian.org/distrib/packages 上下载相应的deb包安装:libx11-6_1.5.0-1_armhf.deb (下载的是armhf架构的)

    可是下载deb包安装会发现还缺少很多的依赖包,我还是一一下载了(其实下载安装还是很快的,debian的软件包网站上都是有依赖说明的)

    下载的所有deb包和源码情况如下(只要你不是联网安装,这些都要的,安装过程中缺少哪些包就安装哪些吧,不过这些都是必须的)

    1. cmake-2.8.10.2.tar.gz                     libxcb1-dev_1.8.1-2_armhf.deb   libxi6_1.6.1-1_armhf.deb            x11proto-kb-dev_1.0.6-2_all.deb
    2. libpthread-stubs0-dev_0.3-3+b1_armhf.deb  libxcb1_1.8.1-2_armhf.deb       libxtst-dev_1.2.1-1_armhf.deb       x11proto-record-dev_1.14.2-1_all.deb
    3. libpthread-stubs0_0.3-3+b1_armhf.deb      libxdmcp-dev_1.1.1-1_armhf.deb  libxtst6_1.2.1-1_armhf.deb          x11proto-xext-dev_7.2.1-1_all.deb
    4. libx11-6_1.5.0-1_armhf.deb                libxdmcp6_1.1.1-1_armhf.deb     synergy-1.4.10-Source.tar.gz        xorg-sgml-doctools_1.10-1_all.deb
    5. libx11-dev_1.5.0-1_armhf.deb              libxext-dev_1.3.1-2_armhf.deb   x11-common_7.7+2_all.deb            xtrans-dev_1.2.7-1_all.deb
    6. libxau-dev_1.0.7-1_armhf.deb              libxext6_1.3.1-2_armhf.deb      x11proto-core-dev_7.0.23-1_all.deb
    7. libxau6_1.0.7-1_armhf.deb                 libxi-dev_1.6.1-1_armhf.deb     x11proto-input-dev_2.2-1_all.deb
    复制代码
    安装好了libX11-dev后,再运行到synergy源码目录下运行./configure ,可是还是报错,这是由于CMakeLists.txt  上配置cmake的include目录不对

    需要修改成如下:

    1.     177                 set(CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH}:/usr/include")^M
    2.     178 ^M
    3.     179                 set(XKBlib "X11/Xlib.h;X11/XKBlib.h")^M
    复制代码

    同时还要删除源码目录下的CMakeCache.txt  再次运行./configure 时,这个错误就没有了(实际上这个错误是有记录,可参考:http://synergy-foss.org/spit/issues/details/3365/

    但是此时出现了一个新的错误,如下:

    1.    mv CMakeCache.txt OldCache.txt
    2.    ./configure
    3.    ...
    4.    CMake Error at CMakeLists.txt:222 (message):
    5.      Missing library: Xtst
    6.    -- Configuring incomplete, errors occurred!
    复制代码

    提示缺少Xtst library,此时继续安装 libxtst-dev_1.2.1-1_armhf.deb ,这个包以及相关的依赖包你可以在之前下载的所有包中找到(如果联网直接sudo apt-get install libxtst-dev  即可)


    安装好libxtst-dev 之后同样需要删除CMakeCache.txt  ,再次在源码目录下运行./configure ,这次config正常了(同样这个错误也是有记录的:http://synergy-foss.org/spit/issues/details/3150/  )

    继续安装synergy,make之后并不需要make install ,编译好的二进制文件就在目录的bin目录下可以找到。

    此时synergy已经编译好了,可以到bin目录直接运行

    1.     ./synergyc --daemon --name pcduino --restart 172.19.148.42
    复制代码

    --daemon指synergy在以客户端形式在后台运行,该客户端名字为pcduino,同时--restart指明synergy会自动重新连接服务端


    现在已经将我的PC机的键盘鼠标共享到了pcDuino上,一套键鼠控制了两个台PC哦。

    可是现在还是不行,还需要设置synergy开机启动,不然pcDuino重启后,还是需要重新插入键盘鼠标去启动synergy

    另外由于我是吧pcDuino连接到了内网,而PC是一台同时连接了外网和内网的,而我的PC机IP随时需要发生变化,所以我需要synergy的启动参数是可配置的,既在开机前可以修改名称和IP

    此时我在/etc/rc.local上添加如下代码:

    1.     /usr/bin/check_synergy.sh
    复制代码

    pcDuino在启动的时候会运行check_synergy.sh 脚本(注意权限问题,后续脚本也需要注意)


    check_synergy.sh

    1.     #!/bin/bash
    2.     interval=3
    3.     count=40

    4.     i=0  
    5.     while [ $i -lt $count ]; do
    6.             if [ -f /media/E9FE-18F0/synergy.sh ]; then
    7.                     bash /media/E9FE-18F0/synergy.sh
    8.                     break
    9.             fi
    10.             sleep $interval
    11.             i=`expr $i + 1`
    12.             if [ $i -gt $count ]; then
    13.                     break;
    14.             fi
    15.     done
    复制代码

    首先检查了sd卡上的配置文件是否存在,还是sd上文件存在则运行sd卡上的synergy.sh


    synergy.sh   

    1.     #!/bin/bash
    2.     echo `date` : hello synergy >> /home/ubuntu/synergy.log
    3.     if [ -f /media/E9FE-18F0/synergy ]; then
    4.             cp /media/E9FE-18F0/synergy /etc/init.d/synergy
    5.             chmod 777 /etc/init.d/synergy
    6.    fi
    7.    /bin/bash /etc/init.d/synergy start
    复制代码

    可见检查sd卡中synergy文件是否存在,存在着copy到/etc/init.d/目录下,并修改其权限,最后运行synergy


    synergy

    1.     #! bin/sh
    2.     # /etc/init.d/synergy
    3.    case "$1" in
    4.       start)
    5.         cd /home/ubuntu/synergy-1.4.10-Source/bin/
    6.         su ubuntu -c './synergyc --daemon --name pcduino --restart 172.19.148.42'
    7.         echo "Starting synergy client..."
    8.         ;;
    9.      stop)
    10.         pkill synergyc
    11.         echo "Attempting to kill synergy client"
    12.         ;;
    13.      *)
    14.         echo "Usage: /etc/init.d/synergy (start/stop)"
    15.         exit 1
    16.         ;;
    17.     esac
    18.     exit 0
    复制代码

    copy到/etc/init.d/上就是为了修改这个文件,我修改了sd卡上面的文件,再次启动pcDuino的时候这个文件就会被修改,启动synergy的时候参数也会修改,另外放到在/etc/init.d下是为了更方便的设置


    建立好/etc/init.d/synergy后,运行  

    sudo update-rc.d synergy defaults    sudo update-rc.d-insserv synergy      
    之后可以使用以下指令启停synergy啦
    1.     /etc/init.d/synergy start
    2.     /etc/init.d/synergy stop
    3.     service synergy start
    4.     service synergy stop
    复制代码
    至此synergy在pcDuino上可配置的使用和运行了。途中还是出现其他问题,如果在rc.local上直接添加启动运行synergy的指令会无效或者有时开机启动成功有时则不行,可能更我配置有关,后续再查明原因。


    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-3-14 15:08:52 | 显示全部楼层
    wyzamazon 发表于 2013-3-14 15:05
    xinxin开始玩pcDuino   厉害啊

    我可玩不转,等大牛来玩吧~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-1-28 16:20
  • 签到天数: 980 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-3-14 15:09:10 | 显示全部楼层
    看到一堆的代码头就晕了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-3-14 16:42:46 | 显示全部楼层
    以后转载注明出处吧,这个论坛开通的晚了,不然就来这里发了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-3-14 16:45:01 | 显示全部楼层
    kaijiexue 发表于 2013-3-14 16:42
    以后转载注明出处吧,这个论坛开通的晚了,不然就来这里发了

    不好意思,发的仓促,现已注明原文链接!以后肯定注意,还望您多多包涵{:soso_e183:}
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-3-14 16:47:11 | 显示全部楼层
    xinxincaijq 发表于 2013-3-14 16:45
    不好意思,发的仓促,现已注明原文链接!以后肯定注意,还望您多多包涵 ...

    没事 已经收藏这个论坛了,希望资料丰富起来。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-3-14 16:49:40 | 显示全部楼层
    kaijiexue 发表于 2013-3-14 16:47
    没事 已经收藏这个论坛了,希望资料丰富起来。

    多谢多谢{:soso_e183:},资料我们会尽快丰富起来,厂商也会在论坛提供技术支持,希望给大家提供更多更好的帮助和服务!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 20:27 , Processed in 0.173154 second(s), 27 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.