home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1999 November / VPR9911B.ISO / misc / src / trees / updboots < prev    next >
Text File  |  1999-08-30  |  7KB  |  266 lines

  1. #!/bin/sh
  2.  
  3. export PATH=/sbin:$PATH
  4. q=--quiet
  5.  
  6. KERNELROOT=/tmp/updboot.kernel-$$
  7.  
  8. SCSIMODULES="
  9.      53c7,8xx.o AM53C974.o BusLogic.o NCR53c406a.o advansys.o aha152x.o
  10.      aha1542.o aha1740.o aic7xxx.o dtc.o eata_dma.o eata_pio.o fdomain.o
  11.      g_NCR5380.o in2000.o megaraid.o ncr53c8xx.o pas16.o
  12.      qlogicisp.o seagate.o t128.o u14-34f.o wd7000.o ultrastor.o"
  13.  
  14. # broken network modules: at1700.o
  15. NETMODULES="
  16.      3c501.o 3c503.o 3c505.o 3c507.o 3c509.o 3c59x.o 82596.o 8390.o ac3200.o
  17.      epic100.o cs89x0.o de4x5.o de600.o de620.o dgrs.o e2100.o
  18.      eepro.o eepro100.o eexpress.o es3210.o eth16i.o hp-plus.o hp.o
  19.      hp100.o ibmtr.o lance.o lne390.o ne.o ne2k-pci.o ne3210.o ni52.o
  20.      ni5010.o ni65.o plip.o
  21.      pcnet32.o rtl8139.o rcpci45.o sktr.o smc9194.o smc-ultra.o
  22.      smc-ultra32.o tlan.o 
  23.      tulip.o wavelan.o wd.o yellowfin.o"
  24.  
  25. CDMODULES="
  26. aztcd.o      cm206.o      isp16.o      mcdx.o       sbpcd.o      sonycd535.o
  27. cdu31a.o     gscd.o       mcd.o        optcd.o      sjcd.o"
  28.  
  29. LOCALBLOCKMODULES="DAC960.o cpqarray.o"
  30.  
  31. BLOCKMODULES="loop.o"
  32.  
  33. LIBS=""
  34.  
  35. MISCMODULES="lp.o parport_pc.o parport.o"
  36.  
  37. NETMISCMODULES="sunrpc.o"
  38.  
  39. LOCALFSMODULES="vfat.o fat.o"
  40.  
  41. NETFSMODULES="nfs.o lockd.o vfat.o fat.o"
  42.  
  43. PCMCIAMODULES="pcmcia_core.o tcic.o ds.o i82365.o"
  44.  
  45. # this is an egrep expression, not a list!
  46. PRISTINEMODULES="(8390.o)|(loop.o)"
  47.  
  48. SBIN='$1/misc/src/install/install $1/misc/src/installinit/init'
  49.  
  50. MODLINKS="block cdrom fs ipv4 misc net scsi"
  51.  
  52.  
  53. usage () {
  54.     echo "updboots: <imagetree> <rpm-tree> <kernel-version> [dep]" 2>&1
  55.     exit 1
  56. }
  57.  
  58. if [ -z "$1" -o -z "$2" -o -z "$3" ]; then
  59.     usage
  60. fi
  61.  
  62.  
  63. mkdir -p $KERNELROOT
  64.  
  65. rpm2cpio $2/kernel-$3.i386.rpm | (cd $KERNELROOT; cpio -id)
  66.  
  67. if echo $3 | grep -e BOOT > /dev/null; then
  68.     kversion=`echo $3 | sed 's/BOOT-//'`
  69.     version=`echo ${kversion}BOOT`
  70. else
  71.     version=$3
  72. fi
  73.  
  74. if [ ! -d "$1/misc/src/install" ]; then
  75.     echo "$1 is not a valid directory" 2>&1
  76.     usage
  77. fi
  78.  
  79. if [ ! -d "$KERNELROOT/lib/modules/$version/scsi" ]; then
  80.     echo "$2 is not a valid modules directory" 2>&1
  81.     usage
  82. fi
  83.  
  84. if [ ! -f "$KERNELROOT/boot/vmlinuz-$version" ]; then
  85.     echo "$KERNELROOT/boot/vmlinuz-$version does not exist"
  86.     usage
  87. fi
  88.  
  89. rm -rf initrd
  90. mkdir -p initrd/modules
  91. mkdir -p initrd/sbin
  92. mkdir -p initrd/var
  93. ln -s ../tmp initrd/var/run
  94.  
  95. rm -rf local/modules network/modules ../../../LASER5/instimage/modules
  96. mkdir -p local/modules network/modules ../../../LASER5/instimage/modules
  97.  
  98. for n in $SCSIMODULES; do 
  99.     cp $KERNELROOT/lib/modules/$version/scsi/$n ./local/modules
  100.     cp $KERNELROOT/lib/modules/$version/scsi/$n ../../../LASER5/instimage/modules
  101. done
  102.  
  103. for n in $LOCALBLOCKMODULES; do
  104.     cp $KERNELROOT/lib/modules/$version/block/$n ./local/modules
  105.     cp $KERNELROOT/lib/modules/$version/block/$n ../../../LASER5/instimage/modules
  106. done
  107.  
  108. for n in $NETMODULES; do 
  109.     cp $KERNELROOT/lib/modules/$version/net/$n ./network/modules
  110.     cp $KERNELROOT/lib/modules/$version/net/$n ../../../LASER5/instimage/modules
  111. done
  112.  
  113. for n in $CDMODULES; do 
  114.     cp $KERNELROOT/lib/modules/$version/cdrom/$n ./local/modules
  115.     cp $KERNELROOT/lib/modules/$version/cdrom/$n ../../../LASER5/instimage/modules
  116. done
  117.     
  118. for n in $MISCMODULES; do 
  119.     cp $KERNELROOT/lib/modules/$version/misc/$n ./network/modules
  120.     cp $KERNELROOT/lib/modules/$version/misc/$n ./local/modules
  121.     cp $KERNELROOT/lib/modules/$version/misc/$n ../../../LASER5/instimage/modules
  122. done
  123.  
  124. for n in $NETMISCMODULES; do 
  125.     cp $KERNELROOT/lib/modules/$version/misc/$n ./network/modules
  126.     cp $KERNELROOT/lib/modules/$version/misc/$n ../../../LASER5/instimage/modules
  127. done
  128.     
  129. for n in $LOCALFSMODULES; do 
  130.     cp $KERNELROOT/lib/modules/$version/fs/$n ./local/modules
  131.     cp $KERNELROOT/lib/modules/$version/fs/$n ../../../LASER5/instimage/modules
  132. done
  133.  
  134. for n in $NETFSMODULES; do 
  135.     cp $KERNELROOT/lib/modules/$version/fs/$n ./network/modules
  136.     cp $KERNELROOT/lib/modules/$version/fs/$n ../../../LASER5/instimage/modules
  137. done
  138.  
  139. for n in $BLOCKMODULES; do 
  140.     cp $KERNELROOT/lib/modules/$version/block/$n ./initrd/modules
  141.     cp $KERNELROOT/lib/modules/$version/block/$n ../../../LASER5/instimage/modules
  142. done
  143.  
  144. for I in local/modules network/modules ../../../LASER5/instimage/modules; do
  145.     echo -n "Computing $I dependencies... "
  146.  
  147.     cd $I;
  148.  
  149.     SPACE2=`du -s . | awk '{print $1}'`
  150.  
  151.     /sbin/depmod -m $KERNELROOT/boot/System.map-$version -i -e *.o | \
  152.           grep ':.*o' | \
  153.           sed -e 's/\.o//g' \
  154.               -e 's/lp: parport/lp: parport_pc/g' \
  155.               -e 's/plip: parport/plip: parport_pc/g' > modules.dep
  156.     if grep "unresolved symbol" modules.dep; then
  157.     echo "ERROR - Unresolved symbols in $I"
  158.     else
  159.         echo "done. "
  160.     fi
  161.  
  162.     echo -n "Balling $I modules... "
  163.     ls *.o | egrep -v "$PRISTINEMODULES|(modules.dep)" | cpio $q -H crc -o | 
  164.     gzip -9 > modules.cgz; 
  165.     gunzip < modules.cgz | cpio $q -t | xargs rm -f
  166.  
  167.     SPACE1=`du -s . | awk '{print $1}'`
  168.     cd -
  169.  
  170.     DIFF=`expr $SPACE2 - $SPACE1`
  171.     echo "done (saved ${DIFF}k)"
  172. done
  173.  
  174. for n in $LIBS; do
  175.     # this preserves hard links
  176.     rm -f initrd/usr/lib/$n*
  177.     (cd /lib; tar cSpf - ${n}*) | (cd initrd/usr/lib; tar xSpf -)
  178. done
  179.  
  180. for n in $PCMCIAMODULES; do 
  181.     ln -s /tmp/pcmcia/lib/modules/preferred/pcmcia/$n ./initrd/modules
  182.     ln -s /tmp/pcmcia/lib/modules/preferred/pcmcia/$n ../../../LASER5/instimage/modules
  183. done
  184.  
  185. rm -rf initrd/etc
  186. mkdir initrd/etc
  187. cp -a keymaps/keymaps.gz initrd/etc
  188. cp -a fonts.cgz initrd/etc
  189. cp -a ../install/install1.tr initrd/etc
  190. ln -s /usr/etc/install2.tr initrd/etc/install2.tr
  191.  
  192. rm -rf initrd/usr/lib/terminfo
  193. mkdir -p initrd/usr/lib/terminfo/l
  194. rm -rf initrd/usr/share
  195. ln -s lib initrd/usr/share
  196. cp /usr/share/terminfo/l/linux initrd/usr/lib/terminfo/l/linux
  197. tic linux-lat.terminfo 
  198. cp /usr/share/terminfo/l/linux-lat initrd/usr/lib/terminfo/l/linux-lat
  199.  
  200. for n in $SBIN; do
  201.     file=`eval echo $n`
  202.     strip $file
  203.     cp -f $file initrd/sbin
  204. done
  205.  
  206. ln -s install initrd/sbin/insmod
  207. ln -s install initrd/sbin/rmmod
  208. ln -s /usr/bin/sh initrd/sbin/sh
  209.  
  210. mkdir -p initrd/usr/lib/rpm
  211. rm -f initrd/usr/lib/rpm/rpmrc
  212. cp -ar /usr/lib/rpm/rpmrc initrd/usr/lib/rpm/rpmrc
  213.  
  214. ln -sf /sbin/init initrd/linuxrc
  215.  
  216. rm -f initrd/etc/mtab
  217. ln -sf /proc/mounts initrd/etc/mtab
  218.  
  219. rm -rf initrd/dev
  220. mkdir -p initrd/dev
  221.  
  222. mknod initrd/dev/console c 5 1
  223. chmod 600 initrd/dev/console
  224.  
  225. mknod initrd/dev/ttyS0 c 4 64
  226. chmod 644 initrd/dev/ttyS0
  227.  
  228. mknod initrd/dev/null c 1 3
  229. chmod 666 initrd/dev/null
  230.  
  231. mknod initrd/dev/mem c 1 1
  232. chmod 600 initrd/dev/mem
  233.  
  234. mknod initrd/dev/ram b 1 1
  235. chmod 640 initrd/dev/ram
  236.  
  237. for TTY in 0 1 2 3 4 5; do
  238.     mknod initrd/dev/tty$TTY c 4 $TTY
  239.     chmod 600 initrd/dev/tty$TTY
  240.     chown root:tty initrd/dev/tty$TTY
  241. done
  242.  
  243. mkdir -p initrd/proc
  244. mkdir -p initrd/tmp
  245. mkdir -p initrd/lost+found
  246. ln -s sbin initrd/bin
  247.  
  248. cat > initrd/.profile << EOF
  249. PATH=/bin:/usr/bin:/mnt/sbin:/mnt/usr/sbin:/mnt/bin:/mnt/usr/bin
  250. export PATH
  251. EOF
  252.  
  253. cp -f "$KERNELROOT/boot/vmlinuz-$version" boot/vmlinuz
  254. rm -rf pcmcia/lib/*
  255. mkdir -p pcmcia/lib/modules/${version}/pcmcia
  256. cp $KERNELROOT/lib/modules/$version/pcmcia/* pcmcia/lib/modules/${version}/pcmcia
  257. for n in $MODLINKS; do 
  258.     ln -s /modules pcmcia/lib/modules/${version}/$n
  259. done
  260. ln -s ${version} pcmcia/lib/modules/preferred
  261.  
  262. rm -rf $KERNELROOT
  263.  
  264. mkdir -p $1/dosutils/autoboot
  265. cp boot/vmlinuz $1/dosutils/autoboot/vmlinuz
  266.