私はメインラインソースコード、最新バージョン、この構成。
提案者のためのイメージとしてBullseyeを作成しました。ここ
次にQEMUで実行します(相対環境変数の設定)。
qemu-system-x86_64 -m 2G -smp 2 -kernel $KERNEL/arch/x86/boot/bzImage -append "console=ttyS0 root=/dev/sda earlyprintk=serial net.ifnames=0 noxsave" -drive file=$IMAGE/bullseye.img,format=raw -net user,host=10.0.2.10,hostfwd=tcp:127.0.0.1:10021-:22 -net nic,model=e1000 -enable-kvm -nographic -pidfile vm.pid -cpu host 2>&1 | tee vm.log
これはカーネルログ私は持っています。
問題はそこにあるコンソールにログインプロンプトがありませんそしてコンソールが停止しているようです。だから何とか起動プロセスが中断されました。
-s -S
QEMUにオプションを追加し、Linuxカーネルフォルダで実行してGDBを接続しようとしましたが、何らかのgdb vmlinux
理由でどこかで停止したことがわかりました(参考にログの最後で停止したときはCtrl-C(SIGINT))、数分後にもはや出力は表示されません)。
(gdb) target remote localhost:1234
Remote debugging using localhost:1234
0x000000000000fff0 in cpu_tss_rw ()
(gdb) c
Continuing.
^C
Thread 1 received signal SIGINT, Interrupt.
0xffffffff8d7640ce in ?? ()
(gdb) x/20i $rip-20
0xffffffff8d7640ba: nop
0xffffffff8d7640bb: nop
0xffffffff8d7640bc: nop
0xffffffff8d7640bd: nop
0xffffffff8d7640be: nop
0xffffffff8d7640bf: nop
0xffffffff8d7640c0: endbr64
0xffffffff8d7640c4: xchg %ax,%ax
0xffffffff8d7640c6: verw 0x24c1e13(%rip) # 0xffffffff8fc25ee0
0xffffffff8d7640cd: hlt
=> 0xffffffff8d7640ce: ret
0xffffffff8d7640cf: int3
0xffffffff8d7640d0: int3
0xffffffff8d7640d1: int3
0xffffffff8d7640d2: int3
0xffffffff8d7640d3: data16 cs nopw 0x0(%rax,%rax,1)
0xffffffff8d7640de: data16 cs nopw 0x0(%rax,%rax,1)
0xffffffff8d7640e9: data16 cs nopw 0x0(%rax,%rax,1)
0xffffffff8d7640f4: data16 cs nopw 0x0(%rax,%rax,1)
0xffffffff8d7640ff: nop
(gdb)
ret 前のコマンドは、hlt
マシンが停止したことを示します。ここで何が間違っていて、どのように解決するかを知っている人はいますか?
答え1
起動ステップの最初に「esc」をクリックします(配布パネルのようこそ画面が表示されたら)。画面下部のモジュールは無効にしたいモジュールです。
無効にするには、LiveCDを起動するか、ハードドライブを別のコンピュータに接続します。
ドライブのルートディレクトリで次を実行します。
sudo echo blacklist <kernel module> > /etc/modprobe.d/blacklist.conf
これが問題の唯一の原因である必要があります。