我正在尝试在 Debian 12 上编译 linux 内核 6.1。
我已经安装了构建环境:
apt-get install build-essential bc libncurses-dev libssl-dev libelf-dev bison flex
现在,当我运行 make menuconfig 时,我得到这个输出 ant 然后它永远挂起:
~/linux-6.1.44: make menuconfig
HOSTCC scripts/basic/fixdep
UPD scripts/kconfig/mconf-cfg
HOSTCC scripts/kconfig/mconf.o
HOSTCC scripts/kconfig/lxdialog/checklist.o
HOSTCC scripts/kconfig/lxdialog/inputbox.o
HOSTCC scripts/kconfig/lxdialog/menubox.o
HOSTCC scripts/kconfig/lxdialog/textbox.o
HOSTCC scripts/kconfig/lxdialog/util.o
HOSTCC scripts/kconfig/lxdialog/yesno.o
HOSTCC scripts/kconfig/confdata.o
HOSTCC scripts/kconfig/expr.o
LEX scripts/kconfig/lexer.lex.c
YACC scripts/kconfig/parser.tab.[ch]
HOSTCC scripts/kconfig/lexer.lex.o
HOSTCC scripts/kconfig/menu.o
HOSTCC scripts/kconfig/parser.tab.o
HOSTCC scripts/kconfig/preprocess.o
HOSTCC scripts/kconfig/symbol.o
HOSTCC scripts/kconfig/util.o
HOSTLD scripts/kconfig/mconf
我安装了 ncurses:
# dpkg -l | grep ncurses
libncurses-dev
libncurses6
libncursesw6
ncurses-base
ncurses-bin
我还缺少构建系统的某些组件吗?
更新
ps
显示这些过程:
6322 root S+ 0.0 0.0 pts/0 03:59 /usr/bin/make menuconfig
6416 root S+ 0.0 0.0 pts/0 03:59 /usr/bin/make -f ./scripts/Makefile.build obj=scrip
6593 root S+ 0.2 0.0 pts/0 03:59 scripts/kconfig/mconf Kconfig
当我 Kill 时scripts/kconfig/mconf Kconfig
,make menuconfig
进程终止并出现以下错误:
make[1]: *** [scripts/kconfig/Makefile:48: menuconfig] Error 1
make: *** [Makefile:704: menuconfig] Error 2
在我杀死它之前,我用 附加到了scripts/kconfig/mconf Kconfig
, 进程strace
,并且我看到了数千条这样的 POLLIN Timeout 消息:
poll([{fd=0, events=POLLIN}], 1, 0) = 0 (Timeout)
完整的 strace 输出如下:https://ctxt.io/2/AABQcjjOFw
答案1
我正在尝试编译linux内核
可能吧。
我运行 make menuconfig
好的,但这绝对不会建造一个Linux内核。
该命令只会帮助您.config
以更用户友好的方式构建文本文件。如果你真的想建造Linux 内核,只需make
在内核源代码基目录中启动即可。
因此,实现目标的最简单(可能更安全)的方法肯定是:
1 在某个本地计算机上下载内核源代码树(无论物理连接到任何真实 tty 的任何系统)
make menuconfig
2 使用您选择的任何 GUI(或make xconfig
)在此系统下构建内核 .config 文件3 通过ssh登录远程系统,
4 将新设计的.config复制到远程的系统内核源目录
5 切换到该目录然后启动:
make
!