本帖最后由 xble 于 2016-1-25 15:20 编辑
自己是以为
开发板添加debian系统支持而申请的这款开发板,殊不知其实乐美客公司已经提供了完善的固件,只是固件名称没有那么明确。
http://wiki.lemaker.org/LeMaker_Guitar:How_to_make_LeMaker_Guitar_OS_image/zh-hans是制作LeMaker固件的教程,按照他的步骤完全可以做出一个可用的固件出来。
制作MicroSD卡系统镜像
MicroSD卡系统镜像布局
MicroSD卡系统镜像布局
|
名字
|
起始地址
|
用途
|
mbr |
0 |
MicroSD卡镜像的第一个启动分区 |
gpt |
0x200 |
gtb分区表 |
environment |
0x5000 |
uboot环境变量 |
bootloader |
0x200200 |
第一个启动阶段boottraps (bootloader.bin) |
uboot |
0x300000 |
uboot启动加载程序(u-boot-dtb.img) |
misc |
0x800000 |
fat分区,包括kernel、initramfs、kernel配置文件、uEnv.txt等等(misc.img) |
rootfs |
0x3800000 |
文件系统(rootfs.img) |
制作MicroSD卡镜像
步骤1:创建一个特定大小文件。
sudoddif=/dev/zeroof=[system_name].imgbs=1Mcount=3500
步骤2:把文件虚拟成块设备文件。
sudolosetup-f--show{system_name}.img/dev/loop0
步骤3:创建分区。
sudoparted/dev/loop0GNU Parted 2.3Using/dev/loop0Welcome to GNU Parted!Type'help'to view a list of commands.(parted)mklabel gpt#创建gpt分区表(parted)print#查看分区Model: Loopback device(loop)Disk/dev/loop0: 3670MBSectorsize(logical/physical): 512B/512BPartition Table: gpt Number Start End Size File system Name Flags(parted)unit s#设置分区单元大小(512字节)(parted)mkpart primary 16384 114687#创建第一个分区:8M-56M(parted)mkpart primary 114688-1#创建第二个分区:56M-ENDWarning: You requested a partition from 114688s to 7167999s. The closest location we can manage is 114688s to 7167966s.Is this still acceptable to you?Yes/No?yes(parted)print#查看分区Model: Loopback device(loop)Disk/dev/loop0: 7168000sSectorsize(logical/physical): 512B/512BPartition Table: gpt Number Start End Size File system Name Flags 1 16384s 114687s 98304s primary 2 114688s 7167966s 7053279s primary(parted)q#退出Information: You may need to update/etc/fstab.
步骤4: 查看虚拟设备块分区。
sudokpartx-av/dev/loop0add map loop0p1(252:0): 0 98304 linear/dev/loop0 16384add map loop0p2(252:1): 0 7053279 linear/dev/loop0 114688
注意:如果不能找到kpartx,请先安装kpartx。
sudoapt-get installkpartx
步骤5:查看映射设备块文件。
ls-l/dev/mapper/lrwxrwxrwx 1 root root 7 Aug 10 02:28 loop0p1 ->../dm-0lrwxrwxrwx 1 root root 7 Aug 10 02:28 loop0p2 ->../dm-1
步骤6:格式化分区
sudomkfs.vfat/dev/mapper/loop0p1#格式化分区为fat格式mkfs.vfat 3.0.12(29 Oct 2011)unable to get drive geometry, using default 255/63sudomkfs.ext4/dev/mapper/loop0p2#格式化第二个分区为Ext4格式mke2fs 1.42(29-Nov-2011)Discarding device blocks:doneFilesystemlabel=OS type: LinuxBlocksize=4096(log=2)Fragmentsize=4096(log=2)Stride=0 blocks, Stripewidth=0 blocks220752 inodes, 881659 blocks44082 blocks(5.00%)reservedforthe super userFirst datablock=0Maximum filesystemblocks=90596966427 blockgroups32768 blocks per group, 32768 fragments per group8176 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200Allocating group tables:doneWriting inode tables:doneCreating journal(16384 blocks):doneWriting superblocks and filesystem accounting information:done
步骤7:写入bootloader到MicroSD卡系统镜像。起始地址:0x200200,第 4097块分区。
sudoddif=bootloader.binof=/dev/loop0bs=512seek=4097
步骤8:写入uboot到MicroSD卡镜像。起始地址:0x300000。
sudoddif=u-boot-dtb.imgof=/dev/loop0bs=512seek=6144
步骤9:写入misc镜像到MicrSD卡的第一个分区。
sudoddif=misc.imgof=/dev/mapper/loop0p1
步骤10:写入rootfs到MicroSD镜像的第二个分区。
sudomount/dev/mapper/loop0p2/mntsudocp-arootfs/*/mntsyncsudoumount/mnt
步骤11:卸载块设备文件
sudokpartx-d/dev/loop0sudolosetup-d/dev/loop0
到目前为止,制作MicroSD卡系统镜像完成,请参考:LeMaker_Guitar:Quick_Start#Installing_the_OS_image_into_MicroSD_card使用Win32DiskImager工具,把系统镜像烧写到MicroSD卡。
注意事项:
1.在拷贝文件的时候需要有所需文件,UBOOT和kernel请参考我上一个帖子https://bbs.elecfans.com/jishu_543714_1_1.html
2.关于rootfs的来源,你可以参考http://wiki.lemaker.org/BananaPro/Pi:Setting_up_the_Linux_distribution_root_file_system网址制作,还有一个简单方法就是从ubuntu的官网中下载ubuntu-core-15.04-core-ARMhf.tar.gz,下载地址:http://cdimage.ubuntu.com/ubuntu-core/releases/15.04/release/
3. 在第一步中也有rootfs的一些内容,我这里简单的覆盖到第二步所得文件中。
4.将制作的固件烧录到sd卡中,系统可以启动,只是用户名和密码不知道是什么。其实这不是什么问题,系统到这里其实已经启动,有好几种方法可以解决这个问题。