# # $FreeBSD: head/release/picobsd/qemu/crunch.conf 267147 2014-06-06 04:09:07Z imp $ # # 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_KERBEROS -DWITHOUT_OPENSSL # 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/i386 srcdirs /usr/src/sbin srcdirs /usr/src/usr.bin srcdirs /usr/src/gnu/usr.bin srcdirs /usr/src/usr.sbin srcdirs /usr/src/libexec # 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 progs test ln test [ progs less ln less more progs mount progs minigzip ln minigzip gzip progs kill progs df progs ps progs ns # this is the picobsd version ln ns netstat progs vm progs hostname progs login progs getty progs stty progs w progs msg ln msg dmesg progs reboot 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 grep libs_so -lgnuregex -lbz2 # dhclient-script requires 'sed' progs dhclient progs sed progs date progs time progs ping progs ping6 progs tar #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... # 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