/usr/sbin/dkms: line 1033: sha512: command not found 报错解决

stvsl 2022-7-10 2,637 7/10

1 bug原因

注意:此文章存在时效性(仅在dkms-3.0.4存在),预计下一次Arch的dkms更新将会修复此问题

问题原因:dkms的上游代码提交编号3323033中对sign_file的变量定义存在问题,是对于Archlinux以及其它部分linux的兼容性问题并未考虑到造成的。相关代码片段如下:

 if [ ! "${sign_file}" ]; then
        case "$running_distribution" in
            debian* )
                sign_file="/usr/lib/linux-kbuild-${$kernelver%.*}/scripts/sign-file"
                ;;
            ubuntu* )
                sign_file="/usr/src/linux-headers-$kernelver/scripts/sign-file"
                ;;
            fedora* | rhel* | ovm* )
                sign_file="/usr/lib/modules/$kernelver/build/scripts/sign-file"
                ;;
            * )
                echo "Binary sign-file not found, module won't be signed"
                ;;
        esac
    fi

2 解决方法

由此可知解决方法,即添加针对Archlinux的判定,而Arch的对应路径与fedora分支判定一致,因此可以进行如下修改:

 if [ ! "${sign_file}" ]; then
        case "$running_distribution" in
            debian* )
                sign_file="/usr/lib/linux-kbuild-${$kernelver%.*}/scripts/sign-file"
                ;;
            ubuntu* )
                sign_file="/usr/src/linux-headers-$kernelver/scripts/sign-file"
                ;;
            fedora* | rhel* | ovm* | arch* )
                sign_file="/usr/lib/modules/$kernelver/build/scripts/sign-file"
                ;;
            * )
                echo "Binary sign-file not found, module won't be signed"
                ;;
        esac
    fi

其它linux若存在类似报错,请尝试按此方法添加自己的linux版本对应判断分支,此问题预计下次dkms更新解决。

除此之外,针对ArchLinux,暂时将dkms降级也可以解决此问题。

- THE END -

stvsl

7月10日15:11

最后修改:2022年7月10日
7

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论