home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1999 May / pcp151c.iso / misc / src / trees / updboots < prev    next >
Encoding:
Text File  |  1998-10-08  |  3.8 KB  |  155 lines

  1. #!/bin/sh
  2.  
  3. q=--quiet
  4.  
  5. SCSIMODULES="
  6.     53c7,8xx.o BusLogic.o NCR53c406a.o advansys.o aha152x.o aha1542.o 
  7.     aha1740.o aic7xxx.o dtc.o eata_dma.o eata_pio.o fdomain.o 
  8.     g_NCR5380.o in2000.o pas16.o ppa.o qlogicfas.o qlogicisp.o gdth.o
  9.     seagate.o t128.o wd7000.o ultrastor.o u14-34f.o ncr53c8xx.o"
  10.  
  11. NETMODULES="apricot.o e2100.o eexpress.o eepro100.o smc-ultra32.o
  12.     de4x5.o ewrk3.o hp-plus.o hp.o hp100.o ibmtr.o ne.o smc-ultra.o 
  13.     smc9194.o tulip.o wd.o plip.o 3c501.o 3c503.o 3c509.o 3c59x.o
  14.     8390.o de600.o de620.o depca.o arcnet.o at1700.o eepro.o ni52.o ni65.o
  15.     3c515.o atp.o epic100.o eth16i.o lance.o ne2k-pci.o pcnet32.o"
  16.  
  17. CDMODULES="aztcd.o gscd.o mcd.o mcdx.o optcd.o sbpcd.o sjcd.o sonycd535.o
  18.       cdrom.o cdu31a.o cm206.o isp16.o bpcd.o"
  19.  
  20. BLOCKMODULES="loop.o"
  21.  
  22. LIBS=""
  23.  
  24. MISCMODULES="lp.o"
  25.  
  26. FSMODULES="isofs.o nfs.o smbfs.o vfat.o"
  27.  
  28. PCMCIAMODULES="pcmcia_core.o tcic.o ds.o i82365.o"
  29.  
  30. # this is an egrep expression, not a list!
  31. PRISTINEMODULES="(8390.o)|(loop.o)"
  32.  
  33. SBIN='$1/misc/src/install/install $1/misc/src/installinit/init'
  34.  
  35. usage () {
  36.     echo "updboots: <imagetree> <kernel-version>" 2>&1
  37.     exit 1
  38. }
  39.  
  40. if [ -z "$1" -o -z "$2" ]; then
  41.     usage
  42. fi
  43.  
  44. if echo $2 | grep -e - > /dev/null; then
  45.     shortname=`echo $2 | sed 's/-.*//'`
  46. else
  47.     shortname=$2
  48. fi
  49.  
  50. if [ ! -d "$1/misc/src/install" ]; then
  51.     echo "$1 is not a valid directory" 2>&1
  52.     usage
  53. fi
  54.  
  55. if [ ! -d "/lib/modules/$2/scsi" ]; then
  56.     echo "$2 is not a valid modules directory" 2>&1
  57.     usage
  58. fi
  59.  
  60. if [ ! -f "/boot/vmlinuz-$2" ]; then
  61.     echo "/boot/vmlinuz-$2 does not exist"
  62.     usage
  63. fi
  64.  
  65. rm -rf initrd/modules
  66. mkdir initrd/modules
  67.  
  68. for n in $SCSIMODULES; do 
  69.     cp /lib/modules/$2/scsi/$n ./initrd/modules
  70. done
  71.  
  72. for n in $NETMODULES; do 
  73.     cp /lib/modules/$2/net/$n ./initrd/modules
  74. done
  75.  
  76. for n in $CDMODULES; do 
  77.     cp /lib/modules/$2/cdrom/$n ./initrd/modules
  78. done
  79.     
  80. for n in $MISCMODULES; do 
  81.     cp /lib/modules/$2/misc/$n ./initrd/modules
  82. done
  83.     
  84. for n in $FSMODULES; do 
  85.     cp /lib/modules/$2/fs/$n ./initrd/modules
  86. done
  87.  
  88. for n in $BLOCKMODULES; do 
  89.     cp /lib/modules/$2/block/$n ./initrd/modules
  90. done
  91.  
  92. SPACE1=`du -s initrd | awk '{print $1}'`
  93. #echo -n "Stripping modules... "
  94. #for n in initrd/modules/*.o; do
  95.     #strip `nm $n | grep ' [a-z] '| awk '{ print "--strip-symbol=" $3}'` $n
  96. #done
  97. SPACE2=`du -s initrd | awk '{print $1}'`
  98. #DIFF=`expr $SPACE1 - $SPACE2`
  99. #echo "done (saved ${DIFF}k)"
  100.  
  101. echo -n "Balling modules... "
  102. (cd initrd/modules; 
  103.  ls *.o | egrep -v "$PRISTINEMODULES" | cpio $q -H crc -o | 
  104.     gzip -9 > modules.cgz; 
  105.  gunzip < modules.cgz | cpio $q -t | xargs rm -f )
  106. SPACE1=`du -s initrd | awk '{print $1}'`
  107. SPACE1=`du -s initrd | awk '{print $1}'`
  108. DIFF=`expr $SPACE2 - $SPACE1`
  109. echo "done (saved ${DIFF}k)"
  110.  
  111. for n in $PCMCIAMODULES; do 
  112.     ln -s /lib/modules/${shortname}/pcmcia/$n ./initrd/modules
  113. done
  114.  
  115. for n in $LIBS; do
  116.     # this preserves hard links
  117.     rm -f initrd/usr/lib/$n*
  118.     (cd /lib; tar cSpf - ${n}*) | (cd initrd/usr/lib; tar xSpf -)
  119. done
  120.  
  121. #(cd initrd/usr/lib; file * | grep 'shared object' | cut -d: -f1 | xargs strip)
  122.  
  123. rm -rf initrd/etc
  124. mkdir initrd/etc
  125. cp -a keymaps/keymaps.gz initrd/etc
  126. cp -a fonts.cgz initrd/etc
  127. cp -a ../install/install1.tr initrd/etc
  128. ln -s /usr/etc/install2.tr initrd/etc/install2.tr
  129.  
  130. rm -rf initrd/usr/lib/terminfo
  131. mkdir -p initrd/usr/lib/terminfo/l
  132. rm -rf initrd/usr/share
  133. ln -s initrd/usr/lib initrd/usr/share
  134. cp /usr/share/terminfo/l/linux initrd/usr/lib/terminfo/l/linux
  135. tic linux-lat.terminfo 
  136. cp /usr/share/terminfo/l/linux-lat initrd/usr/lib/terminfo/l/linux-lat
  137.  
  138. for n in $SBIN; do
  139.     file=`eval echo $n`
  140.     strip $file
  141.     cp -f $file initrd/sbin
  142. done
  143.  
  144. rm -f initrd/usr/lib/rpm/rpmrc
  145. cp -a /usr/lib/rpm/rpmrc initrd/usr/lib/rpm/rpmrc
  146.  
  147. cp -f "/boot/vmlinuz-$2" boot/vmlinuz
  148.  
  149. ln -sf /sbin/init initrd/linuxrc
  150.  
  151. rm -f initrd/etc/mtab
  152. ln -sf /proc/mounts initrd/etc/mtab
  153.  
  154. cp boot/vmlinuz $1/dosutils/autoboot/vmlinuz
  155.