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 menuconfig
2 目的の GUI を使用して、make xconfig
このシステムからカーネル .config ファイルをビルドします (または3 SSH 経由でリモートシステムにログインし、
4新しく設計された.configをリモートシステムカーネルソースディレクトリにコピーします。
5このディレクトリに変更して起動します。
make
!