dtparam
是树莓派(Raspberry Pi)系统中一个用于动态配置设备树(Device Tree)参数的命令行工具。它允许用户在启动时或运行时修改硬件接口的配置参数,例如启用/禁用特定硬件模块(如摄像头、I2C、SPI 等)或调整其工作模式。设备树是 Linux 内核用来描述硬件配置的一种机制,而 dtparam
提供了一种简洁的方式来调整这些配置。
基本语法
1
| dtparam [选项] <参数>=<值> ...
|
主要用途
- 动态修改设备树参数:无需重新编译设备树文件(
.dtb
),直接通过命令行或配置文件调整硬件设置。
- 硬件接口管理:启用或禁用树莓派的硬件外设接口(如 UART、I2C、SPI 等)。
- 调试与开发:快速测试不同硬件配置,无需重启设备(部分参数可能需要重启生效)。
常用选项
选项 |
说明 |
-l |
列出当前已启用的设备树参数。 |
-h |
显示帮助信息。 |
-v |
详细输出模式(显示调试信息)。 |
常见用例
1. 显示对应参数的帮助信息
1
| dtparam -h eth_led0 eth_led1
|
2. 启用硬件接口
在终端中直接运行以下命令(需 root 权限):
1 2 3 4
| sudo dtparam i2c_arm=on sudo dtparam spi=on sudo dtparam audio=on sudo dtparam camera=on
|
3. 禁用硬件接口
1 2
| sudo dtparam i2c_arm=off sudo dtparam spi=off
|
4. 调整参数值
1 2
| sudo dtparam i2c_arm_baudrate=400000 sudo dtparam audio=on,pwm_irq=off
|
5. 在 /boot/config.txt
中永久配置
大多数情况下,用户会在 /boot/config.txt
文件中添加 dtparam
配置,使参数在系统启动时自动生效:
1 2 3
| dtparam=i2c_arm=on,i2c_arm_baudrate=400000 dtparam=spi=on
|
常用参数列表
以下是一些常用的 dtparam
参数(具体支持情况可能因树莓派型号和系统版本而异):
参数 |
说明 |
i2c_arm=on/off |
ARM 端的 I2C 接口(GPIO 2/3) |
i2c_vc=on/off |
VC(VideoCore)端的 I2C 接口(通常用于 HAT EEPROM) |
spi=on/off |
SPI 主接口(GPIO 7-11) |
audio=on/off |
音频接口(3.5mm 耳机孔或 HDMI 音频) |
camera=on/off |
CSI 摄像头接口(旧版系统使用 start_x=1 ) |
uart0=on/off |
主 UART(PL011,默认用于蓝牙) |
uart1=on/off |
迷你 UART(默认用于 GPIO 14/15) |
watchdog=on/off |
硬件看门狗 |
pwm=on/off |
PWM 输出(GPIO 12/13/18/19) |
注意事项
- 参数冲突:某些参数可能与
dtoverlay
加载的叠加层(overlay)冲突,需检查 /boot/config.txt
避免重复配置。
- 重启生效:部分参数修改需要重启系统(如摄像头、音频接口)。
- 兼容性:不同树莓派型号支持的参数可能不同(如树莓派 Zero 与树莓派 4B 的硬件差异)。
- 持久化配置:临时通过命令行修改的参数在重启后会失效,需将配置写入
/boot/config.txt
以永久生效。
查看已启用的设备树参数
1 2 3
| dtparam -l
vcgencmd get_config dtparam
|
示例:启用 I2C 和 SPI
- 编辑
/boot/config.txt
:1 2
| dtparam=i2c_arm=on dtparam=spi=on
|
- 重启树莓派:
- 验证接口是否启用:
通过 dtparam
,可以灵活配置树莓派的硬件资源,满足不同项目的需求。如果需要更复杂的硬件配置(如自定义设备树叠加层),可结合 dtoverlay
命令使用。