当前位置: 首页 >> 开源操作系统 >> LINUX简单移植
 

LINUX简单移植

作者:      来源:http://blog.csdn.net/Arthur_     发表时间:2007-03-21     浏览次数:      字号:    

过几天要做mips下LFS所以先做个小联系linux向移动设备U盘设备上的移植, 开始比较痛苦因为偶也刚刚接触,

制作过程大致分成两个部分1 编译内核. 2.制作文件系统
1        先说说内核
a      网上大部分使用2.4的内核, 这样一个好处是最后产生的内核镜象比较小, 但是一个坏处就是这样的内核不得不打一个补丁(具体补丁请大家google)打这个补丁是由于u盘激活的速度相对硬盘慢, 因此可能激活时候找不到自己的根目录系统..2.6.11以后的内核不需要打这个补丁.
b      好了既然有了内核(我的是2.6.18.20)就按照常规进行编译
        make mrproper
        make xconfig
        make clean
        make dep
        make bzImage
上面的make xconfig配置如果是做联系其实不用修改, 以后联系减拆的时候在做修订.编译后内核镜象保存在arch/i386/boot/bzImage
c      好了内核编译完了, 就这幺简单.
2        文件系统
a.       分区.
这部分可以说的很复杂也可以很简单, 偶的文笔不好=_=!就挑一个简单的来说.我只分了一个区(fdisk)生成的设备名字是/dev/sda1文件格式为ext2, 将其挂在/mnt中.下一步骤我在上面建立boot/grub目录. 而后将bzImage copy到/mnt/boot下;将/boot/grub/stage1和/boot/grub/stage2 copy到/mnt/boot/grub下.之后运行
grub
root (hd1,0)
setup(hd1)
quit
具体细节请参考grub的使用
上面的过程完成后在/mnt/boot/grub/中创建grub.conf修改里面的内容如下:
default=0
timeout=3
title USB Linux
root (hd0,0)
kernel /boot/bzImage ro rootdelay=5 root=/dev/ram0
initrd /boot/rootfs.gz
对于上面的设置大家可能一头雾水, 不要急慢慢向下看.
Rootfs.gz 和ram0和我们后面建立的文件系统有关系.
b      建立文件系统
        我们使用虚拟盘ramdisk建立. 首先建立一个空的ext2的虚拟盘
dd if=/dev/zero of=/dev/ram0 bs=4M count=1
mkfs.ext2 /dev/ram0
而后将/dev/ram0 mount 到一个盘上比如 /noddy/mnt/
下面要向/noddy/mnt/中copy些文件.这些文件包括dev,etc.bin,sbin,proc,usr,var其中etc bin sbin 这些目录不需要自己建立一会我们安装一个busybox来生成bin sbin etc 以及linuxrc. 其它目录保持为空就可以.
        安装busybox比较简单了, 这里要注意喽在配置busybox的时候请参考
http://www.linuxsir.org/bbs/showthread.php?t=159887中关于busybox的编译的介绍.另外我想说的一点是编译工具的时候要把console mount unmount都选择上否则激活的时候会出错.
我的busybox是busybox-1.4.2.tar.gz, 需要的文件/bin sbin linuxrc
位置在_install/, etc在examples/floopyboot/中. 将上面的文件全部copy到/noddy/mnt下接下来开始修改文件啦.
etc/ftab增加如下内容.
/dev/sda1 / ext2 defaults 1 1
修改inittab.将sh改成msh(根据你的busybox中选择的shell)
修改init.d/rcS中将sh改成msh
dev/增加如下设备
cp -r /dev/*tty* /noddy/mnt
cp –r /dev/console /noddy/mnt
cp –r /dev /ram* /nodd/mnt
cp –r /dev/mem /noddy/mnt
cp –r /dev/{hd*,sd*} /noddy/mnt
cp –r /dev/{zero,null} /noddy/mnt
好了下面开始打包这个镜象了
umount /dev/ram0
dd if=/dev/ram0 bs=4M count=1 | gzip –v9 > rootfs.gz
最后将生成的rootfs.gz copy到/mnt/boot中.好了reboot系统修改bois将u盘作为第一激活盘.
之后就可以进入busybox为界面的console里啦
写的比较简单, 如果需要可以做很多修改比如不使用ramdisk而直接mount设备也可以.

责任编辑 webmaster

 
 
 
 
 
评论更多>>
 
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •