This article explains Linux kernel-2.6.32 for bc10. This kernel is based upon the kernel of rowboat project, and the
bc10 specific drivers are added to the kernel. This section shows how to modify the original kernel for bc10. For the
information of the boot process of bc10 and the installation of kernel image, please visit bc10/booting.
Prepare toolchain for bc10
Using the toolchain, examine whether the build process is sucessful or not. The details of toolchain are explained at
bc10/booting.
- OpenEmbedded Linux toolchain (arm-angstrom-linux-guneabi-)
- This is a toolchain of OpenEmbedded Linux, which is used for the development environment of BeagleBoard.
To use toolchain of OpenEmbedded, the OpenEmbedded development environment is needed to be installed. For the
installation process of the OpenEmbedded development environment, please refer to bc10/OpenEmbedded Linux. To
work with the toolchain, set up the environment variable.export PATH=${WORK_DIR}/OE/angstrom-dev/cross/armv7a/bin:${PATH} export ARCH=arm export CROSS_COMPILE=arm-angstrom-linux-gnueabi-
Obtain the source code from its git repository.
git clone git://gitorious.org/~bc-dev/rowboat/bc10-rowboat-kernel.git bc10-rowboat-kernel
To modify the source code for bc10, its git blanch is checked out.
cd bc10-rowboat-kernel/ git checkout -t -b bc10-2.6.32 origin/bc10-2.6.32
To use OpenEmbedded toolchain, make cross-build.
make omap3_bc10_defconfig make uImageIf the build process is successfully completed, uImage (kernel image file) is generated at the directory shown below.
- kernel image
- arch/arm/bootuImage Please look at bc10/booting for the instructions of installing uImage.
bc10-rowboat-kernel is already configured the most device drivers for embedded device. There are basically no issues
if the modules are not placed. As Android runs on bc10, the modules are not requirements, and these processes shown
below are not necessary. To boot OpenEmbedded, an warning will appear if the modules are not installed. This is a good
idea to install the modules for preventing the warning.
This is how to build Kernel modules.
make modulesThe next step is to install the modules. To change the location of its installation later, create a temporal location for
installing the modules. Create directory inside the directory, and name it modwork. Install the module at the directory.
If the destination of the installation is already decided, the value of INSTALL_MOD_PATH can be replaced with the
install path.make DEPMOD=echo INSTALL_MOD_PATH=modwork modules_install arm-angstrom-linux-gnueabi-depmod-2.6 -A -b ./modwork/ -F ./System.map `make kernelrelease`Finally, the modules are installed under ./modwork.
To compress the file, handle the file easily later on. The file can be extracted at the target of the userland.Tar czvf modules.tgz -C ./modwork/ lib
As source code is updated for adding new functions and/or fixing bugs, do not need to obtain the whole source code. It is
fine to download only the renewed portion of code.cd bc10-rowboat-kernel/ git checkout bc10-2.6.32 git pullAfter the source code is updated, rebuild and replace uImage.
The source code of bc10-rowboat-kernel is managed by Gitorious.
- Project Page
- repository
- git://gitorious.org/~bc-dev/rowboat/bc10-rowboat-kernel.git
bc10-rowboat-kernel repository has several blanches. There are three important blanches for bc10. These blanches are:
- bc10-2.6.32
- a release blanch for bc10
- bc10-2.6.32-develop
- a blanch for the development of bc10
- bc10-2.6.32-build
- a build blanch for bc10 (this will be removed soon).
To build a bootable uImage for bc10, please use bc10-2.6.32.
The bc10-2.6.32-develop blanch is highly experimental. This is used for a test that examines the condition of newly
added functions. This blanch always has the most updated version of kernel. However, because of its experimental
nature, it may not work well. The bc10-2.6.32 blanch is highly recommended for daily use.
The bc10-2.6.32-build blanch has been used temporarily for a build blanch until MACH_TYPE number was officially
added. As of writing this article, MACH_TYPE of bc10 is officially supported, and the bc10-2.6.32-build blanch is no
longer updated (or maintained). In the near future, the bc10-2.6.32-build blanch will be removed. Please do NOT
use the bc10-2.6.32-build blanch. For the details of this issue, please read README, a document, which is located
at Documentation/arm/README in the kernel source.
The source code of bc10-rowboat-kernel is basically a clone of rowboat kernel repository, and this is specifically
modified for bc10. The locations of the originals are shown below.
- rowboat kernel
- repository
- git://gitorious.org/rowboat/kernel.git
- blanch
- rowboat-eclair-2.6.32
This section explains the details of configurable options at booting kernel. To set up options in kernel, the environment
variable of U-Boot, bootargs, is used.
Please look at bc10/u-boot for the details~.
It determines a display for visual output. On bc10, one of the two choices can be selected.
- lcd
- AMOLED output
- dvi
- DVI outpit
Example) Select AMOLED for visual output
omapdss.def_sisp =lcdFor the details of this option, please look at the directory of Documentation/arm/OMAP/DSS in the kernel source tree.
This option sets up the level of resolutions of a display. It theoretically select different resolutions for different monitors;
however, since the resolution of bc10's AMOLED is fixed at 480x272, this option is only applicable to DVI output for bc10.
Example) To set up the DVI output at the level of 1024x768 and 24bit color, and its refresh rate is seted to 60Hz.
omapfb.mode=dvi:1024x768MR-24@60Please read the document for the farther information of this option. The document is located under the directory of
Documentation/arm/OMAP/DSS in the source tree of kernel.