cvs commit: hints/ATTACHMENTS/uclibc-bootfloppy busybox-0.60.5-Config.h linux-2.4.22-.config mkbootdisk

tushar at linuxfromscratch.org tushar at linuxfromscratch.org
Wed Oct 29 22:52:56 PST 2003


tushar      03/10/29 23:52:56

  Added:       ATTACHMENTS/uclibc-bootfloppy busybox-0.60.5-Config.h
                        linux-2.4.22-.config mkbootdisk
  Log:
  Added Attachments for Hint: uclibc-bootfloppy
  
  Revision  Changes    Path
  1.1                  hints/ATTACHMENTS/uclibc-bootfloppy/busybox-0.60.5-Config.h
  
  Index: busybox-0.60.5-Config.h
  ===================================================================
  /* vi: set sw=4 ts=4: */
  // This file defines the feature set to be compiled into busybox.
  // When you turn things off here, they won't be compiled in at all.
  //
  //// This file is parsed by sed.  You MUST use single line comments.
  //   i.e.,  //#define BB_BLAH
  //
  //
  // BusyBox Applications
  //#define BB_ADJTIMEX
  //#define BB_AR
  #define BB_ASH
  #define BB_BASENAME
  #define BB_CAT
  #define BB_CHGRP
  #define BB_CHMOD
  #define BB_CHOWN
  #define BB_CHROOT
  #define BB_CHVT
  #define BB_CLEAR
  //#define BB_CMP
  #define BB_CP
  //#define BB_CPIO
  #define BB_CUT
  #define BB_DATE
  //#define BB_DC
  #define BB_DD
  //#define BB_DEALLOCVT
  #define BB_DF
  #define BB_DIRNAME
  #define BB_DMESG
  //#define BB_DOS2UNIX
  //#define BB_DPKG
  //#define BB_DPKG_DEB
  //#define BB_DUTMP
  #define BB_DU
  #define BB_DUMPKMAP
  #define BB_ECHO
  #define BB_ENV
  //#define BB_EXPR
  //#define BB_FBSET
  //#define BB_FDFLUSH
  #define BB_FIND
  #define BB_FREE
  //#define BB_FREERAMDISK
  //#define BB_FSCK_MINIX
  //#define BB_GETOPT
  #define BB_GREP
  #define BB_GUNZIP
  #define BB_GZIP
  #define BB_HALT
  #define BB_HEAD
  //#define BB_HOSTID
  //#define BB_HOSTNAME
  //#define BB_HUSH
  #define BB_ID
  #define BB_IFCONFIG
  #define BB_INIT
  #define BB_INSMOD
  #define BB_KILL
  #define BB_KILLALL
  #define BB_KLOGD
  //#define BB_LASH
  //#define BB_LENGTH
  #define BB_LN
  //#define BB_LOADACM
  #define BB_LOADFONT
  #define BB_LOADKMAP
  #define BB_LOGGER
  //#define BB_LOGNAME
  //#define BB_LOSETUP
  #define BB_LS
  #define BB_LSMOD
  //#define BB_MAKEDEVS
  //#define BB_MD5SUM
  #define BB_MKDIR
  //#define BB_MKFIFO
  //#define BB_MKFS_MINIX
  #define BB_MKNOD
  #define BB_MKSWAP
  //#define BB_MKTEMP
  #define BB_MODPROBE
  #define BB_MORE
  #define BB_MOUNT
  //#define BB_MSH
  //#define BB_MT
  #define BB_MV
  //#define BB_NC
  //#define BB_NSLOOKUP
  #define BB_PIDOF
  #define BB_PING
  //#define BB_PIVOT_ROOT
  #define BB_POWEROFF
  //#define BB_PRINTF
  #define BB_PS
  #define BB_PWD
  //#define BB_RDATE
  //#define BB_READLINK
  #define BB_REBOOT
  //#define BB_RENICE
  #define BB_RESET
  #define BB_RM
  #define BB_RMDIR
  #define BB_RMMOD
  #define BB_ROUTE
  //#define BB_RPM2CPIO
  #define BB_SED
  #define BB_SETKEYCODES
  #define BB_SLEEP
  #define BB_SORT
  //#define BB_STTY
  #define BB_SWAPONOFF
  #define BB_SYNC
  #define BB_SYSLOGD
  #define BB_TAIL
  #define BB_TAR
  #define BB_TEE
  #define BB_TEST
  #define BB_TELNET
  #define BB_TFTP
  //#define BB_TIME
  #define BB_TOP
  #define BB_TOUCH
  //#define BB_TR
  //#define BB_TRACEROUTE
  #define BB_TRUE_FALSE
  #define BB_TTY
  //#define BB_UNIX2DOS
  //#define BB_UUENCODE
  //#define BB_UUDECODE
  #define BB_UMOUNT
  #define BB_UNIQ
  #define BB_UNAME
  //#define BB_UPDATE
  #define BB_UPTIME
  //#define BB_USLEEP
  #define BB_VI
  //#define BB_WATCHDOG
  #define BB_WC
  #define BB_WGET
  #define BB_WHICH
  #define BB_WHOAMI
  #define BB_XARGS
  #define BB_YES
  // End of Applications List
  //
  //
  //
  // ---------------------------------------------------------
  // This is where feature definitions go.  Generally speaking,
  // turning this stuff off makes things a bit smaller (and less 
  // pretty/useful).
  //
  //
  // If you enabled one or more of the shells, you may select which one
  // should be run when sh is invoked:
  #define BB_FEATURE_SH_IS_ASH
  //#define BB_FEATURE_SH_IS_HUSH
  //#define BB_FEATURE_SH_IS_LASH
  //#define BB_FEATURE_SH_IS_MSH
  //
  // BusyBox will, by default, malloc space for its buffers.  This costs code
  // size for the call to xmalloc.  You can use the following feature to have
  // them put on the stack.  For some very small machines with limited stack
  // space, this can be deadly.  For most folks, this works just fine...
  //#define BB_FEATURE_BUFFERS_GO_ON_STACK
  // The third alternative for buffer allocation is to use BSS.  This works
  // beautifully for computers with a real MMU (and OS support), but wastes
  // runtime RAM for uCLinux.  This behavior was the only one available for
  // BusyBox versions 0.48 and earlier.
  //#define BB_FEATURE_BUFFERS_GO_IN_BSS
  //
  // Turn this on to use Erik's very cool devps, and devmtab kernel drivers,
  // thereby eliminating the need for the /proc filesystem and thereby saving
  // lots and lots memory for more important things.  NOTE:  If you enable this
  // feature, you _must_ have patched the kernel to include the devps patch that
  // is included in the busybox/kernel-patches directory.  You will also need to
  // create some device special files in /dev on your embedded system:
  //        mknod /dev/mtab c 10 22
  //        mknod /dev/ps c 10 21
  // I emailed Linus and this patch will not be going into the stock kernel.
  //#define BB_FEATURE_USE_DEVPS_PATCH
  //
  // show verbose usage messages
  #define BB_FEATURE_VERBOSE_USAGE
  //
  // Use termios to manipulate the screen ('more' is prettier with this on)
  //#define BB_FEATURE_USE_TERMIOS
  //
  // calculate terminal & column widths (for more, ls, and telnet)
  #define BB_FEATURE_AUTOWIDTH
  //
  // show username/groupnames for ls
  #define BB_FEATURE_LS_USERNAME
  //
  // show file timestamps in ls
  #define BB_FEATURE_LS_TIMESTAMPS
  //
  // enable ls -p and -F
  #define BB_FEATURE_LS_FILETYPES
  //
  // sort the file names
  #define BB_FEATURE_LS_SORTFILES
  //
  // enable ls -R
  #define BB_FEATURE_LS_RECURSIVE
  //
  // enable ls -L
  #define BB_FEATURE_LS_FOLLOWLINKS
  //
  // Use color to identify different file types
  #define BB_FEATURE_LS_COLOR
  //
  // Disable for a smaller (but less functional) ping
  #define BB_FEATURE_FANCY_PING
  //
  // Make init use a simplified /etc/inittab file (recommended).
  #define BB_FEATURE_USE_INITTAB
  //
  //Enable init being called as /linuxrc
  #define BB_FEATURE_LINUXRC
  //
  //Have init enable core dumping for child processes (for debugging only) 
  //#define BB_FEATURE_INIT_COREDUMPS
  //
  //Make sure nothing is printed to the console on boot
  //#define BB_FEATURE_EXTRA_QUIET
  //
  // enable syslogd -R remotehost
  #define BB_FEATURE_REMOTE_LOG
  //
  // enable syslogd -C
  //#define BB_FEATURE_IPC_SYSLOG
  //
  //Disable for a simple tail implementation (2.34k vs 3k for the full one).
  //Both provide 'tail -f', but this cuts out -c, -q, -s, and -v. 
  #define BB_FEATURE_FANCY_TAIL
  //
  // Enable support for loop devices in mount
  #define BB_FEATURE_MOUNT_LOOP
  //
  // Enable support for a real /etc/mtab file instead of /proc/mounts
  //#define BB_FEATURE_MTAB_SUPPORT
  //
  // Enable support for mounting remote NFS volumes. 
  // You may need to mount with "-o nolock" if you are
  // not running a local portmapper daemon...
  //
  // If you are using uClibc, be sure that you've already compiled
  // uClibc with INCLUDE_RPC=true (contained in the Config file)
  //#define BB_FEATURE_NFSMOUNT
  //
  // Enable support forced filesystem unmounting 
  // (i.e., in case of an unreachable NFS system).
  #define BB_FEATURE_MOUNT_FORCE
  //
  // Enable support for creation of tar files.
  #define BB_FEATURE_TAR_CREATE
  //
  // Enable support for "--exclude" and "-X" for excluding files
  #define BB_FEATURE_TAR_EXCLUDE
  //
  // Enable support for tar -z option (currently only works for inflating)
  #define BB_FEATURE_TAR_GZIP 
  //
  // Enable reverse sort
  #define BB_FEATURE_SORT_REVERSE
  //
  // Enable uniqe sort
  #define BB_FEATURE_SORT_UNIQUE
  //
  // Enable command line editing in the shell.  
  // Only relevant if a shell is enabled. On by default.
  #define BB_FEATURE_COMMAND_EDITING
  //
  // Enable tab completion in the shell.  This is now working quite nicely.
  // This feature adds a bit over 4k. Only relevant if a shell is enabled.
  #define BB_FEATURE_COMMAND_TAB_COMPLETION
  //
  // Attempts to match usernames in a ~-prefixed path
  #define BB_FEATURE_COMMAND_USERNAME_COMPLETION
  //
  //Allow the shell to invoke all the compiled in BusyBox applets as if they
  //were shell builtins.  Nice for staticly linking an emergency rescue shell,
  //among other things. Off by default.
  // Only relevant if a shell is enabled.
  //#define BB_FEATURE_SH_STANDALONE_SHELL
  //
  //When this is enabled, busybox shell applets can be called using full path
  //names.  This causes applets (i.e., most busybox commands) to override
  //real commands on the filesystem.  For example, if you run run /bin/cat, it
  //will use BusyBox cat even if /bin/cat exists on the filesystem and is _not_
  //busybox.  Some systems want this, others do not.  Choose wisely.  :-) This
  //only has meaning when BB_FEATURE_SH_STANDALONE_SHELL is enabled.
  // Only relevant if a shell is enabled. Off by default.
  //#define BB_FEATURE_SH_APPLETS_ALWAYS_WIN
  //
  // Uncomment this option for a fancy shell prompt that includes the
  // current username and hostname.  On systems that don't have usernames
  // or hostnames, this can look hideous.
  // Only relevant if a shell is enabled.
  //#define BB_FEATURE_SH_FANCY_PROMPT
  //
  // Uncomment this option to disable job control.  Job control lets you 
  // run jobs in the background (which completely useless for is all you 
  // are doing is running scripts).  Disabing this is bad for interactive
  // use, since when you hit ^C in an application, it will also kill the 
  // shell.  This adds about 2.5k on an x86 system.
  #define BB_FEATURE_ASH_JOB_CONTROL
  //
  //Turn on extra fbset options
  //#define BB_FEATURE_FBSET_FANCY
  //
  //Turn on fbset readmode support
  //#define BB_FEATURE_FBSET_READMODE
  //
  // Support insmod/lsmod/rmmod for post 2.1 kernels
  #define BB_FEATURE_NEW_MODULE_INTERFACE
  //
  // Support insmod/lsmod/rmmod for pre 2.1 kernels
  //#define BB_FEATURE_OLD_MODULE_INTERFACE
  //
  // Support module version checking
  //#define BB_FEATURE_INSMOD_VERSION_CHECKING
  //
  // Support for uClinux memory usage optimization, which will load the image
  // directly into the kernel memory.  This divides memory requrements by three.
  // If you are not running uClinux (i.e., your CPU has an MMU) leave this
  // disabled...
  //#define BB_FEATURE_INSMOD_LOADINKMEM
  //
  //
  // Support for Minix filesystem, version 2
  //#define BB_FEATURE_MINIX2
  //
  // Enable ifconfig status reporting output -- this feature adds 7k.
  #define BB_FEATURE_IFCONFIG_STATUS
  //
  // Enable ifconfig slip-specific options "keepalive" and "outfill"
  //#define BB_FEATURE_IFCONFIG_SLIP
  //
  // Enable ifconfig options "mem_start", "io_addr", and "irq".
  //#define BB_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
  //
  // Enable ifconfig option "hw".  Currently works for only with "ether".
  //#define BB_FEATURE_IFCONFIG_HW
  //
  // Allows "broadcast +" to set broadcast automatically based on hostaddr
  // and netmask, at a cost of about 100 bytes of code (i386).
  //#define BB_FEATURE_IFCONFIG_BROADCAST_PLUS
  //
  // Enable busybox --install [-s]
  // to create links (or symlinks) for all the commands that are 
  // compiled into the binary.  (needs /proc filesystem)
  //#define BB_FEATURE_INSTALLER
  //
  // Enable a nifty progress meter in wget (adds just under 2k)
  #define BB_FEATURE_WGET_STATUSBAR
  //
  // Enable HTTP authentication in wget
  #define BB_FEATURE_WGET_AUTHENTICATION
  //
  // Clean up all memory before exiting -- usually not needed
  // as the OS can clean up...  Don't enable this unless you
  // have a really good reason for cleaning things up manually.
  //#define BB_FEATURE_CLEAN_UP
  //
  // Support for human readable output by ls, du, etc.(example 13k, 23M, 235G)
  #define BB_FEATURE_HUMAN_READABLE
  //
  // Support for the find -type option.
  #define BB_FEATURE_FIND_TYPE
  //
  // Support for the find -perm option.
  #define BB_FEATURE_FIND_PERM
  //
  // Support for the find -mtime option.
  #define BB_FEATURE_FIND_MTIME
  //
  //// Support for the find -newer option.
  #define BB_FEATURE_FIND_NEWER
  //
  // Support for the -A -B and -C context flags in grep
  //#define BB_FEATURE_GREP_CONTEXT
  //
  // Support for the EGREP applet (alias to the grep applet)
  #define BB_FEATURE_GREP_EGREP_ALIAS
  //
  // Tell tftp what commands that should be supported.
  #define BB_FEATURE_TFTP_PUT
  #define BB_FEATURE_TFTP_GET
  //
  // features for vi
  #define BB_FEATURE_VI_COLON		// ":" colon commands, no "ex" mode
  #define BB_FEATURE_VI_YANKMARK		// Yank/Put commands and Mark cmds
  #define BB_FEATURE_VI_SEARCH		// search and replace cmds
  #define BB_FEATURE_VI_USE_SIGNALS	// catch signals
  #define BB_FEATURE_VI_DOT_CMD		// remember previous cmd and "." cmd
  #define BB_FEATURE_VI_READONLY		// vi -R and "view" mode
  #define BB_FEATURE_VI_SETOPTS		// set-able options,  ai ic showmatch
  #define BB_FEATURE_VI_SET		// :set
  #define BB_FEATURE_VI_WIN_RESIZE	// handle window resize
  //
  // Enable a if you system have setuped locale
  //#define BB_LOCALE_SUPPORT
  //
  // Support for TELNET to pass TERM type to remote host.  Adds 384 bytes.
  #define BB_FEATURE_TELNET_TTYPE
  //
  // Support for devfs.
  #define BB_FEATURE_DEVFS
  //
  // End of Features List
  //
  //
  //
  //
  //
  //
  //---------------------------------------------------
  // Nothing beyond this point should ever be touched by 
  // mere mortals so leave this stuff alone.
  //
  #include <features.h>
  #if defined(__uClinux__)
  	#undef BB_ASH			/* Not even a chance it will work */
  	#undef BB_RPM2CPIO		/* Uses gz_open(), which uses fork() */
  	#undef BB_DPKG_DEB		/* Uses gz_open(), which uses fork() */
  	#undef BB_FEATURE_TAR_GZIP	/* Uses fork() */
  	#undef BB_UPDATE		/* Uses daemon() */
  #endif
  #if defined BB_ASH || defined BB_HUSH || defined BB_LASH || defined BB_MSH
  	#if defined BB_FEATURE_COMMAND_EDITING
  		#define BB_CMDEDIT
  	#else
  		#undef BB_FEATURE_COMMAND_EDITING
  		#undef BB_FEATURE_COMMAND_TAB_COMPLETION
  		#undef BB_FEATURE_COMMAND_USERNAME_COMPLETION
  		#undef BB_FEATURE_SH_FANCY_PROMPT
  	#endif
  #else
  	#undef BB_FEATURE_SH_APPLETS_ALWAYS_WIN
  	#undef BB_FEATURE_SH_STANDALONE_SHELL
  	#undef BB_FEATURE_SH_FANCY_PROMPT
  #endif
  //
  #if (defined BB_ASH || defined BB_HUSH || defined BB_MSH) && ! defined BB_TEST
  	#define BB_TEST
  #endif
  //
  #ifdef BB_KILLALL
  	#ifndef BB_KILL
  		#define BB_KILL
  	#endif
  #endif
  //
  #ifndef BB_INIT
  	#undef BB_FEATURE_LINUXRC
  #endif
  //
  #if defined BB_MOUNT && defined BB_FEATURE_NFSMOUNT
  	#define BB_NFSMOUNT
  #endif
  //
  #if defined BB_FEATURE_AUTOWIDTH
  	#ifndef BB_FEATURE_USE_TERMIOS
  		#define BB_FEATURE_USE_TERMIOS
  	#endif
  #endif
  //
  #if defined BB_INSMOD || defined BB_LSMOD
  	#if ! defined BB_FEATURE_NEW_MODULE_INTERFACE && ! defined BB_FEATURE_OLD_MODULE_INTERFACE
  		#define BB_FEATURE_NEW_MODULE_INTERFACE
  	#endif
  #endif
  //
  #ifdef BB_UNIX2DOS
  	#define BB_DOS2UNIX
  #endif	
  //
  #ifdef BB_SYSLOGD
  	#if defined BB_FEATURE_IPC_SYSLOG
  		#define BB_LOGREAD
  	#endif
  #endif
  //
  #if defined BB_ASH && defined BB_FEATURE_SH_IS_ASH
  # define shell_main ash_main
  #elif defined BB_HUSH && defined BB_FEATURE_SH_IS_HUSH
  # define shell_main hush_main
  #elif defined BB_LASH && defined BB_FEATURE_SH_IS_LASH
  # define shell_main lash_main
  #elif defined BB_MSH && defined BB_FEATURE_SH_IS_MSH
  # define shell_main msh_main
  #endif
  
  
  
  1.1                  hints/ATTACHMENTS/uclibc-bootfloppy/linux-2.4.22-.config
  
  Index: linux-2.4.22-.config
  ===================================================================
  #
  # Automatically generated make config: don't edit
  #
  CONFIG_X86=y
  # CONFIG_SBUS is not set
  CONFIG_UID16=y
  
  #
  # Code maturity level options
  #
  CONFIG_EXPERIMENTAL=y
  
  #
  # Loadable module support
  #
  CONFIG_MODULES=y
  # CONFIG_MODVERSIONS is not set
  CONFIG_KMOD=y
  
  #
  # Processor type and features
  #
  # CONFIG_M386 is not set
  CONFIG_M486=y
  # CONFIG_M586 is not set
  # CONFIG_M586TSC is not set
  # CONFIG_M586MMX is not set
  # CONFIG_M686 is not set
  # CONFIG_MPENTIUMIII is not set
  # CONFIG_MPENTIUM4 is not set
  # CONFIG_MK6 is not set
  # CONFIG_MK7 is not set
  # CONFIG_MK8 is not set
  # CONFIG_MELAN is not set
  # CONFIG_MCRUSOE is not set
  # CONFIG_MWINCHIPC6 is not set
  # CONFIG_MWINCHIP2 is not set
  # CONFIG_MWINCHIP3D is not set
  # CONFIG_MCYRIXIII is not set
  # CONFIG_MVIAC3_2 is not set
  CONFIG_X86_WP_WORKS_OK=y
  CONFIG_X86_INVLPG=y
  CONFIG_X86_CMPXCHG=y
  CONFIG_X86_XADD=y
  CONFIG_X86_BSWAP=y
  CONFIG_X86_POPAD_OK=y
  # CONFIG_RWSEM_GENERIC_SPINLOCK is not set
  CONFIG_RWSEM_XCHGADD_ALGORITHM=y
  CONFIG_X86_L1_CACHE_SHIFT=4
  CONFIG_X86_USE_STRING_486=y
  CONFIG_X86_ALIGNMENT_16=y
  CONFIG_X86_PPRO_FENCE=y
  # CONFIG_X86_F00F_WORKS_OK is not set
  CONFIG_X86_MCE=y
  # CONFIG_TOSHIBA is not set
  # CONFIG_I8K is not set
  # CONFIG_MICROCODE is not set
  # CONFIG_X86_MSR is not set
  CONFIG_X86_CPUID=y
  CONFIG_NOHIGHMEM=y
  # CONFIG_HIGHMEM4G is not set
  # CONFIG_HIGHMEM64G is not set
  # CONFIG_HIGHMEM is not set
  # CONFIG_MATH_EMULATION is not set
  # CONFIG_MTRR is not set
  # CONFIG_SMP is not set
  # CONFIG_X86_UP_APIC is not set
  # CONFIG_X86_UP_IOAPIC is not set
  # CONFIG_X86_TSC_DISABLE is not set
  
  #
  # General setup
  #
  CONFIG_NET=y
  CONFIG_PCI=y
  # CONFIG_PCI_GOBIOS is not set
  # CONFIG_PCI_GODIRECT is not set
  CONFIG_PCI_GOANY=y
  CONFIG_PCI_BIOS=y
  CONFIG_PCI_DIRECT=y
  CONFIG_ISA=y
  # CONFIG_PCI_NAMES is not set
  # CONFIG_EISA is not set
  # CONFIG_MCA is not set
  # CONFIG_HOTPLUG is not set
  # CONFIG_PCMCIA is not set
  # CONFIG_HOTPLUG_PCI is not set
  # CONFIG_SYSVIPC is not set
  # CONFIG_BSD_PROCESS_ACCT is not set
  # CONFIG_SYSCTL is not set
  CONFIG_KCORE_ELF=y
  # CONFIG_KCORE_AOUT is not set
  # CONFIG_BINFMT_AOUT is not set
  CONFIG_BINFMT_ELF=y
  # CONFIG_BINFMT_MISC is not set
  # CONFIG_PM is not set
  # CONFIG_APM is not set
  
  #
  # ACPI Support
  #
  # CONFIG_ACPI is not set
  
  #
  # Memory Technology Devices (MTD)
  #
  # CONFIG_MTD is not set
  
  #
  # Parallel port support
  #
  CONFIG_PARPORT=y
  CONFIG_PARPORT_PC=m
  CONFIG_PARPORT_PC_CML1=m
  # CONFIG_PARPORT_SERIAL is not set
  # CONFIG_PARPORT_PC_FIFO is not set
  # CONFIG_PARPORT_PC_SUPERIO is not set
  # CONFIG_PARPORT_AMIGA is not set
  # CONFIG_PARPORT_MFC3 is not set
  # CONFIG_PARPORT_ATARI is not set
  # CONFIG_PARPORT_GSC is not set
  # CONFIG_PARPORT_SUNBPP is not set
  # CONFIG_PARPORT_OTHER is not set
  # CONFIG_PARPORT_1284 is not set
  
  #
  # Plug and Play configuration
  #
  CONFIG_PNP=y
  CONFIG_ISAPNP=y
  
  #
  # Block devices
  #
  CONFIG_BLK_DEV_FD=y
  # CONFIG_BLK_DEV_XD is not set
  # CONFIG_PARIDE is not set
  # CONFIG_BLK_CPQ_DA is not set
  # CONFIG_BLK_CPQ_CISS_DA is not set
  # CONFIG_CISS_SCSI_TAPE is not set
  # CONFIG_BLK_DEV_DAC960 is not set
  # CONFIG_BLK_DEV_UMEM is not set
  CONFIG_BLK_DEV_LOOP=y
  # CONFIG_BLK_DEV_NBD is not set
  CONFIG_BLK_DEV_RAM=y
  CONFIG_BLK_DEV_RAM_SIZE=4096
  # CONFIG_BLK_DEV_INITRD is not set
  # CONFIG_BLK_STATS is not set
  
  #
  # Multi-device support (RAID and LVM)
  #
  # CONFIG_MD is not set
  # CONFIG_BLK_DEV_MD is not set
  # CONFIG_MD_LINEAR is not set
  # CONFIG_MD_RAID0 is not set
  # CONFIG_MD_RAID1 is not set
  # CONFIG_MD_RAID5 is not set
  # CONFIG_MD_MULTIPATH is not set
  # CONFIG_BLK_DEV_LVM is not set
  
  #
  # Networking options
  #
  # CONFIG_PACKET is not set
  # CONFIG_NETLINK_DEV is not set
  # CONFIG_NETFILTER is not set
  # CONFIG_FILTER is not set
  CONFIG_UNIX=y
  CONFIG_INET=y
  # CONFIG_IP_MULTICAST is not set
  # CONFIG_IP_ADVANCED_ROUTER is not set
  # CONFIG_IP_PNP is not set
  # CONFIG_NET_IPIP is not set
  # CONFIG_NET_IPGRE is not set
  # CONFIG_ARPD is not set
  # CONFIG_INET_ECN is not set
  # CONFIG_SYN_COOKIES is not set
  # CONFIG_IPV6 is not set
  # CONFIG_KHTTPD is not set
  # CONFIG_ATM is not set
  # CONFIG_VLAN_8021Q is not set
  
  #
  #  
  #
  # CONFIG_IPX is not set
  # CONFIG_ATALK is not set
  
  #
  # Appletalk devices
  #
  # CONFIG_DEV_APPLETALK is not set
  # CONFIG_DECNET is not set
  # CONFIG_BRIDGE is not set
  # CONFIG_X25 is not set
  # CONFIG_LAPB is not set
  # CONFIG_LLC is not set
  # CONFIG_NET_DIVERT is not set
  # CONFIG_ECONET is not set
  # CONFIG_WAN_ROUTER is not set
  # CONFIG_NET_FASTROUTE is not set
  # CONFIG_NET_HW_FLOWCONTROL is not set
  
  #
  # QoS and/or fair queueing
  #
  # CONFIG_NET_SCHED is not set
  
  #
  # Network testing
  #
  # CONFIG_NET_PKTGEN is not set
  
  #
  # Telephony Support
  #
  # CONFIG_PHONE is not set
  # CONFIG_PHONE_IXJ is not set
  # CONFIG_PHONE_IXJ_PCMCIA is not set
  
  #
  # ATA/IDE/MFM/RLL support
  #
  CONFIG_IDE=y
  
  #
  # IDE, ATA and ATAPI Block devices
  #
  CONFIG_BLK_DEV_IDE=y
  
  #
  # Please see Documentation/ide.txt for help/info on IDE drives
  #
  # CONFIG_BLK_DEV_HD_IDE is not set
  # CONFIG_BLK_DEV_HD is not set
  CONFIG_BLK_DEV_IDEDISK=y
  # CONFIG_IDEDISK_MULTI_MODE is not set
  # CONFIG_IDEDISK_STROKE is not set
  # CONFIG_BLK_DEV_IDECS is not set
  CONFIG_BLK_DEV_IDECD=y
  # CONFIG_BLK_DEV_IDETAPE is not set
  CONFIG_BLK_DEV_IDEFLOPPY=y
  # CONFIG_BLK_DEV_IDESCSI is not set
  # CONFIG_IDE_TASK_IOCTL is not set
  
  #
  # IDE chipset support/bugfixes
  #
  # CONFIG_BLK_DEV_CMD640 is not set
  # CONFIG_BLK_DEV_CMD640_ENHANCED is not set
  # CONFIG_BLK_DEV_ISAPNP is not set
  CONFIG_BLK_DEV_IDEPCI=y
  # CONFIG_BLK_DEV_GENERIC is not set
  # CONFIG_IDEPCI_SHARE_IRQ is not set
  CONFIG_BLK_DEV_IDEDMA_PCI=y
  # CONFIG_BLK_DEV_OFFBOARD is not set
  # CONFIG_BLK_DEV_IDEDMA_FORCED is not set
  # CONFIG_IDEDMA_PCI_AUTO is not set
  # CONFIG_IDEDMA_ONLYDISK is not set
  CONFIG_BLK_DEV_IDEDMA=y
  # CONFIG_IDEDMA_PCI_WIP is not set
  # CONFIG_BLK_DEV_ADMA100 is not set
  # CONFIG_BLK_DEV_AEC62XX is not set
  # CONFIG_BLK_DEV_ALI15X3 is not set
  # CONFIG_WDC_ALI15X3 is not set
  # CONFIG_BLK_DEV_AMD74XX is not set
  # CONFIG_AMD74XX_OVERRIDE is not set
  # CONFIG_BLK_DEV_CMD64X is not set
  # CONFIG_BLK_DEV_TRIFLEX is not set
  # CONFIG_BLK_DEV_CY82C693 is not set
  # CONFIG_BLK_DEV_CS5530 is not set
  # CONFIG_BLK_DEV_HPT34X is not set
  # CONFIG_HPT34X_AUTODMA is not set
  # CONFIG_BLK_DEV_HPT366 is not set
  # CONFIG_BLK_DEV_PIIX is not set
  # CONFIG_BLK_DEV_NS87415 is not set
  # CONFIG_BLK_DEV_OPTI621 is not set
  # CONFIG_BLK_DEV_PDC202XX_OLD is not set
  # CONFIG_PDC202XX_BURST is not set
  # CONFIG_BLK_DEV_PDC202XX_NEW is not set
  # CONFIG_BLK_DEV_RZ1000 is not set
  # CONFIG_BLK_DEV_SC1200 is not set
  # CONFIG_BLK_DEV_SVWKS is not set
  # CONFIG_BLK_DEV_SIIMAGE is not set
  # CONFIG_BLK_DEV_SIS5513 is not set
  # CONFIG_BLK_DEV_SLC90E66 is not set
  # CONFIG_BLK_DEV_TRM290 is not set
  # CONFIG_BLK_DEV_VIA82CXXX is not set
  # CONFIG_IDE_CHIPSETS is not set
  # CONFIG_IDEDMA_AUTO is not set
  # CONFIG_IDEDMA_IVB is not set
  # CONFIG_DMA_NONPCI is not set
  CONFIG_BLK_DEV_IDE_MODES=y
  # CONFIG_BLK_DEV_ATARAID is not set
  # CONFIG_BLK_DEV_ATARAID_PDC is not set
  # CONFIG_BLK_DEV_ATARAID_HPT is not set
  # CONFIG_BLK_DEV_ATARAID_SII is not set
  
  #
  # SCSI support
  #
  # CONFIG_SCSI is not set
  
  #
  # Fusion MPT device support
  #
  # CONFIG_FUSION is not set
  # CONFIG_FUSION_BOOT is not set
  # CONFIG_FUSION_ISENSE is not set
  # CONFIG_FUSION_CTL is not set
  # CONFIG_FUSION_LAN is not set
  
  #
  # IEEE 1394 (FireWire) support (EXPERIMENTAL)
  #
  # CONFIG_IEEE1394 is not set
  
  #
  # I2O device support
  #
  # CONFIG_I2O is not set
  # CONFIG_I2O_PCI is not set
  # CONFIG_I2O_BLOCK is not set
  # CONFIG_I2O_LAN is not set
  # CONFIG_I2O_SCSI is not set
  # CONFIG_I2O_PROC is not set
  
  #
  # Network device support
  #
  CONFIG_NETDEVICES=y
  
  #
  # ARCnet devices
  #
  # CONFIG_ARCNET is not set
  # CONFIG_DUMMY is not set
  # CONFIG_BONDING is not set
  # CONFIG_EQUALIZER is not set
  # CONFIG_TUN is not set
  # CONFIG_ETHERTAP is not set
  # CONFIG_NET_SB1000 is not set
  
  #
  # Ethernet (10 or 100Mbit)
  #
  CONFIG_NET_ETHERNET=y
  # CONFIG_SUNLANCE is not set
  # CONFIG_HAPPYMEAL is not set
  # CONFIG_SUNBMAC is not set
  # CONFIG_SUNQE is not set
  # CONFIG_SUNGEM is not set
  # CONFIG_NET_VENDOR_3COM is not set
  # CONFIG_LANCE is not set
  CONFIG_NET_VENDOR_SMC=y
  # CONFIG_WD80x3 is not set
  # CONFIG_ULTRAMCA is not set
  CONFIG_ULTRA=m
  # CONFIG_ULTRA32 is not set
  # CONFIG_SMC9194 is not set
  # CONFIG_NET_VENDOR_RACAL is not set
  # CONFIG_AT1700 is not set
  # CONFIG_DEPCA is not set
  # CONFIG_HP100 is not set
  CONFIG_NET_ISA=y
  # CONFIG_E2100 is not set
  # CONFIG_EWRK3 is not set
  # CONFIG_EEXPRESS is not set
  # CONFIG_EEXPRESS_PRO is not set
  # CONFIG_HPLAN_PLUS is not set
  # CONFIG_HPLAN is not set
  # CONFIG_LP486E is not set
  # CONFIG_ETH16I is not set
  CONFIG_NE2000=m
  CONFIG_NET_PCI=y
  # CONFIG_PCNET32 is not set
  # CONFIG_AMD8111_ETH is not set
  # CONFIG_ADAPTEC_STARFIRE is not set
  # CONFIG_AC3200 is not set
  # CONFIG_APRICOT is not set
  # CONFIG_B44 is not set
  # CONFIG_CS89x0 is not set
  # CONFIG_TULIP is not set
  # CONFIG_DE4X5 is not set
  # CONFIG_DGRS is not set
  # CONFIG_DM9102 is not set
  # CONFIG_EEPRO100 is not set
  # CONFIG_EEPRO100_PIO is not set
  # CONFIG_E100 is not set
  # CONFIG_LNE390 is not set
  # CONFIG_FEALNX is not set
  # CONFIG_NATSEMI is not set
  CONFIG_NE2K_PCI=m
  # CONFIG_NE3210 is not set
  # CONFIG_ES3210 is not set
  # CONFIG_8139CP is not set
  CONFIG_8139TOO=m
  # CONFIG_8139TOO_PIO is not set
  # CONFIG_8139TOO_TUNE_TWISTER is not set
  # CONFIG_8139TOO_8129 is not set
  # CONFIG_8139_OLD_RX_RESET is not set
  # CONFIG_SIS900 is not set
  # CONFIG_EPIC100 is not set
  # CONFIG_SUNDANCE is not set
  # CONFIG_SUNDANCE_MMIO is not set
  # CONFIG_TLAN is not set
  # CONFIG_VIA_RHINE is not set
  # CONFIG_VIA_RHINE_MMIO is not set
  # CONFIG_WINBOND_840 is not set
  # CONFIG_NET_POCKET is not set
  
  #
  # Ethernet (1000 Mbit)
  #
  # CONFIG_ACENIC is not set
  # CONFIG_DL2K is not set
  # CONFIG_E1000 is not set
  # CONFIG_MYRI_SBUS is not set
  # CONFIG_NS83820 is not set
  # CONFIG_HAMACHI is not set
  # CONFIG_YELLOWFIN is not set
  # CONFIG_R8169 is not set
  # CONFIG_SK98LIN is not set
  # CONFIG_TIGON3 is not set
  # CONFIG_FDDI is not set
  # CONFIG_HIPPI is not set
  CONFIG_PLIP=m
  # CONFIG_PPP is not set
  # CONFIG_SLIP is not set
  
  #
  # Wireless LAN (non-hamradio)
  #
  # CONFIG_NET_RADIO is not set
  
  #
  # Token Ring devices
  #
  # CONFIG_TR is not set
  # CONFIG_NET_FC is not set
  # CONFIG_RCPCI is not set
  # CONFIG_SHAPER is not set
  
  #
  # Wan interfaces
  #
  # CONFIG_WAN is not set
  
  #
  # Amateur Radio support
  #
  # CONFIG_HAMRADIO is not set
  
  #
  # IrDA (infrared) support
  #
  # CONFIG_IRDA is not set
  
  #
  # ISDN subsystem
  #
  # CONFIG_ISDN is not set
  
  #
  # Old CD-ROM drivers (not SCSI, not IDE)
  #
  # CONFIG_CD_NO_IDESCSI is not set
  
  #
  # Input core support
  #
  # CONFIG_INPUT is not set
  # CONFIG_INPUT_KEYBDEV is not set
  # CONFIG_INPUT_MOUSEDEV is not set
  # CONFIG_INPUT_JOYDEV is not set
  # CONFIG_INPUT_EVDEV is not set
  
  #
  # Character devices
  #
  CONFIG_VT=y
  CONFIG_VT_CONSOLE=y
  CONFIG_SERIAL=y
  # CONFIG_SERIAL_CONSOLE is not set
  # CONFIG_SERIAL_EXTENDED is not set
  # CONFIG_SERIAL_NONSTANDARD is not set
  # CONFIG_UNIX98_PTYS is not set
  # CONFIG_PRINTER is not set
  # CONFIG_PPDEV is not set
  # CONFIG_TIPAR is not set
  
  #
  # I2C support
  #
  # CONFIG_I2C is not set
  
  #
  # Mice
  #
  # CONFIG_BUSMOUSE is not set
  CONFIG_MOUSE=y
  CONFIG_PSMOUSE=y
  # CONFIG_82C710_MOUSE is not set
  # CONFIG_PC110_PAD is not set
  # CONFIG_MK712_MOUSE is not set
  
  #
  # Joysticks
  #
  # CONFIG_INPUT_GAMEPORT is not set
  
  #
  # Input core support is needed for gameports
  #
  
  #
  # Input core support is needed for joysticks
  #
  # CONFIG_QIC02_TAPE is not set
  # CONFIG_IPMI_HANDLER is not set
  # CONFIG_IPMI_PANIC_EVENT is not set
  # CONFIG_IPMI_DEVICE_INTERFACE is not set
  # CONFIG_IPMI_KCS is not set
  # CONFIG_IPMI_WATCHDOG is not set
  
  #
  # Watchdog Cards
  #
  # CONFIG_WATCHDOG is not set
  # CONFIG_SCx200_GPIO is not set
  # CONFIG_AMD_RNG is not set
  # CONFIG_INTEL_RNG is not set
  # CONFIG_AMD_PM768 is not set
  # CONFIG_NVRAM is not set
  # CONFIG_RTC is not set
  # CONFIG_DTLK is not set
  # CONFIG_R3964 is not set
  # CONFIG_APPLICOM is not set
  # CONFIG_SONYPI is not set
  
  #
  # Ftape, the floppy tape device driver
  #
  # CONFIG_FTAPE is not set
  # CONFIG_AGP is not set
  # CONFIG_DRM is not set
  # CONFIG_MWAVE is not set
  
  #
  # Multimedia devices
  #
  # CONFIG_VIDEO_DEV is not set
  
  #
  # File systems
  #
  # CONFIG_QUOTA is not set
  # CONFIG_QFMT_V2 is not set
  # CONFIG_AUTOFS_FS is not set
  # CONFIG_AUTOFS4_FS is not set
  # CONFIG_REISERFS_FS is not set
  # CONFIG_REISERFS_CHECK is not set
  # CONFIG_REISERFS_PROC_INFO is not set
  # CONFIG_ADFS_FS is not set
  # CONFIG_ADFS_FS_RW is not set
  # CONFIG_AFFS_FS is not set
  # CONFIG_HFS_FS is not set
  # CONFIG_HFSPLUS_FS is not set
  # CONFIG_BEFS_FS is not set
  # CONFIG_BEFS_DEBUG is not set
  # CONFIG_BFS_FS is not set
  # CONFIG_EXT3_FS is not set
  # CONFIG_JBD is not set
  # CONFIG_JBD_DEBUG is not set
  CONFIG_FAT_FS=y
  CONFIG_MSDOS_FS=y
  # CONFIG_UMSDOS_FS is not set
  CONFIG_VFAT_FS=y
  # CONFIG_EFS_FS is not set
  # CONFIG_JFFS_FS is not set
  # CONFIG_JFFS2_FS is not set
  # CONFIG_CRAMFS is not set
  # CONFIG_TMPFS is not set
  CONFIG_RAMFS=y
  CONFIG_ISO9660_FS=y
  # CONFIG_JOLIET is not set
  # CONFIG_ZISOFS is not set
  # CONFIG_JFS_FS is not set
  # CONFIG_JFS_DEBUG is not set
  # CONFIG_JFS_STATISTICS is not set
  # CONFIG_MINIX_FS is not set
  # CONFIG_VXFS_FS is not set
  # CONFIG_NTFS_FS is not set
  # CONFIG_NTFS_RW is not set
  # CONFIG_HPFS_FS is not set
  CONFIG_PROC_FS=y
  CONFIG_DEVFS_FS=y
  CONFIG_DEVFS_MOUNT=y
  # CONFIG_DEVFS_DEBUG is not set
  # CONFIG_DEVPTS_FS is not set
  # CONFIG_QNX4FS_FS is not set
  # CONFIG_QNX4FS_RW is not set
  # CONFIG_ROMFS_FS is not set
  CONFIG_EXT2_FS=y
  # CONFIG_SYSV_FS is not set
  # CONFIG_UDF_FS is not set
  # CONFIG_UDF_RW is not set
  # CONFIG_UFS_FS is not set
  # CONFIG_UFS_FS_WRITE is not set
  
  #
  # Network File Systems
  #
  # CONFIG_CODA_FS is not set
  # CONFIG_INTERMEZZO_FS is not set
  CONFIG_NFS_FS=m
  # CONFIG_NFS_V3 is not set
  # CONFIG_NFS_DIRECTIO is not set
  # CONFIG_ROOT_NFS is not set
  # CONFIG_NFSD is not set
  # CONFIG_NFSD_V3 is not set
  # CONFIG_NFSD_TCP is not set
  CONFIG_SUNRPC=m
  CONFIG_LOCKD=m
  # CONFIG_SMB_FS is not set
  # CONFIG_NCP_FS is not set
  # CONFIG_NCPFS_PACKET_SIGNING is not set
  # CONFIG_NCPFS_IOCTL_LOCKING is not set
  # CONFIG_NCPFS_STRONG is not set
  # CONFIG_NCPFS_NFS_NS is not set
  # CONFIG_NCPFS_OS2_NS is not set
  # CONFIG_NCPFS_SMALLDOS is not set
  # CONFIG_NCPFS_NLS is not set
  # CONFIG_NCPFS_EXTRAS is not set
  # CONFIG_ZISOFS_FS is not set
  
  #
  # Partition Types
  #
  # CONFIG_PARTITION_ADVANCED is not set
  CONFIG_MSDOS_PARTITION=y
  # CONFIG_SMB_NLS is not set
  CONFIG_NLS=y
  
  #
  # Native Language Support
  #
  CONFIG_NLS_DEFAULT="iso8859-1"
  # CONFIG_NLS_CODEPAGE_437 is not set
  # CONFIG_NLS_CODEPAGE_737 is not set
  # CONFIG_NLS_CODEPAGE_775 is not set
  # CONFIG_NLS_CODEPAGE_850 is not set
  # CONFIG_NLS_CODEPAGE_852 is not set
  # CONFIG_NLS_CODEPAGE_855 is not set
  # CONFIG_NLS_CODEPAGE_857 is not set
  # CONFIG_NLS_CODEPAGE_860 is not set
  # CONFIG_NLS_CODEPAGE_861 is not set
  # CONFIG_NLS_CODEPAGE_862 is not set
  # CONFIG_NLS_CODEPAGE_863 is not set
  # CONFIG_NLS_CODEPAGE_864 is not set
  # CONFIG_NLS_CODEPAGE_865 is not set
  # CONFIG_NLS_CODEPAGE_866 is not set
  # CONFIG_NLS_CODEPAGE_869 is not set
  # CONFIG_NLS_CODEPAGE_936 is not set
  # CONFIG_NLS_CODEPAGE_950 is not set
  # CONFIG_NLS_CODEPAGE_932 is not set
  # CONFIG_NLS_CODEPAGE_949 is not set
  # CONFIG_NLS_CODEPAGE_874 is not set
  # CONFIG_NLS_ISO8859_8 is not set
  # CONFIG_NLS_CODEPAGE_1250 is not set
  # CONFIG_NLS_CODEPAGE_1251 is not set
  # CONFIG_NLS_ISO8859_1 is not set
  # CONFIG_NLS_ISO8859_2 is not set
  # CONFIG_NLS_ISO8859_3 is not set
  # CONFIG_NLS_ISO8859_4 is not set
  # CONFIG_NLS_ISO8859_5 is not set
  # CONFIG_NLS_ISO8859_6 is not set
  # CONFIG_NLS_ISO8859_7 is not set
  # CONFIG_NLS_ISO8859_9 is not set
  # CONFIG_NLS_ISO8859_13 is not set
  # CONFIG_NLS_ISO8859_14 is not set
  # CONFIG_NLS_ISO8859_15 is not set
  # CONFIG_NLS_KOI8_R is not set
  # CONFIG_NLS_KOI8_U is not set
  # CONFIG_NLS_UTF8 is not set
  
  #
  # Console drivers
  #
  CONFIG_VGA_CONSOLE=y
  CONFIG_VIDEO_SELECT=y
  # CONFIG_MDA_CONSOLE is not set
  
  #
  # Frame-buffer support
  #
  # CONFIG_FB is not set
  
  #
  # Sound
  #
  # CONFIG_SOUND is not set
  
  #
  # USB support
  #
  # CONFIG_USB is not set
  
  #
  # Bluetooth support
  #
  # CONFIG_BLUEZ is not set
  
  #
  # Kernel hacking
  #
  # CONFIG_DEBUG_KERNEL is not set
  
  #
  # Cryptographic options
  #
  # CONFIG_CRYPTO is not set
  
  #
  # Library routines
  #
  # CONFIG_CRC32 is not set
  # CONFIG_ZLIB_INFLATE is not set
  # CONFIG_ZLIB_DEFLATE is not set
  
  
  
  1.1                  hints/ATTACHMENTS/uclibc-bootfloppy/mkbootdisk
  
  Index: mkbootdisk
  ===================================================================
  #!/bin/bash
  
  #
  # A script for making the bootdisk creation process easy and safe 
  #
  # If you develop your own floppy linux, then it is advised to do it as a 
  # non-privileged user (in order to not suck if you happen to do
  # something  stupid :), and use this (root owned and executable) script
  # via the sudo utility. 
  
  # Below are some values set. Adjust them if necessary.
  
  
  DISK=/dev/fd0
  DEVICE="$DISK"
  FSDIR=rfloppy
  unset FSGZ
  KERNEL=linux-`uname -r`/arch/i386/boot/bzImage
  TOADD=16384 # Comes from kernel internals, do no change!
  MKE2FSAPP=/sbin/mke2fs
  RDEVAPP=/usr/sbin/rdev # The $MKE2FSAPP and $RDEVAPP variables contain \
  # an absolute path because of the following: \
  # by my idea this script is used by a non-privileged user (via sudo) \
  # whose path does not contain the mke2fs, rdev executables 
  MKBOOTREC="$HOME"/.mkbootdisk
  EXTRA_SIZE=150 # Free space left on root filesystem of floppy
  EXTRA_INODES=100 # Free inodes left on filesystem of floppy
  FLOPPYSIZE=1440
  VERSION="0.5"
  
  # Do not edit what follows unless your intention is hacking!
  
  firstcheck=yes  
  compress=yes # Any value other than "no" defaults to production of a \
  #gzipped rootfs 
  KERNELSIZE=x
  [ -s "$MKBOOTREC" ] && KERNELSIZE=`cat "$MKBOOTREC"`
  dokernelcopy=no # Becomes yes if $KERNELSIZE set to a numerical value
  unset TMPDIR
  manuallysetkernelsize=no # This variable tracks down whether -r option is used
  
  #
  # Usage
  #
  
  if [ "$1" = "-h" -o "$1" = "--help" ]; then 
  	echo "\
  ----------------
  Bootdisk creation utility, version $VERSION. Usage:
  With -h or --help being the 1st arg, this help is shown; otherwise
  
  `basename "$0"` -k kernelimg -f filesys_dir -s filesys_size -i filesys_inodes \\
  -r kernelimg_size -c floppy_size [-g gzipped_filesys -d]
  
  where \"kernelimg\" is the linux kernel image to be booted by the floppy,
  and \"filesys_dir\" contains the files to be put in the root filesystem.
  
  Default values are: 
  -k $KERNEL 
  -f $FSDIR 
  -s <size of files in filesys_dir + ${EXTRA_SIZE}k> 
  -i <number of files in filesys_dir + ${EXTRA_INODES}>
  -r \`cat ~/`basename "$MKBOOTREC"`\`, or x if ~/`basename \
  "$MKBOOTREC"` is empty or does not exist 
  -c $FLOPPYSIZE
  
  Explanations of options:
  -r kernelimg_size	a kernelimg of the given size (in kb) is supposed to be
   			on the disk and kernel copying is skipped, unless size 
  			is x instead of a number
  -g gzipped_filesys	gzipped_filesys is copied to the disk
  			(instead of the contents of filesys_dir)
  -d  			the floppyimage is written to stdout instead of $DISK
  -c floppy_size 		if the floppy image were bigger than floppy_size 
  			(in kb), the process is aborted, unless floppy_size is 
  			x instead of a number
  
  Further comments:
  
  If kernel is copied and -r was used with a non-numerical value, its size
  is stored in ~/`basename "${MKBOOTREC}"` (delete that file before using a
  new kernel image, or use -r x !!)
  
  For sake of safety, `basename "$0"` utilizes mktemp; if you don't have it
  temporary file creation is still done as safely as it's possible
  
  Example:
  * A compressed filesystem is produced from the contents of filesys_dir by
  	`basename "$0"` -r 0 -d > rootfs.gz
  * A floppy can be made using this compressed filesystem by
  	`basename "$0"` -g rootfs.gz
  ----------------"
  	exit 1
  fi
  
  
  #
  # Getting options
  #
  
  while getopts "g:k:f:dr:c:s:i:" option; do
  	case $option in 
  		g) FSGZ="$OPTARG"
  		   compress=no;;
  		k) KERNEL="$OPTARG";;
  		f) FSDIR="$OPTARG";;
  		d) DEVICE="&1";;
  		r) KERNELSIZE="$OPTARG"
  		   [ "$OPTARG" -ge 0 ] &>/dev/null && 
  		   manuallysetkernelsize=yes;;
  		c) FLOPPYSIZE="$OPTARG";;
  		i) INODES="$OPTARG";; 
  		s) SIZE="$OPTARG";;
  		*) exit 1;;
  	 esac
  done
  
  
  
  
  #
  # Functions
  #
  
  #
  # Auxiliary fnc's
  
  
  # gzipimp -- the concrete way of doing the compression
  
  gzipimp()
  {
  	dd if=$1 bs=1k | gzip -v9 > $2
  	# I could not figure out why it is the way to do gzipping, but this is
  	# what is suggested by the clever guys. I'd be happy to be informed
  	# about it...
  } 
  
  #cleanup -- removes temporary files
  
  cleanup()
  {
  	[ -e "$TMPDIR" ] && echo "Removing temporary files..." >&2 
  	rm -rf "$TMPDIR" >&2 
  }
  
  #error -- if something goes wrong... 
  
  error()
  {
  	echo Error: "$1" >&2
  	cleanup
  	exit 1
  } 
  
  #maketmpdir -- creates a tmp dir as safely as possible
  
  maketmpdir()
  {
  	if ! TMPDIR=`mktemp -d /tmp/mkbootdisk.$$.XXXXXXXXXX 2>/dev/null`
  	then
  		TMPDIR=/tmp/mkbootdisk.$$.$RANDOM$RANDOM &&
  		rm -rf "$TMPDIR" &&
  		mkdir -m 700 "$TMPDIR"
  	fi ||
  	error "Unable to create temporary directory"	 
  }
  
  #findoutFSGZ -- finds out the appropriate value of $FSGZ
  
  findoutFSGZ()
  {
  	[ $compress = yes ] && FSGZ="$TMPDIR"/mkbootdisk-gzipped_fs
  }
  
  #
  # Important fnc's
  
  
  # check -- checks the validity of arguments
  
  check()
  {
  	for v in RDEVAPP MKE2FSAPP; do #Checking whether these apps can be found
  		[ -x "`eval echo \\$$v`" ] ||
  		error \
  "the value of \$$v is wrong -- `eval echo \\$$v` is not an executable"
  	done
  
  	for v in SIZE INODES; do # Syntax check of variables
  		[ -z "`eval echo \\$$v`" ] ||
  		[ "`eval echo \\$$v`" -ge 0 ] &>/dev/null || 
  		error \
  "wrong value for option -- \$$v is not a non-negative integer"  
  	done
  
  	for v in FLOPPYSIZE KERNELSIZE; do 
  		[ "`eval echo \\$$v`" = x ] ||
  		[ "`eval echo \\$$v`" -ge 0 ] &>/dev/null ||
  		error \
  "Wrong value for option -- \$$v is neither x, nor non-negative integer"
  	done
  
  	if [ "$compress" != no ]; then # checking whether $FSDIR is a directory
  		[ "`file -bL "$FSDIR"`" = directory ] ||
  		error "$FSDIR is not a directory."
  	fi
  
  	if [ $KERNELSIZE = x ]; then #checking whether the kernelimg exists
  		[ "`file -bL "$KERNEL"`" = 'x86 boot sector' ] || 
  		error "$KERNEL is not a kernelimg." 
  	else 
  		[ "$firstcheck" = yes ] && 
  		echo \
  "A kernelimg of size $KERNELSIZE is supposed to be on the disk,
  kernel copying is skipped" >&2 
  	fi
   
  	if [ "$compress" = no ]; then #checking whether the gzipped fs exists
  		file -bL "$FSGZ" | grep \
  		'gzip compressed data' > /dev/null || 
  		error "$FSGZ is not a gzipped file"
  		[ "$firstcheck" = yes ] && 
  		echo \
  "An existing compressed filesystem is used as root filesystem,
  filesystem creation is skipped." >&2 
  	fi
  
  	firstcheck= 
  }
  
  # getfsdata -- Finds out size and inode number param's of the filesystem
  # to be created
  
  getfsdata()
  {
  	if [ $compress = yes ]; then
  		[ -z "$SIZE" ] &&
  		SIZE=$(expr $EXTRA_SIZE + `du -sD "$FSDIR" | awk '{print $1}'`)
  	
  		[ -z "$INODES" ] &&
  		INODES=$(expr $EXTRA_INODES + `find "$FSDIR" -follow | wc -l`)
  
  	fi
  }
  
  # compressfs -- Adjusts and compresses the filesystem
  # (Now also creates the filesys but the name is kept)
  
  compressfs()
  {
  	[ "$compress" = no ] && return 0
  	compress=no
  
  	tmpfs="$TMPDIR"/mkbootdisk-rfloppy
  	tmpmountpt="$TMPDIR"/mkbootdisk-mountpt
   
  	echo \
  "Creating an ext2 filesystem of size ${SIZE}k and with $INODES inodes" >&2
  	dd if=/dev/zero of="$tmpfs" bs=1k count=$SIZE
  	yes | "$MKE2FSAPP" -m 0 -N $INODES "$tmpfs" > /dev/null 
  	mkdir -p "$tmpmountpt"
  	mount "$tmpfs" -o loop "$tmpmountpt"
  	rmdir "$tmpmountpt"/lost+found 
  	cp -a "$FSDIR"/* "$tmpmountpt"
  	chown -R 0:0 "$tmpmountpt"/*
  	if umount "$tmpmountpt"; then
  		echo "Compressing the filesystem..." >&2
  		gzipimp "$tmpfs" "$FSGZ"
  	else
  		error "some problem occured with unmounting the file system."
  	fi
  }
  
  
  # floppysizecheck -- checks whether will be enough space on floppy
  
  floppysizecheck()
  {
  	[ $FLOPPYSIZE = x ] && return 0
  	FSGZSIZE=$(( `dd if="$FSGZ" of=/dev/null bs=1k 2>&1 |
  	 sed -n '1s%\([0-9][0-9]*\).*%\1%p'` + 1 ))
  	[ $(($KERNELSIZE + $FSGZSIZE)) -gt $FLOPPYSIZE ] &&
  	error "
  size of kernel: 	       $KERNELSIZE
  size of compressed filesystem: $FSGZSIZE
  are altogether:		       $KERNELSIZE + $FSGZSIZE = \
  $(($KERNELSIZE + $FSGZSIZE))
  which exceeds your floppy size ($FLOPPYSIZE)"
  }
  
  # kernelcopy -- copies and installs the kernelimg to disk
  
  kernelcopy()
  {
  	[ $KERNELSIZE = x ] || return 0
   
  	tmpdiskimg="$TMPDIR"/mkbootdisk-diskimg 
  	echo Copying kernel to diskimage file... >&2
  	KERNELSIZE=$(( `dd if="$KERNEL" of="$tmpdiskimg" bs=1k 2>&1 |
  	 sed -n '1s%\([0-9][0-9]*\).*%\1%p'` + 1 )) ||
  	error "cannot create disk image file" 
  	echo $(( $KERNELSIZE - 1 ))+1 records in/out >&2
  	[ $manuallysetkernelsize = yes ] || echo $KERNELSIZE > "$MKBOOTREC" 
  
  	echo Adjusting the kernelimg to mount the file system as rootfs... >&2 
  	"$RDEVAPP" "$tmpdiskimg" 0,0 
  	"$RDEVAPP" -R "$tmpdiskimg" 0
  	"$RDEVAPP" -r "$tmpdiskimg" `expr $TOADD + $KERNELSIZE`
  	dokernelcopy=yes
  }
  
  diskwrite()
  {
  	if [ $dokernelcopy = yes ]; then 
  		echo "Completing the diskimage..." >&2
  		dd if="$FSGZ" of="$tmpdiskimg" bs=1k seek=$KERNELSIZE 
  		echo Writing the diskimage to device... >&2
  		eval "dd if=$tmpdiskimg bs=1k >$DEVICE" 
  	elif [ $dokernelcopy = no ]; then
  		echo Writing the compressed file system to device... >&2
  		eval "dd bs=1k seek=$KERNELSIZE >$DEVICE" < "$FSGZ"
  	else
  		error 'bogus value for $dokernelcopy' 
  	fi || 
  	error "it seems that there is some problem with the target device."
  }
  
  
  #
  # Program body
  #
  
  maketmpdir
  findoutFSGZ
  check
  getfsdata
  compressfs
  kernelcopy
  floppysizecheck
  check
  diskwrite
  cleanup
  exit 0
  
  
  



More information about the hints mailing list