Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->网络应用 ->正文

高手进阶 学会做嵌入式Linux操作系统

来源:赛迪网技术社区  作者:Webmaster 时间:2007-06-03 点击: [收藏] [投稿]

#cd ${PRJROOT}/rootfs/etc

#vi inittab

我的inittal文件如下:

#指定初始化文件

::sysinit:/etc/init.d/rcS

#打开一个串口,波特率为9600

::respawn:/sbin/getty 9600 ttyS0

#启动时执行的shell

::respawn:/bin/sh

#重启时动作

::restart:/sbin/init

#关机时动作,卸载所有文件系统

::shutdown:/bin/umount -a –r

保存退出;

再来编写rcS脚本:

#mkdir ${PRJROOT}/rootfs/etc/init.d

#cd ${PRJROOT}/rootfs/etc/init.d

#vi rcS

我的脚本如下:

#!/bin/sh

#Set Path

PATH=/sbin:/bin

export PATH

syslogd -m 60

klogd

#install /proc

mount -n -t proc none /proc

#reinstall root file system by read/write mode(need: /etc/fstab)

mount -n -o remount,rw /

#reinstall /proc

mount -n -o remount,rw -t proc none /proc

#set lo ip address

ifconfig lo 127.0.0.1

#set eth0 ip address

#当然,这样子做只是权宜之计,最后做的应该是在这一步引导网络启动脚本,像RedHat

#那样,自动读取所有指定的配置文件来启动

ifconfig eth0 192.168.0.68 netmask 255.255.255.0

#set route

#同样的,最终这里应该是运行启动路由的脚本,读取路由配置文件

route add default gw 192.168.0.1

#还差一个运行服务程序的脚本,哪位有现成的么?

#网卡/路由/服务这三步,事实上可以合在一步,在rcS这一步中,做一个循环,运行指定启动目录下的所有脚,先将就着这么做吧,确保系统能够正常启动了,再来写这个脚本。

#set hostname

hostname MyLinux

保存退出。

编写fstab文件

#vi fstab

我的fstab很简单:

/dev/hda1 / ext2 defaults 1 1

none /proc proc defaults 0 0

第五章 让MyLinux能够启动

前一章,我们把编译好的内核、应用程序、配置文件都拷贝至rootfs目录对应的子目录中去了,这一步,就是把这些文件移植至目标机的存储器。这里,我是先另外拿一块硬盘,挂在我的开发机上做的测试,因为我的本本用来写文档,PC机用来做开发机,已经没有另外的机器了……但是本章只是讲述一个一般性的过程,并不影响你直接在目标主机上的工作。

因为以后目标机识别硬盘序号都是hda,而我现在直接挂上去,则会是hdb、hdc……这样,安装lilo时有点麻烦(虽然也可以实现)。所以我想了另一个办法:

 把新硬盘挂在IDE0的primary上,进入linux后,会被认为是had;

 原来主机的装Redhat的硬盘,我将它从IDE0的primary上变到了IDE1 的primary,因为它的lilo早已装好,基本上不影响系统的使用;

分区和格式化

BIOS中改为从第二个硬盘启动;也就是从我原来开发机启动,新的硬盘被识别成了had。

#fdisk /dev/hda

用d参数删除已存在的所有分区

用n参数新建一个分区,也是就/dev/hda1

格式化

#mkfs.ext2 /dev/hda1

安装bootloader

因为我是X86平台,所以直接用了lilo,如果你是其这平台,当然,有许多优秀的bootloader供你选择,你只需查看其相应的说明就可以了。

编译lilo配置文件,我的配置文件名为target.lilo.conf,置于${PRJROOT}/rootfs/etc目录。内容如下所示:

boot=/dev/hda

disk=/dev/hda

bios=0x80

image=/boot/bzImage-2.4.18-rmk5

label=Linux

root=/dev/hda1

append="root=/dev/hda1"

read-only

//新建文件夹,为mount做新准备

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:修正Linux下丑陋的FireFox表单控件问题   下一篇:实用技巧两则 主机名修改与Cat命令退出

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号