#!/bin/bash # source the GN*NIX work environment . /usr/local/gnnix/tool/gnxenv if [ "$BOOT" == "" ]; then exit 0 fi rm -rf $GNNIX/base/boot mkdir -p $GNNIX/base/boot cd $BOOT # directory mkdir -p bin dev tmp proc sys var var/log var/run var/lock/subsys mnt mnt/{cdrom,floppy,root,ram0} etc/init.d usr/share/kbd/keymaps lib/modules/${KVER} mkdir -p etc/udev etc/dev.d/default etc/hotplug.d/default etc/hotplug mkdir usr/share/{et,ss,locale} usr/share/locale/{cs,de,it,sv,tr} mkdir usr/share/locale/cs/LC_MESSAGES mkdir usr/share/locale/de/LC_MESSAGES mkdir usr/share/locale/it/LC_MESSAGES mkdir usr/share/locale/sv/LC_MESSAGES mkdir usr/share/locale/tr/LC_MESSAGES tar xfz $GNNIX/tool/busybox.tgz #make devices cd dev #mkdir pts #$GNNIX/tool/mkdevs mknod console c 5 1 mknod ram0 b 1 0 # reset and make tty for busybox mknod tty c 5 0 SUFFIXES="0 1 2 3 4 5" let MAJOR=0 for i in $SUFFIXES; do mknod tty$i c 4 $MAJOR let MAJOR=${MAJOR}+1 done mkdir pts cd $BOOT #no mtab? touch /etc/mtab touch var/run/utmp #/dev/ram1 /dev ramfs defaults echo " devpts /dev/pts devpts gid=5,mode=620 proc /proc proc defaults sysfs /sys sysfs defaults /dev/ram0 / ext2 defaults /dev/fd0 /mnt/floppy auto noauto,owner" > etc/fstab #passwd echo "root::0:0:root:/root:/bin/sh bin::1:1:bin:/bin:/bin/false mail::8:12:mail:/:/bin/false news::9:13:news:/usr/lib/news:/bin/false uucp::10:14:uucp:/var/spool/uucppublic:/bin/false ftp::14:50::/home/ftp:/bin/false cron::23:23:cron:/var/cron:/bin/false smmsp::25:25:smmsp:/var/spool/clientmqueue:/bin/false rpc::32:32:RPC portmap user:/:/bin/false sshd::33:33:sshd user:/var/empty:/bin/false gdm::42:42:gui:/var/state/gdm:/bin/false postgres::98:506:db user:/usr/local/pgsql:/bin/bash nobody::99:99:nobody:/:/bin/false zeroinst::498:498:zero install:/usr/local/zero:/bin/bash postfix::499:499:postfix:/var/mail:/bin/false" > etc/passwd #group echo "root::0:root bin::1:root,bin,daemon daemon::2:root,bin,daemon sys::3:root,bin,adm tty::5: daemon::6: floppy::7: disk::8: lp::9: dialout::10: audio::11: mail::12:mail news::13:news uucp::14:uucp cron::18:cron,root postdrop::21:postfix,root postfix::23:postfix smmsp::25:smmsp rpc::32:rpc sshd::33:sshd gdm::42:gdm ftp::50:ftp nogroup::99:nobody zeroinst::498:zeroinst" > etc/group #hosts echo "127.0.0.1 localhost.localdomain localhost" > etc/hosts #libs cd $UCLIB/lib cp -a libc.so* \ libuClibc*.so \ libdl* libm* \ ld-* \ libext2fs.* \ libcom_err.* \ libblkid.* \ libuuid.* \ libe2p.* \ $BOOT/lib cd $UCLIB/usr/lib cp -a libintl.so* \ $BOOT/lib #curses cd $GNNIX/tiny/usr/local/gnnix/base/boot/lib cp -a libncurses.so* $BOOT/lib cd $BOOT #terminfo hack mkdir -p ${BOOT}${BOOT}/share/terminfo/l/ cp -a $GNNIX/tiny/${BOOT}/share/terminfo/l/linux* ./${BOOT}/share/terminfo/l/ cp -a $DIST/usr/share/zoneinfo ${BOOT}/usr/share/ cd $BOOT/bin #dialog cp $GNNIX/tiny/work/dialog-0.9b-20031207/dialog . #unzip cp $GNNIX/tool/unzip $BOOT/bin #fdisk cp -a $GNNIX/tiny/work/util-linux-2.12pre/fdisk/fdisk . cp -a $GNNIX/tiny/work/util-linux-2.12pre/fdisk/sfdisk . cp -a $GNNIX/tiny/work/util-linux-2.12pre/fdisk/cfdisk . #e2fsprog ext2 and ext3 cp -a $GNNIX/tiny/sbin/e2fsck . cp -a $GNNIX/tiny/sbin/mke2fs . ln -sf mke2fs mkfs.ext3 ln -sf mke2fs mkfs.ext2 cd $BOOT/usr/share cd $BOOT/usr/share/locale/cs/LC_MESSAGES/ cp $GNNIX/tiny/usr/share/locale/cs/LC_MESSAGES/e2fsprogs.mo . cd $BOOT/usr/share/locale/de/LC_MESSAGES/ cp $GNNIX/tiny/usr/share/locale/de/LC_MESSAGES/e2fsprogs.mo . cd $BOOT/usr/share/locale/it/LC_MESSAGES/ cp $GNNIX/tiny/usr/share/locale/it/LC_MESSAGES/e2fsprogs.mo . cd $BOOT/usr/share/locale/sv/LC_MESSAGES/ cp $GNNIX/tiny/usr/share/locale/sv/LC_MESSAGES/e2fsprogs.mo . cd $BOOT/usr/share/locale/tr/LC_MESSAGES/ cp $GNNIX/tiny/usr/share/locale/tr/LC_MESSAGES/e2fsprogs.mo . cd $BOOT/usr/share/et cp $GNNIX/tiny/usr/share/et/et_c.awk . cp $GNNIX/tiny/usr/share/et/et_h.awk . cd $BOOT/usr/share/ss cp $GNNIX/tiny/usr/share/ss/ct_c.awk . cp $GNNIX/tiny/usr/share/ss/ct_c.sed . # xfs tools cd $BOOT/bin cp -a $GNNIX/tiny/usr/sbin/fsck.xfs . cp -a $GNNIX/tiny/usr/sbin/mkfs.xfs . #cp $GNNIX/tiny/usr/bin/xfs_copy . #cp $GNNIX/tiny/usr/bin/xfs_db . #cp $GNNIX/tiny/usr/bin/xfs_admin . cp -a $GNNIX/tiny/usr/bin/xfs_check . cp -a $GNNIX/tiny/usr/bin/xfs_ncheck . cp -a $GNNIX/tiny/usr/bin/xfs_freeze . #cp $GNNIX/tiny/usr/bin/xfs_growfs . #cp $GNNIX/tiny/usr/bin/xfs_info . #cp $GNNIX/tiny/usr/bin/xfs_io . #cp $GNNIX/tiny/usr/bin/xfs_bmap . #cp $GNNIX/tiny/usr/bin/xfs_logprint . cp -a $GNNIX/tiny/usr/bin/xfs_mkfile . #cp $GNNIX/tiny/usr/bin/xfs_rtcp . cp -a $GNNIX/tiny/usr/sbin/xfs_repair . # libs part of xfs cd $BOOT/lib cp -a $GNNIX/tiny/usr/lib/libhandle.so.1.0.2 . cp -a $GNNIX/tiny/usr/lib/libhandle.so.1 . #jfs cd $BOOT/bin tar xfz $GNNIX/tool/jfs.tgz #kbd cd $BOOT/bin cp -a $GNNIX/tiny/work/kbd-1.10/src/loadkeys . cd $BOOT cp -ar $GNNIX/tiny/work/kbd-1.10/data/keymaps/i386 usr/share/kbd/keymaps/ #nano cp $GNNIX/tiny/work/nano-1.3.1/src/nano $BOOT/bin # sysinit echo "#!/bin/sh mount /proc mount /sys mount /dev/pts echo /bin/udev > /proc/sys/kernel/hotplug /etc/init.d/udev start 2>/tmp/ulog 1>/tmp/ulog /etc/init.d/hotplug start 2>>/tmp/ulog 1>>/tmp/ulog /bin/udevd start mount -a /bin/locknload" > etc/init.d/rcS chmod +x etc/init.d/rcS cp $GNNIX/tool/startudev etc/init.d/udev chmod +x etc/init.d/udev #udev cp $GNNIX/tiny/etc/udev/udev.conf $BOOT/etc/udev/ cp $GNNIX/tiny/etc/udev/udev.rules $BOOT/etc/udev/ cp $GNNIX/tiny/etc/udev/udev.permissions $BOOT/etc/udev/ cp $GNNIX/tiny/sbin/udev $BOOT/bin cp $GNNIX/tiny/sbin/udevd $BOOT/bin cp $GNNIX/tiny/sbin/udevsend $BOOT/bin cp $GNNIX/tiny/usr/bin/udevinfo $BOOT/bin cp $GNNIX/tiny/usr/bin/udevtest $BOOT/bin cp $GNNIX/tiny/sbin/udevstart $BOOT/bin ln -fs bin/udevsend etc/hotplug.d/default/udev.hotplug #hotplug cp $GNNIX/tiny/work/${HOTPLUG}/etc/hotplug.d/default/default.hotplug $BOOT/etc/hotplug.d/default/ mkdir $BOOT/etc/hotplug/{pci,usb} cp -a $GNNIX/tiny/work/${HOTPLUG}/etc/hotplug/* $BOOT/etc/hotplug/ cp $GNNIX/tiny/work/${HOTPLUG}/etc/rc.d/init.d/hotplug $BOOT/etc/init.d/ chmod +x $BOOT/etc/init.d/hotplug cp $GNNIX/tiny/work/${HOTPLUG}/sbin/hotplug $BOOT/sbin/ chmod +x $BOOT/sbin/hotplug #pciutils cp $GNNIX/tiny/work/pciutils-2.1.99-test3/lspci $BOOT/bin cp $GNNIX/tiny/work/pciutils-2.1.99-test3/setpci $BOOT/bin chmod +x $BOOT/bin/lspci $BOOT/bin/setpci #grub cp $GNNIX/tiny/sbin/grub $BOOT/bin # call with a -k argument after making kernel changes if [ "$1" == "-k" ]; then cd $ROOT/dist/usr/src/linux-${KVER} make INSTALL_MOD_PATH=$BOOT modules_install cp $ROOT/dist/usr/src/linux-${KVER}/arch/i386/boot/bzImage $ROOT/isolinux/ cd $BOOT/lib/modules/${KVER} tar cfz /usr/local/gnnix/base/root/tool/modules.tgz . rm -rf $BOOT/lib/modules/${KVER}/* fi #create ld.so.cache echo "/lib " > $BOOT/etc/ld.so.conf ldconfig -r $BOOT #install scripts cd $BOOT/etc cp -a $GNNIX/base/install/bw.rc bw.rc cp -a $GNNIX/base/install/fshelp.txt fshelp.txt # more help please cd $BOOT/bin cp -a $GNNIX/base/install/start locknload chmod +x locknload cp -a $GNNIX/base/install/modprobe . chmod +x modprobe cp -a $GNNIX/base/install/gnxmount . chmod +x gnxmount cp -a $GNNIX/base/install/gnxumount . chmod +x gnxumount cp -a $GNNIX/base/install/tzset . chmod +x tzset cp -a $GNNIX/base/install/loadkeyz . chmod +x loadkeyz cp -a $GNNIX/base/install/modprober . chmod +x modprober cp -a $GNNIX/base/install/setpass . chmod +x setpass cat > /bin/which << "EOF" #!/bin/bash type -pa "$@"|head -1 EOF chmod 755 /usr/bin/which chown root:root /usr/bin/which echo done.