さて作業レポート. dockerの課題を先にやれと言われそうだが….
とりあえずKVMにあげてからの話.
まずLinuxのkernelを kernel.orgから持ってくる. …のだが,hostの都合で今回は4.8.6を使う
vmで
$wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.8.6.tar.xz
バージョンは適当に変えよう. 落としてきたのはtar.xzファイルであるので解凍して展開する.
$tar Jxfv linux-4.9.tar.xz
(この展開している時スーパーハカー感あってすごく楽しい)
あとは公式サイトに書いてある通りにやっていく
$ dnf install fedpkg fedora-packager rpmdevtools ncurses-devel pesign $ dnf install ncurses-devel
はずなのだが…?
これで通るはずだが,何故か1つずつやっていかないとinstall出来なかった….
しかし pesign-rh-test-certs
は無いらしい.おいおい.
でめでたくbuild出来ると思いきや openssl/bio.h: No such file or directoryなエラーがmakeしてると出る. なので
dnf install openssl-devel
を行う必要がある.
履歴によると実際に僕がやったのはこの辺
22 | install openssl-devel | 2016-12-24 18:34 | Install | 8 21 | install pesign | 2016-12-24 18:27 | Install | 3 20 | install fedora-packager | 2016-12-24 18:23 | Install | 86 19 | install kernel-devel | 2016-12-24 18:17 | Install | 1 18 | install zlib-devel | 2016-12-24 17:07 | Install | 1 17 | update | 2016-12-24 16:48 | E, I, U | 86 EE 16 | install ncurses-devel | 2016-12-24 16:42 | Install | 2
ここまで行くと多分build出来るので
$make clean $make mrproper
して設定を消去(ゴミ削除)して
$make menuconfig
する.kernel debugにチェックをいれないといけないが,実はデフォルトで入っている.そのままsaveして
$ make >& ers & $ disown %m exit
あたりすれば大丈夫らしい.
心配ならtmuxをinstallして起動した状態で
$ make >& ers &
を行えばバックグラウンドでmakeが行われていく筈. logはersに入っているのでmoreとかで確認すると1~2時間くらいでbuild出来ている.
続いて
make modules_install
とするのだがエラーが出る. どうも
dnf install elfutils-libelf-devel
しないとダメらしい.
あとは
make install
すればokなのだが,この後gdbで追う様の設定が結構キツイ.それはまた次回で
(追記 2017/01/15)
kernelのbuildで失敗することが多くなり(具体的には make manuconfigが出来ない)
色々試したのですが
dnf reinstall ncurses-devel
したら解決しました.コンパイラでマクロが読めてなかったのは,このライブラリ群が破損していたからだそうです.