CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 4411|回复: 0

使用qemu-arm的binfmt方式运行archlinuxarm的Cubieboard rootfs

[复制链接]
发表于 2013-7-26 23:06:16 | 显示全部楼层 |阅读模式
http://hi.baidu.com/3444542/item/a3bbb052e3d40113db163560 我的BLOG地址
群里ID: 枪炮与玫瑰

http://www.gentoo.org/proj/en/base/embedded/handbook/?part=1&chap=5  5. Compiling with qemu-user chroot

http://wiki.gentoo.org/wiki/Crossdev_qemu-static-user-chroot Crossdev qemu-static-user-chroot

https://projects.honeynet.org/sebek/browser/virtualization/qebek/trunk/scripts/qemu-binfmt-conf.sh


[ -d /proc/sys/fs/binfmt_misc ] || modprobe binfmt_misc

[ -f /proc/sys/fs/binfmt_misc/register ] || mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc

4. 安装qemu-user-static, 如果是archlinux用户,通过yaourt 安装,同时安装binfmt-support

(Do not register a handler that matches the host machine)

5. 添加模拟器, 目前就添加两个就够了,重要一点,将 qemu-arm-static 拷到 sun4i_rootfs的usr/bin/下

echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-static:' > /proc/sys/fs/binfmt_misc/register


echo ':armeb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-arm-static:' > /proc/sys/fs/binfmt_misc/register


# echo ':alpha:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-alpha:' > /proc/sys/fs/binfmt_misc/register# echo ':mips:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mips:' > /proc/sys/fs/binfmt_misc/register# echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsel:' > /proc/sys/fs/binfmt_misc/register# echo ':ppc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-ppc:' > /proc/sys/fs/binfmt_misc/register# echo ':sh4:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff:/usr/bin/qemu-sh4:' >/proc/sys/fs/binfmt_misc/register# echo ':sh4eb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sh4eb:' >/proc/sys/fs/binfmt_misc/register# echo ':sparc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sparc:' > /proc/sys/fs/binfmt_misc/register


6, 挂载proc, dev sys

#!/bin/bash

ROOTFS=./sun4i_rootfs

if [ ! mountpoint -q  ${ROOTFS}/dev ] ; then

    sudo mount --bind /dev/ ${ROOTFS}/dev

fi

if [ !  mountpoint -q ${ROOTFS}/proc ] ; then

    sudo mount --bind /proc/ ${ROOTFS}/proc

fi


if [ ! mountpoint -q  ${ROOTFS}/sys ] ; then

    sudo mount --bind /sys/ ${ROOTFS}/sys

fi


7. sudo chroot $ROOTFS /bin/bash 即可进入archlinuxarm

8. 修改 /etc/resolv.conf   , 配置nameserver 192.168.1.1 设置DNS

9. pacman -Syu 升级,完全就跟PC下的一样


PS:使用qemu-arm-static 操作archlinuxarm的目的在于可以直接在PC上方便的做包,比如自己实现Cubieboard的NAS遇到官方没有的包时,可以自己动手添加

http://archlinuxarm.org/developers/building-packages 构建archlinuxarm包的文档

按照官方的文档下载下来PKGBUILDs后,试着进到zlib目录下makepkg -A制作好一个armv7的zlib包




回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-5-19 02:45 , Processed in 0.020498 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部