diff options
Diffstat (limited to 'scripts/mkmodimg.sh')
-rwxr-xr-x | scripts/mkmodimg.sh | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/scripts/mkmodimg.sh b/scripts/mkmodimg.sh new file mode 100755 index 0000000..e4cc9f1 --- /dev/null +++ b/scripts/mkmodimg.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +# mkmod.sh +# Making an image file which contains driver modules(.ko files) +# The image file will be in $TMP_DIR/$BIN_NAME (usr/tmp-mod/modules.img) +# CAUTION: This script MUST be run in the root directory of linux kernel source. +# Author: Wonil Choi (wonil22.choi@samsung.com) + +TMP_DIR="usr/tmp-mod" +BIN_NAME="modules.img" + +make modules +if [ "$?" != "0" ]; then + echo "Failed to make modules" + exit 1 +fi +make modules_install ARCH=arm INSTALL_MOD_PATH=${TMP_DIR} +if [ "$?" != "0" ]; then + echo "Failed to make modules_install" + exit 1 +fi + +# modules image size is dynamically determined +BIN_SIZE=`du -s ${TMP_DIR}/lib | awk {'printf $1;'}` +let BIN_SIZE=${BIN_SIZE}+1024+512 # 1 MB journal + 512 KB buffer + +cd ${TMP_DIR}/lib +mkdir -p tmp +dd if=/dev/zero of=${BIN_NAME} count=${BIN_SIZE} bs=1024 +mkfs.ext4 -q -F -t ext4 -b 1024 ${BIN_NAME} +sudo -n mount -t ext4 ${BIN_NAME} ./tmp -o loop +if [ "$?" != "0" ]; then + echo "Failed to mount (or sudo)" + exit 1 +fi +cp modules/* ./tmp -rf +sudo -n chown root:root ./tmp -R +sync +sudo -n umount ./tmp +if [ "$?" != "0" ]; then + echo "Failed to umount (or sudo)" + exit 1 +fi +mv ${BIN_NAME} ../ +cd ../ +rm lib -rf + |