美文网首页
Raspberry Pi (Raspbian)

Raspberry Pi (Raspbian)

作者: Rco | 来源:发表于2017-05-01 16:35 被阅读82次

    Since Mar.27th,2017

    • 配置 vnc(tightvncserver)

      安装 server 端

      sudo apt-get install tightvncserver
      
      

    配置密码

    vncpasswd
    

    输入两次确认后创建 vnc-server 配置文件

    sudo nano /etc/init.d/tightvncserver
    

    内容如下:

    ### BEGIN INIT INFO
    # Provides:          tightvncserver
    # Required-Start:    $local_fs
    # Required-Stop:     $local_fs
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Start/stop tightvncserver
    ### END INIT INFO
    # More details see:
    # http://www.penguintutor.com/linux/tightvnc
    ### Customize this entry
    # Set the USER variable to the name of the user to start tightvncserver under
    export USER='pi'
    ### End customization required
    eval cd ~$USER
    case "$1" in
      start)
        su $USER -c '/usr/bin/tightvncserver -depth 16 -geometry 800x600 :1'
        echo "Starting TightVNC server for $USER "
        ;;
      stop)
        su $USER -c '/usr/bin/tightvncserver -kill :1'
        echo "Tightvncserver stopped"
        ;;
      *)
        echo "Usage: /etc/init.d/tightvncserver {start|stop}"
        exit 1
        ;;
    esac
    exit 0
    

    增加可执行权限

    sudo chmod +x /etc/init.d/tightvncserver
    

    注意,对于 Raspbian 8 (Jessie),用sudo service tightvncserver start启动会报错,需要创建/etc/systemd/system/vncserver@.service文件,

    [Unit]
    Description=Remote desktop service (VNC)
    After=syslog.target network.target
    [Service]
    Type=forking
    User=pi
    PAMName=login
    PIDFile=/home/pi/.vnc/%H:%i.pid
    ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
    ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
    ExecStop=/usr/bin/vncserver -kill :%i
    [Install]
    WantedBy=multi-user.target
    

    基于执行权限

    sudo chmod +x  /etc/systemd/system/vncserver@.service
    

    开启服务

    sudo systemctl start vncserver@1.service
    

    enable with

    sudo systemctl daemon-reload && sudo systemctl enable vncserver@1.service
    

    安装 vnc 的客户端(Ubuntu上默认是 Remmina,Windows据说可以使用 tightvnc)后,设置好 IP:port,一般 port 默认是1就可以(比如192.168.1.10:1),如果必须要输入密码,那就输入实际的用户(比如默认是 pi)和密码。
    然后就可以连接了。
    详情参考

    http://www.jianshu.com/p/a011d01bdf51
    http://raspberrypi.stackexchange.com/questions/39372/etc-init-d-tightvncserver-script-fails-at-boot

    • 配置串口
      树莓派 3B 拥有硬件串口(ttyAMA0)和软件串口(ttyS0),默认硬件串口是分配给蓝牙的,不能直接使用,能够直接使用的软件串口的传输速率确实取决于内核频率的,也就是说不具备完全的串口功能,或者很不稳定,因此考虑关闭蓝牙对硬件串口的使用,将硬件串口作为我们的串口来使用。以下是配置步骤:

      1. 默认情况下,只有 ttyAMA0 是打开的,但是它也是被蓝牙所占用的。因此编辑 /boot/config.txt 中的 enable_uart 一行为 enable_uart=1,打开另一个串口,即 ttyS0。(如果不执行这一步的话,在执行下一步关闭蓝牙对硬件串口的使用后,就会关闭 ttyAMA0,自动打开并使用 ttyS0,可能是因为蓝牙不使用 ttyAMA0 后就默认使用了另一个串口 ttyS0。)

      2. 编辑 /boot/config.txt,在最后添加一行dtoverlay=pi3-disable-bt,关闭蓝牙对 ttyAMA0 的使用。(可能就转而使用 ttyS0 了。)

      3. sudo raspi-config 选择 Advanced Options,选择 Serial,选择 No,关闭从串口输出开机信息和使用登陆程序 getty。

      4. 重启即可生效。

      随时可以使用ls /dev -la |grep serial来查看当前能够使用的串口情况,默认情况下是

    serial0 -> ttyAMA0
    

    (前面部分信息省略)

    根据以上步骤更改后,应为

    serial0 -> ttyAMA0
    serial1 -> ttyS0
    

    此时就可以正常使用 ttyAMA0 了。
    可以使用 minicom (需要安装)来调试,比如:

    minicom -b 9600 -D /dev/ttyAMA0
    

    然后自己写个 python 脚本从串口发数据即可,就回在打开了 minicom 的终端显示数据。(硬件上需要把 TXD0 和 RXD0 连接)

    相关文章

      网友评论

          本文标题:Raspberry Pi (Raspbian)

          本文链接:https://www.haomeiwen.com/subject/zlyrottx.html