修正する

修正する

Debian 12 で Linux カーネル 6.1 をコンパイルしようとしています。

ビルド環境をインストールしました。

apt-get install build-essential bc libncurses-dev libssl-dev libelf-dev bison flex

make menuconfigを実行すると、次のような出力が表示され、永久に停止します。

  ~/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

I 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 menuconfig2 目的の GUI を使用して、make xconfigこのシステムからカーネル .config ファイルをビルドします (または

  • 3 SSH 経由でリモートシステムにログインし、

  • 4新しく設計された.configをリモートシステムカーネルソースディレクトリにコピーします。

  • 5このディレクトリに変更して起動します。make

関連情報