And*_*ley 4 scripts compiling kernel make linux-headers
我最近从 Ubuntu 20.04 升级到 22.04,从那时起,我就无法在没有错误的情况下安装内核头文件。最初,我因缺少flex和bison而出现错误。手动安装这些后,我遇到了以下错误,但无法解决。
尝试安装(以及几个旧版本)失败,并在 dkms 模块构建期间makelinux-headers-5.15.0-47-generic返回错误状态。
apt说检查make log,有如下错误:
No rule to make target 'arch/x86/entry/syscalls/syscall_32.tbl',
needed by 'arch/x86/include/generated/uapi/asm/unistd_32.h'
Run Code Online (Sandbox Code Playgroud)
$ sudo apt install --reinstall linux-headers-$(uname -r)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 2,898 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 linux-headers-5.15.0-47-generic amd64 5.15.0-47.51 [2,898 kB]
Fetched 2,898 kB in 0s (6,016 kB/s)
(Reading database ... 191529 files and directories currently installed.)
Preparing to unpack .../linux-headers-5.15.0-47-generic_5.15.0-47.51_amd64.deb ...
Unpacking linux-headers-5.15.0-47-generic (5.15.0-47.51) over (5.15.0-47.51) ...
Setting up linux-headers-5.15.0-47-generic (5.15.0-47.51) ...
/etc/kernel/header_postinst.d/dkms:
* dkms: running auto installation service for kernel 5.15.0-47-generic
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area...(bad exit status: 2)
make -j4 KERNELRELEASE=5.15.0-47-generic all INCLUDEDIR=/lib/modules/5.15.0-47-generic/build/include KVERSION=5.15.0-47-generic DKMS_BUILD=1....(bad exit status: 2)
Error! Bad return status for module build on kernel: 5.15.0-47-generic (x86_64)
Consult /var/lib/dkms/evdi/5.2.14/build/make.log for more information.
...done.
Run Code Online (Sandbox Code Playgroud)
$ sudo cat /var/lib/dkms/evdi/5.2.14/build/make.log
DKMS make.log for evdi-5.2.14 for kernel 5.15.0-47-generic (x86_64)
Sat Sep 3 09:55:26 AM CDT 2022
make KBUILD_VERBOSE=1 SUBDIRS=/var/lib/dkms/evdi/5.2.14/build SRCROOT=/var/lib/dkms/evdi/5.2.14/build CONFIG_MODULE_SIG= -C /lib/modules/5.15.0-47-generic/build modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-47-generic'
: " SYNC include/config/auto.conf.cmd"
make -f ./Makefile syncconfig
make -f ./scripts/Makefile.build obj=scripts/basic
gcc -Wp,-MMD,scripts/basic/.fixdep.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -o scripts/basic/fixdep scripts/basic/fixdep.c
make -f ./scripts/Makefile.build obj=scripts/kconfig syncconfig
gcc -Wp,-MMD,scripts/kconfig/.conf.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -c -o scripts/kconfig/conf.o scripts/kconfig/conf.c
gcc -Wp,-MMD,scripts/kconfig/.confdata.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -c -o scripts/kconfig/confdata.o scripts/kconfig/confdata.c
gcc -Wp,-MMD,scripts/kconfig/.expr.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -c -o scripts/kconfig/expr.o scripts/kconfig/expr.c
flex -oscripts/kconfig/lexer.lex.c -L scripts/kconfig/lexer.l
bison -o scripts/kconfig/parser.tab.c --defines=scripts/kconfig/parser.tab.h -t -l scripts/kconfig/parser.y
gcc -Wp,-MMD,scripts/kconfig/.menu.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -c -o scripts/kconfig/menu.o scripts/kconfig/menu.c
gcc -Wp,-MMD,scripts/kconfig/.parser.tab.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I ./scripts/kconfig -c -o scripts/kconfig/parser.tab.o scripts/kconfig/parser.tab.c
gcc -Wp,-MMD,scripts/kconfig/.preprocess.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -c -o scripts/kconfig/preprocess.o scripts/kconfig/preprocess.c
gcc -Wp,-MMD,scripts/kconfig/.symbol.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -c -o scripts/kconfig/symbol.o scripts/kconfig/symbol.c
gcc -Wp,-MMD,scripts/kconfig/.util.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -c -o scripts/kconfig/util.o scripts/kconfig/util.c
gcc -Wp,-MMD,scripts/kconfig/.lexer.lex.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -I ./scripts/kconfig -c -o scripts/kconfig/lexer.lex.o scripts/kconfig/lexer.lex.c
gcc -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/confdata.o scripts/kconfig/expr.o scripts/kconfig/lexer.lex.o scripts/kconfig/menu.o scripts/kconfig/parser.tab.o scripts/kconfig/preprocess.o scripts/kconfig/symbol.o scripts/kconfig/util.o
scripts/kconfig/conf --syncconfig Kconfig
make -f ./scripts/Makefile.build obj=arch/x86/entry/syscalls all
make -f ./scripts/Makefile.build obj=scripts/basic
set -e; mkdir -p include/config/; trap "rm -f include/config/.kernel.release.tmp" EXIT; { echo "5.15.46$(sh ./scripts/setlocalversion .)"; } > include/config/.kernel.release.tmp; if [ ! -r include/config/kernel.release ] || ! cmp -s include/config/kernel.release include/config/.kernel.release.tmp; then : ' UPD include/config/kernel.release'; mv -f include/config/.kernel.release.tmp include/config/kernel.release; fi
make -f ./scripts/Makefile.asm-generic obj=arch/x86/include/generated/uapi/asm \
generic=include/uapi/asm-generic
make[2]: *** No rule to make target 'arch/x86/entry/syscalls/syscall_32.tbl', needed by 'arch/x86/include/generated/uapi/asm/unistd_32.h'. Stop.
make[1]: *** [arch/x86/Makefile:217: archheaders] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-47-generic'
make: *** [Makefile:22: all] Error 2
Run Code Online (Sandbox Code Playgroud)
内核头不需要“构建”。它们作为 deb 包安装。
它们已正确安装。内核包的安装会触发dkms build失败。
这make.log是关于构建dkms您之前安装的模块。
该模块称为evdi. 我对这个模块不熟悉,不知道它的用途。
它似乎与正在运行的内核不兼容。
您可以通过以下方式删除该模块
sudo dkms remove evdi/5.2.14 --all
Run Code Online (Sandbox Code Playgroud)
错误就会消失。
| 归档时间: |
|
| 查看次数: |
4967 次 |
| 最近记录: |