# add your packages here
ADDPKGS="vim git make gcc lua5.2 golang build-essential kmod"
-ADDPKGS="$ADDPKGS net-tools iputils-ping wget openssh-server rsync"
+ADDPKGS="$ADDPKGS net-tools iputils-ping iproute2 wget openssh-server rsync"
# beagle
-ADDPKGS="$ADDPKGS wireless-tools wpasupplicant hostapd"
+#ADDPKGS="$ADDPKGS wireless-tools wpasupplicant hostapd"
# nellboard
-#ADDPKGS="$ADDPKGS python dnsmasq"
+ADDPKGS="$ADDPKGS python dnsmasq"
#
# kernel
#
# beagleboard
+#
# use/copy debian linux-image package!
+#
# nellboard
KERVER="2.6.33"
KERPATCH="linux-2.6.33_lpc313x-v1.01.patch"
KERCONF="ea313x_defconfig"
-KERHOOK="sed 's/# CONFIG_DEVTMPFS.*/CONFIG_DEVTMPFS=y/' -i ./arch/arm/configs/ea313x_defconfig;"
-KERHOOK="sed 's/# CONFIG_EXT4_FS.*/CONFIG_EXT4_FS=y/' -i ./arch/arm/configs/ea313x_defconfig;"
-KERHOOK="$KERHOOK cp ../files/lpc313x/ea313x.c arch/arm/mach-lpc313x/;"
+KERHOOK="
+ sed 's/# CONFIG_DEVTMPFS.*/CONFIG_DEVTMPFS=y/' -i \
+ ./arch/arm/configs/ea313x_defconfig;
+ sed 's/# CONFIG_EXT4_FS.*/CONFIG_EXT4_FS=y/' -i \
+ ./arch/arm/configs/ea313x_defconfig; \
+ cp ../files/lpc313x/ea313x.c arch/arm/mach-lpc313x/;"
#
# u-boot patch and target
# beagleboard
#UBSRC=""
#UBPATCH=""
-UBCONF=omap3_beagle_config
+#UBCONF=omap3_beagle_config
# nellboard
-#UBVER="v2009.11"
-#UBPATCH="u-boot-2009.11_lpc313x-v1.01.patch"
-#UBCONF="EA3131_config"
+UBVER="v2009.11"
+UBPATCH="u-boot-2009.11_lpc313x-v1.01.patch"
+UBCONF="EA3131_config"
function check_prereq() {
# read config
- [ -f ./config.build ] && . ./config.build
+ [ -f ./build.config ] && . ./build.config
# check
tc="gcc-`echo $MAKEOPT | sed 's/.*\ CROSS_COMPILE=\(.*\)-.*/\1/'`"
deps=0
function build_all {
# read config
- [ -f ./config.build ] && . ./config.build
+ [ -f ./build.config ] && . ./build.config
# build stage 1
if [ -f .build_stage1 ]; then
echo "stage one already done, skipping ..."
fi
# copy myself
cp -v ./build.sh ./rootfs.mnt
- cp -v ./config.build ./rootfs.mnt
+ cp -v ./build.config ./rootfs.mnt
if [ ! -f .build_stage2 ]; then
# prepare/run second stage
modprobe binfmt_misc
touch .build_stage2
# cleanup
rm -v ./rootfs.mnt/build.sh
- rm -v ./rootfs.mnt/config.build
+ rm -v ./rootfs.mnt/build.config
fi
}
function build_in_chroot {
# read config
- [ -f ./config.build ] && . ./config.build
+ [ -f ./build.config ] && . ./build.config
# build second stage
echo "building debian image, second stage ..."
[ -f /debootstrap/debootstrap ] && \
#
function build_uboot() {
- [ -f ./config.build ] && . ./config.build
- git clone $UBSRC
+ echo "building u-boot ..."
+ echo " argv: $@"
+ nopatch=0
+ noget=0
+ update=0
+ nocheckout=0
+ noclean=0
+ no2all=0
+ while [ "$1" ]; do
+ case "$1" in
+ -nopatch) nopatch=1; shift;;
+ -noget) noget=1; shift;;
+ -update) update=1; shift;;
+ -nocheckout) nocheckout=1; shift;;
+ -noclean) noclean=1; shift;;
+ -no2all) no2all=1; shift;;
+ *) shift;;
+ esac
+ done
+ if [ "$no2all" = "1" ]; then
+ nopatch=1
+ noget=1
+ nocheckout=1
+ noclean=1
+ fi
+ [ -f ./build.config ] && . ./build.config
+ if [ "$noget" = "0" ]; then
+ rm -rf u-boot
+ git clone $UBSRC
+ fi
+ if [ "$update" = "1" ]; then
+ cd u-boot
+ git pull
+ cd ..
+ fi
cd u-boot
- if [ ! -z "$UBVER" ]; then
- git checkout $UBVER
+ if [ "$nocheckout" = "0" ]; then
+ if [ ! -z "$UBVER" ]; then
+ git checkout $UBVER
+ fi
+ fi
+ if [ "$nopatch" = "0" ]; then
+ if [ ! -z "$UBPATCH" ]; then
+ for patch in $UBPATCH; do
+ patch -Nfp1 < ../patches/$patch
+ done
+ fi
fi
- if [ ! -z "$UBPATCH" ]; then
- patch -Nfp1 < ../patches/$UBPATCH
+ if [ "$noclean" = "0" ]; then
+ make $MAKEOPT distclean
fi
- make $MAKEOPT distclean
make $MAKEOPT $UBCONF
make $MAKEOPT
cd ..
}
function build_kernel() {
- [ -f ./config.build ] && . ./config.build
+ nopatch=0
+ noget=0
+ nohook=0
+ noclean=0
+ no2all=0
+ while [ "$1" ]; do
+ case "$1" in
+ -nopatch) nopatch=1; shift;;
+ -noget) noget=1; shift;;
+ -nohook) nohook=1; shift;;
+ -noclean) noclean=1; shift;;
+ -no2all) no2all=1; shift;;
+ *) shift;;
+ esac
+ done
+ if [ "$no2all" = "1" ]; then
+ nopatch=1
+ noget=1
+ nohook=1
+ noclean=1
+ fi
+ [ -f ./build.config ] && . ./build.config
KV=`echo $KERVER | awk -F. '{
if($1=="3") print "3.x"
else print$1 "." $2
}'`
- KERSRC="https://www.kernel.org/pub/linux/kernel/"
- KERSRC="$KERSRC/v$KV/linux-${KERVER}.tar.bz2"
- wget $KERSRC
- tar xfj linux-${KERVER}.tar.bz2
+ if [ "$noget" = "0" ]; then
+ rm -rf linux-${KERVER}*
+ KERSRC="https://www.kernel.org/pub/linux/kernel/"
+ KERSRC="$KERSRC/v$KV/linux-${KERVER}.tar.bz2"
+ wget $KERSRC
+ tar xfj linux-${KERVER}.tar.bz2
+ fi
cd linux-$KERVER
- if [ ! -z "$KERPATCH" ]; then
- patch -Nfp1 < ../patches/$PATCH
+ if [ "$nopatch" = "0" ]; then
+ if [ ! -z "$KERPATCH" ]; then
+ for patch in $KERPATCH; do
+ patch -Nfp1 < ../patches/$patch
+ done
+ fi
+ fi
+ if [ "$noclean" = "0" ]; then
+ make $MAKEOPT mrproper
fi
- make $MAKEOPT mrproper
- if [ ! -z "$KERHOOK" ]; then
- $KERHOOK
+ if [ "$nohook" = "0" ]; then
+ if [ ! -z "$KERHOOK" ]; then
+ $KERHOOK
+ fi
fi
if [ ! -z "$KERCONF" ]; then
make $MAKEOPT $KERCONF
#
# configuration
-if [ ! -f ./config.build ]; then
+if [ ! -f ./build.config ]; then
echo "no configuration found, aborting ..."
else
- . ./config.build
+ . ./build.config
fi
# debootstrap
if [ -z $1 ]; then
check_prereq
- build_all > ./build.log 2>&1
+ build_all | tee ./build.log 2>&1
elif [ "$1" = "chroot" ]; then
- build_in_chroot > ./build_in_chroot.log 2>&1
+ build_in_chroot | tee ./build_in_chroot.log 2>&1
elif [ "$1" = "uboot" ]; then
check_prereq
- build_uboot > ./build_uboot.log 2>&1
+ build_uboot $@ | tee ./build_uboot.log 2>&1
elif [ "$1" = "kernel" ]; then
check_prereq
- build_kernel > ./build_kernel.log 2>&1
+ build_kernel $@ | tee ./build_kernel.log 2>&1
else
echo "unknown option: '$1'"
fi