BeagleBoardUbuntu
This page is about running a (ARM EABI) Ubuntu distribution at BeagleBoard. BeagleBoard will boot the (ARM EABI) Ubuntu distribution from SD card.
Contents
- 1 KNOWN ISSUES
- 2 Ubuntu gcc package build settings
- 3 Recommended Beagle Software
- 4 Ubuntu Rootfs Install
- 5 Advanced
KNOWN ISSUES
2.6.29-oer* USB still flaky on the RevC ehci port.. --RobertCNelson 18:17, 6 May 2009 (UTC)
Kernel Problems:
Please email me (gmail), or post to the beagleboard google group, with a pastebin dump of your complete serial bootup. (I'm unable to use irc at work..) Any builds listed in this wiki have been tested with RevB & RevC boards.. (however with not every single u-boot combination.)
Ubuntu gcc package build settings
Ubuntu 9.04 - Released : April 23rd, 2009
Default gcc settings:
-march=armv5t -mtune=cortex-a8 -mfpu=vfp -mfloat-abi=softfp
Ubuntu 9.10 - Karmic - pre-alpha:1
Possible gcc settings:
-march=armv6 -mtune=cortex-a8 -mfpu=vfp -mfloat-abi=softfp gcc-4.4 by default? it's what got pulled into my schroot via deboostrap.
Ref: https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/303232
Recommended Beagle Software
xloader xxxx Upgrade
U-Boot 2009.03+r22 Upgrade: http://elinux.org/BeagleBoardUbuntu#Upgrade_U-Boot
Warning note: RevB board + RevC Validation U-boot + 2.6.29-oer30 = NO USB (USB worked fine with 2.6.28)
Ubuntu Rootfs Install
Use Oliver's <ogra> script located here: https://wiki.ubuntu.com/ARM/RootfsFromScratch
PC: Build Root File System
Note: Use latest debootstrap, if the one posted here is no longer available.
Requirements:
sudo apt-get install qemu
wget http://ports.ubuntu.com/pool/main/d/debootstrap/debootstrap_1.0.13~jaunty1_all.deb sudo dpkg -i debootstrap_1.0.13~jaunty1_all.deb wget http://people.ubuntu.com/~ogra/arm/build-arm-rootfs sudo chmod u+x build-arm-rootfs
General
sudo ./build-arm-rootfs --fqdn <hostname> --login <rootuser> --password <rootuserpasswd> --imagesize <qemu image size> --seed <packages>
Basic small image
sudo ./build-arm-rootfs --fqdn beagleboard --login ubuntu --password temppwd --imagesize 2G --seed
lxde Destktop
sudo ./build-arm-rootfs --fqdn beagleboard --login ubuntu --password temppwd --imagesize 2G --seed lxde,gdm
Xubuntu Desktop
sudo ./build-arm-rootfs --fqdn beagleboard --login ubuntu --password temppwd --imagesize 2G --seed xubuntu-desktop
Ubuntu Desktop
sudo ./build-arm-rootfs --fqdn beagleboard --login ubuntu --password temppwd --imagesize 3G --seed ubuntu-desktop
PC: Format SD Card
You will need a 1GB SD card or greater.
Standard System : ~xxxMB + Desktop environment (GNOME) : ~x.xGB
Starting with an empty SD card and using gparted, create:
50 MiB Primary Partition, fat32 Rest as ext2/ext3
Gparted Example: http://nishanthmenon.blogspot.com/2008/08/how-to-boot-beagle.html
PC: Setup SD uboot/uImage Partition
Mount your SD card fat32 partition. (/media/disk/)
Note: Depending on how your system mounts the cards, you may have to run as sudo.
Old-Stable cd /media/disk/ sudo wget http://www.rcn-ee.com/deb/kernel/CC-v2.6.28-79d042a-oer17 sudo mv CC-v2.6.28-79d042a-oer17 uImage Testing cd /media/disk sudo wget http://www.rcn-ee.com/deb/kernel/CC-beagle-v2.6.29-58cf2f1-oer31.1 sudo mv CC-beagle-v2.6.29-58cf2f1-oer31.1 uImage
Tested: 2.6.29-oer31 install RevB5 & RevC2 --RobertCNelson 19:54, 24 April 2009 (UTC)
Scripted: latest u-boot this is disabled, so it must be done manually later: #Beagleboard:_Setup_U-boot_for_boot
ext3 wget http://www.rcn-ee.com/deb/kernel/boot-scr/ubuntu-ext3.scr mv ubuntu-ext3.scr boot.scr ext2 wget http://www.rcn-ee.com/deb/kernel/boot-scr/ubuntu-ext2.scr mv ubuntu-ext2.scr boot.scr
Need a different resolution or other setting in the *.scr's? See : #U-Boot_Script_Files
Note: CC-v2.6.28-79d042a-oer17 & CC-beagle-v2.6.29-58cf2f1-oer31.1 uImage was built with most/all available usb wifi/ethernet adapter built in to get the beagleboard to connect to the internet. For most people this is all you'll need, however it is recommended to install one of the kernel image deb packages. (script is provided.)
PC: Setup SD ext2/ext3 Partition
Mount your SD ext2/ext3 partition. (/media/disk/)
sudo tar xfp armel-rootfs-[date].tgz -C /media/disk
PC or Beagleboard: System Setup on the (ext2/ext3) Partition
Enable Network Access
Modify /etc/network/interfaces
auto eth0 iface eth0 inet dhcp
Manual: From the Command line
sudo ifconfig eth0 up sudo dhclient eth0
Login thru Serial Port
Create file /etc/event.d/ttyS2
# ttyS2 - getty # # This service maintains a getty on tty6 from the point the system is # started until it is shut down again. start on runlevel 2 start on runlevel 3 stop on runlevel 0 stop on runlevel 1 stop on runlevel 4 stop on runlevel 5 stop on runlevel 6 respawn exec /sbin/getty -L 115200 ttyS2
Note: ubuntu normaly doesn't have a 'root' user, however if you add one, make sure too add ttyS2 to /etc/securetty (by default ttyS0 & ttyS1 are already there)
Beagleboard: Setup U-boot for boot
Using a terminal program, stop u-boot and add these commands:
For Linux Kernel 2.6.28 using DSS2
setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000' setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rootdelay=2 rootfstype=ext3 ro omap-dss.def_disp=lcd omapfb.video_mode=1280x720MR-16@60' saveenv boot
For Linux Kernel 2.6.29 and higher using DSS2
setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000' setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rootwait rootfstype=ext3 ro omapfb.mode=dvi:1280x720MR-16@60' saveenv boot
You shall adapt the resolution to you screen as following :
omapfb.mode=dvi:1280x720MR-24@60 Modes: "1024x768MR-24@60""800x600-MR24@60" ...
Here is more explanation on dss video options : [1]
Beagleboard: Install Kernel Image
Script File
Note: this will be updated from time to time. (tested off course, may need "sudo apt-get install wget")
wget http://www.rcn-ee.com/deb/kernel/ubuntu-update-kernel.sh sudo /bin/bash ubuntu-update-kernel.sh
Note: vmlinuz symbolic link (yes <or> no)... Still not sure this matters, i select <yes>...
Manual Method
You can open/edit the ubuntu-update-kernel.sh to see latest version.
sudo apt-get install uboot-mkimage wget http://www.rcn-ee.com/deb/kernel/beagle/jaunty/v2.6.28-79d042a-oer17/linux-image-2.6.28-oer17_1.0jaunty_armel.deb (or any listed here: http://www.rcn-ee.com/deb/kernel/beagle/jaunty/ ) sudo dpkg -i linux-image*
Extract linux-image's vmlinuz-* (we need this to create the uImage, uboot uses to boot)
dpkg -x linux-image* ./temp
Mount fat32 partition
sudo mount /dev/mmcblk0p1 /mnt
Build uboot compatible image and copy to fat32 boot partition
sudo mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux" -d ./temp/boot/vmlinuz-* /mnt/uImage
unmount fat32 partition
sudo umount /mnt
Clean up
rm -rfd temp
Reboot with your new uImage
Advanced
Upgrade U-Boot
Using gparted, create a new 50MB Primary fat32 Partition on a blank SD card, or use your existing fat32 partition.
cd /media/disk sudo wget http://rcn-ee.homeip.net:81/dl/omap/uboot/u-boot-beagleboard-2009.03+r22+gitr2dea1db2a3b7c12ed70bbf8ee50755089c5e5170-r22.bin sudo mv u-boot-beagleboard-2009.03+r22+gitr2dea1db2a3b7c12ed70bbf8ee50755089c5e5170-r22.bin u-boot-f.bin
Tested --RobertCNelson 16:37, 24 April 2009 (UTC) RevB5 + 2.6.29-oer31 & RevC2 + 2.6.29-oer31
Insert SD Card, boot Beagleboard and stop U-Boot from booting
mmcinit fatload mmc 0 0x80200000 u-boot-f.bin nand unlock nandecc sw nand erase 80000 160000 nand write.i 0x80200000 80000 160000 reset
U-Boot Script Files
uboot-mkimage package is required
contents of ubuntu-ext3.cmd
setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000' setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rootdelay=2 rootfstype=ext3 ro omap-dss.def_disp=lcd omapfb.video_mode=1280x720MR-24@60' boot
Create *.scr file
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Boot Time Label" -d ubuntu-ext3.cmd ubuntu-ext3.scr