内容


在 BeagleBoard-xM 上引导 Linux

开始使用这个小的开源平台进行设备开发

Comments

BeagleBoard-xM 简介

BeagleBoard 是一个袖珍的参考板,含有一个 Texas Instruments Open Multimedia Application Platform (OMAP) 3 单片系统(SoC)处理器,它包含一个 ARM Cortex-A8 内核、Texas Instruments C64x+ 数字信号处理器和板载图形化引擎,以及集成的双数据速率(DDR)随机存取存储器(RAM)。BeagleBoard 价格比较便宜,适合正在学习 Linux 和小型系统的业余爱好者、学术研究者和专业人员使用。图 1 显示了 BeagleBoard-xM。

图 1. BeagleBoard-xM
BeagleBoard-xM 图片
BeagleBoard-xM 图片

在之前的 developerWorks 文章 在 Beagle Board 上引导 Linux 中,我介绍过在 BeagleBoard 版本 C 中引导 Linux,它承载一个 600MHz OMAP3530 处理器、256MB RAM 和 256MB NAND 闪存。版本 xM 更为健壮,有 1GHz OMAP3730 处理器和 512MB RAM。它没有闪存从 microSD 卡引导,但是有很多新接口,包括一个 DB-9 系列的连接器、集成 4 个端口的 Universal Serial Bus (USB) 总线、以及集成的 Ethernet 端口。BeagleBoard-xM 含有更多的版本 C 特性,比如 Digital Visual Interface (DVI)-D 输出、S-video、音频、Joint Test Action Group (JTAG)、以及一个大扩展排针。

构建您的工作环境

以下小节分别向您展示如何寻找所需的组件来源,以及构建和测试控制台。

组件来源

BeagleBoard-xM 是成套的,附带有一个预格式化的 4GB microSD 卡和一个适配器,您可以将卡插到标准 Secure Digital (SD)/MultiMediaCard (MMC) 插槽,不需要电缆。您需要执行以下操作:

  • 电源
    使用一个 5V 外部电源。
  • 串行电缆
    BeagleBoard-xM 提供一个 DB9 凹口(female DB9 port),需要一个串行电缆来将控制台连接到您的主机系统。使用一个直流( 非调制解调器)电缆。如果您的主机系统没有串行接口,使用 DB9-to-USB 电缆。
  • USB 键盘和 USB 鼠标
  • DVI-D 监视器和一个 DVI-D to High-Definition Multimedia Interface (HDMI) 电缆
    注意主板不能通过该连接器发出 Video Graphics Array (VGA) 信号,因此一个标准的 DVI-to-VGA 转换器电缆不能正常工作。
  • 4GB+ microSD 卡和一个读卡器
    您可以覆盖提供的卡上的数据,但是,最好购买一些卡用于不同版本。如果您的主机没有集成读卡器,使用一个 USB 读卡器。

建立控制台

Linux 用户可以使用 minicom,如下面示例所示。Microsoft® Windows® 用户可以使用 Hyperterminal 或 PuTTy,Mac 用户可以使用屏幕、ZTerm 或 MacWise。

将串行电缆连接到 BeagleBoard-xM's DB9 端口和您的主机上,然后在设置模式下以根用户启动 minicom

sudo minicom -s

清单 1 显示了 minicom 配置菜单。

清单 1. minicom 配置菜单
            +-----[configuration]------+
            | Filenames and paths      |
            | File transfer protocols  |
            | Serial port setup        |
            | Modem and dialing        |
            | Screen and keyboard      |
            | Save setup as dfl        |
            | Save setup as..          |
            | Exit                     |
            | Exit from Minicom        |
            +--------------------------+

选择 Serial port setup。生成的子菜单如清单 2 所示。

清单 2. minicom 串行端口设置菜单
    +-----------------------------------------------------------------------+
    | A -    Serial Device      : /dev/ttyS0                                |
    | B - Lockfile Location     : /var/lock                                 |
    | C -   Callin Program      :                                           |
    | D -  Callout Program      :                                           |
    | E -    Bps/Par/Bits       : 115200 8N1                                |
    | F - Hardware Flow Control : No                                        |
    | G - Software Flow Control : No                                        |
    |                                                                       |
    |    Change which setting?                                              |
    +-----------------------------------------------------------------------+
            | Screen and keyboard      |
            | Save setup as dfl        |
            | Save setup as..          |
            | Exit                     |
            | Exit from Minicom        |
            +--------------------------+

