33 lines
1.0 KiB
Bash
33 lines
1.0 KiB
Bash
#!/bin/sh
|
||
# VL53L0X 激光测距初始化脚本
|
||
# GPIO 50=SCL, GPIO 51=SDA -> I2C2_SCL[1]/I2C2_SDA[1]
|
||
|
||
echo "[VL53L0X] === 检查/初始化激光测距 ==="
|
||
|
||
# 1. 检查设备节点是否已存在
|
||
if [ -c /dev/stmvl53l0x_ranging ]; then
|
||
echo "[VL53L0X] /dev/stmvl53l0x_ranging 已存在"
|
||
else
|
||
echo "[VL53L0X] /dev/stmvl53l0x_ranging 不存在,尝试加载驱动..."
|
||
modprobe stmvl53l0x 2>/dev/null || modprobe vl53l0x 2>/dev/null
|
||
if [ ! -c /dev/stmvl53l0x_ranging ]; then
|
||
echo "[VL53L0X] 驱动未加载,需要检查内核配置或设备树"
|
||
fi
|
||
fi
|
||
|
||
# 2. 设置 GPIO 50/51 为 I2C 功能(尝试通过 debugfs pinctrl)
|
||
PINMUX=/sys/kernel/debug/pinctrl/zx296718-pinctrl
|
||
if [ -d "$PINMUX" ]; then
|
||
echo "[VL53L0X] pinctrl debugfs 可用: $PINMUX"
|
||
ls "$PINMUX"/
|
||
else
|
||
echo "[VL53L0X] pinctrl debugfs 不可用"
|
||
fi
|
||
|
||
# 3. 最终确认
|
||
if [ -c /dev/stmvl53l0x_ranging ]; then
|
||
echo "[VL53L0X] OK — 设备就绪,可以使用"
|
||
else
|
||
echo "[VL53L0X] FAIL — 需要先配置内核/设备树中的 I2C 引脚复用"
|
||
fi
|