http://gumstix.org/create-a-bootable-microsd-card.html

Create a Bootable MicroSD Card

Beginners

Note: The following instructions are intended for experienced Gumstix users. Beginners are recommended to use Linaro or Sakoman's daily GNOME builds.

Supported MMC/SD Cards

Gumstix DuoVero COMs and Overo COMs "support MMC/SD cards compliant
with the Multimedia Card System Specification v4.2 from the MMCA
Technical Committee and the SD I/O Card Specification v2.0 from the SD
Association. Includes high-capacity (size >2GB) cards: HC-SD and HC
MMC", as per the Texas Instruments OMAP specification. (added Feb 6
2012)

Setup

First, insert your microSd card into the development machine's flash
card slot. You may need to use a microSD to SD card adapter or a USB
card reader. Use the mount or df commands to determine the device name of SD card. Names such as /dev/mmcblk0p1 or /dev/sde1 are typical; /dev/sda is usually your computer's hard drive so be sure not to use this. A 2GB SD available at /dev/mmcblk0
is used as an example for this procedure; you'll need to adjust the
commands to match your card. Unmount any mounted partitions of the
attached device e.g.

$ sudo umount /dev/mmcblk0p1

Partitions versus Drives

In Linux, a physical block device such as a hard drive or an SD card appears in the '/dev' directory e.g. /dev/hda/dev/sr0, or /dev/mmcblk1. This device file refers to the **whole** physical device. A single physical device can contain multiple individual partitions each with their own file system. These partitions also appear in the '/dev' directory under the same name but include a suffix e.g. /dev/mmcblk1p0 (partition #0 of physical device 'mmcblk1), /dev/sdf1 (partition #1 of physical device 'sdf'). Linux makes the file systems on these partitions available by 'mounting' them to a directory in the existing file system. For removable devices, such 'mount points' are traditionally found in the '/mnt' or '/media' directories.

Calculate Card Size

A special geometry is required to make best use of the underlying SD card memory and for data to be accessible by the DuoVero or Overo boot ROM. Calculate the required number of 'cylinders' for your particular card. Find the card size in first line of the response to this command:

$ sudo fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 2016 MB, 2016411648 bytes

Divide the card size in bytes by 255 heads, 63 sectors and 512 bytes per sector and round down to the nearest integer. E.g. 2016411648/255/63/512 = 245.15 --> 245 cylinders.

Partition the Card

Gumstix COMs require at least two partitions: a FAT partition containing files needed to boot and a Linux partition on which the root file system for the operating system is stored. To start, we clean up any existing partition data e.g.

$ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1024 count=1024

The sfdisk tools can perform the required partitioning e.g.

$ sudo sfdisk --force -D -uS -H 255 -S 63 -C 245 /dev/mmcblk0

where the value of the -C parameter is the number of cylinders calculated in previous step. At the sfdisk, type 128,130944,0x0C,* and then press  to set up a 64MB bootable FAT partition. Next, type 131072,,,- and press  three more times to create the Linux partition and complete the partition table. When prompted to write this new partition table, type y to accept. An example session looks like this:

Checking that no-one is using this disk right now ...
OK
[snip]
Input in the following format; absent fields get a default value. Usually you only need to specify and (and perhaps ).
/dev/mmcblk0p1 :128,130944,0x0C,*
/dev/mmcblk0p1 * 128 131071 130944 c W95 FAT32 (LBA)
/dev/mmcblk0p2 :131072,,,-
/dev/mmcblk0p2 131072 3938303 3807232 83 Linux
/dev/mmcblk0p3 :
/dev/mmcblk0p3 0 - 0 0 Empty
/dev/mmcblk0p4 :
/dev/mmcblk0p4 0 - 0 0 Empty
New situation:
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/mmcblk0p1 * 128 131071 130944 c W95 FAT32 (LBA)
/dev/mmcblk0p2 131072 3938303 3807232 83 Linux
/dev/mmcblk0p3 0 - 0 0 Empty
/dev/mmcblk0p4 0 - 0 0 Empty
Warning: partition 1 does not end at a cylinder boundary
Do you want to write this to disk? [ynq] y
Successfully wrote the new partition table
[snip]

Formatting the New Partitions

Format the first partition as a FAT file system (the -n parameter gives it a label of boot).

$ sudo mkfs.vfat -F 32 /dev/mmcblk0p1 -n boot

Note: If your computer is missing the mkfs.vfat program, try installing the dosfsutils package and try again. E.g.

$ sudo apt-get install dosfsutils

Format the second partition for Linux (the -L parameter gives it a label of rootfs):

$ sudo mke2fs -j -L rootfs /dev/mmcblk0p2

Now, mount these partitions.

$ sudo mkdir /media/{boot,rootfs}
$ sudo mount -t vfat /dev/mmcblk0p1 /media/boot
$ sudo mount -t ext3 /dev/mmcblk0p2 /media/rootfs

Installing the Boot Files

The final step is to copy over the software that will run on your Gumstix COM. A matched set of the following files is required:

  • a root file system e.g. rootfs.tar.bz2
  • a kernel binary image e.g. uImage
  • a u-boot bootloader binary image e.g. u-boot.bin
  • a x-loader binary image e.g. MLO (Overo only) Use mlo-updated if using a STORM COM

Prebuilt image can be downloaded or found in the tmp/deploy directory of the OpenEmbedded build system.

Copy the binary files directly to the first partition: Note: Overo only. The x-loader binary must be copied first.

$ sudo cp MLO /media/boot/MLO overo only

For both Overo and verdex pro.

$ sudo cp u-boot.bin /media/boot/u-boot.bin
$ sudo cp uImage /media/boot/uImage

Expand the root file system archive on to the second partition:

$ sudo tar xaf roofs.tar.bz2 -C /media/rootfs
$ sync

Now, unmount these partitions and your card is ready to use:

$ sudo umount /media/boot
$ sudo umount /media/rootfs

U-boot Environment Refresh

U-boot comes with a default set of environment variables that can change as new versions are released. If you are updating u-boot, clear your current set of u-boot environment variables the first time you boot with the new version. Do this by breaking into u-boot and typing the following commands. (Overo COMs with NAND flash only).

# nand erase 240000 20000
# reset

To make additional changes to the environment, break into u-boot again, make the changes and type 'saveenv' to save. This also eliminates the "*** Warning - bad CRC or NAND, using default environment".

Insert your microSD into your verdex pro and power the system on. It may be necessary to change the u-boot environment variables to specify that the kernel should be loaded from the microSD. This can be done with the following commands.

# mmcinit
# fatload mmc 0 a2000000 uimage
# setenv bootargs console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootdelay=1
# bootm a2000000

Add a saveenv prior to the bootm command to save this setup for future boots.

Tip for Systems Using Nautilus

When a microSD card is inserted into computers using the Nautilus file manager such as Ubuntu, a window typically pops-up showing the contents of the partitions or offering to do some action. This can be a little annoying but can be easily disabled. While browsing a folder in Nautilus, click Edit-->Preferences-->Media, select Never prompt or start programs on media insertion, and ensure Browse media when inserted is de-selected.

Create a Bootable MicroSD Card的更多相关文章

  1. create a bootable USB stick on Ubuntu

    https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu?_ga=2.141187314.17572770 ...

  2. [Angular] Using directive to create a simple Credit card validator

    We will use 'HostListener' and 'HostBinding' to accomplish the task. The HTML: <label> Credit ...

  3. How to install Armbian on Orange Pi Plus 2e

    bian on Orange Pi Plus 2e How to install Armbian on Orange Pi Plus 2e Armbian on the microSD You jus ...

  4. TI的AM3359的sd卡分区以及sd卡启动说明

    [1]sd 卡分区: ti提供了自己的分区shell脚本create-sdcard.sh  脚本目录在:ti-sdk-am335x-evm-05.06.00.00/bin/ (1)插入sd卡(若是笔记 ...

  5. ti processor sdk linux am335x evm /bin/create-sdcard.sh hacking

    #!/bin/bash # # ti processor sdk linux am335x evm /bin/create-sdcard.sh hacking # 说明: # 本文主要对TI的sdk中 ...

  6. UEFI Bootable USB Flash Drive - Create in Windows(WIN7 WIN8)

    How to Create a Bootable UEFI USB Flash Drive for Installing Windows 7, Windows 8, or Windows 8.1 In ...

  7. 【雕爷学编程】Arduino动手做(52)---MicroSD卡读写模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种 的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准 ...

  8. 利用VMware虚拟机(Android-x86 2.2)和eclipse,调试安卓代码

    下载 android-x86-2.2-generic.iso (这里包含eth0)  http://www.android-x86.org/download XP32位 只能使用 VMware Wor ...

  9. [OrangePi] Booting from USB drive

    You can also boot from USB drive partition. The file named cmdline.txt must exist on BOOT (fat) part ...

随机推荐

  1. 如何让windows服务器IIS支持.apk/.ipa文件下载

    打开IIS服务管理器,找到服务器,右键-属性,打开IIS服务属性: 单击MIME类型下的“MIME类型”按钮,打开MIME类型设置窗口: 单击“新建”,建立新的MIME类型: 扩展名是:.apk MI ...

  2. python 缩进问题

    200 ? "200px" : this.width)!important;} --> 介绍 在python中认为规定4个空格缩进,缩进的代码可以理解成一个块,但是使用缩进也 ...

  3. Redis基本操作-20150608

    Redis基本操作-20150608 [http://my.oschina.net/u/241255/blog/206991]   Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存 ...

  4. 给Oracle锁住的行解锁

    1.找出数据库的serial#,以备杀死: select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$s ...

  5. nodejs以及npm的安装

    参考资料:http://xiaoyaojones.blog.163.com/blog/static/28370125201351501113581/ 上面的仁兄说的比较清楚,基本解决了安装中遇到的问题 ...

  6. FLEX4中的Panel如何实现带自定义图标和按钮

      做过flex开发的程序员都知道,使用flex3中的panel自定义按钮很容易,而且flex3的panel有icon属性.但是flex4的中大部分的控件与flex3中的控件实现方式有很大的变化,同是 ...

  7. Keil MDK AGDI Drivers, ULink, JLink, ST-Link, NuLink, JTAGjet

    AGDI Drivers AGDI is an Application Program Interface (API) third-party developers can use to create ...

  8. silverlight调用MVC WebApi方法

    1.创建ASP.NET MVC4 Web应用程序,选择WebAPI模板 2.添加silverlight项目 3.新建一个数据模型类,代码如下: using System; using System.C ...

  9. PostgreSQL中的数组与Any

    建立表: CREATE TABLE sal_emp ( name text, pay_by_quarter integer[], schedule text[][] ); 插入数据: INSERT I ...

  10. C#编写的多生产者多消费者同步问题

    // 多个生产者和多个消费者,能生产n个产品的情况 using System; using System.Threading; public class HoldIntegerSynchronized ...