Skip to content

AX86U 等型号更新固件后 script_usbmount 开机启动失效的解决方案 #106

@mlkt

Description

@mlkt

研究了一下怎么解决,在这做个记录。

先安装下载大师,USB相关应用 -> 下载大师,点击安装:
image

进入ssh,执行以下命令,修改下载大师的启动脚本:

vi $(nvram get apps_mounted_path)/$(nvram get apps_install_folder)/etc/init.d/S50downloadmaster

在开头加入以下代码:

{
    if [ "$1" != "start" ] && [ "$1" != "restart" ]; then
        exit
    fi
    local SCRIPT_PATH=`nvram get script_usbmount`
    if [ ! "$SCRIPT_PATH" ]; then
        exit
    fi
    local ONCE_TMP_FILE=/tmp/script_usbmount_executed
    if [ -f "$ONCE_TMP_FILE" ]; then
        exit
    fi

    local APPS_MOUNTED_PATH=`nvram get apps_mounted_path`
    sh -c "\"$SCRIPT_PATH\" \"$APPS_MOUNTED_PATH\"" >/dev/null 2>&1 || true

    touch "$ONCE_TMP_FILE"
} &

变成类似这样:
image

这样系统启动下载大师的时候就会去运行之前在 script_usbmount 配置项里设置的脚本,和之前的执行方式一样,且只会在开机的时候运行一次,不管怎么启停下载大师都不会重复运行,也不会影响下载大师的功能。注意如果更新下载大师,这个启动脚本有可能会被还原,需要再修改一次。

如果要兼容支持/不支持 script_usbmount 配置项的固件,需要再修改 script_usbmount 里指定的启动脚本的文件内容,在开头加上:

{
    local ONCE_TMP_FILE=/tmp/script_usbmount_executed
    if [ -f "$ONCE_TMP_FILE" ]; then
        exit
    fi
    touch "$ONCE_TMP_FILE"
}

这样不管是不是支持 script_usbmount ,都只会在开机时执行一次这个脚本。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions