PandaBoard ES配置SD卡及烧写

来源:互联网 发布:淘宝怎么发布信息 编辑:程序博客网 时间:2024/05/29 09:29

PandaBoard ES配置SD卡及烧写

 

       从今天开始学习PandaBoard ES这块板子,并跟踪记录整个过程。废话不多说,相信刚刚拿到这块基于omap4460芯片的Pandaboard ES板子的朋友都想先让它跑起来。这也是我拿到这块板子之后的第一想法,下面将记录下我配置SD卡分区,编译BootLoader源码与烧写以及用串口打印的全过程。

 

1、  配置SD

手头有一张2GSD卡,我配置成了两个分区,bootrootfsboot装载xLoaderUbootkernel;rootfs用于装载文件系统。

Step 1,将SD卡置于读卡器中并插入到电脑的USB口中。(环境是VMware中的Ubuntu 10.04

Step 2,开始之前必须先知道SD卡的device name,使用 sudo fdisk –ls命令将会列出各个磁盘及分区的部分信息,发现2GSD卡的device name/dev/sdb。如下图:

Step 3,使用脚本mkcard.sh(本文下方附有脚本原文)对SD卡进行分区,命令格式:sudo ./omap4-mkcard.sh /dev/sdb。运行之后boot分区是FAT32文件系统,rootfs分区是ext3文件系统。

Step 4,把boot分区和rootfs分区挂载到主机系统中:

        $ mkdir /tmp/mmc1        $ mkdir /tmp/mmc2        $ sudo mount /dev/sdb1 /tmp/mmc1        $ sudo mount /dev/sdb2 /tmp/mmc2


【更多详细配置可以参考:这里】

 

2、  下载xLoaderU-boot源码与编译 

Step 1,下载linaro的代码:

$ mkdir pandaboard-es$ cd pandaboard-es$ git clone git://git.linaro.org/boot/u-boot-linaro-stable.git$ cd u-boot-linaro-stable$ git checkout -b pandaboard-es origin/Linaro-u-boot-2011.12

Step 2,下载ARM GNU/Linux toolchain,可用友善之臂提供的4.4.3(可从友善之臂官网获得),并对Makefile做如下更改:CROSS_COMPILE=arm-none-linux-gnueabi-

Step 3,配置与编译:

     $ make omap4_panda_config
     $ make

 

3、  烧写

$ cp MLO /tmp/mcc1$ cp u-boot.img /tmp/mmc1$ sync

4、  串口显示:

 

SD卡分区脚本:

#! /bin/sh# mkcard.sh v0.5# (c) Copyright 2009 Graeme Gregory <dp@xora.org.uk># Licensed under terms of GPLv2## Parts of the procudure base on the work of Denys Dmytriyenko# http://wiki.omap.com/index.php/MMC_Boot_Formatexport LC_ALL=Cif [ $# -ne 1 ]; thenecho "Usage: $0 <drive>"exit 1;fiDRIVE=$1dd if=/dev/zero of=$DRIVE bs=1024 count=1024SIZE=`fdisk -l $DRIVE | grep Disk | grep bytes | awk '{print $5}'`echo DISK SIZE - $SIZE bytesCYLINDERS=`echo $SIZE/255/63/512 | bc`echo CYLINDERS - $CYLINDERS{echo ,9,0x0C,*echo ,,,-} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVEsleep 1if [ -x `which kpartx` ]; thenkpartx -a ${DRIVE}fi# handle various device names.# note something like fdisk -l /dev/loop0 | egrep -E '^/dev' | cut -d' ' -f1# won't work due to https://bugzilla.redhat.com/show_bug.cgi?id=649572PARTITION1=${DRIVE}1if [ ! -b ${PARTITION1} ]; thenPARTITION1=${DRIVE}p1fiDRIVE_NAME=`basename $DRIVE`DEV_DIR=`dirname $DRIVE`if [ ! -b ${PARTITION1} ]; thenPARTITION1=$DEV_DIR/mapper/${DRIVE_NAME}p1fiPARTITION2=${DRIVE}2if [ ! -b ${PARTITION2} ]; thenPARTITION2=${DRIVE}p2fiif [ ! -b ${PARTITION2} ]; thenPARTITION2=$DEV_DIR/mapper/${DRIVE_NAME}p2fi# now make partitions.if [ -b ${PARTITION1} ]; thenumount ${PARTITION1}mkfs.vfat -F 32 -n "boot" ${PARTITION1}elseecho "Cant find boot partition in /dev"fiif [ -b ${PARITION2} ]; thenumount ${PARTITION2}mke2fs -j -L "rootfs" ${PARTITION2}elseecho "Cant find rootfs partition in /dev"fi


 

原创粉丝点击