# # $FreeBSD: stable/9/release/picobsd/qemu/crunch.conf 210125 2010-07-15 16:32:59Z luigi $ # # Configuration file for "qemu" images.. # # Depending on your needs, you will almost surely need to # add/remove/change programs according to your needs. # Remember that some programs require matching kernel options to # enable device drivers etc. # # To figure out how much space is used by each program, do # # size build_dir-bridge/crunch/*lo # # Remember that programs require libraries, which add up to the # total size. The final binary is build_dir-bridge/mfs.tree/stand/crunch # and you can check which libraries it uses with # # ldd build_dir-bridge/mfs.tree/stand/crunch # crunchgen configuration to build the crunched binary, see "man crunchgen" # We need to specify generic build options, the places where to look # for sources, and the list of program and libraries we want to put # in the crunched binary. # # NOTE: the string "/usr/src" below will be automatically replaced with # the path set in the 'build' script. # Default build options. Basically tell the Makefiles # that to use the most compact possible version of the code. buildopts -DWITHOUT_PAM -DRELEASE_CRUNCH -DPPP_NO_NETGRAPH buildopts -DTRACEROUTE_NO_IPSEC #-DNO_INET6 buildopts -DWITHOUT_IPX buildopts -DWITHOUT_INET6 buildopts -DWITHOUT_CASPER #buildopts -DWITH_INET6 -DWITH_INET6_SUPPORT # Directories where to look for sources of various binaries. # @__CWD__@ is a magic keyword in the picobsd's (Makefile.conf) # which is replaced with the directory with the picobsd configuration # corresponding to your image. This way you can have custom sources # in that directory overriding system programs. srcdirs @__CWD__@/src # Some programs are especially written for PicoBSD and reside in # release/picobsd/tinyware. # Put this entry near the head of the list to override standard binaries. srcdirs /usr/src/release/picobsd/tinyware # Other standard locations for sources. # If a program uses its own source directory, add srcdirs /usr/src/bin #srcdirs /usr/src/sbin/amd64 srcdirs /usr/src/sbin srcdirs /usr/src/usr.bin srcdirs /usr/src/gnu/usr.bin srcdirs /usr/src/usr.sbin srcdirs /usr/src/libexec srcdirs /usr/src/contrib # For programs that reside in different places, the best option # is to use the command "special XXX srcdir YYY" where XXX is the # program name and YYY is the directory path. # "special XXX ..." can be used to specify more options, see again # the crunchgen manpage. #--- Basic configuraton # init is always necessary (unless you have a replacement, oinit) progs init # fsck is almost always necessary, unless you have everything on the # image and use 'tar' or something similar to read/write raw blocks # from the floppy. progs fsck # ifconfig is needed if you want to configure interfaces. progs ifconfig # You will also need a shell and a bunch of utilities. # The standard shell is not that large, but you need many # external programs. In fact most of them do not take much space # as they merely issue a system call, and print the result. # For a more compact version of shell and utilities, you could # try busybox, however most system management commands in busybox # will not work as they use linux-specific interfaces. progs sh ln sh -sh # the small utilities progs echo progs pwd mkdir rmdir progs chmod chown ln chown chgrp progs mv ln cp rm ls progs cat tail tee cut head progs test ln test [ progs less ln less more progs mount progs minigzip ln minigzip gzip progs kill progs killall progs grep awk xargs ln grep egrep #progs xo progs df libs_so -lxo progs ps progs ns # this is the picobsd version #ln ns netstat #progs netstat #ste progs vm progs hostname progs login progs getty progs stty progs w progs msg ln msg dmesg progs reboot progs halt progs sysctl progs swapon progs pwd_mkdb progs umount progs du progs passwd progs route # If you want to run natd, remember the alias library # progs natd # libs_so -lalias # natd #progs tcpdump #special tcpdump srcdir /usr/src/usr.sbin/tcpdump/tcpdump #libs_so -lpcap # used by tcpdump #libs_so -lcrypto # used by tcpdump with inet6 # ppp is rather large. Note that as of Jan.01, RELEASE_CRUNCH # makes ppp not use libalias, so you cannot have aliasing. #progs ppp # You need an editor. ee is relatively small, though there are # smaller ones. vi is much larger. # The editor also usually need a curses library. progs ee progs arp # these require libgeom # progs bsdlabel fdisk mdconfig progs kldload kldunload kldstat # progs kldxref progs bsdgrep libs_so -lgnuregex -lbz2 # dhclient-script requires 'sed' progs dhclient progs sed progs date progs time progs ping progs ping6 progs tar progs top #progs routed progs ipfw progs traceroute progs mdmfs ln mdmfs mount_mfs # Various filesystem support -- remember to enable the kernel parts # progs mount_msdosfs #progs mount_nfs # progs mount_cd9660 #ln mount_nfs nfs #ln mount_cd9660 cd9660 #progs newfs #ln newfs mount_mfs # ln mount_msdosfs msdos # For a small ssh client/server use dropbear # progs jail jexec jls # why not... progs nc progs vmstat progs limits progs uname progs sleep progs ddb # Now the libraries libs_so -lc # the C library libs_so -ll # used by sh (really ?) libs_so -lufs # used by mount ### ee uses ncurses but as a dependency libs_so -lncurses libs_so -lm libs_so -ledit -lutil libs_so -lcrypt libs_so -lkvm libs_so -lz libs_so -lbsdxml libs_so -lsbuf libs_so -ljail # used by ifconfig libs_so -lipsec -lmd # used with ipv6 libs_so -larchive -lbz2 libs_so -llzma # added after 207840 libs_so -lulog libs_so -ldevstat # used by vmstat libs_so -lmemstat # used by vmstat libs_so -lnetgraph # used by netstat libs_so -lpam