模板: Raspberry-pi-Configuration
来自Waveshare Wiki
配置
raspi-config 工具
- raspi-config是树莓派官方镜像自带的一个系统配置工具。
- 如果您使用的是树莓派桌面,则可以使用"首选项"菜单中的图形化" 树莓派配置"应用程序来配置树莓派。
- 要打开配置工具,请在命令行中键入以下内容:
sudo raspi-config
- 基本操作:键盘上的上、下键进行菜单项目的选择,回车键进入,左右键进行OK和cancel等按钮的选择,Esc键取消返回,空格键为选择定选项。最后改完后选择Finish退出即可,可能会重启。
- 任何更改都将在重新启动后生效,您可以通过编辑config.txt设置。
选项列表
System Options
- 树莓派的引导、登录和网络过程的各个部分进行配置更改。
- Wireless LAN:树莓派无线上网设置,选择要连接的网络。
- Audio:音频输出。
- Password:树莓派的默认用户是pi密码raspberry。如果你不想让别人访问你的Pi,可以点击change修改密码。
- Hostname:树莓派系统默认的主机名为raspberrypi,你可以修改自己专属的主机名 hostname:

- Boot / Auto Login:从此子菜单中,您可以选择是引导到控制台还是桌面,以及是否需要登录。如果您选择自动登录,您将以pi用户身份登录。
- Network at Boot:使用此选项等待网络连接,然后再继续引导。
- Splash Screen:启用或禁用启动时显示的启动画面。
Display Options
- D2 Underscan 去除屏幕周围的黑边,将overscan禁用掉来让系统充分利用整个屏幕。
- D4 Screen Blanking 启用/禁用屏幕空白。
- D5 VNC Resolution:设置远程桌面VNC的分辨率。
- D6 Composite:组合输出选项。
Interface Options
Performance Options
- P1 Overclock:适当的对树莓派的CPU进行超频,可以实现一些性能的提升,注意的是超频可能会减少树莓派的寿命,超频还会在一定程度上导致系统不稳定,建议不要更改,更改后会失去保修。
- P2 GPU Memory:给GPU分配内存。中央处理器(CPU)和图形处理器(GPU)。树莓派上的内存是分一些给CPU用,分一些给GPU用的,GPU占用的默认是128M。
- P3 Overlay File System :启用/禁用只读文件系统
Localisation Options Configure language and regional settings
- 本地化子菜单可以设置键盘布局、时区、区域设置和无线 LAN 国家代码。
Advanced Options
- A1 Expand Filesystem :允许您扩展文件系统。扩展文件系统将最大化分区的大小以匹配物理TF卡上可用的大小。
- A3 Compositor:启用/禁用xcompmgr组合管理器
- A4 Network Interface Names:切换网卡命名规则。
- A5 Network Proxy Settings:配置网络代理设置。
- A6 Boot Order:选择网络或USB设备启动。
- A7 Bootloader版本:选择最新或默认启动ROM软件。
Update
- 将raspi-config工具更新到最新版本。
About raspi-config
- 显示raspi-config版本信息。
config.txt 文件
- 由于树莓派并没有传统意义上的BIOS,为了替代BIOS的功能,树莓派使用SD卡第一“boot”分区上的“config.txt”文件存储配置项。树莓派的config.txt文件会在ARM内核初始化之前被GPU读取。它位于SD卡的/boot(引导)分区上,并且必须以root身份进行编辑。
- 更改里面的参数都需要重新启动树莓派后才会生效。Linux 启动后,您可以使用以下命令查看当前活动设置:
- vcgencmd get_config <config>:这会显示一个特定的配置值,例如查看树莓派4B的CPU默认主频:
vcgencmd get_config arm_freq
其中1800指的是1.8GHz。
- 对于一些最早期推出的树莓派4,还采用旧版供电模块的PCB,官方表示也可以通过手动修改config.txt文件来超频,而且只要加入arm_freq=1800一行命令就行了,如果运行不稳定的话,再按50MHz逐级下调就好了,或者稍微加点电压。
- config.txt文件由早期启动固件读取,因此文件格式非常简单。格式是每行上的单个property=value语句,其中value是整数或字符串。#通过以字符开头的一行,可以添加注释,或者可以注释掉和禁用现有的配置值。
AP
- 建议本地访问,将屏幕、鼠标、网线和键盘连接到您的树莓派,启动树莓派,确保树莓派软件源是最新的,可以使用命令更新:
sudo apt update
- 记下树莓派连接到的以太网的 IP 配置:
- 将192.168.4.0/24设置为树莓派无线客户端管理 IP 网络。如果 192.168.4.0/24这个网段IP 网络已被您的以太网 LAN 使用,请为无线选择另一个网段 IP 网络,例如192.168.10.0/24,
- 准备好无线客户端(笔记本电脑、智能手机……)来测试您的新无线网络。
安装 AP 和管理软件
-
为了让树莓派创建无线热点,树莓派需要安装hostapd:
sudo apt install hostapd
-
启用无线接热点服务,并将其设置为树莓派开机自启:
sudo systemctl unmask hostapd sudo systemctl enable hostapd
-
为了向无线客户端提供网络管理服务(DNS、DHCP),树莓派需要dnsmasq安装以下软件包:
sudo apt install dnsmasq
-
正常情况下,我们写入的iptables规则将会在系统重启时消失,让防火墙规则重启后依旧有效,安装netfilter-persistent及其插件iptables-persistent。:
sudo DEBIAN_FRONTEND=noninteractive apt install -y netfilter-persistent iptables-persistent
设置网络路由器
-
定义无线接口 IP 配置。
树莓派为无线网络运行 DHCP 服务器;这需要对树莓派中的无线接口 (wlan0)进行静态 IP 配置。树莓派还充当无线网络上的路由器的时候,我们一般会给它网络中的第一个 IP 地址:192.168.4.1.
要配置静态 IP 地址,请编辑配置文件dhcpcd,转到文件末尾并添加以下内容:
sudo nano /etc/dhcpcd.conf
interface wlan0 static ip_address=192.168.4.1/24 nohook wpa_supplicant -
要让树莓派具有路由转发功能,需要配置一个树莓派的内核参数net.ipv4.ip_forward。这个参数指定了树莓派当前对路由转发功能的支持情况;其值为0时表示禁止进行IP转发;值为1时表示允许IP转发,请使用以下命令创建一个文件,其内容如下:
sudo nano /etc/sysctl.d/routed-ap.conf
# Enable IPv4 routing net.ipv4.ip_forward=1
-
防火墙伪装是树莓派本身内建了一种称作”伪装”的简单机制,设定要使用”IP伪装”时,它会将内部与外部两个网络桥接起来,并自动解译由内往外或由外至内的IP地址,通常这个动作称为网络地址转换。树莓派这种”IP伪装”法,就是把你的IP藏起来,不让网络上的其他人看到。那我们就利用树莓派自带防火墙伪装“IP”来配置路由器:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
-
现在保存 IPv4(包括上面的规则)和 IPv6 的当前防火墙规则,由于 iptables-persistent 在安装时已经把它作为一个服务设置为开机启动了,它在开机后会自动加载已经保存的规则:
sudo netfilter-persistent save
-
为无线网络配置 DHCP 和 DNS 服务。DHCP 和 DNS 服务由dnsmasq默认配置文件用作模板,重命名默认配置文件并编辑一个新的:
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig sudo nano /etc/dnsmasq.conf
将以下内容添加到文件并保存:
interface=wlan0 # Listening interface dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h # Pool of IP addresses served via DHCP domain=wlan # Local wireless DNS domain address=/gw.wlan/192.168.4.1 # Alias for this router -
确保无线操作
世界各国对电信无线电频段的使用进行规范,在树莓派配置 WiFi 国家代码之前,5 GHz无线网络被禁用。在设置国家代码之前我们先禁用wifi,请执行以下命令:
sudo rfkill unblock wlan
此设置将在启动时自动恢复。接下来,我们将在接入点软件配置中定义适当的国家代码。
-
配置 AP 软件
创建hostapd位于 的配置文件,/etc/hostapd/hostapd.conf为您的新无线网络添加各种参数。
sudo nano /etc/hostapd/hostapd.conf
将以下信息添加到配置文件中。此配置假设我们使用的是通道 7,网络名称为waveshareRaspberry,密码为waveshare12345。请注意,名称和密码不应有引号。密码短语的长度应介于 8 到 64 个字符之间。
country_code=CN interface=wlan0 ssid=waveshareRaspberry hw_mode=g channel=7 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=waveshare12345 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
注意这一行country_code=CN:它将计算机配置为在中国使用正确的无线频率。现在我们身处中国,所以我们填入我们的国家代码CN,如果您不知道您的国家代码可以去wikipedia查找。
要使用 5 GHz 频段,您可以将操作模式从 更改hw_mode=g为hw_mode=a。的可能值为hw_mode:
a = IEEE 802.11a (5 GHz)(树莓派 3B+ 以上)
b = IEEE 802.11b (2.4 GHz)
g = IEEE 802.11g (2.4 GHz)
-
运行新的无线 AP
现在重新启动您的树莓派并验证无线接入点是否自动可用。
sudo systemctl reboot
- 重新启动树莓派后,使用手机或者电脑就可以搜索无线网络。
HDMI配置
- 在树莓派4B上,有两个微型HDMI端口。最多可驱动两台显示器,分辨率高达1080p,刷新率为60Hz。在 4K分辨率下,如果连接两台显示器,则刷新率限制为30Hz。您还可以以60Hz的刷新率以4K驱动单个显示器:这要求显示器连接到与USB-C 电源输入相邻的 HDMI 端口(标记为 HDMI0)。hdmi_enable_4kp60=1您还必须通过在config.txt中设置标志来启用4Kp60 输出。
HDMI 组和模式
- HDMI 有两个常见的组:CEA(消费电子协会,电视通常使用的标准)和DMT(显示监视器计时,监视器通常使用的标准)。每个组都宣传一组特定的模式,其中一个模式描述了输出的分辨率、帧速率、时钟速率和纵横比。
模式支持
-
在使用tvservice命令前,需要将默认的KMS驱动修改为FKMS驱动,修改方法:打开/boot目录下config.txt文件:
sudo nano /boot/config.txt
在config.txt中将dtoverlay=vc4-kms-v3d
修改为dtoverlay=vc4-fkms-v3d
-
您可以tvservice在命令行来确定您的设备支持哪些模式以及其他有用的数据:
- tvservice -s显示当前 HDMI 状态,包括模式和分辨率
- tvservice -m CEA列出所有支持的CEA模式
- tvservice -m DMT列出所有支持的DMT模式
设置特定的HDMI模式
-
修改config.txt文件下 hdmi_group和hdmi_mode这两行可以设置HDMI输出格式CEA或DMT。模式选择分辨率和帧速率。结合模式表和使用上述tvservice命令来准确了解您的设备支持哪些模式。
hdmi_group=1 CEA模式
hdmi_mode 分辨率 频率 屏幕尺寸 备注 1 VGA(640×480) 60Hz 4:3 2 480p 60Hz 4:3 3 480p 60Hz 16:9 4 720p 60Hz 16:9 5 1080i 60Hz 16:9 6 480i 60Hz 4:3 7 480i 60Hz 16:9 8 240p 60Hz 4:3 9 240p 60Hz 16:9 10 480i 60Hz 4:3 四倍像素 11 480i 60Hz 16:9 四倍像素 12 240p 60Hz 4:3 四倍像素 13 240p 60Hz 16:9 四倍像素 14 480p 60Hz 4:3 四倍像素 15 480p 60Hz 16:9 四倍像素 16 1080p 60Hz 16:9 17 576p 50Hz 4:3 18 576p 50Hz 16:9 19 720p 50Hz 16:9 20 1080i 50Hz 16:9 21 576i 50Hz 4:3 22 576i 50Hz 16:9 23 288p 50Hz 4:3 24 288p 50Hz 16:9 25 576i 50Hz 4:3 四倍像素 26 576i 50Hz 16:9 四倍像素 27 288p 50Hz 4:3 四倍像素 28 288p 50Hz 16:9 四倍像素 29 576p 50Hz 4:3 四倍像素 30 576p 50Hz 16:9 四倍像素 31 1080p 50Hz 16:9 32 1080p 24Hz 16:9 33 1080p 25Hz 16:9 34 1080p 30Hz 16:9 35 480p 60Hz 4:3 四倍像素 36 480p 60Hz 16:9 四倍像素 37 576p 50Hz 4:3 四倍像素 38 576p 50Hz 16:9 四倍像素 39 1080i 50Hz 16:9 减少消隐 40 1080i 100Hz 16:9 41 720p 100Hz 16:9 42 576p 100Hz 4:3 43 576p 100Hz 16:9 44 576i 100Hz 4:3 45 576i 100Hz 16:9 46 1080i 120Hz 16:9 47 720p 120Hz 16:9 48 480p 120Hz 4:3 49 480p 120Hz 16:9 50 480i 120Hz 4:3 51 480i 120Hz 16:9 52 576p 200Hz 4:3 53 576p 200Hz 16:9 54 576i 200Hz 4:3 55 576i 200Hz 16:9 56 480p 240Hz 4:3 57 480p 240Hz 16:9 58 480i 240Hz 4:3 59 480i 240Hz 16:9 60 720p 24Hz 16:9 61 720p 25Hz 16:9 62 720p 30Hz 16:9 63 1080p 120Hz 16:9 64 1080p 100Hz 16:9 65 空 66 720p 25Hz 64:27 适用pi4 67 720p 30Hz 64:27 适用pi4 68 720p 50Hz 64:27 适用pi4 69 720p 60Hz 64:27 适用pi4 70 720p 100Hz 64:27 适用pi4 71 720p 120Hz 64:27 适用pi4 72 1080p 24Hz 64:27 适用pi4 73 1080p 25Hz 64:27 适用pi4 74 1080p 30Hz 64:27 适用pi4 75 1080p 50Hz 64:27 适用pi4 76 1080p 60Hz 64:27 适用pi4 77 1080p 100Hz 64:27 适用pi4 78 1080p 120Hz 64:27 适用pi4 79 1680×720 24Hz 64:27 适用pi4 80 1680×720 25Hz 64:27 适用pi4 81 1680×720 30Hz 64:27 适用pi4 82 1680×720 50Hz 64:27 适用pi4 83 1680×720 60Hz 64:27 适用pi4 84 1680×720 100Hz 64:27 适用pi4 85 1680×720 120Hz 64:27 适用pi4 86 2560×720 24Hz 64:27 适用pi4 87 2560×720 25Hz 64:27 适用pi4 88 2560×720 30Hz 64:27 适用pi4 89 2560×720 50Hz 64:27 适用pi4 90 2560×720 60Hz 64:27 适用pi4 91 2560×720 100Hz 64:27 适用pi4 92 2560×720 120Hz 64:27 适用pi4 93 2160p 24Hz 16:9 适用pi4 94 2160p 25Hz 16:9 适用pi4 95 2160p 30Hz 16:9 适用pi4 96 2160p 50Hz 16:9 适用pi4 97 2160p 60Hz 16:9 适用pi4 98 4096×2160 24Hz 256:135 适用pi4 99 4096×2160 25Hz 256:135 适用pi4 100 4096×2160 30Hz 256:135 适用pi4 101 4096×2160 50Hz 256:135 适用pi4 102 4096×2160 60Hz 256:135 适用pi4 103 2160p 24Hz 64:27 适用pi4 104 2160p 25Hz 64:27 适用pi4 105 2160p 30Hz 64:27 适用pi4 106 2160p 50Hz 64:27 适用pi4 107 2160p 60Hz 64:27 适用pi4 hdmi_group=2 DMT模式
hdmi_mode 分辨率 频率 屏幕尺寸 备注 1 640×350 85Hz 2 640×400 85Hz 16:10 3 720×400 85Hz 4 640×480 60Hz 4:3 5 640×480 72Hz 4:3 6 640×480 75Hz 4:3 7 640×480 85Hz 4:3 8 800×600 56Hz 4:3 9 800×600 60Hz 4:3 10 800×600 72Hz 4:3 11 800×600 75Hz 4:3 12 800×600 85Hz 4:3 13 800×600 120Hz 4:3 14 848×480 60Hz 16:9 15 1024×768 43Hz 4:3 不适用树莓派 16 1024×768 60Hz 4:3 17 1024×768 70Hz 4:3 18 1024×768 75Hz 4:3 19 1024×768 85Hz 4:3 20 1024×768 120Hz 4:3 21 1152×864 75Hz 4:3 22 1280×768 60Hz 15:9 减少消隐 23 1280×768 60Hz 15:9 24 1280×768 75Hz 15:9 25 1280×768 85Hz 15:9 26 1280×768 120Hz 15:9 减少消隐 27 1280×800 60Hz 16:10 减少消隐 28 1280×800 60Hz 16:10 29 1280×800 75Hz 16:10 30 1280×800 85Hz 16:10 31 1280×800 120Hz 16:10 减少消隐 32 1280×960 60Hz 4:3 33 1280×960 85Hz 4:3 34 1280×960 120Hz 4:3 减少消隐 35 1280×1024 60Hz 5:4 36 1280×1024 75Hz 5:4 37 1280×1024 85Hz 5:4 38 1280×1024 120Hz 5:4 减少消隐 39 1360×768 60Hz 16:9 40 1360×768 120Hz 16:9 减少消隐 41 1400×1050 60Hz 4:3 减少消隐 42 1400×1050 60Hz 4:3 43 1400×1050 75Hz 4:3 44 1400×1050 85Hz 4:3 45 1400×1050 120Hz 4:3 减少消隐 46 1440×900 60Hz 16:10 减少消隐 47 1440×900 60Hz 16:10 48 1440×900 75Hz 16:10 49 1440×900 85Hz 16:10 50 1440×900 120Hz 16:10 减少消隐 51 1600×1200 60Hz 4:3 52 1600×1200 65Hz 4:3 53 1600×1200 70Hz 4:3 54 1600×1200 75Hz 4:3 55 1600×1200 85Hz 4:3 56 1600×1200 120Hz 4:3 减少消隐 57 1600×1200 60Hz 16:10 减少消隐 58 1600×1200 60Hz 16:10 59 1600×1200 75Hz 16:10 60 1600×1200 85Hz 16:10 61 1600×1200 120Hz 16:10 减少消隐 62 1792×1344 60Hz 4:3 63 1792×1344 75Hz 4:3 64 1792×1344 120Hz 4:3 减少消隐 65 1856×1392 60Hz 4:3 66 1856×1392 75Hz 4:3 67 1856×1392 120Hz 4:3 减少消隐 68 1920×1200 60Hz 16:10 减少消隐 69 1920×1200 60Hz 16:10 70 1920×1200 75Hz 16:10 71 1920×1200 85Hz 16:10 72 1920×1200 120Hz 16:10 减少消隐 73 1920×1440 60Hz 4:3 74 1920×1440 75Hz 4:3 75 1920×1440 120Hz 4:3 减少消隐 76 2560×1600 60Hz 16:10 减少消隐 77 2560×1600 60Hz 16:10 78 2560×1600 75Hz 16:10 79 2560×1600 85Hz 16:10 80 2560×1600 120Hz 16:10 减少消隐 81 1366×768 60Hz 16:9 不适用pi4 82 1920×1080 60Hz 16:9 1080p 83 1600×900 60Hz 16:9 减少消隐 84 2048×1152 60Hz 16:9 减少消隐 85 1280×720 60Hz 16:9 720p 86 2366×768 60Hz 16:9 减少消隐
设置自定义HDMI模式
-
根据自己的显示器参数自定义设置CVT 模式:
hdmi_cvt=<宽度> <高度> <帧率> <尺寸> <边距> <交错> <rb>
- 例如,我们使用的是7寸显示屏,分辨率为1024×600,帧率是60Hz,长宽比是15:9,我们就可以在/boot/config.txt最后加入以下代码:
hdmi_cvt=1024 600 60 6 0 0 0 hdmi_group=2 hdmi_mode=87 hdmi_drive=1
- CVT参数含义是:
- 分辨率为1024×600
- 帧率60Hz
- 1=4:3, 2=14:9, 3=16:9, 4=5:4, 5=16:10, 6=15:9
- 0=禁用边距,1=启用边距
- 0=逐行,1=隔行
- 0=正常,1=减少消隐
- hdmi_group=2将HDMI输出组定义为DMT,但是我们查看DMT表格最后一个值是hdmi_mode=86,这里的hdmi_mode=87就是自定义模式。
- hdmi_drive 1表示普通 DVI 模式(无声音);2表示普通 HDMI 模式(如果支持并启用,将发送声音)
- CVT参数含义是:
旋转显示屏
- 在树莓派终端输入xrandr,查看主屏所在的HDMI-ID(大部分是HDMI-1):
-
输入以下命令可以旋转显示屏:
xrandr --output HDMI-1 --rotate normal 旋转0度 xrandr --output HDMI-1 --rotate left 旋转-90度 xrandr --output HDMI-1 --rotate right 旋转+90度 xrandr --output HDMI-1 --rotate inverted 旋转180度
板载模拟音频(3.5 毫米插孔)
- 修改config.txt文件来更改模拟音频的驱动方式,启用或禁用一些固件功能。
- audio_pwm_mode
- audio_pwm_mode=1从 3.5 毫米 AV 插孔中选择传统的低质量模拟音频。
- audio_pwm_mode=2(默认)使用高级调制方案选择高质量的模拟音频。
- disable_audio_dither
- 设置为1,可以禁止默认情况下的1LSB抖动音频输出。可解决某些情况下(如:将操作系统音量调小),产生的轻微背景噪音。
- enable_audio_dither
- 设置为1,可以强制对所有深度的音频使用音频抖动。
- pwm_sample_bits
- 该pwm_sample_bits用于调整模拟音频输出的位深度。默认位深度为11。
常用的开机自启
- 本小节以自启OLED_1in5_test.py程序为例,该程序绝对路径是/home/pi/python/example/OLED_1in5_test.py,请结合自己实际文件和路径修改对应位置。
桌面自启
- 首先我们使用如下命令新建一个startup.sh:(树莓派默认在/home/pi)
sudo touch startup.sh
- 打开startup.sh脚本文件,填入如下内容:
#!/bin/sh sudo python3 python/example/OLED_1in5_test.py
- 赋予startup.sh脚本文件权限:
sudo chmod 777 startup.sh
- 新建自启文件:
cd .config && mkdir autostart cd autostart && sudo vim start.desktop
- 填入如下内容:
[Desktop Entry] Type=Application Exec=/home/pi/startup.sh
- 重启树莓派:
sudo reboot
在rc.local脚本中添加开机自启动程序
- 打开/etc/rc.local脚本在exit 0前面增加一行:
sudo python3 /home/pi/python/example/OLED_1in5_test.py &
- 重启树莓派:
sudo reboot
系统管理器设置开机自启
- 在/etc/systemd/system/OLED_1in5_test.service新建一个自启服务对应的配置文件,填入如下内容:
[Unit] Description=start oled [Service] Type=simple Restart=always RestartSec=5 ExecStart=/home/pi/python/example/OLED_1in5_test.py [Install] WantedBy=multi-user.target
- 启用一个服务,使它在系统启动时自动启动:
sudo systemctl enable OLED_1in5_test.service
- 重启:
sudo systemctl restart OLED_1in5_test.service
- 重启树莓派:
sudo reboot
- 如果想要禁用一个服务,使它在系统启动时不会自动启动:
sudo systemctl disable OLED_1in5_test.service
USB启动
- 由于TF卡读写速度相对比较慢,对性能就会有影响,我们可以将高速的固态硬盘通过USB接口来连接树莓派,使用USB启动,对树莓派的性能会有较大的提升。
器材准备
- 树莓派4B主板
- TF卡读卡器
- 5V 3A电源适配器
- 至少 8GB 的TF卡
- Micro HDMI 转HDMI线
- 带有HDMI接口的电脑显示器或电视
- 带有USB转接口的固态硬盘,不推荐使用U盘和机械硬盘,读写速度提升不大
使用Raspberry Pi Imager设置USB启动
树莓派烧录引导程序
- 将TF卡插入读卡器连接电脑,打开Raspberry Pi Imager软件。
- 选择操作系统下的Misc utility images—>Bootloader—>USB Boot
- 等待引导程序烧录完成后,我们将TF卡插到树莓派上开机。
- 第一次开机需要耐心等待,当绿色LED将以稳定模式闪烁,7inch显示屏将呈绿色(或屏幕闪烁绿色),此时关闭树莓派并取出TF卡。
给固态硬盘安装树莓派系统
- 打开Win32DiskImager或者Raspberry Pi Imager烧录镜像。
- 安装完成系统后,将固态硬盘插入树莓派的USB3.0接口,等待开机成功就从硬盘启动树莓派系统了。
使用 raspi-config 设置USB启动
- 将树莓派官方系统烧录到TF卡插到树莓派上开机,开机完成后,打开树莓派终端输入raspi-config
- 选择Advanced Options—>Bootloader Order—>选择USB启动,重启树莓派。
适用于Ubuntu18.04和Ubuntu20.04
- 上述教程只支持树莓派官方系统和Ubuntu22.04系统,对于想使用Ubuntu18.04系统和Ubuntu20.04系统的同学,还需要做如下配置:
更新EEPROM
- 使用Raspberry Pi Imager烧录过引导程序就可以无需在升级EEPROM。
- 使用树莓派官方系统raspi-config方法需要升级EEPROM,输入如下指令:
sudo apt update sudo apt full-upgrade
更新固件
更新config.txt文件
- Ubuntu18.04
- 使用记事本打开config.txt文件,将[pi4]部分替换如下内容:
[pi4] max_framebuffers=2 dtoverlay=vc4-fkms-v3d boot_delay kernel=vmlinuz initramfs initrd.img followkernel
- 对于Ubuntu18.04完成上述步骤,直接将 SSD 接入USB3.0的口启动即可使用。无需后面的操作。
- Ubuntu20.04
- 使用记事本打开config.txt文件,将[pi4]部分替换如下内容:
[pi4] max_framebuffers=2 dtoverlay=vc4-fkms-v3d boot_delay kernel=vmlinux initramfs initrd.img followkernel
解压内核(Ubuntu20.04后的版本需解压内核)
- 找到vmlinuz使用7-zip工具解压缩后,将解压出来的vmlinuz~重命名为vmlinux
创建自动解压缩脚本
- 在更新 Ubuntu 或其众多软件包之一期间,apt将创建一个新的内核映像。此映像将被压缩,并会导致树莓派在更新后无法启动。为了解决这个问题,需要创建一个脚本来在更新后解压缩新的内核映像。
- 使用SSH远程软件连接树莓派,树莓派的IP地址查找参考 IP地址查询部分。
- 登录名和登录密码都是ubuntu
- 第一次登录,会进行一次密码修改。
- 先输入当前默认密码:ubuntu,系统会提示你输入新的密码,输入新的密码后,系统让你确认新密码。
- 修改成功SSH会自动断开,重新登陆使用修改后的密码。
- 创建解压脚本
sudo nano /boot/firmware/auto_decompress_kernel
脚本内容如下
#!/bin/bash -e # auto_decompress_kernel script #Set Variables BTPATH=/boot/firmware CKPATH=$BTPATH/vmlinuz DKPATH=$BTPATH/vmlinux #Check if compression needs to be done. if [ -e $BTPATH/check.md5 ]; then if md5sum --status --ignore-missing -c $BTPATH/check.md5; then echo -e "\e[32mFiles have not changed, Decompression not needed\e[0m" exit 0 else echo -e "\e[31mHash failed, kernel will be compressed\e[0m" fi fi #Backup the old decompressed kernel mv $DKPATH $DKPATH.bak if [ ! $? == 0 ]; then echo -e "\e[31mDECOMPRESSED KERNEL BACKUP FAILED!\e[0m" exit 1 else echo -e "\e[32mDecompressed kernel backup was successful\e[0m" fi #Decompress the new kernel echo "Decompressing kernel: "$CKPATH".............." zcat $CKPATH > $DKPATH if [ ! $? == 0 ]; then echo -e "\e[31mKERNEL FAILED TO DECOMPRESS!\e[0m" exit 1 else echo -e "\e[32mKernel Decompressed Succesfully\e[0m" fi #Hash the new kernel for checking md5sum $CKPATH $DKPATH > $BTPATH/check.md5 if [ ! $? == 0 ]; then echo -e "\e[31mMD5 GENERATION FAILED!\e[0m" else echo -e "\e[32mMD5 generated Succesfully\e[0m" fi #Exit exit 0
设置自动运行
- 为了让我们刚刚创建的脚本在每次安装包时都能被调用
sudo nano /etc/apt/apt.conf.d/999_decompress_rpi_kernel #写入以下内容 DPkg::Post-Invoke {"/bin/bash /boot/firmware/auto_decompress_kernel"; }; #设置为可运行权限 cd /etc/apt/apt.conf.d/ sudo chmod +x 999_decompress_rpi_kernel - 完成设置后,我们可以使用apt安装软件包测试。




