高手进阶 学会做嵌入式Linux操作系统#mkdir /mnt/cf //把目标硬盘mount上来 #mount –t ext2 /dev/hdc1 /mnt/cf 回到rootfs #cd ${PRJROOT}/rootfs 拷贝所有文件至目标硬盘 #cp –r * /mnt/cf
这样,我们所有的文件都被安装至目标硬盘了,当然,它还不能引导,因为没有bootloader。使用如下命令: # lilo -r /mnt/cf -C etc/target.lilo.conf Warning: LBA32 addressing assumed Added Linux * -r :改变根目标为/mnt/cf ,这样配置文件其实就是/mnt/cf/etc/target.lilo.conf,也就是我们先前建立的文件。 当然,完成这一步,需要lilo22.3及以后版本,如果你的版本太旧,比如Redhat9.0自带的,就会出现下面的信息: #lilo –r /mnt/cf –C etc/target.lilo.conf Fatal: open /boot/boot.b: No such file or directory 这时,你需要升级你的lilo,或者重新安装一个。
启动系统 #umount /mnt/cf #reboot
将BIOS改为从IDE0启动,也就是目标硬盘。如果一切顺利,你将顺利进入一个属于你的系统。
回头再来看看我们的工作空间吧 [root@skynet lib]# df /dev/hda1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda1 3953036 1628 3750600 1% /mnt/cf
总共花去了我1628KB的空间,看来是没有办法放到软盘里边去了^o^,不过一味求小,并不是我的目标。
[root@skynet skynet]# ls ${PRJROOT} bootloader build-tools debug doc images kernel rootfs sysapps tmp tools 这几个目录中的文件,呵呵,与本文一开头规划的一样
[root@skynet skynet]# ls build-tools/ buildroot buildroot-0.9.27.tar.tar 包含了buildroot源码及压缩包,事实上buildroot下边还包括了GNU其它工具的源码、编译文件等诸多内容,是我们最重要的一个文件夹,不过到现在它已经没有多大用处了,如果你喜欢,可以将它删除掉(不建议)。
[root@skynet skynet]# ls images 2.4.18-rmk5 bzImage-2.4.18-rmk5 System-2.4.18-rmk5 vmlinux-2.4.18-rmk5 内核映像及配置文件等,如果你有模块,因为还有相应的目录
[root@skynet skynet]# ls kernel/ linux-2.4.27 linux-2.4.27.tar.bz2 内核源码及压缩包
[root@skynet skynet]# ls rootfs/ bin boot dev etc home lib linuxrc proc root sbin tmp usr var 制作好的根文件系统,重中之重,注意备份……
[root@skynet skynet]# ls sysapps/ busybox-1.00 busybox-1.00.tar.gz busybox-1.00源码包,或许你还要继续添加/删除一些命令……
[root@skynet skynet]# ls tools bin i386-linux i386-linux-uclibc include info lib man 这个也很重要,我们制作好的交叉开发工具链。如果你要继续开发程序,这个目录重要性就很高了。
其它目录暂时是空的。
第六章 完善MyLinux 关于进一步的调试,你可以在开发机上使用chroot /mnt/cf /bin/sh这样的命令,以使我们在目标根文件系统上工作。
支持多用户 因为我在编译busybox时,已经将它的多用户那一大堆命令编译了进来。现在关键是的要为其建立相应的文件; 进入原来的开发机,进入rootfs目录,切换根目录 #chroot rootfs/ /bin/sh A、 建立/etc/passwd文件,我的文件内容如下: root:x:0:0:root:/root:/bin/bash B、 建立/etc/group文件,我的文件内容如下: root:x:0: bin:x:1: sys:x:2: kmem:x:3: tty:x:4: tape:x:5: daemon:x:6: disk:x:7: C、 为root建立密码 #passwd root
试试用addgroup/addusr……这堆命令。然后重启,从目标硬盘上启动;从console口,9600登陆试试(因为我在inittab中启用了ttyS0,我未来的目标机,是没有显卡的,需要从console口或SSH进去管理)
上一篇:修正Linux下丑陋的FireFox表单控件问题 下一篇:实用技巧两则 主机名修改与Cat命令退出 更多相关文章
|
推荐文章
精彩文章
|