Roku HD2000 v1.3.31 Source Code 1. Introduction Parts of the firmware for this Roku product make use of "Open Source" software under various different licenses. Under the terms of these licenses we are required to provide the source code used to generate the binaries we distribute. This file describes the components and where the source code can be found. Note that the firmware also contains many other proprietary parts from Roku and third parties. The source code for these parts is not provided. 2. Toolchain In order to compile the sources provided you will need ELDK-4.0. The binary distribution of this for x86 is included in the file ELDK-4.0-mips-2006-01-17.tar.bz2 and the sources are provided in the file ELDK-4.0-mips-2006-01-17-source.tar.bz2. This also includes the source code for the C library and other runtime components. 3. Kernel This Roku product uses a modified version of the Linux kernel which is distributed using the Free Software Foundation's General Public License Version 2. You can find the text of this license in the file GPL-2. The kernel source is distributed in two parts: linux-2.6.*.tar.gz contains the stock Linux source code for the kernel. linux-2.6.*-pandora2-*.patch.bz2 is a compressed patch that should be applied to the kernel using patch(1) in order to generate the modified version. 4. Kernel modules This Roku product uses several kernel modules that are independent from the main kernel tree. The source for these components is provided in a file named modules-pandora2-*.tar.bz2. A Makefile is provided to build the modules but you may need to modify it or provide the KERNEL_SOURCE parameter to point at the kernel source. These modules are distributed under the GPL version 2 or LGPL version 2.1. 5. Buildroot The firmware also relies on many standard Linux tools. Most of these are built as part of buildroot (http://buildroot.uclibc.org). The Roku firmware makes a few changes to the packages using the standard buildroot mechanisms. This source release consists of a single buildroot-*-pandora2-*.tar.bz2 file containing the core of buildroot and a buildroot-tarballs-pandora2-*.tar file that contains the stock tarballs for the packages it requires. When building buildroot you may need to define at least the following symbols on the command line to make: DL_DIR with the full path to the rest of the tarballs if you have not untarred them to the default location. BR2_PACKAGE_BUSYBOX_CONFIG=buildroot/busybox-1.2.2.1.config ROOTFS and TARGET_DIR to the target root filesystem. e.g. /tmp/rootfs STAGING_DIR and STAGINGDIR to the target staging filesystem. e.g. /tmp/staging TARGET_CROSS to the fully qualified prefix of your compiler. e.g. /opt/eldk-4.0/usr/bin/mips_4KCle- Note that this compiler still needs to be in your path regardless. CROSS_COMPILE_LIBS to the fully qualified path to the compiler's runtime libraries. e.g. /opt/eldk-4.0/mips_4KCle/lib You may also need to create the following directories in both the target staging and target root filesystem directories: /lib /usr/bin /opt/nxp/bin /opt/nxp/lib /opt/nxp/include 6. Luddite The source code for the GPL kernel module parts of this is provided in the file luddite-pandora2-*.tar.bz2. This can be built in a similar way to the other kernel modules. 7. Linux-Fusion This package is used unchanged from its stock version. See the package for build instructions.