首页 > 代码库 > 用香蕉派制作香蕉派路由openwrt系统镜像

用香蕉派制作香蕉派路由openwrt系统镜像

    BPI-R1最新版全功能的openwrt系统还没有发布,等得着急啊,还是自己先来制作一个可以运行的系统吧。不过由于这里的配置文件是香蕉派的,所以有些功能路由是运行不了的,就当是热热身吧。
所有的操作都是在香蕉派Lubuntu下完成的,不需要交叉编译的环境,省了不少事。


1.下载必须的文件:


这个网站是openwrt最新的文件,已经编译好的,直接用吧。下载的时候把和香蕉派有关的东西都下载来,其他的就不用了。当然这个方法也适用于其他的板子,有兴趣可以自己做。

http://downloads.openwrt.org/snapshots/trunk/sunxi...
    openwrt-sunxi-root.ext4
    openwrt-sunxi-uImage
    sun7i-a20-bananapi.dtb

http://downloads.openwrt.org/snapshots/trunk/sunxi...
    openwrt-sunxi-Bananapi-u-boot-with-spl.bin
    openwrt-sunxi-Bananapi-uEnv.txt

2.安装制作启动脚本的工具:
    apt-get install u-boot-tools
    这个工具后面会用到,提前把它安装好。安装过程就不说了,很简单。

3.开始向卡里写文件。在插入TF卡之前先ls /dev/sd*,


然后插入卡后再看已下,多出的那个就是新插入的卡,这样容易区分,省得弄错了:


sda就是要操作的卡。

4.清空卡最前面1M的空间:
dd if=/dev/zero of=/dev/sda bs=1M count=1


没什么可说的,就是用0来填充最前面1M的空间。


5.将openwrt-sunxi-Bananapi-u-boot-with-spl.bin写入:
清空之后就要往里面写文件了,这个文件是openwrt-sunxi-Bananapi-u-boot-with-spl.bin,其实就是uboot文件
dd if=openwrt-sunxi-Bananapi-u-boot-with-spl.bin of=/dev/sda bs=1024 seek=8


到这一步后就可以插入路由中启动了 ,不过仅仅是能启动而已,没有系统,还得进行下面的操作。

6.重新分区:
fdisk /dev/sda


这就是分区操作中所有的命令,先熟悉一下。

开始操作:
1)p查看分区,显示当前存在的分区。如果已经有分区,则把它删除;
2)d删除分区,指定分区号,有多个分区则重复执行,没有分区就跳过;
3)n建立分区,指定分区号,指定起始扇区和结束扇区,共三个参数
openwrt需要两个分区,所以要执行两遍:


a)n->默认p->默认1->默认2048->34815



b)n->默认p->默认2->默认34816->默认剩余全部



4)再次p查看分区,但第一分区要改为fat格式;



5)t更改分区类型,指定分区号,指定类型



6)L查看所有分区类型,fat的类型编号为c;



7)再次p查看分区,确认分区正确;



8)w保存所有操作。



7.分别格式化两个分区

第一个格式为fat32,第二个为ext4:
ls /dev/sda*
1)mkfs.vfat /dev/sda1



2)mkfs.ext4 /dev/sda2



8.挂载分区:
先建立两个空文件夹,名字为1和2。
1)mount /dev/sda1 /media/1
2)mount /dev/sda2 /media/2



9.创建启动脚本:
在1中新建一个文件,打开后添加:
setenv bootargs console=ttys0,115200 root=/dev/mmcblk0p2 rootwait panic=10 ${extra}
fatload mmc 0 0x46000000 uImage
fatload mmc 0 0x49000000 sun7i-a20-bananapi.dtb
fdt_high ffffffff
bootm 0x46000000 - 0x49000000


保存为boot.cmd,然后
mkimage -C none -A arm -T script -d boot.cmd boot.scr
注意大小写和空格



10.拷贝文件:
1中直接拷贝sun7i-a20-bananapi.dtb和openwrt-sunxi-uImage文件,并将文件改名为uImage,两个文件的文件名要和刚才boot.cmd中的相同;



2中的文件不能直接拷贝,应该这样:
dd if=/xxx/openwrt-sunxi-root.ext4 of=/dev/sda2 bs=1M
xxx替换为自己的路径



11.将卡插入到路由中,上电启动:
需要连接调试串口,所有的显示无输出。如果不能启动,重复以上操作



12.制作img文件:
将卡重新用读卡器插回香蕉派上,开始生成img文件,方便以后使用
dd if=/dev/sda of=/xxx/openwrt.img bs=4M
xxx替换为自己的路径。
这个步骤比较费时,大概一分钟左右。



大功告成,在官方镜像发布前自己玩玩吧。

用香蕉派制作香蕉派路由openwrt系统镜像