Beaglebone Installation Guide
来源:互联网 发布:union软件 百度云 编辑:程序博客网 时间:2024/05/19 02:39
Basic Requirements
- ARM Cross Compiler
- Linaro: https://launchpad.net/linaro-toolchain-binaries
- Bootloader
- Das U-Boot – the Universal Boot Loader http://www.denx.de/wiki/U-Boot
- Source – http://git.denx.de/?p=u-boot.git;a=summary
- Linux Kernel
- Linus's Mainline tree: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=summary
- Linux omap tree: http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap.git
- Arago Project TI Staging tree: http://arago-project.org/git/projects/?p=linux-am33x.git;a=shortlog;h=refs/heads/v3.2-staging
- ARM based rootfs
- Debian Squeeze: http://www.debian.org/
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:
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:
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:
git checkout origin/am33x-v3.
2
-b tmp
Build:
./build_kernel.sh
Device Tree
Download:
git clone git:
//github.com/RobertCNelson/linux-dev.git
cd linux-dev/
Checkout v3.8.x branch:
git checkout origin/am33x-v3.
8
-b tmp
Build:
./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)
#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
/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:
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:
# 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
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:
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:
fbcon
ti_tscadc
- Beaglebone Installation Guide
- xVM installation guide
- Ubuntu & Mint Installation Guide
- Installation Guide For PF_RING
- Boost installation guide
- 【翻译】(2)Installation Guide
- Apache Axis2 Installation Guide
- CDH3 Installation Guide
- Installation Guide 安装指南
- OSSEC installation guide
- icescrum installation guide
- RHEL Installation Guide
- 10018---SolrFacetSearch - Installation Guide
- JMeter Installation Guide
- harbor installation guide
- installation guide 研读
- PostgreSQL XL Installation Guide
- mysql installation guide (windows)
- android listview更改默认点击效果
- 最长公共了序列、最长公共子串
- Java_Thread类的sleep()与SystemClock类的sleep()的区别
- 关于sqlite的特殊字符转义及通配符
- sphinx全文检索之PHP使用教程
- Beaglebone Installation Guide
- 跨程序之间的广播传值
- 屌丝程序员的生活目标
- C++中巧用#define访问类的私有成员
- HDU 4731 Minimum palindrome 找规律 (2013 ACM/ICPC Asia Regional Chengdu Online 1004)
- 用枚举定义有意义的数组下标
- Copying the Image to a microSD Card on Mac OS / Windows
- excel的一个技巧,很有用
- dd支持Sybase的timestamp字段作为主查询条件的实现