更新

更新

我正在尝试在 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 Kconfigmake 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 menuconfig2 使用您选择的任何 GUI(或make xconfig)在此系统下构建内核 .config 文件

  • 3 通过ssh登录远程系统,

  • 4 将新设计的.config复制到远程的系统内核源目录

  • 5 切换到该目录然后启动:make!

相关内容