Re: How To Compile Your Own Kernels, Modules, Tinboot (NAND boot), and More for Begin
Quote:
Originally Posted by tiger2wander
Hey, natemcnutty
Need modify fullbuild.sh to fix this:
Code:
./fullbuild.sh: 38: Syntax error: "fi" unexpected (expecting "then")
from
Code:
36 if [ ! -d $ANDROID/androidupdate/data/modules
37 mkdir -p $ANDROID/androidupdate/data/modules
38 fi
to
Code:
36 if [ ! -d $ANDROID/androidupdate/data/modules ]; then
37 mkdir -p $ANDROID/androidupdate/data/modules
38 fi
previous snippets is missing ']; then' in 'if' clause, also we need to create system dir in androidupdate:
Code:
39 if [ ! -d $ANDROID/androidupdate/system ]; then
40 mkdir -p $ANDROID/androidupdate/system
41 fi
Here is my modified script, tested and build successfully:
Code:
#!/bin/sh
#-------------------------------------------------------------------------
# Build Script for linux-msm-rhod-nand (Android on HTC) kernel, modules, XIP, and NBH
#-------------------------------------------------------------------------
#
# Set the following variables
# ANDROID -- Root director for Android files
ANDROID=~/android
# TINBOOT -- tinboot directory
TINBOOT=$ANDROID/tinboot-linux-msm
# KERNEL_PATH -- directory containing the linux-msm kernel source
KERNEL_PATH=$ANDROID/linux-msm-rhod-nand
# TOOLCHAIN_PATH -- directory containing the arm toolchain
TOOLCHAIN_PATH=$ANDROID/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi
# MODULES_PATH -- directory for modules
MODULES_PATH=$TINBOOT/modules
#-------------------------------------------------------------------------
# do some cleanup before building if zImage already exists
echo "Removing previous zImage"
if [ -f $TINBOOT/kernel/zImage ] ; then
rm $TINBOOT/kernel/zImage
fi
# build kernel and modules
#export ARCH=arm
cd $KERNEL_PATH
make clean
make ARCH=arm htc_msm_nand_defconfig
make ARCH=arm CROSS_COMPILE=$TOOLCHAIN_PATH- INSTALL_MOD_PATH=$MODULES_PATH zImage modules modules_install
[ $? -eq 0 ] || fail "Kernel compilation failure"
# copy all drivers to single level directory for compression
cd $MODULES_PATH
KERNMODS=$(find -name "*.ko")
if [ ! -d $ANDROID/androidupdate/data/modules ]; then
mkdir -p $ANDROID/androidupdate/data/modules
fi
if [ ! -d $ANDROID/androidupdate/system ]; then
mkdir -p $ANDROID/androidupdate/system
fi
for i in $KERNMODS ; do
cp $i $ANDROID/androidupdate/data/modules
done
# compress modules to a tar.gz and move to output
echo "Outputting modules to Desktop"
cd $ANDROID/androidupdate
tar cvzf $ANDROID/androidupdate.tgz data system
rm -rf $ANDROID/androidupdate/data/modules
mkdir $ANDROID/androidupdate/data/modules
# clean up modules
rm -Rf $MODULES_PATH
mkdir $MODULES_PATH
rm -Rf $KERNEL_PATH/lib/modules
# move new kernel
mv $KERNEL_PATH/arch/arm/boot/zImage $TINBOOT/kernel
#-----start build XIP-----
# remove old XIP if it exists
cd $TINBOOT
if [ -f xip/rhod ]; then
rm xip/rhod
echo Deleting old XIP
fi
# make XIP folder if it does not exist
if [ ! -d "$TINBOOT/xip" ] ; then
mkdir $TINBOOT/xip
fi
# compile tinboot XIP
echo "Start compiling tinboot/xip for rhod....."
$TOOLCHAIN_PATH-as tinboot/tinboot2.S -o tinboot.o --defsym rhod=1 --defsym MTYPE=2292
$TOOLCHAIN_PATH-objcopy tinboot.o -O binary tinbootxip
mv tinbootxip xip/rhod
# cleanup tinboot
rm tinboot.o
# make sure XIP build was successful
if [ ! -f xip/rhod ] ; then
fail "XIP build failed. XIP file was not found."
fi
#-----start build NBH-----
# clean up previous log file
if [ -e "tools/log" ]; then
rm tools/log
fi
# compile tinboot
cp tools/rhod_payload2 os.nb.payload
echo "Inserting tinboot into payload"
wine tools/osnbtool -c os.nb.payload 1 xip/rhod >> tools/log
mv os.nb.payload.NEW os.nb.payload >> tools/log
echo "Inserting blank imgfs into payload"
wine tools/ImgfsToNb.exe tools/imgfs.bin os.nb.payload os-new.nb.payload >> tools/log
echo "Creating os.nb portion of nbh"
tools/nbmerge < os-new.nb.payload > os-new.nb
echo "Creating NBH"
wine tools/yang.exe -F RHODIMG.NBH -f os-new.nb -t 0x400 -s 64 -d RHOD****0 -c 11111111 -v Tinboot -l WWE >> tools/log
# clean up payloads
mv RHODIMG.NBH $ANDROID/RHODIMG.NBH
rm os.nb.payload
rm os-new.nb.payload
rm os-new.nb
# clean up tinboot directory
rm -rf xip
--
Best regard!
Uoc Nguyen
|
Thanks, that was a last minute addition to the script based on your previous input. I had to change a couple of things from my script to keep in line with what I had originally posted as well, so thanks for catching those. I'll update them right now
|