Android/Kernel

From OLPC
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

How to build the XO-4 Android kernel.

Ingredients

  • a well connected development system,
  • an XO-4 laptop,
  • a USB ethernet adapter or USB drive,
  • a serial adapter.

Method

  • prepare for kernel building using the instructions in Kernel, and checkout the arm-3.5-android branch for Android 5.0, or the arm-3.5-android-4.3 branch for Android 4.x,
  • use the arch/arm/configs/xo_4_android_defconfig file as .config,
  • install the kernel by copying via HTTP or USB drive:
ok copy http:\\builder\vmlinuz int:\kernel
ok copy u:\vmlinuz int:\kernel

Replace kernel in an old build

Build kernel following instructions in Kernel. As a result, include/linux/autoconf.h and include/config/auto.conf are generated. Then start to build wifi and bt driver separately.

cd /tmp
git clone git://dev.laptop.org/users/ben/android_vendor_marvell_generic -b android-4.3.1-xo4
cd android_vendor_marvell_generic/sd8787
export ARCH=arm
export KDR=/home/xxxxxxx/android/src/olpc_4.3.1/kernel-source
make wlan bt

Change script in mkzd.sh

replace kernel in build;

 sudo cp ../../../../$out_folder/kernel boot/ ===> sudo cp /home/xxxxxxx/android/src/olpc_4.3.1/kernel-source/arch/arm/boot/zImage boot/

replace driver in build;

 mkdir system                                                                                              
 sudo mount $L3 system 
 sudo cp /tmp/android_vendor_marvell_generic/sd8787/wlan_src/mlan.ko /system/lib/modules/mlan.ko
 sudo cp /tmp/android_vendor_marvell_generic/sd8787/wlan_src/sd8xxx.ko /system/lib/modules/sd8787.ko
 sudo cp /tmp/android_vendor_marvell_generic/sd8787/mbtc_src/mbt8xxx.ko /system/lib/modules/mbt8xxx.ko
 sudo cp /home/xxxxxxx/android/src/olpc_4.3.1/kernel-source/drivers/net/wireless/libertas/libertas_sdio.ko /system/lib/modules/libertas_sdio.ko
 sudo cp /home/xxxxxxx/android/src/olpc_4.3.1/kernel-source/drivers/net/wireless/libertas/libertas_sdio.ko /system/lib/modules/libertas.ko
 sudo umount $L3
 sudo rm -rf system

run mkzd.sh

 ./mkzd.sh

See Also