Kernel compiling
WATCH THE SIZE OF YOUR BOOT PARTITION, MAYBE YOU HAVE TO DELETE SOME OF THE BACKUP FILES!
DO THIS ON YOUR ODROID, NOT ON YOUR PC!
These procedures assume you have an Debian-based distribution loaded on your odroid. The kernel building is not different between the distros, but getting ready to build is.
Debian/Ubuntu/Mint and others use "Debian packages", .deb files. They use tools like dpkg, apt, synaptic and so on to manage a package database.
RedHat, Centos, Fedora and Gentoo would not know about apt-get and friends -- so these instructions will not be of much use.
Contents
Prerequisites
make sure you have the neccessary programs installed
# update the list of available packages. This verifies that your apt-sources are configured # and you have a network connection. # as root: apt-get update # Install the toolchain, including gcc (for hard-floating point ARM, armhf) and bin-utils. apt-get -y install p7zip-full build-essential
Grabbing the source
you can easily build the kernel on your own. grab the source from github:
- browse to https://github.com/hardkernel/linux
- choose your branch (as of today -2013-01-12- it's odroid-3.0.y)
wget --no-check-certificate https://github.com/hardkernel/linux/archive/odroid-3.0.y.zip
Unpacking the source
mv odroid-3.0.y.zip /usr/src/linux.zip cd /usr/src 7z x -y linux.zip > /dev/null mv linux-odroid* linux
Configuring the kernel
cd /usr/src/linux
make sure to select the correct config for your device in the next step. execute the following to get a list of odroid kernel configs:
ls /usr/src/linux/arch/arm/configs/ | grep odroid
now choose your config and copy it to /usr/src/linux/.config (i chose odroid-x2s ubuntu config)
cp arch/arm/configs/odroidx2_ubuntu_defconfig /usr/src/linux/.config
Text mode:
apt-get install libncurses5-dev make menuconfig
Graphical mode:
apt-get install qt4-dev-tools make xconfig
change everything to your needs (use / for searching)
Building the kernel
make -j8 make modules_install make zImage
Copying the kernel and initramfs to the boot partition
kernelversion=`cat ./include/config/kernel.release` mount -o bind /media/boot/ /boot cp /media/boot/zImage /media/boot/zImage.prev cp /media/boot/uInitrd /media/boot/uInitrd.prev cp arch/arm/boot/zImage /media/boot cp .config /boot/config-$kernelversion
optionally:
cp System.map /boot/System.map-$kernelversion
NOT optional:
mkinitramfs -c gzip -o ./initramfs-$kernelversion $kernelversion mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n initramfs -d ./initramfs-$kernelversion ./uInitrd cp uInitrd /media/boot
halt:
shutdown -h 0
power cycle after that.