組み込みLinuxカーネルをコンパイルしてみよう!

Linuxカーネルのコンパイル

Linuxカーネルは、必要な機能を選択するコンフィグを行ってから、コンパイルします。カーネル本体はzImage、カーネルが読み込むボード毎の設定がdtbです。

							※一部は第4回にも掲載
							
							ソースのダウンロード
							$ git clone https://github.com/altera-opensource/linux-socfpga.git

							環境変数の設定
							$ . /opt/poky/2.1.1/environment-setup-cortexa8hf-neon-poky-linux-gnueabi

							SoC FPGA用の
							$ cd linux-socfpga.git
							$ make socfpga_defconfig

							カーネルの機能を細かく設定
							$ make nconfig

							コンパイル
							$ make zImage dtbs

							ビルドしたイメージをSDカードへコピー
							$ cp arch/arm/boot/zImage SDカードのFATパーティションのマウントポイント
						
図1

機能の選択方法はいくつかありますが、今回はnconfigを紹介します。コンソール上のUIを操作して設定します。

図2

例えば、デバッガを使うための設定は下記の順にメニューを進めて、項目を有効にします。
Kernel hacking --->
Compile-time checks and compiler options --->
[*] Compile the kernel with debug info

図3

もし、わからない機能があったら、F2を押すことで詳しい情報を見ることができます。

Linuxカーネルのデバッグ方法

詳しくは冒頭のビデオで見てね!

							ビデオで紹介したコマンドは、こちらです。

							プロセス一覧の表示:
							メニューのLinux -> Display Processes

							実行しているソースの表示:
							コマンドの
							B:: list /core 0
							B:: list /core 1

							レジスターの表示:
							コマンドの
							B:: register /core 0
							B:: register /core 1

							シンボルの表示・検索:
							表示 -> シンボル -> ブラウズ

							ブレーク ポイントの設定:
							メニューのブレーク -> リスト
						
図4

検索はウィンドウ上部にあるテキスト ボックスから行います。

図5

ブレークは行番号の右をダブル クリックします。設定されると赤くマークされます。