CLFS for PowerPC
时间:2009-05-23
来源:互联网
1、环境说明
BOOK:CLFS-1.0.0-powerpc.pdf
目标机:QEMU 0.10.2,qemu-system-ppc
2、构建过程的问题和解决办法
(1)第126页 7.14节,编译命令有误,应为
${CC} -o ......
(2)第127页 7.15节,更改Makefile 的命令有误,应为
cp -v Makefile{,.orig}
(3)编译mktemp-1.5软件包时,configure命令执行出错,提示
check for EBCDIC ... configure: error: cannot run test program while cross compiling.
解决方法:忽略,在目标机上再重新编译。
3、内核配置
内核对32位powerpc有一个缺省配置——pmac32_defconfig,我们可以先用它配置内核:
make ARCH=powerpc CROSS_COMPILE=${CLFS_TARGET}- pmac32_defconfig
然后再执行
make ARCH=powerpc CROSS_COMPILE=${CLFS_TARGET}- menuconfig
命令,增加 cmd64x 磁盘控制器驱动的配置项:
Device Drivers --> ATA/ATAPI/MFM/RLL support --> CMD64{3|6|8|9} chipset support
即可配置好满足QEMU的powerpc虚拟机要求的内核
上面的配置方法虽然简单有效,但冗余配置项太多,编译时间较长。我们也可以从CLFS的最简配置入手(参考:http://linuxman.blog.ccidnet.com/blog-htm-do-showone-uid-60710-type-blog-itemid-293122.html),增加powerpc特有的配置项,配置一个“刚好够用”的内核。
适合QEMU的powerpc虚拟机要求的关键内核配置项:
(1) Platform. support --> Apple PoweMac based machines
(2) Device Drivers --> ATA/ATAPI/MFM/RLL support --> CMD64{3|6|8|9} chipset support
(3) File systems --> Partition Types --> Advanced Partition selection --> Macintosh partition map support
(4) Device Drivers --> Graphics support --> console display driver support --> Framebuffer console support
(5) Device Drivers --> Graphics support --> open firmware frame. buffer device support
(6) Device Drivers --> Macintosh device drivers --> Apple Desktop Bus (ADB) support , support for CUDA base Macs and PowerMacs , support for ADB input devices (keyboard, mice, ... )
(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 --> Character devices --> Generic /dev/rtc emulation
4、向目标机部署CLFS临时系统
(1)参照http://hi.chinaunix.net/index.php?uid-21635276-action-viewspace-itemid-37364,安装powerpc的Debian系统,作为host机,并在host机上安装parted软件包。
(2)准备CLFS系统的虚拟硬盘
qemu-img create clfs-ppc-hd.img 2G
(3)将CLFS的构建目录用NFS导出。关于qemu虚拟机与主机的网络连接,可参考http://linuxman.blog.ccidnet.com/blog-htm-do-showone-uid-60710-type-blog-itemid-1472386.html设置。
(4)启动host机,包含CLFS硬盘和NFS支持
qemu-system-ppc -kernel vmlinux -net nic -net tap -hda debian-ppc-hd.img -hdb clfs-ppc-hd.img -append "root=/dev/hdc3"
这里的 vmlinux是上步配置、编译后得到的Linux内核。
(5)在host机上为CLFS虚拟硬盘分区
parted /dev/hdd
在parted中,首先执行mklabel命令,为硬盘创建Mac机的disklabel。CLFS硬盘分3个区:第一分区,32.8k ,APPLE(已由mklabel命令自动分得);第二分区,256M,swap;第三分区,全部剩余空间,linux root分区。分区完毕后,在后两个分区上创建相应的文件系统。
(6)分别挂载CLFS构建目录和CLFS目标硬盘分区(/dev/hdd3),将CLFS构建目录下的全部文件拷贝到CLFS目标硬盘分区。
(7) 确认CLFS目标硬盘中的 /etc/fstab 文件中root分区和swap分区的正确性。按前面的分区,root分区应该是 /dev/hda3,swap分区应该是 /dev/hda2 。注意:CLFS系统中的硬盘号与host机上的硬盘号不一样。
5、CLFS临时系统启动命令
qemu-system-ppc -kernel vmlinux -hda clfs-ppc-hd.img -append "root=/dev/hda3"
临时系统启动后,按CLFS BOOK的说明继续完成CLFS的构建。
BOOK:CLFS-1.0.0-powerpc.pdf
目标机:QEMU 0.10.2,qemu-system-ppc
2、构建过程的问题和解决办法
(1)第126页 7.14节,编译命令有误,应为
${CC} -o ......
(2)第127页 7.15节,更改Makefile 的命令有误,应为
cp -v Makefile{,.orig}
(3)编译mktemp-1.5软件包时,configure命令执行出错,提示
check for EBCDIC ... configure: error: cannot run test program while cross compiling.
解决方法:忽略,在目标机上再重新编译。
3、内核配置
内核对32位powerpc有一个缺省配置——pmac32_defconfig,我们可以先用它配置内核:
make ARCH=powerpc CROSS_COMPILE=${CLFS_TARGET}- pmac32_defconfig
然后再执行
make ARCH=powerpc CROSS_COMPILE=${CLFS_TARGET}- menuconfig
命令,增加 cmd64x 磁盘控制器驱动的配置项:
Device Drivers --> ATA/ATAPI/MFM/RLL support --> CMD64{3|6|8|9} chipset support
即可配置好满足QEMU的powerpc虚拟机要求的内核
上面的配置方法虽然简单有效,但冗余配置项太多,编译时间较长。我们也可以从CLFS的最简配置入手(参考:http://linuxman.blog.ccidnet.com/blog-htm-do-showone-uid-60710-type-blog-itemid-293122.html),增加powerpc特有的配置项,配置一个“刚好够用”的内核。
适合QEMU的powerpc虚拟机要求的关键内核配置项:
(1) Platform. support --> Apple PoweMac based machines
(2) Device Drivers --> ATA/ATAPI/MFM/RLL support --> CMD64{3|6|8|9} chipset support
(3) File systems --> Partition Types --> Advanced Partition selection --> Macintosh partition map support
(4) Device Drivers --> Graphics support --> console display driver support --> Framebuffer console support
(5) Device Drivers --> Graphics support --> open firmware frame. buffer device support
(6) Device Drivers --> Macintosh device drivers --> Apple Desktop Bus (ADB) support , support for CUDA base Macs and PowerMacs , support for ADB input devices (keyboard, mice, ... )
(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 --> Character devices --> Generic /dev/rtc emulation
4、向目标机部署CLFS临时系统
(1)参照http://hi.chinaunix.net/index.php?uid-21635276-action-viewspace-itemid-37364,安装powerpc的Debian系统,作为host机,并在host机上安装parted软件包。
(2)准备CLFS系统的虚拟硬盘
qemu-img create clfs-ppc-hd.img 2G
(3)将CLFS的构建目录用NFS导出。关于qemu虚拟机与主机的网络连接,可参考http://linuxman.blog.ccidnet.com/blog-htm-do-showone-uid-60710-type-blog-itemid-1472386.html设置。
(4)启动host机,包含CLFS硬盘和NFS支持
qemu-system-ppc -kernel vmlinux -net nic -net tap -hda debian-ppc-hd.img -hdb clfs-ppc-hd.img -append "root=/dev/hdc3"
这里的 vmlinux是上步配置、编译后得到的Linux内核。
(5)在host机上为CLFS虚拟硬盘分区
parted /dev/hdd
在parted中,首先执行mklabel命令,为硬盘创建Mac机的disklabel。CLFS硬盘分3个区:第一分区,32.8k ,APPLE(已由mklabel命令自动分得);第二分区,256M,swap;第三分区,全部剩余空间,linux root分区。分区完毕后,在后两个分区上创建相应的文件系统。
(6)分别挂载CLFS构建目录和CLFS目标硬盘分区(/dev/hdd3),将CLFS构建目录下的全部文件拷贝到CLFS目标硬盘分区。
(7) 确认CLFS目标硬盘中的 /etc/fstab 文件中root分区和swap分区的正确性。按前面的分区,root分区应该是 /dev/hda3,swap分区应该是 /dev/hda2 。注意:CLFS系统中的硬盘号与host机上的硬盘号不一样。
5、CLFS临时系统启动命令
qemu-system-ppc -kernel vmlinux -hda clfs-ppc-hd.img -append "root=/dev/hda3"
临时系统启动后,按CLFS BOOK的说明继续完成CLFS的构建。
作者: laowang_buaa 发布时间: 2009-05-23
樓主玩的系統架構真多,好奇一問,閣下從事網管的嗎?
作者: d00m3d 发布时间: 2009-05-23
哈哈~我的毕业设计也是做了这个~不过我是直接做到开发板上的~没用QEMU~
作者: simdiak 发布时间: 2009-05-25
引用:
作者: d00m3d
樓主玩的系統架構真多,好奇一問,閣下從事網管的嗎?
|
作者: laowang_buaa 发布时间: 2009-05-28
謝謝,相信玩多架構的人並不多,就有勞兄弟常臨賜教了 :)
作者: d00m3d 发布时间: 2009-05-31
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28