这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 开源硬件 » 【Joytag 香蕉R1学习】自己动手组装OpenWrt for R1

共4条 1/1 1 跳转至

【Joytag 香蕉R1学习】自己动手组装OpenWrt for R1

专家
2015-02-11 21:23:08     打赏
尽管已经有香蕉派R1的镜像可以下载,但是本着折腾的原则,自己弄一下貌似也挺有趣。
而且有助于加深对R1启动过程的理解以及便于进一步学习。

在OpenWrt官网各种学习,终于发现一篇适合的文章:
http://wiki.openwrt.org/doc/hardware/soc/soc.allwinner.sunxi
这篇文章(Assembling the SD card image yourself)部分以Cubieboard3为例,讲述了如何自己组装SD卡镜像。因为我们用是BPI R1,所以需要做一些修改,现将修改后的流程记录,以供参考。

SD卡布局

SD layout with 512 byte blocks:
        
NAME start block size
MBR 0 1 block
u-boot-with-spl.bin 16 (8 KB) ~250 KB
FAT 2048 (1 MB) 15 MB
EXT4 32768 (16 MB) rest


用到的文件

另外,就BPI R1而言,我们需要准备如下文件:
(可以先把这些文件下载好,保存到当前工作目录下)
openwrt-sunxi-Lamobo_R1-u-boot-with-spl.bin
openwrt-sunxi-Lamobo_R1-uEnv.txt
openwrt-sunxi-Lamobo_R1-boot.scr 原文中未说明这个这个文件,会系统导致启动不起来
sun7i-a20-lamobo-r1.dtb
openwrt-sunxi-uImage
openwrt-sunxi-root.ext4

硬件

1)装有Linux系统的电脑或者虚拟机 (为了偷懒,我使用的BPI M1)
2)空白的TF以及卡套或者读卡器
3)BPI R1

操作步骤:

1)首先将TF卡插入装有Linux系统的电脑上,
我使用的是usb读卡器,在BPI M1会被识别为/dev/sda

2)Fdisk删除原有分区内容(如有),并保存

3)创建新的分区
# fdisk /dev/sda

(查看当前分区情况)
Command (m for help): p

Disk /dev/sda: 15.9 GB, 15931539456 bytes
64 heads, 32 sectors/track, 15193 cylinders, total 31116288 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5452574f

   Device Boot      Start         End      Blocks   Id  System

(创建新分区1)
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-31116287, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-31116287, default 31116287): +15M

(创建新分区2)
Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (1-4, default 2):
Using default value 2
First sector (32768-31116287, default 32768):
Using default value 32768
Last sector, +sectors or +size{K,M,G} (32768-31116287, default 31116287): +240M

(将分区1修改为FAT32格式,原文使用的mkfs.vfat命令)
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): c
Changed system type of partition 1 to c (W95 FAT32 (LBA))

(执行修改)
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.

4)查看当前分区情况
# fdisk -l /dev/sda

Disk /dev/sda: 15.9 GB, 15931539456 bytes
64 heads, 32 sectors/track, 15193 cylinders, total 31116288 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5452574f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048       32767       15360    c  W95 FAT32 (LBA)
/dev/sda2           32768      524287      245760   83  Linux

5)将SPL以及UBOOT镜像复制到SD卡
# dd if=openwrt-sunxi-Lamobo_R1-u-boot-with-spl.bin of=/dev/sda bs=1024 seek=8

6)创建启动分区 (FAT32)
     原文使用的mkfs.vfat命令,我们已经通过fdisk的t命令进行了修改,所以无需此步骤

7)挂载启动分区
#mount -t vfat /dev/sda1 /mnt

8)复制u-boot环境文件到启动分区
# cp openwrt-sunxi-Lamobo_R1-uEnv.txt /mnt/uEnv.txt

9)复制设备树数据到启动分区
# cp sun7i-a20-lamobo-r1.dtb /mnt/dtb

10)复制内核镜像到启动分区
# cp openwrt-sunxi-uImage /mnt/uImage

11)复制boot.scr文件到启动分区
        原文中并未提及此步骤,根据资料描述(https://github.com/linux-sunxi/u-boot-sunxi/wiki#bootscr-support),u-boot在启动的时候会在第一个分区(FAT/extX格式)寻找/boot.scr或者/boot/boot.scr文件,boot.scr中可以包含用于载入script.bin,kernel,initrd(可选)以及设置内核启动参数的uboot命令。 之前未加载此内容,导致系统无法启动。
# cp openwrt-sunxi-Lamobo_R1-boot.scr /mnt/boot.scr

12)调整根文件系统镜像大小以符合分区大小
# resize2fs openwrt-sunxi-root.ext4 240M

13)创建根文件系统
# dd if=openwrt-sunxi-root.ext4 of=/dev/sda2 bs=128k

14)总结(冲洗缓冲区,并卸载启动分区)
# sync
# umount /mnt

将写好的TF卡插入R1,并上电。
通过串口,我们就会看到熟悉的界面。
关于如何连接串口请参考:《【Joytag 香蕉R1学习】R1初印象并点亮》

专家
2015-02-12 09:02:59     打赏
2楼
楼主苦心钻研出来的经验之帖,怎么就没人关注一下啊,多些技术交流,少些水

院士
2015-02-12 09:13:56     打赏
3楼
这不是来了吗,主要是大家都关注春节了

菜鸟
2015-07-06 13:06:28     打赏
4楼
顶,楼主

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]