偷看initrd.gz 或.img 或ramdisk.gz
cp -af /boot/initrd-2.4.20-8.img .
mv initrd-2.4.20-8.img initrd.gz
gunzip initrd.gz
mkdir tmp
mount -o loop initrd tmp
--->tmp目錄下就是RH9的initrd內容
--->修改或參考
umount tmp
gzip initrd
mv initrd.gz initrd-2.4.20-8.img
2009年2月22日 星期日
磁片版linux
磁片檔案結構
***************
MBR
ldlinux.sys
zImage
initrd.gz
syslinux.cfg
***************
過程
#mkdosfs /dev/fb0
#syslinux /dev/fb0 做出 MBR 和 ldlinux.sys
製作busybox
#tar zxfv busybox-1.1.3.tar.gz
#make menuconfig 改 .config
#make;make install
mkdir缺的檔案
/proc /dev /etc
打包 做出initrd.gz
( #mke2fs #dd if=/dev/ram9 of=initrd )
製作kernel
make menuconfig裡的ramdisk和initrd要啟動
改.config
make dep
make zImage 做出zImage
寫syslinux.cfg
開機讀ldlinux.sys後會讀syslinux.cfg
複製到磁片
2009年2月20日 星期五
編譯toolchain和kernel
1. 使用RH9的Kernel config build linux-2.4.20
2. 使用自訂的Kernel config build linux-2.4.20
進階 : 改Makefile init/main.c
3. build 自己的toolchain在過程中,試驗若只有C compiler 是否能build kernel
最終需build出i386-linux toolchain
3-0 clean /usr/local
3-1 kernel header file
3-2 binutils
3-3 gcc-temp ----->試驗build kernel
3-4 glibc
3-5 gcc-final
***中途若有出錯 回3-0
crosstool
adduser xxx
passwd xxx
用xxx登入
tar zxf crosstool-0.43.tar.gz
更改demo-i686.sh , gcc-3.2.3-glibc-2.2.5.dat , i386.dat
./demo-i686.sh
試圖下載gcc , glibc , binutils , kernel
可以先放在downloads
最終的tool /opt/crosstool
mkdir -p /opt/crosstool -p 沒有就創
chown xxx:xxx /opt/crosstool
完成後可加上PATH=$PATH:/opt
刪除kernel
make modules_install
/lib/modules/2.4.20-my
make install
/boot/vmlinux-2.4.20-my
/boot/system.map-2.4.20-my
/boot/initrd-2.4.20-my.img
修改/boot/grub/grub.conf
my-i386-linux-toolchain
/user/local
#rm -rf /usr/local
#mkdir /usr/local
crosstool-i386-linux-toolchain
/opt/crosstool
訂閱:
文章 (Atom)