#!/bin/bash #**************************************************************************** # # Copyright (c) 2001, 2002 Broadcom Corporation # All Rights Reserved # No portions of this material may be reproduced in any form without the # written permission of: # Broadcom Corporation # 16251 Laguna Canyon Road # Irvine, California 92618 # All information contained in this document is Broadcom Corporation # company private, proprietary, and trade secret. # #**************************************************************************** TOP_DIR=`pwd` if [ "$MOD_DIR" == "" ] ; then MOD_DIR=$PROFILE/modules fi if [ "$FSSRC_DIR" == "" ]; then FSSRC_DIR=./fs.src fi ROOTFS=$PROFILE/fs rm -rf $ROOTFS # Create file system dir mkdir $ROOTFS chmod 777 $ROOTFS # Copy files onto root file system echo "Creating target root file system..." cp -av $FSSRC_DIR/* $ROOTFS # Create directories as needed mkdir $ROOTFS/dev mkdir $ROOTFS/mnt mkdir $ROOTFS/proc mkdir $ROOTFS/var mkdir $ROOTFS/etc/adsl cp -av $BRCMDRIVERS_DIR/broadcom/char/adsl/bcm9$BRCM_CHIP/*.bin $ROOTFS/etc/adsl DEFAULTCFG=`echo $DEFAULTCFG_DIR/$BRCM_DEFAULTCFG|sed -e 's/\"//g'` if [ -f "$DEFAULTCFG" ]; then cp -v $DEFAULTCFG $ROOTFS/etc/default.cfg; chmod a+r $ROOTFS/etc/default.cfg elif [ $BRCM_DEFAULTCFG != '""' ]; then echo echo " No default run-time config file called $BRCM_DEFAULTCFG in $DEFAULTCFG_DIR" echo " Check your profile setting!" exit 1 else echo fi # Create devices ./makeDevs # Create symbolic links ln -s /var/log/log $ROOTFS/dev/log ln -s /var/sysmsg $ROOTFS/etc/sysmsg ln -s /var/passwd $ROOTFS/etc/passwd ln -s /var/group $ROOTFS/etc/group ln -s /var/ppp/pppmsg $ROOTFS/etc/pppmsg ln -s /var/fyi/sys/dns $ROOTFS/etc/resolv.conf ln -s /var/fyi/sys/gateway $ROOTFS/etc/gateway.conf ln -s /var/udhcpd/udhcpd.conf $ROOTFS/etc/udhcpd.conf ln -s /var/udhcpd/udhcpd.leases $ROOTFS/etc/udhcpd.leases if [ -x $PROFILE/special-buildFS ]; then $PROFILE/special-buildFS fi # Copy proprietary binaries if any FSBIN=`ls $TOP_DIR/fs.bin|wc -l` if [ $FSBIN != 0 ]; then echo "Copying proprietary binaries..." cd $TOP_DIR cp -avf fs.bin/* $ROOTFS fi # Stripping unneeded module symbols cd $MOD_DIR cp -a lib $TOP_DIR/$ROOTFS/. chown -R root:root $TOP_DIR/$ROOTFS/lib echo "Stripping kernel modules..." find $TOP_DIR/$ROOTFS/lib/modules -name "*.ko" #Modules that need parameters cannot be stripped #MODS_KEEPSYM='! -name "ip_conntrack_pt.ko" ! -name "ip_nat_pt.ko"' MODS_KEEPSYM='! -name "ip*.ko"' eval "find $TOP_DIR/$ROOTFS/lib/modules -name '*.ko' $MODS_KEEPSYM |xargs $STRIP --strip-unneeded" # Continue to strip user apps and shared libraries using sstrip echo "Stripping userapps and shared libraries more..." $SSTRIP $TOP_DIR/$ROOTFS/bin/* $TOP_DIR/$ROOTFS/lib/*.so*