树莓派4B从USB-SSD启动ubuntu踩坑指北

本文详细介绍了如何将树莓派4B配置为从USB-SSD启动Ubuntu系统,包括更新EEPROM、启用USB启动、烧录系统镜像、修改启动设置、优化读写速度及收尾工作。通过这一过程,可以提升树莓派的数据读写性能。

背景

买了一个树莓派4B,发现SD卡读写速度感人,用dd测了写入速度只有30M/s左右。于是我又买了SSD、移动硬盘盒,话不多说,咱们开始。

材料

  • 树莓派4B 4G版
  • sd卡 - 闪迪A2 256G
  • sd卡读卡器
  • SSD - 三星860EVO 500G
  • 移动硬盘盒
  • type C电源
  • USB键盘
  • micro-hdmi to hdmi转接头
  • hdmi显示器

步骤

1. 更新EEPROM

不插sd卡,接通屏幕、电源,屏幕上显示内容:

Raspberry Pi 4 - 4GB
bootloader: c305221a	Sep 3 2020
config: e51885a2
...

如果bootloader项显示的日子不早于2020-9-3,那么恭喜你,已经成功一半了!否则的话,就需要进入raspberry OS查看bootloader更新信息,命令如下:

sudo rpi-eeprom-update

如果提示未找到命令rpi-eeprom-update,可通过以下命令安装:

sudo apt install rpi-eeprom

rpi-eepro

### 树莓派4B Python SSD1306 OLED 使用教程 #### 开启I2C接口 为了使树莓派能够通过I2C协议与SSD1306 OLED显示屏通信,需先启用I2C功能。可以通过`raspi-config`工具来完成此操作。 ```bash sudo raspi-config ``` 进入菜单后选择 `Interfacing Options -> I2C`, 启用该选项并重启设备[^2]。 #### 下载必要的库文件 安装Luma.oled库以及依赖项对于Python程序控制OLED屏至关重要: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install python-dev python-pip libfreetype6-dev libjpeg-dev build-essential pip3 install luma.oled ``` 另外还需要安装PIL图像处理库以便于图形绘制: ```bash sudo apt-get install python-pil python3-pil ``` 如果遇到任何问题可以尝试直接编译源码包进行安装[^3]: ```bash git clone https://github.com/rm-hull/luma.oled.git cd luma.oled sudo python3 setup.py install ``` #### 连接硬件部分 按照如下方式使用杜邦线将OLED模块连接至树莓派GPIO引脚: - GND → Ground (Pin 6,9,14,20,25,30,34,or 39) - SDA → GPIO 2 (Pin 3) - SCL → GPIO 3 (Pin 5) 确保连线无误之后再通电启动系统[^5]。 #### 编写测试代码 下面给出一段简单的Python脚本用来验证设置是否成功,在终端里运行这段代码将会在屏幕上显示出“Hello World!”字样。 ```python from time import sleep from PIL import ImageFont, ImageDraw, Image import Adafruit_SSD1306 # 初始化显示器对象 disp = Adafruit_SSD1306.SSD1306_128_64(rst=None) # 清除缓存并将缓冲区同步到物理屏幕 disp.begin() disp.clear() disp.display() width = disp.width height = disp.height image = Image.new('1', (width, height)) draw = ImageDraw.Draw(image) font = ImageFont.load_default() text = "Hello World!" max_lines = int(height / 8) # 假设每行高度约为字体大小的一半左右 line_height = font.getsize(text)[1] for i in range(max_lines): draw.text((0,i*line_height), text, fill=255, font=font) disp.image(image) disp.display() sleep(5) disp.clear() disp.display() ``` 上述代码创建了一个新的空白图像,并在其上绘制文字;最后调用了display方法刷新实际的显示内容[^1]。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值