aboutsummaryrefslogtreecommitdiff
path: root/docs/README.armel
diff options
context:
space:
mode:
Diffstat (limited to 'docs/README.armel')
-rw-r--r--docs/README.armel273
1 files changed, 273 insertions, 0 deletions
diff --git a/docs/README.armel b/docs/README.armel
new file mode 100644
index 0000000000..fdbec70af8
--- /dev/null
+++ b/docs/README.armel
@@ -0,0 +1,273 @@
+TOC
+1. Introduction
+2. Using Scratchbox
+ 2.1 Automatic Installation
+ 2.2 Manual Installation
+ 2.3 Installation Continued for both Automatic and Manual Methods
+ 2.4 Setup Scratchbox
+3. Getting the source code
+4. Installing the required ARMEL packages
+5. Obtaining the SGX files
+6. How to compile
+ 6.1 Configure & Make
+ 6.2 Install
+7. How to run
+ 7.1 Obtaining the Packages
+ 7.2 Installing the Files
+ 7.3 Running XBMC
+8. Troubleshooting
+
+
+-----------------------------------------------------------------------------
+1. Introduction
+-----------------------------------------------------------------------------
+
+This is a port of XBMC for use on ARM Architecture.
+As this is not an official version of XBMC, in-depth testing on various setups has not been done. USE WITH CAUTION!
+For the purpose of this port, the following Hardware and Software was used.
+Software: Scratchbox (cross-compiler) on a Linux (Ubuntu) machine.
+Hardware: BeagleBoard (ARM Cortex-A8 with IMG POWERVR SGX).
+The source code is based on XBMC for Linux - version 9.11 (Camelot).
+
+All lines that are prefixed with the '$' character are commands that need to be typed into a standard linux terminal
+All lines that are prefixed with the '>' character are commands that need to be typed into scratchbox
+All lines that are prefixed with the '#' character are commands that need to be typed into a terminal on the beagleboard
+
+
+-----------------------------------------------------------------------------
+2. Using Scratchbox
+-----------------------------------------------------------------------------
+
+First, you need scratch box, along with some other packages.
+The easiest way is to do the following automatic installation.
+If you dont succeed, or want to do it manually, follow the next step instead.
+
+ -----------------------------------------------------------------------------
+ 2.1 Automatic Installation:
+ -----------------------------------------------------------------------------
+
+ $ sudo gedit /etc/apt/sources.list
+
+ Add this to the end of the file, then save and exit gedit:
+ deb http://scratchbox.org/debian stable main
+ deb http://scratchbox.org/debian legacy main
+
+ Now enter the following command:
+ $ sudo apt-get install scratchbox-core scratchbox-libs scratchbox-devkit-cputransp scratchbox-devkit-git scratchbox-devkit-mtd scratchbox-devkit-perl scratchbox-devkit-doctools scratchbox-toolchain-arm-linux-cs2007q3-51sb3 scratchbox-toolchain-host-gcc scratchbox-devkit-debian
+
+ -----------------------------------------------------------------------------
+ 2.2 Manual Installation:
+ -----------------------------------------------------------------------------
+
+ Go to the following website:
+ http://www.scratchbox.org/download/files/sbox-releases/stable/tarball/
+ and download the following files (Unless specified, choose latest version):
+ - core
+ - libs
+ - cputransp
+ - doctools
+ - git
+ - mtd
+ - perl
+ - toolchain (cs2007q3-51sb3)
+ - host-gcc
+ - debian
+
+ To install
+ $ cd /
+ $ sudo tar xvf /<location of files>/scratchbox-core.tar.gz
+
+ Repeat for all the downloaded files.
+
+ -----------------------------------------------------------------------------
+ 2.3 Installation Continued for both Automatic and Manual Methods:
+ -----------------------------------------------------------------------------
+
+ Now, a few changes needs to me made in order for it to work correctly:
+ $ sudo gedit /etc/sysctl.conf
+
+ Change/Add these variables:
+ vm.mmap_min_addr = 4096
+ vm.vdso_enabled = 0
+ Save and Close.
+
+ Add yourself to scratchbox:
+ $ sb-adduser <username>
+
+ Make sure it worked by doing the following command, and see if sbox is listed.
+ $ groups
+
+ If it isnt listed, restart and try again. If it still isnt listed, then do the following:
+ $ usermod -a -G sbox <username>
+
+ It should now list (possibly after another logout)
+ Now you have access to scratchbox.
+
+ -----------------------------------------------------------------------------
+ 2.4 Setup Scratchbox:
+ -----------------------------------------------------------------------------
+
+ Before setting up your target, you need a rootstrap. Obtain the latest rootstrap from:
+ http://linux.onarm.com/download/images/generic-X/
+ You want to download the file 'beagleboard-<date>-rootstrap.tar.gz'.
+
+ Do this every time you want to access scratchbox:
+ $ /scratchbox/login
+
+ Time to setup your target:
+ > sb-menu
+
+ A GUI will appear for the setup procedure.
+ - Choose Setup
+ - Create a NEW target, give it any name
+ - Select the compiler you downloaded (arm-linux-cs2007q3-51sb3)
+ - Select all development kits listed by highlighting each one and pressing enter, then Done and enter
+ - Select CPU transparency (qemu-arm-cvs-m)
+ - Yes to rootstrap. Locate the previously downloaded rootstrap to install.
+ - Yes to install files
+ - Only select DEVKIT and ETC. Remove all other files in list, then continue
+ - And finally Yes to selecting target.
+
+ Now scratchbox is setup
+
+
+-----------------------------------------------------------------------------
+3. Getting the source code
+-----------------------------------------------------------------------------
+
+ $ sudo apt-get install git-core
+ $ cd /scratchbox/users/<username>/home/<username>/
+ $ git clone git://github.com/xbmc/xbmc.git
+
+
+-----------------------------------------------------------------------------
+4. Installing the required ARMEL packages
+-----------------------------------------------------------------------------
+
+There is a simple shell script that downloads a list of packages that are required and installs them into scratchbox.
+
+ > cd tools/arm/arm-scripts/
+ > ./install-pkgs.sh
+
+Please check the output files for any possible errors that may have occured.
+
+Note. You will need the headers and shared object files for EGL and GLESv2 to continue.
+
+
+-----------------------------------------------------------------------------
+5. Obtaining the SGX files
+-----------------------------------------------------------------------------
+
+In order to continue, you will need the SGX SDK from TI's website.
+Once you have installed said SDK on a standard Linux machine, copy the neccessary .h and .so files to the appropriate directories in scratchbox:
+e.g /scratchbox/users/<username>/targets/<target_name>/usr/include/EGL/egl.h
+These files will also need to be transferred over to the board eventually.
+NOTE: XBMC has only been tested with the following versions of the OMAP35x Graphics SDK:
+3.00.00.05, 3.00.00.06, 3.00.00.08, 3.00.00.09
+
+
+-----------------------------------------------------------------------------
+6. How to compile
+-----------------------------------------------------------------------------
+
+To create the XBMC executable manually perform these following steps:
+
+ -----------------------------------------------------------------------------
+ 6.1 Configure & Make:
+ -----------------------------------------------------------------------------
+
+ $ ./bootstrap
+ > ./configure --enable-gles
+
+ This will configure XBMC inside scratchbox ready for compilation on ARM.
+ Because the default is to build for OpenGL, we require the --enable-gles flag to be set for OpenGL ES 2.0.
+ (Note: No OpenGL ES 1.x available)
+ Now, build with the following:
+
+ > make
+
+ -----------------------------------------------------------------------------
+ 6.2 Install:
+ -----------------------------------------------------------------------------
+
+ There is no need to do 'make install' as we dont want it installed into scratchbox.
+ There is also the slight problem of the fact that scratchbox's 'find' command is outdated and wont execute xbmc's 'make install' correctly.
+ Instead, use the provided shell script:
+ > cd /tools/arm/arm-scripts/
+ > ./create-xbmcfile.sh
+
+ This will create a tar file tools/arm/arm-scripts/xbmc.tar.bz2 containing the xbmc files, ready for you to transfer to the board.
+
+
+-----------------------------------------------------------------------------
+7. How to run
+-----------------------------------------------------------------------------
+
+It is assumed you have a beagleboard with all the neccessary hardware installed.
+(e.g keyboard, mouse, and ethernet adapter)
+It is also assumed that you have it setup with either Angstrom or Ubuntu.
+
+ -----------------------------------------------------------------------------
+ 7.1 Obtaining the Packages:
+ -----------------------------------------------------------------------------
+
+ For Ubuntu: See README.linux for list of packages to install.
+ If planning on not extracting the pkgs file, a few additional packages are required to be installed.
+ These are python and liblzo2
+
+ For Angstrom:
+ # opkg update
+ # opkg install subversion make g++ gcc gawk pmount libtool automake gperf unzip bison libsdl-1.2-dev libsdl-image-1.2-dev libsdl-gfx-dev libsdl-mixer-1.2-dev libfribidi-dev liblzo-dev libfreetype-dev libsqlite3-dev libasound2 python-sqlite3 libcurl4 libxrandr-dev libxrender-dev libmad-dev libogg-dev libvorbis-dev libmysqlclient-dev libpcre-dev libdbus-glib-1-dev hal-dev libjasper-dev libfontconfig-dev boost-dev libxt-dev libxmu-dev libpng-dev libjpeg-dev libsamplerate0-dev
+
+ Unfortunately this will only install the packages that are available through opkg. There will be further packages that need to be installed.
+ Either use the method mentioned below, or selectively find and install packages, mentioned at the bottom of this README.
+
+ Alternatively, do the following:
+ First make sure you have done section 4. then do the following:
+ > cd xbmc_on_arm/arm-scripts/
+ > ./create-pkgsfile.sh
+
+ This will create a tar file xbmc_on_arm/arm-scripts/pkgs.tar.bz2 containing the packages, ready for you to transfer to the board.
+
+ -----------------------------------------------------------------------------
+ 7.2 Installing the Files:
+ -----------------------------------------------------------------------------
+
+ Transfer the file(s), armel-pkgs.tar.bz2 (if using alternative method mentioned above) and xbmc.tar.bz2 to the beagleboard.
+ Do the following to extract them:
+ # tar xjf armel-pkgs.tar.bz2 -C /
+ # tar xjf xbmc.tar.bz2 -C /usr/
+
+ After this initial setup, during development, you should only need to replace /usr/share/xbmc/xbmc.bin with the newly created binary.
+
+ -----------------------------------------------------------------------------
+ 7.3 Running XBMC:
+ -----------------------------------------------------------------------------
+
+ Now, run XBMC by executing the binary:
+ # /usr/share/xbmc/xbmc.bin
+
+ Run the binary and not the script as the script will fail.
+
+
+-----------------------------------------------------------------------------
+8. Troubleshooting
+-----------------------------------------------------------------------------
+
+If it fails to run correctly, there are a few things to try out.
+First, is there any helpful output on the terminal?
+Check the log file, usually located ~/.xbmc/temp/xbmc.log
+It may have failed because of a missing package.
+If so, you will need to download the appropriate armel package from packages.debian.org,
+Extract the files with the command: dpkg-deb -x packagename.deb /path/to/extract/to
+Then tarball the extracted files: tar cjf pkg.tar.bz2 /path/to/extracted/files
+Then transfer them to the board, and extract: tar xjf pkg.tar.bz2
+This is because the .deb files cannot be extracted in Angstrom.
+
+If this is not the case, try various different parameters for xbmc.bin such as:
+xbmc.bin --standalone
+xbmc.bin -p
+xbmc.bin -fs
+Or build with debug for a more in-depth xbmc.log file by ommitting the line --disable-debug on configure.
+
+Feel free to contact me on mcgeagh@xbmc.org