北冥有鱼 记录生活点滴,分享学习心得

Raspberry Pi初始化开发流程

无显示屏设备联网与配置

Posted by YuChen on January 9, 2022

1. 工具准备

  • software/operating-systems上下载Raspberry Pi OS with desktop的torrent文件,并使用qBittorrent工具打开得到的torrent文件以下载raspios-xx.zip文件,解压后可得到对应的raspios-xx.img文件。
  • 使用SDFormatter格式化准备好的SD卡(建议8GB以上)。
  • 使用Win32 Disk Imager将raspios-xx.img文件写入到SD卡中。操作步骤如下:

    1) 选择img镜像文件 –> 2) 选择设备 –> 3) 点击写入,等待显示“写入成功” 的对话框出现。

2. 预设SD卡

完成上述步骤后,SD卡在系统中显示为boot分区(200+MB),并且SD卡其余存储空间被隐藏。

2.1 开启SSH服务

在SD卡boot分区根目录创建一个名为ssh的空白文本文档。若不进行此步操作,则会显示Network error: Connection refused

2.2 显示设置

在SD卡boot分区中找到config.txt文件,修改如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 使用HDMI端口连接到显示器,如果发现画面四周存在黑边,可以通过将该值设为1来避免
disable_overscan=1

# 强制树莓派使用HDMI端口,即使树莓派没有检测到显示器连接仍然使用HDMI端口
hdmi_force_hotplug=1

# hdmi_group = 1 :使用CEA分辨率,hdmi_group = 2 :使用DMT分辨率
hdmi_group=2
# hdmi_mode=51 :分辨率设置为1600x1200  60Hz
hdmi_mode=51

# 强制使用HDMI模式而不是DVI模式,这使得DMT模式下音频可以正常工作
hdmi_drive=2

# 增强HDMI信号
config_hdmi_boost=4

# 注释掉以下两条语句,避免使用VNC Viewer连接树莓派时只能显示很小的窗口
#dtoverlay=vc4-kms-v3d
#max_framebuffers=2

2.3 WiFi连接预设

在SD卡boot分区创建wpa_supplicant.conf文件,并写入如下内容(确保所使用WiFi加密类型为WPA/WPA2-PSK):

1
2
3
4
5
6
7
8
9
10
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="WiFi名称"
    key_mgmt=WPA-PSK
    psk="WiFi密码"
    priority=1
}

在树莓派通电后,会自动将boot分区的wpa_supplicant.conf文件内容添加到/etc/wpa_supplicant/wpa_supplicant.conf文件中,以便进行WiFi的自动连接。

完成上述设置,将准备好的SD卡插入到树莓派中。启动电源后,红灯亮表示供电正常,绿灯闪烁表示在读取SD卡。

3. 设置树莓派系统

  • 登录路由器管理网站(如192.168.1.1),查看树莓派连接到WiFi后分配到的IP地址。

    路由器管理网站:状态 –> 用户侧信息 –> 终端下挂设备信息 –> 查看raspberrypi的IP地址

  • 使用ssh pi@树莓派IP地址登录树莓派以获取树莓派系统终端(初始密码为raspberry)。

3.1 设置apt中国源

  • 修改树莓派系统中的/etc/apt/sources.list内容,将其替换为如下内容:
    1
    2
    
    deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main contrib non-free rpi
    deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main contrib non-free rpi
    
  • 修改树莓派系统中的/etc/apt/sources.list.d/raspi.list内容,将其替换为如下内容:
    1
    2
    
    deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main
    deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main
    

3.2 设置pip中国源

创建~/.pip/pip.conf文件,填入如下内容:

1
2
3
4
5
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn

4. 开启VNC服务

使用ssh登录树莓派系统,获取树莓派终端,进行如下操作:

  • 输入sudo raspi-config命令,打开树莓派配置工具用于开启VNC服务。

    选择3 Interface Options –> 选择I3 VNC –> 提示是否要开启VNC,选择 --> 开启后,可使用Tab键选择`Finish`结束

  • 输入sudo raspi-config命令,打开树莓派配置工具用于设置VNC显示分辨率。

    选择2 Display Options –> 选择D1 Resolution –> 选择DMT Mode 51 –> 确定后,可使用Tab键选择`Finish`结束

4.1 设置开机自启VNC服务

  • 在树莓派终端上输入sudo vim /etc/init.d/vncserver命令,并填入如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/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)
    # 启动命令行:设置分辨率、控制台号码或其它参数
    # -depth 24 用于设置图像质量,-geometry 1600x1200 用于设置分辨率
    su $USER -c '/usr/bin/vncserver -depth 24 -geometry 1600x1200 :1'
    echo "Starting VNCServer 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
  • 使用sudo chmod 755 /etc/init.d/vncserver命令设置vncserver文件的权限
  • 使用sudo update-rc.d vncserver defaults命令添加VNC服务为开机启动项
  • 使用 sudo reboot命令重启树莓派。重启后,可使用VNC Viewer远程连接树莓派的图形界面系统

5. 安装Wiring Pi库

使用ssh登录树莓派系统,获取树莓派终端,执行如下命令:

1
2
cd /tmp && wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

参考资料





更多文章