实验环境

硬件:全志H3芯片,HDMI口插一个显示器DISPLAY :0.0;一个USB摄像头,挂在/dev/video0上。
软件:Ubuntu16.04,运行MATE Desktop。
登录:用MobaXTerm通过SSH登录到Linux板卡。

需求

由于Linux板卡只有一个显示器,没有键盘鼠标。需要启动一个桌面程序(以Camorama显示usb摄像头为例)。

验证实验环境

如何验证显示器和摄像头:
printenv 从打印的信息中找一条DISPLAY …,它的格式是DISPLAYhost:NumA.NumB,例如在ssh终端打印出来是DISPLAY=localhost:10.0;在桌面终端打印出来是DISPALY=:0.0
ls /dev/video*可以列出摄像头。

具体步骤

  • step1:开机,SSH登录
    板卡有两个用户:一个pi,一个root。而桌面环境登录的用户是pi,所以ssh登录也登录到pi

  • step2:设置允许别的用户启动窗体程序

    xhost +
    
  • step3:设置窗口程序要输出的显示器:

    export DISPLAY=:0.0
    
  • step4:启动程序:例如

    camorama /dev/video0
    
  • step5:上述操作要求ssh终端中的用户与桌面用户一样,而若要在ssh中用root用户启动桌面程序就会报错

    No protocol specified
    Error: couldn't open display :0
    

    要解决这个问题,需要在.bashrc中添加:

    export XAUTHORITY=~/.Xauthority
    

    保存退出,再使其生效:

    source ~/.bashrc
    

    即可用其他用户启动桌面程序。

现象

摄像头启动成功。
在这里插入图片描述

Logo

更多推荐