6 min read

树莓派的入门指南

从镜像烧录开始,到配置VNC,介绍树莓派拿到手之后的基本设置。
树莓派的入门指南
Photo by Jainath Ponnala / Unsplash

环境介绍:

  • 工作电脑:Mac M1, v11.6
  • 树莓派硬件版本: 3B
  • 树莓派系统版本:raspios_arm64-2021-05-28

安装

下载系统镜像

需要注意的是armhf是32位的,arm64才是64位的。下载的zip文件尽量用Keka等第三方工具解压,用Mac自带的归档实用工具解压会遇到烧录之后校验失败的问题

烧录工具

初步配置

开启SSH

新版本已经默认关闭了SSH,在 SD 卡的根目录新建一个名为"ssh"的空文件,系统启动时会检测这个文件,然后开启SSH功能

获取IP地址

树莓派接上电源线,按一下线中间的按钮,树莓派通电之后会亮红灯,先用网线连上路由器,在路由器设置页面查看当前树莓派连上的IP地址

连接SSH

打开电脑终端,输入命令: ssh pi@192.169.x.x

pi是默认的用户名,后面的IP地址换成第2步获取的 IP,默认密码是raspberry

安装 VNC 服务器

新版本默认取消了 VNC 功能,需要自己安装

sudo apt-get install tightvncserver

启动,然后输入一个密码

vncserver :1

在Mac安装一个 VNC Viewer 软件,打开之后在地址栏输入地址192.168.x.x:1,再输入密码,即可看到树莓派的桌面。

配置WIFI

在第4步完成之后,能看到桌面自然也可以图形化设置了,下面提供一种命令行设置方式

  • 打开 /etc/wpa_supplicant/wpa_supplicant.conf 文件
  • 添加下面的内容
network={
	ssid="WIFI名字"
	psk="WIFI密码"
}
  • 验证连接: sudo wpa_cli reconfigure

设置静态IP

防止每次 DHCP 分配不同的 IP,设置静态IP是必需的。图形化设置即可,当然也有命令行设置, 打开/etc/dhcpcd.conf文件,添加如下内容:

interface eth0
inform 192.168.1.7
static routers=192.168.1.3
static domain_name_servers=114.114.114.114

eth0是有限连接,wlan0是WIFI连接

设置国内镜像源

推荐清华大学的,具体看帮助文档
第一步,把/etc/apt/sources.list所有内容替换为:

deb http://mirrors.tuna.tsinghua.edu.cn/debian buster main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security/ buster/updates main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian buster-updates main contrib non-free
## 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
#deb-src http://mirrors.tuna.tsinghua.edu.cn/debian buster main contrib non-free
#deb-src http://mirrors.tuna.tsinghua.edu.cn/debian-security/ buster/updates main contrib non-free
#deb-src http://mirrors.tuna.tsinghua.edu.cn/debian buster-updates main contrib non-free

第二步,把/etc/apt/sources.list.d/raspi.list所有内容替换为

deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
## 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
#deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

第三步,更新:sudo apt-get update

可能会有个错误:

pi@raspberrypi:~ $ sudo apt-get update
Get:1 http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian buster InRelease [15.0 kB]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/raspberrypi buster InRelease [32.6 kB]
Err:1 http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian buster InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9165938D90FDDD2E

然后执行命令

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E

VNC 自启动配置分辨率

  1. 编辑文件/etc/init.d/vncserver, 加入下面的内容

    #!/bin/sh
    #### BEGIN INIT INFO
    ## Provides: vncserver
    ## Required-Start: $local_fs
    ## Required-Stop: $local_fs
    ## Default-Start: 2 3 4 5
    ## Default-Stop: 0 1 6
    ## Short-Description: Start/stop vncserver
    #### END INIT INFO
    	
    ## More details see:
    ## http://www.penguintutor.com/linux/vnc
    	
    #### Customize this entry
    ## Set the USER variable to the name of the user to start vncserver under
    export USER='pi'
    #### End customization required
    	
    eval cd ~$USER
    	
    case "$1" in
      start)
      ## 启动命令行。此处自定义分辨率、控制台号码或其它参数。
      su $USER -c '/usr/bin/vncserver -depth 16 -geometry 800x480 :1'
      su $USER -c '/usr/bin/vncserver -depth 16 -geometry 1024x768 :2'
      su $USER -c '/usr/bin/vncserver -depth 16 -geometry 1280x800 :3'
      su $USER -c '/usr/bin/vncserver -depth 16 -geometry 1440x900 :4'
      su $USER -c '/usr/bin/vncserver -depth 16 -geometry 1920x1080 :5'
      su $USER -c '/usr/bin/vncserver -depth 16 -geometry 1440x1440 :6'
    	
      echo "Starting VNC server for $USER "
      ;;
      stop)
      ## 终止命令行。此处控制台号码与启动一致。
      su $USER -c '/usr/bin/vncserver -kill :1'
      echo "vncserver stopped"
      ;;
      *)
      echo "Usage: /etc/init.d/vncserver {start|stop}"
      exit 1
      ;;
    esac
    exit 0
    
    
  2. 保存文件,增加可执行属性,

    sudo chmod 755 /etc/init.d/vncserver
    sudo update-rc.d vncserver defaults
    
  3. 设置0端口分辨率: sudo vi /boot/config.txt, 取消下面两行的注释,没有就加上

framebuffer_width=1280
framebuffer_height=720
  1. 以后就可以通过在IP地址后面通过修改端口来打开不同分辨率的桌面了,比如输入"192.168.x.x:5",可以打开1920x1080分辨率。

上传文件到pi

如果能使用SSH,那么肯定可以使用sftp了,下载 Filezilla,打开之后在主机项里面填 sftp://192.168.x.x,端口可以忽略。

安装 Shadowsocks 服务

  1. 安装pip管理python包和shadowsocks

    sudo apt-get install python-pip python-m2crypto
    sudo pip install shadowsocks
    

    如果加密方式是chacha20的,则还需要以下命令来安装libsodium

    wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
    tar zxf LATEST.tar.gz
    cd libsodium*
    ./configure
    make && sudo make install
    

    修复关联

    echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
    ldconfig
    
  2. 创建客户端配置文件/etc/shadowsocks.json

    {
        "server": "58.***.**.*",
        "server_port": 8390,
        "password": "********",
        "method": "aes-256-cfb",
        "local_port": 1080,
        "timeout": 600
    }
    
  3. 设置开机启动,在/etc/rc.local的exit之前添加如下:

    /usr/local/bin/sslocal -c /etc/shadowsocks.json &
    

配置命令行HTTP代理

大部分文章都是用 polipo,但是作者已经明说不在维护这个工具了。推荐使用 proxychains ng,这个库现在还很活跃。

安装命令:

git clone https://github.com/rofl0r/proxychains-ng
cd proxychains-ng
./configure
make && sudo make install
sudo make install-config 

修改配置文件/usr/local/etc/proxychains.conf最后一行,改成下面的样子:

socks5 127.0.0.1 1080

测试命令: proxychains4 curl ip.cn

GPIO图

参考资料

  1. 为树莓派设置静态IP地址的方法
  2. 树莓派---MAC下安装Raspbian
  3. 树莓派自带的vnc连接,并设置自启动
  4. 跟着上手树莓派(二)—— SSH & VNC 连接
  5. 配置Linux客户端使用socks5代理上网