Skip to main content

树莓派的入门指南

· 8 min read

从镜像烧录开始,到配置VNC,介绍树莓派拿到手之后的基本设置。

环境介绍:

  • 工作电脑: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 代理上网