如果您的电缆是一个直流串行电缆,串口设备是 /dev/ttyS0。如果您使用的是 USB 转换器,使用 /dev/ttyUSB0。在下一步如果没有文本出现,很有可能您的主机分配了一个不同的设备,因此,从 0 增加到 1 再试一次。对于所有设备,设置是 115200、8 位、无分区、没有硬件或软件流控制。

设置正确后,选择 Save setup as dfl 默认保存该设置,然后点击 Exit。出现 minicom 欢迎消息,如清单 3 所示。

清单 3. minicom 欢迎消息
Welcome to minicom 2.3

OPTIONS: I18n
Compiled on Oct 24 2008, 06:37:44.
Port /dev/ttyS0

       Press CTRL-A Z for help on special keys

想要验证,接通 BeagleBoard-xM 电源,然后按一个键停止引导倒计时。引导载入消息出现,显示 X-loader 和 U-bootTo 版本、构建日期和输出,使用 U-boot 显示具体系统内存、输入和输出通道、扩展板信息、以及主板矫正和管芯 ID,如清单 4 所示。

清单 4. X-Loader 和 U-Boot
Texas Instruments X-Loader 1.4.4ss (Aug 19 2010 - 02:49:27)
Beagle xM Rev A
Reading boot sector
Loading u-boot.bin from mmc


U-Boot 2010.03-dirty (Aug 20 2010 - 20:50:46)

OMAP3630/3730-GP ES1.0, CPU-OPP2, L3-165MHz,
OMAP3 Beagle board + LPDDR/NAND
I2C:   ready
DRAM:  512 MB
NAND:  256 MiB
In:    serial
Out:   serial
Err:   serial

Probing for expansion boards, if none are connected you'll see a harmless I2C error.

No EEPROM on expansion board
Beagle xM Rev A
Die ID #77f600001bf00000015739ea0701c021
Hit any key to stop autoboot:  0
OMAP3 beagleboard.org #

拔掉 BeagleBoard-xM 电源。

准备引导 Linux

将您的键盘和鼠标插入 BeagleBoard-xM 上的 USB 插孔。如果可以的话,将一个网络电缆插入以太网插口。接通主板和 DVI-D 监视器之间的 HDMI-to-DVI 电缆。

下列操作说明只用于启动您的主板和使用这 3 个 Linux 版本运行时。参考资料 中的链接包括构建完整开发环境的开发套件、工具链和操作说明。

引导 Angstrom Linux

Angstrom Linux 是一个专为小型计算机(比如,BeagleBoard-xM)开发的操作系统。在 BeagleBoard-xM 上引导 Angstromis 最快的方法是使用主板附带的 microSD 卡,它含有一个 Angstrom 映像。但是该卡上的映像是一个验证映像,这意味它只为验证主板操作而提供。它不包括一个图形化用户界面(GUI),以及作为一个 RAM 磁盘默认引导;因此当您拔掉电源时您所作的改变都将丢失。

