Difference between revisions of "User:Urjaman/Building the kernel on the Pandora"

From Pandora Wiki
Jump to: navigation, search
(Build the kernel)
(Fixed per comments on IRC)
Line 1: Line 1:
 
This is still a WIP set of notes. Testing in progress.
 
This is still a WIP set of notes. Testing in progress.
 
Will add SGX and WiFi module building later.
 
Will add SGX and WiFi module building later.
 
== Open up a terminal ==
 
You should not need help with this.
 
  
 
== Install local toolchain and git ==
 
== Install local toolchain and git ==
 +
Open up a terminal if you havent already.
 
  sudo opkg update
 
  sudo opkg update
 
This is untested and IIRC I needed to fiddle with the names a bit.
 
This is untested and IIRC I needed to fiddle with the names a bit.
Line 13: Line 11:
 
== Get ext2 space ==
 
== Get ext2 space ==
 
=== Choose from ===
 
=== Choose from ===
==== root in SD ====
+
==== I run my OS from SD ====
 +
Make a directory in your home folder then:
 
  mkdir dev && cd dev
 
  mkdir dev && cd dev
==== ext2 formatted SD card ====
+
==== I have an ext2 formatted SD card ====
 +
Make a directory on the card then:
 
  cd /media/<ext2card>
 
  cd /media/<ext2card>
 
  mkdir dev && cd dev
 
  mkdir dev && cd dev
==== ext2 loop file (1GiB) on an SD card ====
+
==== I only have a FAT32 formatted SD card ====
 +
Then you can create an ext2 loop file (1GiB) the card:
 
  cd /media/<fatcard>
 
  cd /media/<fatcard>
 
  dd if=/dev/zero of=dev.ext2 bs=1M count=1024
 
  dd if=/dev/zero of=dev.ext2 bs=1M count=1024
Line 35: Line 36:
 
  cd pandora-kernel
 
  cd pandora-kernel
 
Here cross-ref against ../openpandora.oe/recipes/linux/omap3-pandora-kernel_2.6.27-pandora.bb wont hurt.
 
Here cross-ref against ../openpandora.oe/recipes/linux/omap3-pandora-kernel_2.6.27-pandora.bb wont hurt.
 +
 
Warning: Mega-list-of-commands follows, formatted it as an sh script if needed
 
Warning: Mega-list-of-commands follows, formatted it as an sh script if needed
 
  #!/bin/bash -e
 
  #!/bin/bash -e

Revision as of 10:30, 30 October 2010

This is still a WIP set of notes. Testing in progress. Will add SGX and WiFi module building later.

Install local toolchain and git

Open up a terminal if you havent already.

sudo opkg update

This is untested and IIRC I needed to fiddle with the names a bit. You can "search" for a name with eg. with sudo opkg list | grep name

sudo opkg install gcc gcc-symlinks make binutils-dev cpp cpp-symlinks g++ g++-symlinks libstdc++-dev git

Get ext2 space

Choose from

I run my OS from SD

Make a directory in your home folder then:

mkdir dev && cd dev

I have an ext2 formatted SD card

Make a directory on the card then:

cd /media/<ext2card>
mkdir dev && cd dev

I only have a FAT32 formatted SD card

Then you can create an ext2 loop file (1GiB) the card:

cd /media/<fatcard>
dd if=/dev/zero of=dev.ext2 bs=1M count=1024
mke2fs -m 0 dev.ext2
mkdir dev
sudo mount -o loop dev.ext2 dev
cd dev

You should now be in a folder named "dev" suitable for the job.

Checkout pandora-kernel

git clone --depth=1 git://git.openpandora.org/pandora-kernel.git

This will take a moment. Go grab your chosen beverage.

Checkout and apply patches

git clone --depth=1 git://git.openpandora.org/openpandora.oe.git
cd pandora-kernel

Here cross-ref against ../openpandora.oe/recipes/linux/omap3-pandora-kernel_2.6.27-pandora.bb wont hurt.

Warning: Mega-list-of-commands follows, formatted it as an sh script if needed

#!/bin/bash -e
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/0001-Add-EHCI-patch-suggested-by-Steven-Kipisz.patch
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/0002-Add-missing-define-to-EHCI-OMAP.c.patch
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/no-empty-flash-warnings.patch
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/oprofile-0.9.3.armv7.diff
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/no-cortex-deadlock.patch
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/read_die_ids.patch
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/fix-install.patch
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/mru-fix-timings.diff
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/mru-fix-display-panning.diff
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/mru-make-dpll4-m4-ck-programmable.diff
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/mru-improve-pixclock-config.diff
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/mru-make-video-timings-selectable.diff
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/mru-enable-overlay-optimalization.diff
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/dvb-fix-dma.diff
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/0001-Removed-resolution-check-that-prevents-scaling-when.patch
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/0001-Implement-downsampling-with-debugs.patch
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/musb-rxtx.patch
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/squashfs/0006-SquashFS-Backport-SquashFS4-to-our-2.6.27-tree.patch
patch -Np1 < ../openpandora.oe/recipes/linux/omap3-pandora-kernel/aufs2/0007-AUFS2-Add-latest-AUFS2-in-tree-code-for-2.6.27.patch

Fix Makefile

This gem is from vminko's ebuild

sed -i 's/?= arm-linux-/=/' Makefile

Configure kernel

cp ../openpandora.oe/recipes/linux/omap3-pandora-kernel/defconfig .config
make oldconfig

if you want to change configuration:

make menuconfig

You will need to change the configuration if you want the kernel name to match stock, disable General Setup -> Automatically append version information to the version string .

Build the kernel

This will take time and CPU power, so if you're like me, dont forget to overclock.

Modules, if desired:

make modules

and the kernel:

make uImage

if you want to install modules:

sudo make modules_install