Difference between revisions of "BeagleBoardUbuntu"
m (Reformat section) |
m (Formatting improvement) |
||
Line 36: | Line 36: | ||
= Ubuntu Rootfs Install = | = Ubuntu Rootfs Install = | ||
− | Use Oliver's <ogra> script located here: | + | Use Oliver's <ogra> script located here: |
+ | |||
+ | This section describes how you create a Ubuntu root file system for your BeagleBoard. | ||
+ | |||
+ | Note: | ||
+ | * Jaunty, aka Ubuntu 9.04, is the recent stable version | ||
+ | * Karmic, aka Ubuntu 9.10, is the upcoming Ubuntu version, not released yet (in August 2009). Therefore it is listed here as 'testing'. | ||
==Development PC: Build Root File System== | ==Development PC: Build Root File System== | ||
− | https://launchpad.net/project-rootstock | + | [https://launchpad.net/project-rootstock rootstock] is Ubuntu's new name for Oliver's <ogra> depreciated [https://wiki.ubuntu.com/ARM/RootfsFromScratch build-arm-rootfs] script. I've also made two changes to make it easier for the BeagleBoard. E.g.: |
− | + | * Specify Serial port | |
− | + | * download *.deb image | |
− | Changes from upstream used | + | Changes from upstream used are available from [https://code.launchpad.net/~robertcnelson/project-rootstock/beagleboard rootstock BeagleBoard] page. |
Note: Use latest debootstrap, if the one posted here is no longer available. | Note: Use latest debootstrap, if the one posted here is no longer available. |
Revision as of 22:54, 28 August 2009
This page is about running a (ARM EABI) Ubuntu distribution at BeagleBoard. BeagleBoard will boot the (ARM EABI) Ubuntu distribution from SD card.
Note: for the best experience, make sure you have an LCD attached to the HDMI port, 2GB/4GB/8GB SD card, and a known good usb2.0 hub with mouse and keyboard.
Contents
- 1 Known issues
- 2 Help
- 3 Recommended Beagle Software
- 4 Ubuntu Rootfs Install
- 5 Advanced
Known issues
Before you start, the following issues are known:
- 2.6.29-oer* USB still flaky on the RevC ehci port.. --RobertCNelson 18:17, 6 May 2009 (UTC)
Help
If you need any help:
- Kernel related help:
- #beagle: Beagle irc on freenode, accessible also by web interface (logs)
- Email beagleboard user groups
- Beagle Ubuntu Kernel
- trac/svn interface for the kernel builds
- Ubuntu related help:
- #ubuntu-arm: Ubuntu's arm irc on freenode (logs -> year -> month -> day -> #ubuntu-arm.html)
Recommended Beagle Software
- Use recent xloader: If you start from SD card, download MLO_revc_v3 and rename it to MLO before putting in on SD card.
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:
This section describes how you create a Ubuntu root file system for your BeagleBoard.
Note:
- Jaunty, aka Ubuntu 9.04, is the recent stable version
- Karmic, aka Ubuntu 9.10, is the upcoming Ubuntu version, not released yet (in August 2009). Therefore it is listed here as 'testing'.
Development PC: Build Root File System
rootstock is Ubuntu's new name for Oliver's <ogra> depreciated build-arm-rootfs script. I've also made two changes to make it easier for the BeagleBoard. E.g.:
- Specify Serial port
- download *.deb image
Changes from upstream used are available from rootstock BeagleBoard page.
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://www.rcn-ee.com/deb/tools/rootstock sudo chmod u+x rootstock
Note: For USB WIFI adapters, add package "linux-firmware, wireless-tools" to the --seed WiFi Hints: http://elinux.org/BeagleBoardUbuntuNetwork
Changes in rootstock:
Serial Port: --serial ttyS2 (default is ttyS0 with no specifier) Distribution Setting: --dist (jaunty or karmic) External Image: --kernel-image http://rcn-ee.com/deb/kernel/beagle/jaunty/v2.6.29-58cf2f1-oer40.5/linux-image-2.6.29-oer40.5_1.0jaunty_armel.deb or other.. (Note: dpkg hackers, anyway to do a silent install, with no user prompts?)
General Jaunty Image
sudo ./rootstock --fqdn <hostname> --login <rootuser> --password <rootuserpasswd> --imagesize <qemu image size> --seed <packages> --dist <jaunty/karmic> --serial <ttySx> --kernel-image <http>
Basic Jaunty (9.04) Beagleboard xfce4 image:
sudo ./rootstock --fqdn beagleboard --login ubuntu --password temppwd --imagesize 2G --seed xfce4,gdm --dist jaunty --serial ttyS2 --kernel-image http://rcn-ee.com/deb/kernel/beagle/jaunty/v2.6.29-58cf2f1-oer40.5/linux-image-2.6.29-oer40.5_1.0jaunty_armel.deb
Upon Completion, you should have:
armel-rootfs-<date>.tgz vmlinuz-2.6.<version>
Karmic Testing:
Major Changes:
gcc-4.4: https://launchpad.net/ubuntu/karmic/+source/gcc-4.4 omapfb driver: https://launchpad.net/ubuntu/karmic/+source/xf86-video-omapfb
armv6 optimization by default with gcc-4.4.1-3ubuntu2..
https://launchpad.net/ubuntu/karmic/+source/gcc-4.4/4.4.1-3ubuntu2
Basic Karmic (9.10) Beagleboard xfce4 image:
sudo ./rootstock --fqdn beagleboard --login ubuntu --password temppwd --imagesize 2G --seed xfce4,gdm --dist karmic --serial ttyS2 --kernel-image http://rcn-ee.com/deb/kernel/beagle/karmic/v2.6.29-58cf2f1-oer40.5/linux-image-2.6.29-oer40.5_1.0karmic_armel.deb
Development PC: Format SD Card
You will need a 1GB SD card or greater.
Standard Console System : ~286MB + Desktop environment (lxde,gdm) : ~479MB
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
Development PC: Setup SD uboot/uImage Partition
Requirements:
sudo apt-get install uboot-mkimage
Create U-boot compatible uImage:
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux" -d ./vmlinuz-* ./uImage
Mount your SD card fat32 partition. (/media/disk/) and copy the uImage to the first partition.
cd /media/disk sudo cp ./<rootstock_temp>/uImage uImage
Development PC: Setup SD ext2/ext3 Partition
Mount your SD ext2/ext3 partition. (/media/disk/)
sudo tar xfp armel-rootfs-[date].tgz -C /media/disk
Development 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
Beagleboard: Setup U-boot for boot
Using a terminal program, stop u-boot and add these commands:
For Linux Kernel 2.6.29 and higher using DSS2
setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000' or setenv bootcmd 'mmc init; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000' (r27) 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-16@60 Modes: "1024x768MR-16@60""800x600MR-16@60" ...
Here is more explanation on dss video options : [1]
Advanced
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.29-58cf2f1-oer40.5/linux-image-2.6.29-oer40.5_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
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://www.rcn-ee.com/deb/tools/u-boot-beagleboard-2009.05+r27+gitrd363f9cb0918a1b6b92e2e20d01543d0c4f53274-r27.bin sudo mv u-boot-beagleboard-2009.05+r27+gitrd363f9cb0918a1b6b92e2e20d01543d0c4f53274-r27.bin u-boot-f.bin
Tested --RobertCNelson --RobertCNelson 21:41, 10 August 2009 (UTC) RevB5 + 2.6.29-oer40.5 & RevC2 + 2.6.29-oer40.5
Insert SD Card, boot Beagleboard and stop U-Boot from booting
mmcinit (or "mmc init") fatload mmc 0 0x80200000 u-boot-f.bin nand unlock nandecc sw nand erase 80000 160000 nand write.i 0x80200000 80000 160000 reset
SGX Video Acceleration
Kernel Modules
Jaunty:
wget -c http://www.rcn-ee.com/deb/kernel/beagle/jaunty/v2.6.29-58cf2f1-oer40.5/omaplfb.ko wget -c http://www.rcn-ee.com/deb/kernel/beagle/jaunty/v2.6.29-58cf2f1-oer40.5/pvrsrvkm.ko sudo mkdir -p /lib/modules/`uname -r`/kernel/drivers/gpu/pvr/ sudo mv *.ko /lib/modules/`uname -r`/kernel/drivers/gpu/pvr/ sudo depmod -a omaplfb
Karmic:
wget -c http://www.rcn-ee.com/deb/kernel/beagle/karmic/v2.6.29-58cf2f1-oer40.5/omaplfb.ko wget -c http://www.rcn-ee.com/deb/kernel/beagle/karmic/v2.6.29-58cf2f1-oer40.5/pvrsrvkm.ko sudo mkdir -p /lib/modules/`uname -r`/kernel/drivers/gpu/pvr/ sudo mv *.ko /lib/modules/`uname -r`/kernel/drivers/gpu/pvr/ sudo depmod -a omaplfb
SDK
Use atleast the 3.00.00.08...
Note: the SDK will not extract directly on any arm platform, extract it first on an x86 machine and tar the resulting folder before transferring to the beagleboard.
System Libraries:
sudo ln -sf /usr/lib/libXdmcp.so.6.0.0 /usr/lib/libXdmcp.so.0 sudo ln -sf /usr/lib/libXau.so.6.0.0 /usr/lib/libXau.so.0
SDK lib's
sudo cp SDK_EXTRACTED_DIR/gfx_rel/*.so /usr/lib/
SDK pvrsrvinit
sudo cp SDK_EXTRACTED_DIR/gfx_rel/pvrsrvinit /usr/local/bin/
devmem2
wget -c http://free-electrons.com/pub/mirror/devmem2.c gcc -o devmem2 devmem2.c sudo cp devmem2 /usr/local/bin
Startup Script
/etc/rcS.d/S60pvr.sh
#!/bin/sh modprobe omaplfb pvr_maj=`grep "pvrsrvkm$" /proc/devices | cut -b1,2,3` if [ -e /dev/pvrsrvkm ] ; then rm -f /dev/pvrsrvkm fi mknod /dev/pvrsrvkm c $pvr_maj 0 chmod 666 /dev/pvrsrvkm # This is from the SDK... /usr/local/bin/pvrsrvinit # Set SGX to full speed /usr/local/bin/devmem2 0x48004b40 w 0
DSP
work in progress
Xorg omapfb Drivers
Drivers
Note: Backport from Karmic
Note: These are built with neon optimizations: http://git.debian.org/?p=collab-maint/xf86-video-omapfb.git;a=blob;f=debian/rules;h=c2f0d5391c96c5abb60b1e691ad86bb27e0c17d8;hb=HEAD (line 48/49)
Jaunty:
wget -c http://rcn-ee.homeip.net:81/dl/deb-sbuild/jaunty/xorg-drivers/xserver-xorg-video-omap3_0.1.1-2_armel.deb sudo dpkg -i xserver-xorg-video-omap3_0.1.1-2_armel.deb
Karmic:
sudo apt-get install xserver-xorg-video-omap3
xorg.conf
/etc/X11/xorg.conf
Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Device "Configured Video Device" #Limited by SGX? DefaultDepth 16 EndSection Section "Device" Identifier "Configured Video Device" Driver "omapfb" Option "fb" "/dev/fb0" EndSection
Note: Use xvinfo to check if it works:
X-Video Extension version 2.2 screen #0 Adaptor #0: "OMAP XV adaptor" number of ports: 1 port base: 56 operations supported: PutImage supported visuals: depth 16, visualID 0x21 number of attributes: 1 etc...
S-Video
Sorry I don't have an S-Video TV, and this is documented in the source, so it would be really great if someone could fill this section in... --RobertCNelson 21:32, 13 July 2009 (UTC)
NTSC
Please use v2.6.29-oer40.5:
PAL
Please use v2.6.29-oer40.5: