昨日から、qemu
私のノートブック(Arch Linuxを実行)にコンパイルされた外部カーネルを使用して起動することはできません。
バニラLinuxカーネル(Linus Torvaldsのgithubリポジトリにあるバージョン4.13)をコンパイルしたら、次のように起動してみますqemu
。
qemu-system-x86_64 --enable-kvm -boot c -kernel arch/x86/boot/bzImage
これにより、2〜3秒ごとに更新されるSeaBIOS出力を示すディスプレイが起動します。
Booting from ROM...
Probing EDD (edd=off to disable)... ok
early console in extract_kernel
input_data: 0x0000000002c773b4
input_len: 0x000000000090c470
output: 0x0000000001000000
output_len: 0x000000000173a968
kernel_total_size: 0x00000000025a7000
Decompressing Linux... Parsing ELF...
qemu
SeaBIOS デバッグ出力を有効にするために次のフラグを追加する場合:
-chardev stdio,id=seabios -device isa-debugcon,iobase=0x402,chardev=seabios
繰り返される出力は次のとおりです。https://pastebin.com/mZKeM6r5
興味深いことに、別のコンピュータ(Debianを実行)で同じ設定ファイルを使用して同じカーネルをコンパイルし、それを自分のbzImage
コンピュータにコピーすると正常に起動します。だから私のツールチェーンに何が起こっているようです。最近アップデートがありましたが、gcc
以前のバージョンのパッケージ(問題がなかったときに使用したバージョン)に戻っても問題は解決しませんでした。
distcc
一時的な回避策として、Debian コンピュータでコンパイルのためにファイルを前後にコピーすることを避けることができると思いましたが、問題は引き続き発生するため、問題はコンパイル プロセスの最後のステップ (リンクからリンクまで) にあると推測されます。私のラップトップの上級者でこれが起こるからです)。
追加情報:
gcc
私のノートブックバージョン(ArchLinux):8.2.0(パッケージバージョン= 8.2.0-2)gcc
私のDebianコンピュータのバージョン:6.3.0(パッケージバージョン= 4:6.3.0-4)
編集する: SeaBIOS 出力完了
答え1
私も同じ問題があります。私の場合、binutilsを2.31に更新したため、この問題が発生しました。質問を投稿した日付で判断すると、8月2日からArch Linux binutilsのインストールを2.31に更新したようには思えません。これはかなり良い一致です。
あなたはする必要があります今回提出してください4.16より前のカーネルに適用可能です。
binutils 2.31では、ld
リンカ()のデフォルト値を変更してデフォルト値を最大ページサイズ2MiBから4kiBに減った。指定されたコミットが適用されない場合、この変更はx86_64カーネルを中断します。