Beaglebone Installation Guide

本文提供了一套详细的ARM平台嵌入式系统构建流程,包括ARM交叉编译器、U-Boot引导加载程序、Linux内核、根文件系统等关键组件的配置与安装步骤,以及必要的软件包依赖和系统初始化配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Basic Requirements

ARM Cross Compiler: GCC

This is a pre-built (32bit) version of Linaro GCC that runs on generic linux, so 64bit users need to make sure they have installed the 32bit libraries for their distribution.

Debian based (deb)

extra

pkgs: (sudo apt-get update ; sudo apt-get install xyz)

Ubuntu 12.04

 

ia32-libs

Debian 7 (Wheezy)

sudo dpkg --add-architecture i386

libc6:i386 libstdc++6:i386 libncurses5:i386 zlib1g:i386

Ubuntu 12.10 -> 13.10

 

libc6:i386 libstdc++6:i386 libncurses5:i386 zlib1g:i386

Red Hat based (rpm)

extra

pkgs: (yum install xyz)

Red Hat/Centos/Fedora

 

libstdc++.i686 ncurses-devel.i686 zlib.i686

Download/Extract:

~/
wget -c https: //launchpad.net/linaro-toolchain-binaries/trunk/2013.07/+download/gcc-linaro-arm-linux-gnueabihf-4.8-2013.07-1_linux.tar.xz
tar xJf gcc-linaro-arm-linux-gnueabihf- 4.8 - 2013.07 -1_linux.tar.xz
export CC=`pwd`/gcc-linaro-arm-linux-gnueabihf- 4.8 - 2013.07 -1_linux/bin/arm-linux-gnueabihf-

Test:

If this test fails, verify that you have the 32bit libraries installed on your development system.

~/
${CC}gcc --version
arm-linux-gnueabihf-gcc (crosstool-NG linaro- 1.13 . 1 - 4.8 - 2013.07 - 1 - Linaro GCC 2013.07 ) 4.8 . 2 20130624 (prerelease)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Bootloader: U-Boot

Das U-Boot -- the Universal Boot Loader http://www.denx.de/wiki/U-Boot

Download:

~/
git clone git: //git.denx.de/u-boot.git
cd u-boot/
git checkout v2013. 07 -b tmp

Patches:

~/u-boot
wget -c https: //raw.github.com/eewiki/u-boot-patches/master/v2013.07/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
 
patch -p1 < 0001 -am335x_evm-uEnv.txt-bootz-n-fixes.patch

Configure and Build:

~/u-boot
make ARCH=arm CROSS_COMPILE=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_config
make ARCH=arm CROSS_COMPILE=${CC}

Upgrade distro "device-tree-compiler" package

~/
wget -c https: //raw.github.com/RobertCNelson/tools/master/pkgs/dtc.sh
chmod +x dtc.sh
./dtc.sh

Linux Kernel

This script will build the kernel and modules and copy them to the deploy directory.

Old Board File tree

Download:

~/
git clone git: //github.com/RobertCNelson/linux-dev.git
cd linux-dev/

For v3.2.x:

~/linux-dev
git checkout origin/am33x-v3. 2 -b tmp

Build:

~/linux-dev
./build_kernel.sh

Device Tree

Download:

~/
git clone git: //github.com/RobertCNelson/linux-dev.git
cd linux-dev/

Checkout v3.8.x branch:

~/linux-dev
git checkout origin/am33x-v3. 8 -b tmp

Build:

~/linux-dev
./build_kernel.sh

Root File System

Debian 7

User

Password

debian

temppwd

root

root

Download:

~/
wget -c https: //rcn-ee.net/deb/minfs/wheezy/debian-7.1-minimal-armhf-2013-08-25.tar.xz

Verify:

~/
md5sum debian- 7.1 -minimal-armhf- 2013 - 08 - 25 .tar.xz
63e68e96b21cefeae9e4ecbf0568fd26  debian- 7.1 -minimal-armhf- 2013 - 08 - 25 .tar.xz

Extract:

~/
tar xJf debian- 7.1 -minimal-armhf- 2013 - 08 - 25 .tar.xz
Ubuntu 13.04

User

Password

ubuntu

temppwd

Download:

~/
wget -c https: //rcn-ee.net/deb/minfs/raring/ubuntu-13.04-minimal-armhf-2013-08-25.tar.xz

Verify:

~/
md5sum ubuntu- 13.04 -minimal-armhf- 2013 - 08 - 25 .tar.xz
4bbf7944d43ba5f4fbb5a86232b57d58  ubuntu- 13.04 -minimal-armhf- 2013 - 08 - 25 .tar.xz

Extract:

~/
tar xJf ubuntu- 13.04 -minimal-armhf- 2013 - 08 - 25 .tar.xz

Root File System (small flash)

A Root File System around 64Mb in size, for flash applications.

Debian 7 (small flash)

User

Password

debian

temppwd

root

root

Download: 

~/
wget -c https: //rcn-ee.net/deb/barefs/wheezy/debian-7.1-bare-armhf-2013-08-25.tar.xz

Verify: 

~/
md5sum debian- 7.1 -bare-armhf- 2013 - 08 - 25 .tar.xz
276f2b77c1de379e5923f1f97b1f7853 debian- 7.1 -bare-armhf- 2013 - 08 - 25 .tar.xz

Extract: 

~/
tar xJf debian- 7.1 -bare-armhf- 2013 - 08 - 25 .tar.xz

Setup microSD/SD card

For these instruction, we are assuming: DISK=/dev/mmcblk0, "lsblk" is very useful for determining the device id.

