尝试编译 linux 内核 6.1.44 时 make menuconfig 挂起

问题描述 投票:0回答:1

我正在尝试在 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          

我是否还缺少构建系统的某些组件?

gcc makefile build linux-kernel debian
1个回答
0
投票

您可以尝试以下一些步骤来诊断并可能解决问题:

  1. 尝试另一个终端:有时,某些终端模拟器可能会出现问题。如果您在图形桌面环境中使用终端,请尝试其他终端。如果您正在远程工作,请尝试使用不同的方法或客户端访问系统。

  2. 检查终端类型:确保您的终端设置为

    TERM=xterm
    TERM=linux
    。您可以检查:

    echo $TERM
    

    如果未设置为这些值之一,请尝试:

    export TERM=xterm
    

    然后再次运行

    make menuconfig

  3. 检查挂起进程:有时,之前运行的

    menuconfig
    实例可能会挂在后台。检查:

    ps aux | grep menuconfig
    

    如果发现任何进程,请将其杀死并重试。

  4. 更新所有软件包:确保所有系统软件包都是最新的,有时问题可能会通过某些库或软件包的较新版本得到解决。用途:

    apt-get update
    apt-get upgrade
    
  5. 清理内核源代码:也许某些编译的工件导致了问题。清理你的内核源代码并重试:

    make clean
    make menuconfig
    
  6. 检查错误:尽管看起来一切都编译良好,但可能存在隐藏的警告或错误。在终端中向上滚动并确保在编译过程中没有抛出错误。

  7. 依赖项:虽然您已经安装了必要的软件包,但您可以尝试重新安装它们以确保没有损坏或错过更新:

    apt-get install --reinstall build-essential bc libncurses-dev libssl-dev libelf-dev bison flex
    
  8. 日志和Strace:如果其他方法都失败,您可以使用

    strace

    更深入地了解正在发生的情况
    strace -o strace_output.txt make menuconfig
    

    这将生成命令执行期间进行的系统调用的日志。您可以检查

    strace_output.txt
    是否有任何异常或问题。

  9. 检查显示:由于

    make menuconfig
    使用可视化界面,因此显示环境变量可能存在问题。确保您没有使用
    sudo
    或任何其他可能会干扰
    DISPLAY
    环境变量的命令。如果您在远程计算机上,请确保您已使用
    -X
    标志通过 SSH 进行启用 X11 转发。

  10. 重新下载内核源代码:您下载的内核源代码总是有可能损坏。尝试再次下载内核源代码,将其解压到新目录,然后运行

    make menuconfig
    命令。

如果完成所有这些步骤后问题仍然存在,您可能面临错误或一些不寻常的系统特定问题。

© www.soinside.com 2019 - 2024. All rights reserved.