日度归档:2012年5月11日

感动啊……终于成功做出固件,成功的chroot到debian了

很久以前就看到这个openwrt可以chroot到debian,想着,弄一个来玩玩啦,文章在已经记录在这里

可惜的是,因为这设备的缺陷(Buffalo WZR-HP-AG300H),没有FPU,导致需要启用FPU仿真,而很可惜的是,官方发布的固件都不会加上这个选项。不得不自己动手做一个。

自己做固件有相当一段时间了(其实也就一个月左右),之前的源码的话编译总是不成功。做不出来固件。直到最近,成功的做出了固件,然后自己当了一会小白鼠,直接刷上了。很幸运的是,没有变砖。可惜的是,因为做固件的时候没有选上某些kernel mod ,导致功能上的残缺。

于是又重新做了一个。这回没有问题了。

接下来的问题是,在debootstrap过程中, 缺少了device.tar.gz导致装不完全((这个很蛋疼,我试过在这里直接chroot,结果passwd都没有,用户名是“I have no name!”,连apt都没有),这时候只要找到debootstrap,打开,找到里面的devic.tar.gz,放到指定位置就好了。

[转载]用debootstrap在openwrt上安装debian squeeze,构建编译环境

来源:http://www.openwrt.org.cn/bbs/forum.php?mod=viewthread&tid=2801&highlight=debootstrap

用到的相关软件:
debootstrap binutils objdump libbfd
1、opkg 安装 objdump
因为debootstrap安装debian时,需要用的dpkg或者ar来解包deb软件包,考虑到dpkg安装需要的空间较大,转用ar,而ar在binutils软件包中,ar的运行需要libbfd库支持。因此先安装objdump,连支持库libbfd也安装了
root@OpenWrt:~#opkg update
root@OpenWrt:~#opkg install objdump
2、解包binutils,获得ar可执行文件
opkg安装binutils需要6M多的空间,而我们只需要其中一个ar,所以我只解包取出其中的ar文件
root@OpenWrt:~#mkdir /mnt/sda1/temp
root@OpenWrt:~#cd /mnt/sda1/temp

wget取得binutils_2.19.1-3_brcm63xx.ipk

root@OpenWrt:/mnt/sda1/temp# wget … 19.1-3_brcm63xx.ipk

解包binutils_2.19.1-3_brcm63xx.ipk (ipk包实际只是个tgz包,可以用tar解开)

root@OpenWrt:/mnt/sda1/temp# tar zxvf binutils_2.19.1-3_brcm63xx.ipk

解包 data.tar.gz ,获得ar

root@OpenWrt:/mnt/sda1/temp# tar zxvf data.tar.gz

解开后,当前目录usr里面有bin mips-openwrt-linux-uclibc/bin两层目录,里面都有ar,我用了mips-openwrt-linux-uclibc/bin/ar

复制ar到/usr/bin里

root@OpenWrt:/cp usr/mips-openwrt-linux-uclibc/bin/ar /usr/bin

试试ar能否执行

root@OpenWrt:/mnt/sda1/temp# ar
Usage: ar [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file…
ar -M [<mri-script]
commands:
ar 搞掂了
3、安装debootstrap
debootstrap在RC-4的源上有,需要修改opkg设置
root@OpenWrt:/vi /etc/opkg.conf
###将源修改为下面地址,保存
src/gz packages … 4/brcm63xx/packages
###安装debootstrap
root@OpenWrt:/opkg updat
root@OpenWrt:/opkg install debootstrap
###安装完后,最好修改原来的源地址设置。
4、安装debian
root@OpenWrt:~# mkdir /mnt/sda1/debian_mips
root@OpenWrt:~# debootstrap –arch=mips –variant=minbase squeeze /mnt/work/debian/ http://ftp.cn.debian.org/debian/

*注:如果遇到没有device.tar.gz,下载devices.tar.gz

###等等等。。。。。若干十分钟后,安装完成后,就有了一个debain了。
5、chroot进行debian
root@OpenWrt:~#mount -o bind /proc /mnt/sda1/debian_mips/proc
root@OpenWrt:~#mount -o bind /dev /mnt/sda1/debian_mips/dev
root@OpenWrt:~#chroot /mnt/sda1/debian_mips /bin/bash
###chroot后,apt-get update,mount磁盘。。。等等等等,之后的事情,就看你的需要了。。。exit退回openwrt环境。