How to boot the Raspberry Pi system from a USB Mass Storage Device All In One
How to boot the Raspberry Pi system from a USB Mass Storage Device All In One
如何从 USB 启动树莓派引导系统 / 如何从 USB 大容量存储设备启动 Raspberry Pi 系统
Raspberry Pi 4 Boot Flow
- First Stage Bootloader
- Second Stage Bootloader
https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-boot-flow
# 查看
$ rpi-eeprom-config
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
[all]
BOOT_ORDER=0xf14
# 编辑
$ sudo -E rpi-eeprom-config --edit

BOOT_ORDER

0xf14 Try USB first, followed by SD then repeat ?

https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#BOOT_ORDER
Conditional filters
[all]

https://www.raspberrypi.com/documentation/computers/config_txt.html#conditional-filters
officail documents
USB Mass Storage Boot
This page explains how to boot your Raspberry Pi from a USB mass storage device such as a flash drive or a USB hard disk.
本页介绍如何从 USB 大容量存储设备(例如闪存驱动器或 USB 硬盘)启动 Raspberry Pi。
The bootloader in Raspberry Pi 400 and newer Raspberry Pi 4B boards support USB boot by default, although the BOOT_ORDER bootloader configuration may need to be modified.
Raspberry Pi 400 和较新的 Raspberry Pi 4B 板中的引导加载程序默认支持 USB 引导,但可能需要修改 BOOT_ORDER 引导加载程序配置。
https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#usb-mass-storage-boot
EEPROM Configuration
$ rpi-eeprom-config
# OR
$ vcgencmd bootloader_config
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
[all]
BOOT_ORDER=0xf14

$ sudo rpi-eeprom-update
$ sudo rpi-eeprom-update -a
$ sudo reboot
BOOTLOADER: up to date
CURRENT: Wed Jan 11 17:40:52 UTC 2023 (1673458852)
LATEST: Wed Jan 11 17:40:52 UTC 2023 (1673458852)
RELEASE: default (/lib/firmware/raspberrypi/bootloader/default)
Use raspi-config to change the release.
VL805_FW: Using bootloader EEPROM
VL805: up to date
CURRENT: 000138c0
LATEST: 000138c0
手动刷入系统镜像,并修改配置文件 ??
简单方便,亲测有效,推荐方式 ?

- 设置开机,自动开启
SSH
ssh
创建一个空的 ssh 文件, 文件没有扩展名,放到 U 盘根目录下
- 配置默认的
Wi-Fi信息
wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN
network={
scan_ssid=1
ssid="your Wi-Fi name ?"
psk="your Wi-Fi password ?"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}
- 配置 SSH 登录的
用户名和密码
userconf.txt
pi
raspberry => 加密后 /4g6TptuTP5B6
pi:/4g6TptuTP5B6
- 配置 bootloader 的
启动模式
config.txt
# 编辑
$ sudo vim /boot/config.txt
$ sudo code /boot/config.txt
# 查看
$ cat /boot/config.txt
otg_mode=1 ?

# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
# Automatically load overlays for detected cameras
camera_auto_detect=1
# Automatically load overlays for detected DSI displays
display_auto_detect=1
# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2
# Run in 64-bit mode
arm_64bit=1
# Disable compensation for displays with overscan
disable_overscan=1
[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1
[all]
[pi4]
# Run as fast as firmware / board allows
arm_boost=1
[all]
solutions
changing the
boot mode/ 更改启动模式
warnings ?????? (太麻烦了,不推荐)
- U 盘必须要使用
FAT32格式,最大支持 32 GB - 树莓派需先要插入一个烧录了树莓派系统的
SD 卡,才能修改启动模式?? - 树莓派需要
有线网络连接,用于从网络下载镜像到 U 盘中 ???? - 树莓派需要连接
鼠标、键盘,用于U 盘启动后,从网络的安装镜像到 U 盘中 ??????


- Raspberry Pi Imager (GUI 可视化操作)
Using
Raspberry Pi Imagerto update thebootloader
This is the recommended route to updating the bootloader.
这是更新引导加载程序的推荐途径。
steps:
-
DownloadRaspberry Pi Imager -
Select a
spareSD card. The contents will getoverwritten! -
LaunchRaspberry Pi Imager -
Select
Misc utility imagesunder Operating System -
Select
Bootloader -
Select a
boot-modei.e. SD Card Boot (recommended),USB Bootor Network Boot. -
Select SD card and then
Write -
Bootthe Raspberry Pi withthe new imageandwait forat least10 seconds. -
The
green activity LEDwill blink with asteady patternand theHDMI displaywill begreenon success. -
Power offthe Raspberry Pi andremovethe SD card.





https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#imager
- raspi-config (交互式命令行操作)
$ sudo raspi-config
$ sudo reboot
-
UpdateRaspberry Pi OS to getthe latest versionof therpi-eeprompackage. -
Run
sudo raspi-config -
Select
AdvancedOptions -
Select
BootloaderVersion -
Select
Defaultfor factory default settings orLatestfor the latest stable bootloader release. -
Reboot
https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspi-config
other useful commands
$ pinout
# Pi Model 4B V1.5
$ lsusb
# Bus 001 Device 003: ID 0951:1665 Kingston Technology Digital DataTraveler SE9
$ cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 raspberrypi
$ cd /proc && ls -alth
$ cat /proc/cpuinfo
Revision : d03115
Serial : 1000000052e87fab
Model : Raspberry Pi 4 Model B Rev 1.5
$ cat /proc/version
Linux version 6.1.21-v8+ (dom@buildbot) (aarch64-linux-gnu-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023
$ cat /proc/meminfo
MemTotal: 7998788 kB
MemFree: 7124364 kB
MemAvailable: 7564892 kB
$ cat /proc/partitions
temperature
# temperature
$ vcgencmd measure_temp
# temp=50.6'C
$ vcgencmd measure_temp | egrep -o '[0-9]*\.[0-9]*'
# 50.6
$ vcgencmd measure_volts core
# volt=0.8600V
$ vcgencmd measure_clock arm
# frequency(48)=600169920
$ vcgencmd get_mem arm
# arm=947M
$ vcgencmd get_mem gpu
# gpu=76M
$ vcgencmd otp_dump | grep 17
17:000008b0
29:ad178054
$ df -h
# 查看磁盘列表:
$ sudo fdisk -l
Disk /dev/mmcblk0: 29.72 GiB, 31914983424 bytes, 62333952 sectors
Units: sectors of 1 * 512 = 512 bytes
Disk /dev/sda: 7.22 GiB, 7747397632 bytes, 15131636 sectors
Disk model: DataTraveler 2.0
# 查看 block 块文件挂载信息
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 7.2G 0 disk
|-sda1 8:1 1 256M 0 part /boot
`-sda2 8:2 1 7G 0 part /
mmcblk0 179:0 0 29.7G 0 disk
|-mmcblk0p1 179:1 0 256M 0 part /media/pi/bootfs
`-mmcblk0p2 179:2 0 29.5G 0 part /media/pi/rootfs
$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_GB.UTF-8
LANGUAGE=
LC_CTYPE=UTF-8
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=
$ hostname -I
192.168.18.168 fd80:eae6:1258:0:91a5:54b6:d817:ecc2
$ cat /etc/rc.local
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
demos
$ cat /boot/config.txt
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
# Automatically load overlays for detected cameras
camera_auto_detect=1
# Automatically load overlays for detected DSI displays
display_auto_detect=1
# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2
# Run in 64-bit mode
arm_64bit=1
# Disable compensation for displays with overscan
disable_overscan=1
[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1
[all]
[pi4]
# Run as fast as firmware / board allows
arm_boost=1
[all]
(?? 反爬虫测试!打击盗版??)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!
Updating and Upgrading Raspberry Pi OS
$ cat /etc/apt/sources.list
deb http://deb.debian.org/debian bullseye main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
# Uncomment deb-src lines below then 'apt-get update' to enable 'apt-get source'
#deb-src http://deb.debian.org/debian bullseye main contrib non-free
#deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
#deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
- APT
$ sudo apt update
$ sudo apt full-upgrade
$ sudo apt clean
# install package
$ sudo apt install tree
$ sudo apt install tree -y
# 卸载软件包
$ sudo apt remove tree
$ sudo apt remove tree -y
# 完全删除软件包及其关联的配置文件
$ sudo apt purge tree
- apt-get
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get clean
https://www.raspberrypi.com/documentation/computers/os.html#updating-and-upgrading-raspberry-pi-os
Playing Audio and Video
- VLC
# new ?
- OMXPlayer
# old ?
$ omxplayer <name of media file>
$ omxplayer example.mp4
$ omxplayer example.mp3
https://www.raspberrypi.com/documentation/computers/os.html#playing-audio-and-video
Using a USB webcam
$ sudo apt install fswebcam
# user group
$ sudo usermod -a -G video <username>
# 拍照
$ fswebcam image.jpg
$ fswebcam -r 1280x720 image-720p.jpg
$ fswebcam -r 1280x720 --no-banner image-no-banner.jpg
$ chmod 777 webcam.sh
# OR
$ chmod +x webcam.sh
$ ./webcam.sh
#!/usr/bin/env bash
DATE=$(date +"%Y-%m-%d_%H%M")
fswebcam -r 1280x720 --no-banner /home/pi/webcam/$DATE.jpg
https://www.raspberrypi.com/documentation/computers/os.html#using-a-usb-webcam
refs
https://www.raspberrypi.com/news/pi-3-booting-part-i-usb-mass-storage-boot/
https://www.cnblogs.com/xgqfrms/p/17436522.html#5180599
vcgencmd
https://www.cnblogs.com/xgqfrms/p/17303351.html
?xgqfrms 2012-2021
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有??xgqfrms, 禁止转载 ???,侵权必究??!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/17437862.html
未经授权禁止转载,违者必究!