原来如此 发表于 2013-6-21 16:33:19

pcDuino入门指南——第四章 Bootable microSD with Ubuntu OS

准备可引导的SD卡:首先,从here (ubuntu_mmc.img) 下载SD-bootable image文件(注意:官方会不断更新新版image,下载前最好在pcDuino网站上检查确认下载地址)。接着将下载的image文件烧入 micro-SD,这里将介绍三种不同操作系统的情况:Windows, Linux和MacOS。Windows:我们使用的是 Win32DiskImager(从这里下载 )http://www.linksprite.com/cnblog/wp-content/uploads/2013/04/19.png
Linux:插入micro-sd后将会自动安装。首先卸载所有分区,例如SD卡有2个分区,用以下命卸载:1. $ umount /dev/mmcblk0p12. $ umount /dev/mmcblk0p2然后 dd mmc image到micro-sd:1. $ dd if=/udisk/ubuntu_mmc.img of=/dev/mmcblk0 bs=1M2. $ sync注意:不要使用 “of=/dev/xxx”来指向硬盘,否则将会破坏硬盘里的数据。.
MacOS:MacOS终端也支持“df”和 “dd”命令。插入micro-sd自动安装,首先还是卸载所有分区,SD卡有2个分区时,用以下命令卸载:1. $ sudo umount /dev/disk1s12. $ sudo umount /dev/disk1s2如果卸载失败, 可以使用以下脚本强制卸载:1. $ sudo diskutil umount force /dev/disk1s12. $ sudo diskutil umount force /dev/disk1s2然后 ddmmc image到micro-sd:1. $ sudo dd if=/udisk/ubuntu_mmc.img of=/dev/disk1 bs=1M注意:还是不要使用 “of=/dev/xxx” 指向硬盘. 这将会损坏硬盘中的数据。将烧好的micro sd插入pcDuino然后上电,pcDuino将会从SD开始启动。调整SD-boot image的大小,SD扩展到最大容量:准备以下expand.sh脚本 :http://www.linksprite.com/cnblog/wp-content/uploads/2013/04/26.png1. $ sudo bash ./expand_sdcard_rootfs.sh2. $ sudo reboot重启之后输入:1. $ sudo resize2fs /dev/mmcblk0p2
引导失败先确定pcDuino是从SD还是从NAND引导启动,有时无法检测到SD的存在时就会从NAND启动。输入df命令来检查:如果从NAND启动,root是 /dev/nandd;如果从SD启动, root是 /dev/mmcblk0p1。如果从NAND启动的话,串口有调试线时,要拔掉调试线,再次安装之前先reset pcDuino。也有情况发现串口上面插上串口转USB线时有可能会引起HDMI无显示的问题。
Advanced Topic:如何生成SD卡引导的ubuntu image(或者Linux)?1、下载以下两个程序包:
[*]pcduino_hwpack.tar.xz
[*]Ubuntu.7z
解压命令:1.$ tar xf pcduino_hwpack_20130331.tar.xz2.$ 7za -x ubuntu.7z解压 pcduino_hwpack.tar.xz包后得到以下四个文件
[*]uImage
[*]script.bin
[*]sunxi-spl.bin
[*]u-boot.bin
在解压ubuntu.tar.xz包后会得到文件
[*]Ubuntu.img                                                                                                                                    
uImage 和 script.bin是内核文件,最好下载最新版本的。另外,可以输入命令查看两个文件:1. $ sudo mount /dev/nanda /mnt/nanda2. $ ls /mnt/nanda2、插入micro-SD,如果安装了系统需要要先卸载,例如:1. $ sudo umount /dev/mmcblk0p12. $ sudo umount /dev/mmcblk0p23、用 fdisk分出两个新的分区首先是boot分区,filesystem类型是fat,用来装 store uImage 和 script.bin第二个是留给ubuntu filesystem,filesystem类型是ext3$ sudo fdisk /dev/mmcblk0执行以下脚本文件Command (m for help): dSelected partition 1Command (m for help): nPartition type:
[*]p   primary (0 primary, 0 extended, 4 free)
[*]e   extended
Select (default p): pPartition number (1-4, default 1):Using default value 1First sector (2048-15122431, default 2048):Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-15122431, default 15122431): +64MCommand (m for help): nPartition type:
[*]p   primary (1 primary, 0 extended, 3 free)
[*]e   extended
Select (default p): pPartition number (1-4, default 2): 2First sector (206848-15122431, default 206848):Using default value 206848Last sector, +sectors or +size{K,M,G} (206848-15122431, default 15122431): +1800MCommand (m for help): wThe partition table has been altered!
Calling ioctl() to re-read partition table.[ 5652.370000]mmcblk0: p1 p2Syncing disks.也可以改变boot区和ubuntu区的大小,建议boot区要>= 64M,ubuntu区大于1G。执行上面脚本得到64M的boot区和1.8G的ubuntu区,也可以再把SD卡所有可用的空间都分给ubuntu区。4、格式化分区:1.$ sudo apt-get install dosfstools2 .3.$ sudo mkdosfs /dev/mmcblk0p14 .5.$ sudo mke2fs -T ext3 /dev/mmcblk0p26 .7.$ sudo umount /dev/mmcblk0p18 .9.$ sudo umount /dev/mmcblk0p25、复制内核到第一个分区1.$ sudo mount /dev/mmcblk0p1 /boot2.$ sudo cp uImage /boot -f3.$ sudo cp script.bin /boot -f4.$ sync && sudo umount /boot6、复制ubuntu到第二个分区1.$ sudo dd if=ubuntu.img of=/dev/mmcblk0p2 bs=1M2.$ sudo sync7、从sdcard引导1.$ sudo umount /dev/mmcblk0p12.$ sudo umount /dev/mmcblk0p23.$ sudo dd if=sunxi-spl.bin of=/dev/mmcblk0 bs=1024 seek=84.$ sudo dd if=u-boot.bin of=/dev/mmcblk0 bs=1024 seek=328、 Dump the image (optional)1.$ sudo umount /dev/mmcblk0p12.$ sudo umount /dev/mmcblk0p23.$ sudo dd if=/dev/mmcblk0 of=ubuntu_sd.img bs=1M count=19009、重启时板子就会从sdcard引导启动了
页: [1]
查看完整版本: pcDuino入门指南——第四章 Bootable microSD with Ubuntu OS