Intel:Linux カーネルをデバッグする際に、以下のメッセージが表示されエラーになります。どの様なことが考えられますか?
<エラー・メッセージ>
─────────────────────────────────────────────
エラー (CMD685-IMG54):
! "vmlinux" のシンボルロードに失敗しました
! DWARF デバッグ情報のロード要求に失敗しました: セクション .debug_info、オフセット 0x49481
─────────────────────────────────────────────
ツール : SoC EDS
デバイス : Cyclone V
ロード対象のデバッグ情報フォーマット (DWARF) が未サポートである場合に表示されるエラーです。
このエラーは、GCC のバージョン 4.7 → 4.8 の変更点として、デバッグ情報フォーマットのデフォルト設定が DWARF バージョン 2 → DWARF バージョン 4 に変更となる事に依存して発生します。
◎ SoC EDS 14.0 以降に付属する DS-5 を利用すると本エラーは発生しません。
(意図的に未サポートのデバッグフォーマットを指定した場合を除く)
◎ SoC EDS 13.1 以前のデバッグ環境を利用する場合には以下の対策が必要となります。
デバッグ対象のモジュール/カーネルをビルドする際にデバッグ情報のフォーマットとして、オプション -gdwarf-2 (DWARF バージョン 2) 指定して下さい。
上記オプションの追加方法はデバッグ対象プロジェクトの構成により適宜対応ください。
例として、Rocketboards に公開されている「Yocto: Building Yocto 1.5 Dora with meta-altera 」の 3.10ltsi カーネルに対して -gdwarf-2 オプションを指定する方法を示します。
http://www.rocketboards.org/foswiki/Documentation/YoctoDoraBuildWithMetaAltera
1.コマンド:「bitbake virtual/kernel -c devshell」を実行
クロスコンパイル用の環境変数等が設定された状態で別のコンソールが起動します
(Current Directoryもビルド対象のカーネルフォルダへ移動した状態)
2.カーネルソースディレクト直下の Makefile (下記) に -gdwarf-2 オプションを追加
対象ファイル:poky/build/tmp/work/socfpga_cyclone5-poky-linux-gnueabi/linux-altera-ltsi/3.10-r1/git/Makefile
編集箇所:618行目
【編集前】KBUILD_CFLAGS += -g
【編集後】KBUILD_CFLAGS += -gdwarf-2
3.コンソールから make コマンドでビルド実行
(変更ソースを自動認識してくれるので clean は不要でした)
make clean (*必要なら)
make menuconfig (*必要なら)
make "$CCLD" modules zImage
4.コマンド: 「bitbake virtual/kernel -c deploy」
/build/tmp/deploy/imagesフォルダへ新しく生成したイメージを格納