export DISK=/dev/mmcblk0

Erase microSD/SD card:

sudo dd if =/dev/zero of=${DISK} bs=1M count= 16

Create Partition Layout:

sudo sfdisk --in-order --Linux --unit M ${DISK} <<-__EOF__
1 , 48 , 0xE ,*
,,,-
__EOF__

Format Partitions:

for : DISK=/dev/mmcblk0
sudo mkfs.vfat -F 16 ${DISK}p1 -n boot
sudo mkfs.ext4 ${DISK}p2 -L rootfs
 
for : DISK=/dev/sdX
sudo mkfs.vfat -F 16 ${DISK} 1 -n boot
sudo mkfs.ext4 ${DISK} 2 -L rootfs

Mount Partitions:

On some systems, these partitions may be auto-mounted...

sudo mkdir -p /media/boot/
sudo mkdir -p /media/rootfs/
 
for : DISK=/dev/mmcblk0
sudo mount ${DISK}p1 /media/boot/
sudo mount ${DISK}p2 /media/rootfs/
 
for : DISK=/dev/sdX
sudo mount ${DISK} 1 /media/boot/
sudo mount ${DISK} 2 /media/rootfs/

Install Bootloader

Copy MLO/u-boot.img to the boot partition

~/
sudo cp -v ./u-boot/MLO /media/boot/
sudo cp -v ./u-boot/u-boot.img /media/boot/

uEnv.txt based bootscript

As v3.2.x/v3.8.x are too vastly different kernels (board file vs device tree) you need to uncomment one of the "uenvcmd" variables shown in the uEnv.txt boot script, otherwise it will not boot the kernel image.

Requires: v2013.04

Create "uEnv.txt" boot script: (nano uEnv.txt)

~/uEnv.txt
#optargs=
#mmcroot=/dev/mmcblk0p2 ro
#mmcrootfstype=ext4 rootwait fixrtc
 
#To boot old v3. 2 .x based kernel enable: (BeagleBone only)
#uenvcmd=run loaduimage; run mmc_classic_boot
  
#To boot new v3. 8 .x based device tree:
#uenvcmd=run loaduimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr}

Copy uEnv.txt to the boot partition:

~/
sudo cp -v ./uEnv.txt /media/boot/

Install Kernel and Root File System

To help new users, since the kernel version can change on a daily basis. The kernel building scripts listed on this page will now give you a hint of what kernel version was built.

-----------------------------
Script Complete
eewiki.net: [user @localhost :~$ export kernel_version= 3 .X.Y-Z]
-----------------------------

Copy and paste that "export kernel_version=3.X.Y-Z" exactly as shown in your own build/desktop environment and hit enter to create an environment variable to be used later.

export kernel_version= 3 .X.Y-Z

Copy Root File System

~/
sudo tar xfvp . /*-*-*-arm*-*/ arm*-rootfs-*.tar -C /media/rootfs/

Copy Kernel Files

Kernel Image:

~/
sudo cp -v ./linux-dev/deploy/${kernel_version}.zImage /media/boot/zImage

Kernel Device Tree Binaries (v3.8.x branch):

~/
sudo mkdir -p /media/boot/dtbs/
sudo tar xfov ./linux-dev/deploy/${kernel_version}-dtbs.tar.gz -C /media/boot/dtbs/

Kernel Modules:

~/
sudo tar xfv ./linux-dev/deploy/${kernel_version}-modules.tar.gz -C /media/rootfs/

File Systems Table (/etc/fstab)

Edit: /etc/fstab

sudo nano /media/rootfs/etc/fstab
/etc/fstab
/dev/mmcblk0p2   /           auto   errors=remount-ro   0   1
/dev/mmcblk0p1   /boot/uboot auto   defaults            0   2

Networking

Edit: /etc/network/interfaces

sudo nano /media/rootfs/etc/network/interfaces

Add:

/etc/network/interfaces
auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet dhcp

 

Networking: Using a shared SD card with Multiple BeagleBone 

 To always enable the Ethernet interface as eth0.

Edit: /etc/udev/rules.d/70-persistent-net.rules

sudo nano /media/rootfs/etc/udev/rules.d/ 70 -persistent-net.rules

Add:

/etc/udev/rules.d/70-persistent-net.rules
# BeagleBone: net device ()
SUBSYSTEM== "net" , ACTION== "add" , DRIVERS== "?*" , ATTR{dev_id}== "0x0" , ATTR{type}== "1" , KERNEL== "eth*" , NAME= "eth0"

 

Serial Login

Debian

Edit: /etc/inittab

sudo nano /media/rootfs/etc/inittab

Add this at the end of: /etc/inittab

/etc/inittab
T0: 23 :respawn:/sbin/getty -L ttyO0 115200 vt102

Ubuntu

Create new file: /etc/init/serial.conf

sudo nano /media/rootfs/etc/init/serial.conf

With this content:

/etc/init/serial.conf
start on stopped rc RUNLEVEL=[ 2345 ]
stop on runlevel [! 2345 ]
 
respawn
exec /sbin/getty 115200 ttyO0

 Remove microSD/SD card:

sync
sudo umount /media/boot
sudo umount /media/rootfs

FAQ

CircuitCo LCD3 Backlight:

Turn on Backlight:

i2cset -f -y 1 0x24 0x07 0x09
i2cset -f -y 1 0x24 0x08 0x60

CircuitCo LCD3/LCD7 TouchScreen:

Add to /etc/modules:

/etc/modules
fbcon
ti_tscadc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值