オリジナルLinuxを自作
以前買った本に全く手を付けてなかったのでやってみる。
自分で作るLinux OS (日経BPパソコンベストムック)
- 作者: 日経Linux
- 出版社/メーカー: 日経BP社
- 発売日: 2006/07/19
- メディア: 大型本
- 購入: 1人 クリック: 24回
- この商品を含むブログ (24件) を見る
付録DVDに収録されてるカーネルは2.4系と古かったので2.6系で作ることにしました。
いろいろと本の内容と変わった点があるのでメモをしておきます。
Tux Finderが落ちている
ソースコードの入手先などを調べられるTux Finderがどうやら落ちている。
手作業でいちいちコードを探すのは面倒なので
# apt-get source ..
で得たやつでほとんど代用しました。
util-linuxのコンパイルができない
util-linuxに含まれるfdiskがコンパイルできなかったです。原因は_syscall5マクロがunistd.h内から無くなっているから。
代案は
- asm-486/unistd.hを使う
- syscallを代わりに使う
あたりでしょうか?
自分はsyscallを代わりに使う事で解決できました。
/* _syscall5 を使う箇所はifdefで囲む */ #ifdef _syscall5 static _syscall5(int, _llseek,unsigned int,.......) #endif /* _syscall5がない場合はsyscallを使って呼ぶ */ #ifdef _syscall5 _llseek(.....); #else syscall(__NR__llseek, ....); #endif
それから細かいけれどもMCONFIGの書き方が本の内容では間違ってます。LOCALE_DIRを変更したのにLOCALEDIRが元のままになっています。
LOCALE_DIR= /usr/local/src/origdev/usr/share/locale LOCALEDIR= $(DESTDIR)/share/locale <- こうしないと
initrdの作成
initrdの中身が大きく変わってるみたいです。
旧バージョンのinitrdの中身
bin/ dev/ etc/ lib/ linuxrc loopfs/ proc/ sbin@ sys/ sysroot/
2.6でのinitrdの中身
bin/ conf/ etc/ init lib/ modules/ sbin / scripts/
具体的にどういう変更がなされたのか調べる必要があるなぁ。
(もう遅い(早い)ので今日はここまで)