| 1 | #!/bin/bash |
|---|
| 2 | |
|---|
| 3 | NEWROOTFS="./BareGenMoko" |
|---|
| 4 | TINDERBOX="./TinderGenMoko" |
|---|
| 5 | ADDPKGS="dhcpcd dropbear \ |
|---|
| 6 | iptables \ |
|---|
| 7 | libusb \ |
|---|
| 8 | mtd-utils \ |
|---|
| 9 | sqlite \ |
|---|
| 10 | usbutils \ |
|---|
| 11 | vim \ |
|---|
| 12 | wireless-tools wpa_supplicant" |
|---|
| 13 | EMRGCMD="emerge-armv4tl-softfloat-linux-gnueabi" |
|---|
| 14 | LOG="log.`echo ${0} | sed -e 's/\.\///'`" |
|---|
| 15 | DEFAULT_SERVICES="dropbear hald" |
|---|
| 16 | BOOT_SERVICES="net.eth0 net.usb0" |
|---|
| 17 | SYS_SERVICES="udev sysfs" |
|---|
| 18 | |
|---|
| 19 | |
|---|
| 20 | echo "Pruning ${NEWROOTFS}" |
|---|
| 21 | rm -rfv ${NEWROOTFS} > ${LOG} |
|---|
| 22 | |
|---|
| 23 | echo "Setting up basic directories" |
|---|
| 24 | for i in boot etc dev proc root sys media/card media/card2; do |
|---|
| 25 | mkdir -vp ${NEWROOTFS}/${i} >> ${LOG}; |
|---|
| 26 | done; |
|---|
| 27 | mknod ${NEWROOTFS}/dev/null c 1 3 |
|---|
| 28 | mknod ${NEWROOTFS}/dev/console c 5 1 |
|---|
| 29 | |
|---|
| 30 | echo "Setting up basic configuration" |
|---|
| 31 | for i in $( ls ${TINDERBOX}/etc/ | grep -iv portage ); do |
|---|
| 32 | cp -vR ${TINDERBOX}/etc/${i} ${NEWROOTFS}/etc/ >> ${LOG}; |
|---|
| 33 | done; |
|---|
| 34 | |
|---|
| 35 | echo "Setting up portage configuration" |
|---|
| 36 | cp -LRv ${TINDERBOX}/etc/portage ${NEWROOTFS}/etc/ >> ${LOG} |
|---|
| 37 | sed -i -e 's/\(EMERGE_DEFAULT_OPTS=.*\)"$/\1 --getbinpkg"/' \ |
|---|
| 38 | -e 's/buildpkg//' \ |
|---|
| 39 | -e 's/INSTALL_MASK="/INSTALL_MASK="*.h /' \ |
|---|
| 40 | ${NEWROOTFS}/etc/make.conf |
|---|
| 41 | cp -Lv /etc/resolv.conf ${NEWROOTFS}/etc/ >> ${LOG} |
|---|
| 42 | |
|---|
| 43 | echo "Updating remote binpkgs" |
|---|
| 44 | ./sync-binpkgs >> ${LOG} |
|---|
| 45 | echo "Installing bare @system" |
|---|
| 46 | ROOT=${NEWROOTFS} USE="-X" ${EMRGCMD} -vg vim system >> ${LOG} |
|---|
| 47 | echo "adding my packages" |
|---|
| 48 | ROOT=${NEWROOTFS} USE="-X" ${EMRGCMD} -vg --noreplace ${ADDPKGS} >> ${LOG} |
|---|
| 49 | |
|---|
| 50 | echo "Fixing GCC" |
|---|
| 51 | #for i in $( find /usr/lib* -name libgcc_s*.so* | grep armv4tl ); do |
|---|
| 52 | # if [ -d `dirname ${i}` ] ; then |
|---|
| 53 | # mkdir -p `dirname ${i}` |
|---|
| 54 | # fi |
|---|
| 55 | # echo " "`echo ${i} | sed -e 's/.*\///'`; |
|---|
| 56 | # cp -v ${i} ${NEWROOTFS}/`echo ${i} | sed -e 's/lib64/lib/'`; |
|---|
| 57 | #done; |
|---|
| 58 | #for i in $( find /usr/lib* -name libstdc++*.so* | grep armv4tl ); do |
|---|
| 59 | # if [ -d `dirname ${i}` ] ; then |
|---|
| 60 | # mkdir -p `dirname ${i}` |
|---|
| 61 | # fi |
|---|
| 62 | # echo " "`echo ${i} | sed -e 's/.*\///'`; |
|---|
| 63 | # cp -v ${i} ${NEWROOTFS}/`echo ${i} | sed -e 's/lib64/lib/'`; |
|---|
| 64 | #done; |
|---|
| 65 | cp -v /usr/lib64/gcc/armv4tl-softfloat-linux-gnueabi/4.3.3/libgcc_s.so.1 \ |
|---|
| 66 | ${NEWROOTFS}/usr/lib64/gcc/armv4tl-softfloat-linux-gnueabi/4.3.3/libgcc_s.so.1 |
|---|
| 67 | ln -s ./libgcc_s.so.1 \ |
|---|
| 68 | ${NEWROOTFS}/usr/lib64/gcc/armv4tl-softfloat-linux-gnueabi/4.3.3/libgcc_s.so |
|---|
| 69 | cp -v /usr/lib64/gcc/armv4tl-softfloat-linux-gnueabi/4.3.3/libstdc++.so.6.0.10 \ |
|---|
| 70 | ${NEWROOTFS}/usr/lib64/gcc/armv4tl-softfloat-linux-gnueabi/4.3.3/libstdc++.so.6.0.10 |
|---|
| 71 | ln -s ./libstdc++.so.6.0.10 \ |
|---|
| 72 | ${NEWROOTFS}/usr/lib64/gcc/armv4tl-softfloat-linux-gnueabi/4.3.3/libstdc++.so.6 |
|---|
| 73 | ln -s ./libstdc++.so.6.0.10 \ |
|---|
| 74 | ${NEWROOTFS}/usr/lib64/gcc/armv4tl-softfloat-linux-gnueabi/4.3.3/libstdc++.so |
|---|
| 75 | |
|---|
| 76 | echo "Installing base applications" |
|---|
| 77 | # hack(s) to install sturdy app(s) |
|---|
| 78 | EXTRA_ECONF="--enable-unique" ROOT=${NEWROOTFS} ${EMRGCMD} -v eix >> ${LOG} |
|---|
| 79 | |
|---|
| 80 | echo "Installing custom files" |
|---|
| 81 | cp -Rv dingbat_config/* ${NEWROOTFS}/ >> ${LOG} |
|---|
| 82 | cp -Lv /etc/wpa_supplicant/wpa_supplicant.conf ${NEWROOTFS}/etc/wpa_supplicant/ >> ${LOG} |
|---|
| 83 | |
|---|
| 84 | echo "Installing services" |
|---|
| 85 | ln -s ./net.lo ${NEWROOTFS}/etc/init.d/net.eth0 |
|---|
| 86 | ln -s ./net.lo ${NEWROOTFS}/etc/init.d/net.usb0 |
|---|
| 87 | for i in ${DEFAULT_SERVICES}; do |
|---|
| 88 | ln -s /etc/init.d/${i} ${NEWROOTFS}/etc/runlevels/default/; |
|---|
| 89 | done; |
|---|
| 90 | for i in ${BOOT_SERVICES}; do |
|---|
| 91 | ln -s /etc/init.d/${i} ${NEWROOTFS}/etc/runlevels/boot/; |
|---|
| 92 | done; |
|---|
| 93 | for i in ${SYS_SERVICES}; do |
|---|
| 94 | ln -s /etc/init.d/${i} ${NEWROOTFS}/etc/runlevels/sysinit/; |
|---|
| 95 | done; |
|---|
| 96 | |
|---|
| 97 | echo "Finding newest kernel" |
|---|
| 98 | # FIXME - for now we just dump what we find |
|---|
| 99 | echo "Loading modules" |
|---|
| 100 | tar -xzpvf AndyTracking/GTA02/modules-GTA02_andy-tracking-*.tar.gz -C ${NEWROOTFS}/ >> ${LOG} |
|---|
| 101 | |
|---|
| 102 | echo "uncompressed size: `du -sh ${NEWROOTFS}/`" |
|---|
| 103 | |
|---|
| 104 | echo "Creating image" |
|---|
| 105 | mkfs.jffs2 -r ${NEWROOTFS}/ --pad=0x700000 -o BareGenMoko.jffs2 -e 0x20000 -n |
|---|
| 106 | echo "compressed size: `du -b BareGenMoko.jffs2` Bytes" |
|---|
| 107 | echo "Done." |
|---|