所包含的 microSD 卡有一个大约 117MB 的 File Allocation Table (FAT) 分区,包含以下设备:

  • 引导加载器 X-loader(MLO)和 U-boot (u-boot.bin
  • Linux 内核(uImage
  • 引导脚本(user.scr
  • RAM 磁盘根文件系统(ramdisk.gz
  • 核查文件大小的 md5sum 文件

卡的其余部分未格式化。

引导之前,插入 microSD 卡然后接通电源。引导开始倒计时时,系统自动调用引导脚本。引导加载器文本再一次出现在控制台上,接着是引导消息,显示引导过程,其中包括脚本本身的执行,然后加载内核和 RAM 磁盘,最后启动内核,如清单 5 所示。

清单 5. 引导 Angstrom
mmc1 is available
The user button is currently NOT pressed.
reading boot.scr

** Unable to read "boot.scr" from mmc 1:1 **
reading user.scr

755 bytes read
Running bootscript from mmc ...
## Executing script at 80200000
mmc1 is available
reading ramdisk.gz

19960110 bytes read
reading uImage

3190568 bytes read
Booting from ramdisk ...
## Booting kernel from Legacy Image at 80200000 ...
   Image Name:   Angstrom/2.6.32/beagleboard
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3190504 Bytes =  3 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux.....................................................................
[    0.000000] Linux version 2.6.32 (ubuntu@ip-10-204-115-71) (gcc version 4.3.3 .......

下面是 Linux 引导消息,最后是 Angstrom 徽标和一个登录提示,如清单 6 所示。

清单 6. Angstrom 登录控制台
.-------.                                          
|       |                  .-.                     
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                -'  |
                '---'

The Angstrom Distribution beagleboard ttyS2

Angstrom 2010.7-test-20100820 beagleboard ttyS2

beagleboard login:

root 登录,不需要密码。您可以运行基本的 Linux 命令来测试系统。尝试运行 testled,然后观察 BeagleBoard-xM 上的发光二极管。

要查看正在运行的 Angstrom,您需要一个完整的根文件系统和一个匹配的内核。下面说明了如何加载和引导演示映像:

  1. 转到 Angstrom BeagleBoard 演示页阅读操作指南。
  2. 为引导加载器和文件系统从 Angstrom BeagleBoard 页面下载二进制映像。这些文件是您所需要的:
    • mkcard.txt
    • MLO
    • u-boot.bin
    • Angstrom-Beagleboard-demo-image-glibc-ipk-2010.3-beagleboard.rootfs.tar.bz2
  3. 插入一个至少有 4GB 容量的 microSD 卡,然后确定其设备名称。例如,如果您使用的是一个 USB 卡阅读器,使用 fdisk,并寻找一个匹配这个卡参数的磁盘。以下示例显示 /dev/sdg:
    # fdisk -l
    ...
    Disk /dev/sdg: 3.9 GB, xxx bytes
    255 heads, 63 sectors/track, xxx cylinders
  4. 卸载卡上的分区,在下面示例中使用您卡的设备名替换 /dev/sdg
    sudo umount /dev/sdg?
  5. 使用 mkcard.txt 脚本对您的 SD 卡进行格式化。

    注意:确保 您锁定的目标是您的 SD 卡而不是一个系统磁盘。

    在下面示例中使用您卡的设备名替换 /dev/sdg

    chmod +x mkcard.txt ; sudo ./mkcard.txt /dev/sdg

    操作完成后,您的 microSD 卡有两个主分区:

    • 一个 70MB FAT 分区,标记为 boot
    • 一个 ext3 分区,标记为 Angstrom,占用卡的其余容量。

    如果您的系统不能自动挂载这些分区,手工挂载,在下面示例中用您的卡设备名替换 /dev/sdg

    sudo mkdir -p /media/boot ; sudo mount /dev/sdg1 /media/boot
    sudo mkdir /media/Angstrom ; sudo mount /dev/sdg2 /media/Angstrom

    本例余下部分假设,这些分区已挂载为 /media/boot/media/Angstrom

  6. 将文件解压到根文件系统分区(这可能需要一点时间):
    sudo tar -C /media/Angstrom -xjvf \
     Angstrom-Beagleboard-demo-image-glibc-ipk-2010.3-beagleboard.rootfs.tar.bz2
  7. 将文件复制到根分区,注意内核映像直接来自根文件系统:
    cp MLO /media/boot
    cp u-boot.bin /media/boot
    cp /media/Angstrom/boot/uImage /media/boot
  8. 所有操作完成之后,同步文件系统然后卸载分区:
    sync ; sudo umount /dev/sdg?
  9. 将卡插入 BeagleBoard-xM 然后打开电源。

    注意: 如果第一次引导失败,则会出现这样一个错误:

     Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block...

    重启系统,停止引导倒计时,然后输入以下命令:

    setenv mmcroot /dev/mmcblk0p2 rw

    然后输入 boot 引导系统。

第一次引导需要一段时间,因为系统自身需要配置。Angstrom 徽标出现在监视器上,同时在控制台上每个组件都已配置完成,大约 10 分钟后,Angstrom 登录屏幕出现在监视器上,控制台上出现一个引导提示窗口。使用登录界面建立一个新的用户然后登录,您也可以在控制台上以 root 登录,不需要密码。

引导 Android

Android 已被证实是 BeagleBoard 上一个流行的操作系统,对于 Android 应用程序开发和测试而言该主板并不是一个昂贵的平台。这有几个连接到 BeagleBoard 的 Android 端口。本文使用 rowboat 项目。确保在启动之前连接一个 USB 键盘和鼠标以及一个 DVI 监视器。

  1. 从 Texas Instruments Android DevKit 页面下载预编译的二进制 tarball,务必要找出 BeagleBoard-xM 的预构建映像(beagleboard-xm.tar.gz)。
  2. 解压 tarball:
    tar zxvf beagleboard-xm.tar.gz
  3. 在 README.txt 中阅读操作指南。
  4. 插入一个至少有 4GB 容量的 microSD 卡,确定其设备名称。例如,如果您使用的是一个 USB 读卡器,使用 fdisk 并寻找匹配卡参数的磁盘。以下示例显示 /dev/sdg:
    # fdisk -l
    ...
    Disk /dev/sdg: 3.9 GB, xxx bytes
    255 heads, 63 sectors/track, xxx cylinders
  5. 使用提供的脚本格式化您的 SD 卡。

    注意:务必确保 您锁定的目标是您的 SD 卡而不是一个系统磁盘。

    使用您的卡设备替换下面示例中的 /dev/sdg

    mkmmc-android.sh /dev/sdg

    所有操作完成后,同步文件系统然后卸载分区:

    sync ; sudo umount /dev/sdg?
  6. 将 microSD 卡插入 BeagleBoard-xM 并打开电源。

    第一次引导需要一段时间,因为系统本身需要配置。大约 4 分钟后,您应该可以看到 Android 徽标,然后可以看到一个主界面。如果网络没有自动激活,等待 5 分钟左右,然后重新引导。注意,控制台保持活动,以 root 自动登录。

引导 Ubuntu

Ubuntu 迅速成为一个流行于上网本(netbook)、移动互联网设备(MID)和其他小型系统的操作系统。Ubuntu 的总公司 Canonical 提供资源来将 Ubuntu 植入 ARM 处理器,比如 BeagleBoard。和 Android 一样 ,确保在启动之前插入监视器以及 USB 键盘和鼠标。

  1. 在 Ubuntu OMAP Maverick Install 页面阅读操作指南。
  2. 下载预编译的二进制映像。务必找到针对 BeagleBoard-xM 的映像:针对 TI OMAP3 计算机的预安装上网本映像ubuntu-netbook-10.10-preinstalled-netbook-armel+omap.img.gz)。此时不要解压映像。
  3. 插入一个至少有 4GB 容量的 microSD 卡,确定其设备名。例如,如果您使用的是一个 USB 读卡器,使用 fdisk 然后寻找一个匹配卡参数的磁盘。以下示例显示 /dev/sdg
    # fdisk -l
    ...
    Disk /dev/sdg: 3.9 GB, xxx bytes
    255 heads, 63 sectors/track, xxx cylinders
  4. 将映像直接写入卡中。

    注意:务必确保 您锁定的目标是您的 SD 卡而不是一个系统磁盘。

    使用您卡的设备名替换以下示例中的 /dev/sdg

    sudo sh -c 'zcat \
     ./ubuntu-netbook-10.10-preinstalled-netbook-armel+omap.img.gz > /dev/sdg'

    注意:如果您的 BeagleBoard-xM 是版本 A3,您可能需要下载一个不同的内核。查阅 Ubuntu Maverick 安装页获取更多细节。

    所有操作完成后,同步文件系统然后卸载分区:

    sync ; sudo umount /dev/sdg?
  5. 将卡插入 BeagleBoard-xM 然后接通电源。

    第一次引导需要一段时间,因为系统本身需要配置,期间监视器和控制台可能显示黑屏。大约 5 分钟后,控制台上出现 Ubuntu 徽标,接着是一系列系统配置界面,使用插入 BeagleBoard 的鼠标和键盘,回答配置问题。如果网络不能自动激活,等待直至系统完全运转,将其关闭(转到 System 然后选择 Shut Down ),然后重新引导。

控制台不能使 Ubuntu 保持活动状态,您必须通过监视器和键盘或鼠标相互作用。但是,您可以从 Ubuntu Software Center 安装一个 Virtual Network Computing (VNC) 服务器,并通过 VNC 与系统进行交互。

未来展望

每一个操作系统都有其自己的社区系统,包括网站、wiki、邮件清单和 Internet Relay Chat (IRC) 频道,BeagleBoard 也一样。在您学习 BeagleBoard-xM 和您所选择的操作系统时,可以利用这些优越的资源。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Linux, Open source
ArticleID=608428
ArticleTitle=在 BeagleBoard-xM 上引导 Linux
publish-date=01172011