LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1242|回复: 2

CLFS for MIPS

[复制链接]
发表于 2009-6-3 22:09:31 | 显示全部楼层 |阅读模式
1、环境说明
BOOK:CLFS-1.0.0-mips.pdf
目标机:[URL="http://www.linuxsir.cn/bbs/javascript.:;"]QEMU[/URL]  0.10.2,qemu-system-mips,CPU大端模式
2、构建过程的问题和[URL="http://www.linuxsir.cn/bbs/javascript.:;"]解决[/URL]办法
(1)第128页 7.13节,编译Colo-1.21 软件包出错。
解决办法:忽略,直接使用QEMU的 -kernel 参数启动内核。
3、内核配置
QEMU的MIPS虚拟机缺省机型是 malta core LV。在内核有malta的缺省配置文件
malta-defconfig,我们可以使用它,执行make malta-defconfig命令先做缺省内核配置,然后再用make menuconfig命令更改大小端配置,即:
Endianness selection --> Big endian
注意:这样配置的内核,它的console设置为串口(内核配置中自动增加了 "cosole=ttyS0,38400n8r"的内核命令行参数),在QEMU的界面里没有内核输出信息,需要按 alt + ctlr + 3 键,切换到QEMU的串口界面才能看到内核的输出信息。
内核中还有一个qemu-defconfig的缺省配置,经验证,此配置编译出的内核,不能用于QEMU的mips虚拟机使用。
CLFS for PowerPC一样,我们也可以从CLFS的最简配置入手(参考:http://linuxman.blog.ccidnet.com/blog-htm-do-showone-uid-60710-type-blog-itemid-293122.html),增加mips特有的配置项,配置一个“刚好够用”的内核。
适合QEMU的mips虚拟机要求的关键内核配置项:
(1) Machine selection --> System type --> MIPS Malta board
(2) Device Drivers --> ATA/ATAPI/MFM/RLL support --> Intel PIIXn chipset support
(3) Endianess selection --> Big endian
(4) CPU type --> MIPS32 Release 2
(5) Bus options (PCI, PCMCIA, EISA, ISA, TC) --> Support for PCI controller
(6) Device Drivers --> Input device support --> Keyboards --> AT keyboard, Device Drivers --> Hardware I/O ports --> i8042 PC keyboard controller
(7) Device Drivers --> Network device support --> Ethernet ( 10 or 100Mbit ) --> EISA, VLB, PCI and on board controllers --> PCI NE2000 and clones support (see help)
(8) Device Drivers --> Graphics support --> console display driver support --> Framebuffer console support,
(9) Device Drivers --> Graphics support --> Cirrus Logic support
(10) Kernel hacking --> Are you using a crosscompiler
(11) NFS 根文件系统支持,参考http://linuxman.blog.ccidnet.com/blog-htm-do-showone-uid-60710-type-blog-itemid-268379.html配置。

4、向目标机部署CLFS临时系统
我们用NFS-ROOT方式启动MIPS虚拟机
qemu-system-mips -kernel vmlinux -net nic -net tap -append "root=/dev/nfs nfsroot=192.168.0.11:/home/clfs/mips-rootfs,rsize=32768,wsize=32768,timeo=14,nfsvers=3  rw  ip=192.168.0.110::192.168.0.11:255.255.255.0  console=tty"  -hda clfs-mips-hd.img
说明:
(1)vmlinux是为CLFS编译出的内核;clfs-mips-hd.img是CLFS的虚拟硬盘,用qemu-img 命令创建。
(2)参考用TAP方式让QEMU虚拟机与host联网设置NFS。这里的192.168.0.11是server端的IP,192.168.0.110是MIPS虚拟机的IP地址,/home/clfs/mips-rootfs 是MIPS 的CLFS的构建目录。
(3)append参数中 console=tty 是让内核的输出信息能输出到QEMU的运行界面,而不仅仅是在串口输出。
参考在Windows上构建Linux系统——后传一:用NFS部署目标系统 向虚拟部署CLFS的临时系统。
5、CLFS临时系统启动命令
qemu-system-mips  -kernel vmlinux  -hda clfs-ppc-hd.img -append "root=/dev/hda1  console=tty"
其他说明:
(1)启动MIPS虚拟机时,可能会出现page错误,这是由RTC引起的,可忽略。
(2)用halt命令关闭虚拟机,虚拟机执行完操作后会重新启动,直接关闭QEMU程序即可。
(3)CLFS临时系统的初始化脚本的输出不在QEMU的图形界面中,而是在串口中输出,用 alt + ctlr + 3 键,可以切换到QEMU的串口界面。初始化脚本执行完毕后,系统会在图形界面中显示登录提示符。

临时系统启动后,按CLFS BOOK的说明继续完成CLFS的构建。
发表于 2009-7-26 10:33:29 | 显示全部楼层

好文!

请问clfs和lfs主要区别在哪里?还有什么需要注意的地方?
回复 支持 反对

使用道具 举报

发表于 2009-7-26 11:39:23 | 显示全部楼层
Post by greatsnows;2009714
请问clfs和lfs主要区别在哪里?还有什么需要注意的地方?


CLFS 涉及架构上的迁移,LFS 是当前的架构下建立新系统

要注意的地方请参考对应的手册
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表