查看: 7819|回复: 3

pcDuino入门指南——第四章

[复制链接]
  • TA的每日心情
    郁闷
    2013-6-3 09:22
  • 签到天数: 29 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-4-24 16:31:51 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 pcduino 于 2013-4-24 16:35 编辑

    准备可引导的SD
    首先,从here (ubuntu_mmc.img) 下载SD-bootable image文件(注意:官方会不断更新新版image下载前最好在pcDuino网站上检查确认下载地址)。
    接着将下载的image文件烧入 micro-SD,这里将介绍三种不同操作系统的情况:Windows, Linux和MacOS

    Windows:

    我们使用的是 Win32DiskImager  (这里下载 )


    Linux:
    插入micro-sd后将会自动安装。首先卸载所有分区,例如SD卡有2个分区,用以下命卸载:
    1. 1. $ umount /dev/mmcblk0p1
    2. 2. $ umount /dev/mmcblk0p2
    复制代码

    然后 dd mmc imagemicro-sd:
    1. 1. $ dd if=/udisk/ubuntu_mmc.img of=/dev/mmcblk0 bs=1M
    2. 2. $ sync
    复制代码
    注意:不要使用 “of=/dev/xxx”来指向硬盘,否则将会破坏硬盘里的数据。.

    MacOS:
    MacOS终端也支持“df”“dd”命令。
    插入micro-sd自动安装,首先还是卸载所有分区,SD卡有2个分区时,用以下命令卸载:
    1. 1. $ sudo umount /dev/disk1s1
    2. 2. $ sudo umount /dev/disk1s2
    复制代码
    如果卸载失败, 可以使用以下脚本强制卸载:
    1. 1. $ sudo diskutil umount force /dev/disk1s1
    2. 2. $ sudo diskutil umount force /dev/disk1s2
    复制代码
    然后 dd  mmc imagemicro-sd:
    1. 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. 1. $ sudo bash ./expand_sdcard_rootfs.sh
    2. 2. $ sudo reboot
    复制代码
    重启之后输入:
    1. 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. 1. $ tar xf pcduino_hwpack_20130331.tar.xz
    2. 2. $ 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. 1. $ sudo mount /dev/nanda /mnt/nanda
    2. 2. $ ls /mnt/nanda
    复制代码
    2、插入micro-SD,如果安装了系统需要要先卸载,例如:
    1. 1. $ sudo umount /dev/mmcblk0p1
    2. 2. $ sudo umount /dev/mmcblk0p2
    复制代码
    3、用 fdisk分出两个新的分区
    首先是boot分区,filesystem类型是fat,用来装 store uImage script.bin
    第二个是留给ubuntu filesystemfilesystem类型是ext3
    1. $ 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区要>= 64Mubuntu区大于1G
    执行上面脚本得到64Mboot区和1.8Gubuntu区,也可以再把SD卡所有可用的空间都分给ubuntu区。

    4、格式化分区:
    1. 1. $ sudo apt-get install dosfstools

    2. 2 .$ sudo mkdosfs /dev/mmcblk0p1

    3. 3. $ sudo mke2fs -T ext3 /dev/mmcblk0p2

    4. 4. $ sudo umount /dev/mmcblk0p1

    5. 5. $ sudo umount /dev/mmcblk0p2
    复制代码
    5、复制内核到第一个分区
    1. 1. $ sudo mount /dev/mmcblk0p1 /boot

    2. 2. $ sudo cp uImage /boot -f

    3. 3. $ sudo cp script.bin /boot -f

    4. 4. $ sync && sudo umount /boot
    复制代码
    6、复制ubuntu到第二个分区
    1. 1. $ sudo dd if=ubuntu.img of=/dev/mmcblk0p2 bs=1M
    2. 2. $ sudo sync
    复制代码
    7、从sdcard引导
    1. 1. $ sudo umount /dev/mmcblk0p1

    2. 2. $ sudo umount /dev/mmcblk0p2

    3. 3. $ sudo dd if=sunxi-spl.bin of=/dev/mmcblk0 bs=1024 seek=8

    4. 4. $ sudo dd if=u-boot.bin of=/dev/mmcblk0 bs=1024 seek=32
    复制代码
    8、 Dump the image (optional)
    1. 1. $ sudo umount /dev/mmcblk0p1

    2. 2. $ sudo umount /dev/mmcblk0p2

    3. 3. $ sudo dd if=/dev/mmcblk0 of=ubuntu_sd.img bs=1M count=1900
    复制代码
    9、重启时板子就会从sdcard引导启动了

    回复

    使用道具 举报

  • TA的每日心情

    2015-8-5 11:09
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2013-6-28 13:59:52 | 显示全部楼层
    虚心学习,有机会搞块玩玩~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-2-6 17:43
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2013-9-25 22:31:09 | 显示全部楼层
    Please help to get $$$
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-4-21 12:44:24 | 显示全部楼层


    没有链接到文件     pcduino_hwpack.tar.xz
    请提供该文件         pcduino_hwpack.tar.xz
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 15:33 , Processed in 0.134813 second(s), 22 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.