← 返回博客

泰山派关闭串口打印的电源域警告

在调试泰山派1f时,发现官方固件一直在往串口打印警告:

/usr/bin/list-iodomain.sh version: V1.0.1
Get CHIP ID: rk356x
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXX          PLEASE CHECK IO-DOMAIN !!!!!!!!!!!!!!!
XXXXXXXXXX          请务必检查IO电源域配置 !!!!!!!!!!!!!!!
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Get IO DOMAIN VALUE:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
注意事项:PMUIO1/PMUIO2 固定不可配
VCCIO2电平由硬件FLASH_VOL_SEL决定:
当VCCIO2供电是1.8V,则FLASH_VOL_SEL管脚必须保持为高电平;
当VCCIO2供电是3.3V,则FLASH_VOL_SEL管脚必须保持为低电平;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
pmuio2_vsel: 3.3V
vccio7_vsel: 3.3V
vccio6_vsel: 1.8V
vccio5_vsel: 3.3V
vccio4_vsel: 1.8V
vccio3_vsel: 3.3V
vccio2_vsel: 3.3V
vccio1_vsel: 3.3V
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

输出中提到/usr/bin/list-iodomain.sh version: V1.0.1查看哪些地方调用了这个脚本:

grep -r "list-iodomain.sh" /etc/ /usr/bin/ /root/ /home/ 2>/dev/null

发现是/etc/init.d/S98iodomain.sh: list-iodomain.sh在输出内容,那么我们只要注释掉这一行就行。
由于官方固件非常精简,没有nano也没有vim,我们只能使用vi

vi /etc/init.d/S98iodomain.sh 

可以看到它的逻辑直接就是120s打印一次,非常烦:

#!/bin/sh

case "$1" in
    start|"")
        while true
        do
            list-iodomain.sh
            sleep $(( 60 * 2 ))
        done &
        ;;
    restart|reload|force-reload)
        echo "Error: argument '$1' not supported" >&2
        exit 3
        ;;
    stop|status)
        # No-op
        ;;
    *)
        echo "Usage: [start|stop]" >&2
        exit 3
        ;;
esac

直接注释掉list-iodomain.sh,如下:

case "$1" in
    start|"")
        while true
        do
            #list-iodomain.sh
            sleep $(( 60 * 2 ))
        done &

保存并退出,重启,警告就没有了