准备可引导的SD卡: 接着将下载的image文件烧入 micro-SD,这里将介绍三种不同操作系统的情况:Windows, Linux和MacOS。 Windows: 我们使用的是 Win32DiskImager (从 这里下载 )
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然后 dd mmc 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脚本 : 1. $ 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、下载以下两个程序包: 解压命令: 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包后会得到文件 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): d Selected partition 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-15122431, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-15122431, default 15122431): +64M 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): 2 First sector (206848-15122431, default 206848): Using default value 206848 Last sector, +sectors or +size{K,M,G} (206848-15122431, default 15122431): +1800M Command (m for help): w The partition table has been altered!
Calling ioctl() to re-read partition table. [ 5652.370000] mmcblk0: p1 p2 Syncing 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引导启动了
|