diff --git a/build_wl18xx.sh b/build_wl18xx.sh
index a3dd9afd449f3d47c21217195bf9aa1f4e0a0a07..b02d13b07e1dbb7693957aae8b04e65c0fa3d98a 100755 (executable)
--- a/build_wl18xx.sh
+++ b/build_wl18xx.sh
echo "Usage : "
echo ""
echo "Building full package : "
- echo " ./wl18xx_build.sh init <head|TAG> [ Download and Update w/o build ] "
+ echo " ./build_wl18xx.sh init <head|TAG> [ Download and Update w/o build ] "
echo " update <head|TAG> [ Update to specific TAG & Build ] "
echo " clean [ Clean & Build ] "
echo " <empty> [ Build w/o update ] "
echo " openssl [ Clean & Build openssll ] "
echo " libnl [ Clean & Build libnl ] "
echo " crda [ Clean & Build crda ] "
-
+ echo " patch_kernel [ Apply provided kernel patches ] "
+ echo " uim [ Clean & Build uim ] "
+ echo " bt-firmware [ Install Bluetooth init scripts ] "
exit 1
}
KERNEL_SUBLEVEL=$(echo $sublevel|sed 's/[^0-9]//g')
echo "Makefile was found. Kernel version was set to $KERNEL_VERSION.$KERNEL_PATCHLEVEL.$KERNEL_SUBLEVEL."
fi
+ [ $VERIFY_CONFIG ] && ./verify_kernel_config.sh $KERNEL_PATH/.config
}
#----------------------------------------------------------j
{
mkdir -p `path filesystem`/usr/bin
mkdir -p `path filesystem`/etc
+ mkdir -p `path filesystem`/etc/init.d
+ mkdir -p `path filesystem`/etc/rcS.d
mkdir -p `path filesystem`/usr/lib/crda
mkdir -p `path filesystem`/lib/firmware/ti-connectivity
mkdir -p `path filesystem`/usr/share/wl18xx
[ -z $NO_CONFIG ] && cp `path configuration`/kernel_$KERNEL_VERSION.$KERNEL_PATCHLEVEL.config `repo_path kernel`/.config
[ -z $NO_CLEAN ] && make clean
[ -z $NO_CLEAN ] && assert_no_error
-
+
if [ "$KERNEL_VERSION" -eq 3 ] && [ "$KERNEL_PATCHLEVEL" -eq 2 ]
then
make -j${PROCESSORS_NUMBER} uImage
{
generate_compat
cd_repo compat_wireless
+ if [ -d "$PATH__ROOT/patches/driver_patches/$KERNEL_VARIANT" ]; then
+ for i in $PATH__ROOT/patches/driver_patches/$KERNEL_VARIANT/*.patch; do
+ print_highlight "Applying driver patch: $i"
+ patch -p1 < $i;
+ assert_no_error
+ done
+ fi
if [ -z $NO_CLEAN ]; then
make clean
fi
function build_crda()
{
cp `repo_path wireless_regdb`/regulatory.bin `path filesystem`/usr/lib/crda/regulatory.bin
- cp `repo_path wireless_regdb`/linville.key.pub.pem `path filesystem`/etc/wireless-regdb/pubkeys/
+ cp `repo_path wireless_regdb`/sforshee.key.pub.pem `path filesystem`/etc/wireless-regdb/pubkeys/
cd_repo crda
[ -z $NO_CLEAN ] && DESTDIR=`path filesystem` make clean
assert_no_error
NFSROOT=`path filesystem` make install
#assert_no_error
+ cp -f `repo_path ti_utils`/hw/firmware/wl1271-nvs.bin `path filesystem`/lib/firmware/ti-connectivity
cd_back
}
NFSROOT=`path filesystem` make clean
assert_no_error
for file_to_copy in $files_to_copy; do
- rm -f `path filesstem`/usr/sbin/wlconf/$file_to_copy
+ rm -f `path filesystem`/usr/sbin/wlconf/$file_to_copy
done
rm -f `path filesystem`/usr/sbin/wlconf/official_inis/*
fi
cp `repo_path fw_download`/*.bin `path filesystem`/lib/firmware/ti-connectivity
}
+function patch_kernel()
+{
+ [ ! -d $KERNEL_PATH ] && echo "Error KERNEL_PATH: $KERNEL_PATH dir does not exist" && exit 1
+ cd $KERNEL_PATH
+ echo "using kernel: $KERNEL_PATH"
+ if [ -d "$PATH__ROOT/patches/kernel_patches/$KERNEL_VARIANT" ]; then
+ read -p "Branch name to use? (will be created if doesn't exist)" -e branchname
+ if git show-ref --verify --quiet "refs/heads/$branchname"; then
+ echo "Branch name $branchname already exists, trying to use it..."
+ git checkout $branchname
+ else
+ echo "Creating branch $branchname and switching to it"
+ git checkout -b $branchname
+ fi
+ assert_no_error
+ for i in $PATH__ROOT/patches/kernel_patches/$KERNEL_VARIANT/*.patch; do
+ git am $i;
+ assert_no_error
+ done
+ fi
+ assert_no_error
+ cd_back
+}
+
+function build_uim()
+{
+ cd_repo uim
+ [ -z $NO_CLEAN ] && NFSROOT=`path filesystem` make clean
+ [ -z $NO_CLEAN ] && assert_no_error
+ make CC=${CROSS_COMPILE}gcc
+ assert_no_error
+ install -m 0755 uim `path filesystem`/usr/bin
+ install -m 0755 `repo_path uim`/scripts/uim-sysfs `path filesystem`/etc/init.d/
+ cd `path filesystem`/etc/rcS.d/
+ ln -sf ../init.d/uim-sysfs S03uim-sysfs
+ assert_no_error
+ cd_back
+}
+
+function build_bt_firmware()
+{
+ cd_repo bt-firmware
+ for i in `repo_path bt-firmware`/*.bts; do
+ echo "Installing bluetooth init script: $i"
+ install -m 0755 $i `path filesystem`/lib/firmware/
+ assert_no_error
+ done
+}
function build_scripts_download()
{
cd_repo scripts_download
echo "Copying scripts"
scripts_download_path=`repo_path scripts_download`
- for script_dir in `ls $scripts_download_path`
+ for script_dir in `ls -d $scripts_download_path`/*/
do
echo "Copying everything from ${script_dir} to `path filesystem`/usr/share/wl18xx directory"
- cp -rf `repo_path scripts_download`/${script_dir}/* `path filesystem`/usr/share/wl18xx
+ cp -rf ${script_dir}/* `path filesystem`/usr/share/wl18xx
done
cd_back
}
tar cpjf `path outputs`/${tar_filesystem[0]} .
cd_back
- if [ "$KERNEL_VERSION" -eq 3 ] && [ "$KERNEL_PATCHLEVEL" -eq 2 ]
- then
- cp `path tftp`/uImage `path outputs`/uImage
- else
- if [ -z $NO_DTB ]
- then
- cp `path tftp`/zImage `path outputs`/zImage
- cp `path tftp`/*.dtb `path outputs`/*.dtb
- else
- cp `path tftp`/uImage `path outputs`/uImage
- fi
- fi
+ # Copy kernel files only if default kernel is used(for now)
+ if [[ "$KERNEL_PATH" == "DEFAULT" ]]
+ then
+ if [ "$KERNEL_VERSION" -eq 3 ] && [ "$KERNEL_PATCHLEVEL" -eq 2 ]
+ then
+ cp `path tftp`/uImage `path outputs`/uImage
+ else
+ if [ -z $NO_DTB ]
+ then
+ cp `path tftp`/zImage `path outputs`/zImage
+ cp `path tftp`/*.dtb `path outputs`/
+ else
+ cp `path tftp`/uImage `path outputs`/uImage
+ fi
+ fi
+ fi
fi
}
which regdbdump > /dev/null
if [ $? -eq 0 ]; then
regdbdump `path filesystem`/usr/lib/crda/regulatory.bin > /dev/null
- assert_no_error
+ if [ $? -ne 0 ]; then
+ echo "Please update your public key used to verify the DB"
+ fi
fi
}
i="0"
while [ $i -lt ${#apps_to_verify[@]} ]; do
- if !( hash ${apps_to_verify[i]} 2>/dev/null; )then
+ if !( dpkg-query -s ${apps_to_verify[i]} 2>/dev/null | grep -q ^"Status: install ok installed"$ )then
echo "${apps_to_verify[i]} is missing"
echo "Please use 'sudo apt-get install ${apps_to_verify[i]}'"
read -p "Do you want to install it now [y/n] ? (requires sudo) " yn
build_wlconf
build_fw_download
build_scripts_download
+ build_uim
+ build_bt_firmware
fi
[ -z $NO_VERIFY ] && verify_skeleton
;;
'crda')
- print_highlight " building only CRDA "
+ print_highlight " building only CRDA "
build_crda
;;
print_highlight " Copying scripts "
build_scripts_download
;;
-
+
'utils')
print_highlight " building only ti-utils "
build_calibrator
build_wlconf
- ;;
+ ;;
+
'firmware')
- print_highlight " building only firmware"
- build_fw_download
- ;;
+ print_highlight " building only firmware"
+ build_fw_download
+ ;;
+
+ 'patch_kernel')
+ print_highlight " only patching kernel $2 without performing an actual build!"
+ NO_BUILD=1
+ patch_kernel
+ ;;
+
+ 'uim')
+ print_highlight " building only uim "
+ build_uim
+ ;;
+
+ 'bt-firmware')
+ print_highlight " Only installing bluetooth init scripts "
+ build_bt_firmware
+ ;;
############################################################
'get_tag')
get_tag