203e4adb1e
In bootloader build create stripped binary bootloader.rocker Change-Id: Id67bebe82251fac22ad905ad3d49525691816746
131 lines
3.7 KiB
Bash
131 lines
3.7 KiB
Bash
#!/bin/sh
|
|
ROCKBOX_SRC=$HOME/rockbox
|
|
BUILD=$ROCKBOX_SRC/build
|
|
ISO=$HOME/iso
|
|
ROOTFS=$HOME/rootfs
|
|
|
|
[ -z "$UPT_DIR" ] && UPT_DIR=`pwd`
|
|
cd $HOME
|
|
|
|
# get sources
|
|
echo
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "!!! STEP 0: Get sources !!!"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo
|
|
[ -d "$ROCKBOX_SRC" ] || git clone ttp://gerrit.rockbox.org/p/rockbox
|
|
|
|
cd $ROCKBOX_SRC
|
|
|
|
# build bootloader
|
|
echo
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "!!! STEP 1: Build bootloader !!!"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo
|
|
|
|
[ -d "$BUILD" ] && rm -rf $BUILD
|
|
git pull && \
|
|
mkdir $BUILD && cd $BUILD && \
|
|
../tools/configure --target=240 --type=b && \
|
|
make clean && \
|
|
make && \
|
|
cd $HOME
|
|
|
|
# Extract update file (ISO9660 image) content
|
|
# NOTE: Update process on device loop mount ISO image. Default behavior of mount
|
|
# is to map all names to lowercase. Because of this forcing lowercase
|
|
# mapping is needed when extracting
|
|
echo
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "!!! STEP 2: Extract upt file !!!"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo
|
|
[ -d "$ISO" ] && rm -rf $ISO
|
|
mkdir $ISO && \
|
|
xorriso -osirrox on -ecma119_map lowercase -indev $UPT_DIR/update.upt -extract / $ISO
|
|
|
|
# Extract rootfs files. Preserve permissions (although this are wrong!)
|
|
echo
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "!!! STEP 3: Extract system.ubi !!!"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo
|
|
ubireader_extract_files -k -o $ROOTFS $ISO/system.ubi
|
|
|
|
# Copy rockbox bootloader
|
|
echo
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "!!! STEP 4: Copy bootloader !!!"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo
|
|
cp $BUILD/bootloader.rocker $ROOTFS/usr/bin/rb_bootloader
|
|
|
|
# Overwrite default player starting script with one running our bootloader
|
|
echo
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "!!! STEP 5: Modify startup script !!!"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo
|
|
cp $ROCKBOX_SRC/tools/agptek_rocker//hiby_player.sh $ROOTFS/usr/bin/hiby_player.sh && \
|
|
chmod 755 $ROOTFS/usr/bin/hiby_player.sh
|
|
|
|
# Rebuild ubifs
|
|
echo
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "!!! STEP 6: Rebuild system.ubi !!!"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo
|
|
mkfs.ubifs --min-io-size=2048 --leb-size=126976 --max-leb-cnt=1024 -o $HOME/system_rb.ubi -r $ROOTFS && \
|
|
mv $HOME/system_rb.ubi $ISO/system.ubi
|
|
|
|
# Fixup update.txt file with correct md5
|
|
echo
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "!!! STEP 7: Fixup update.txt !!!"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo
|
|
python $ROCKBOX_SRC/tools/agptek_rocker/update_update.py $ISO/update.txt
|
|
|
|
# Rebuild .upt file
|
|
echo
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "!!! STEP 8: Rebuild upt file !!!"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo
|
|
xorriso -as mkisofs -volid 'CDROM' --norock -output $UPT_DIR/update_rb.upt $ISO
|
|
|
|
# Build rockbox.zip
|
|
echo
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "!!! STEP 9: Build rockbox application !!!"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo
|
|
cd $BUILD && \
|
|
../tools/configure --target=240 --type=n && \
|
|
make clean && \
|
|
make && \
|
|
make zip && \
|
|
cp rockbox.zip $UPT_DIR/
|
|
|
|
# Cleanup
|
|
echo
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "!!! STEP 10: Cleanup !!!"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo
|
|
rm -rf $BUILD
|
|
rm -rf $ISO
|
|
rm -rf $ROOTFS
|
|
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "! Building finished !"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo
|
|
echo "You should find update_rb.upt and rockbox.zip in output directory"
|
|
echo
|
|
echo "1) Unzip rockbox.zip file in the root directory of SD card"
|
|
echo "2) Copy update_rb.upt to the root directory of SD card"
|
|
echo "3) Rename update_rb.upt to update.upt in SD card"
|
|
echo "4) Select update firmware on device"
|
|
echo
|