1201062Sluigi# 2201062Sluigi# $FreeBSD: releng/10.2/release/picobsd/qemu/crunch.conf 246932 2013-02-18 02:08:41Z luigi $ 3201062Sluigi# 4201062Sluigi# Configuration file for "qemu" images.. 5201062Sluigi# 6201062Sluigi# Depending on your needs, you will almost surely need to 7201062Sluigi# add/remove/change programs according to your needs. 8201062Sluigi# Remember that some programs require matching kernel options to 9201062Sluigi# enable device drivers etc. 10201062Sluigi# 11201062Sluigi# To figure out how much space is used by each program, do 12201062Sluigi# 13201062Sluigi# size build_dir-bridge/crunch/*lo 14201062Sluigi# 15201062Sluigi# Remember that programs require libraries, which add up to the 16201062Sluigi# total size. The final binary is build_dir-bridge/mfs.tree/stand/crunch 17201062Sluigi# and you can check which libraries it uses with 18201062Sluigi# 19201062Sluigi# ldd build_dir-bridge/mfs.tree/stand/crunch 20201062Sluigi 21201062Sluigi# crunchgen configuration to build the crunched binary, see "man crunchgen" 22201062Sluigi# We need to specify generic build options, the places where to look 23201062Sluigi# for sources, and the list of program and libraries we want to put 24201062Sluigi# in the crunched binary. 25201062Sluigi# 26201062Sluigi# NOTE: the string "/usr/src" below will be automatically replaced with 27201062Sluigi# the path set in the 'build' script. 28201062Sluigi 29201062Sluigi# Default build options. Basically tell the Makefiles 30201062Sluigi# that to use the most compact possible version of the code. 31201062Sluigi 32246932Sluigibuildopts -DWITHOUT_PAM -DRELEASE_CRUNCH -DPPP_NO_NETGRAPH 33201062Sluigibuildopts -DTRACEROUTE_NO_IPSEC -DNO_INET6 34201062Sluigibuildopts -DWITHOUT_IPX 35201062Sluigi 36201062Sluigi# Directories where to look for sources of various binaries. 37201062Sluigi# @__CWD__@ is a magic keyword in the picobsd's (Makefile.conf) 38201062Sluigi# which is replaced with the directory with the picobsd configuration 39201062Sluigi# corresponding to your image. This way you can have custom sources 40201062Sluigi# in that directory overriding system programs. 41201062Sluigi 42201062Sluigisrcdirs @__CWD__@/src 43201062Sluigi 44201062Sluigi# Some programs are especially written for PicoBSD and reside in 45201062Sluigi# release/picobsd/tinyware. 46201062Sluigi# Put this entry near the head of the list to override standard binaries. 47201062Sluigi 48201062Sluigisrcdirs /usr/src/release/picobsd/tinyware 49201062Sluigi 50201062Sluigi# Other standard locations for sources. 51201062Sluigi# If a program uses its own source directory, add 52201062Sluigi 53201062Sluigisrcdirs /usr/src/bin 54201062Sluigisrcdirs /usr/src/sbin/i386 55201062Sluigisrcdirs /usr/src/sbin 56201062Sluigisrcdirs /usr/src/usr.bin 57201062Sluigisrcdirs /usr/src/gnu/usr.bin 58201062Sluigisrcdirs /usr/src/usr.sbin 59201062Sluigisrcdirs /usr/src/libexec 60201062Sluigi 61201062Sluigi# For programs that reside in different places, the best option 62201062Sluigi# is to use the command "special XXX srcdir YYY" where XXX is the 63201062Sluigi# program name and YYY is the directory path. 64201062Sluigi# "special XXX ..." can be used to specify more options, see again 65201062Sluigi# the crunchgen manpage. 66201062Sluigi 67201062Sluigi#--- Basic configuraton 68201062Sluigi# init is always necessary (unless you have a replacement, oinit) 69201062Sluigiprogs init 70201062Sluigi 71201062Sluigi# fsck is almost always necessary, unless you have everything on the 72201062Sluigi# image and use 'tar' or something similar to read/write raw blocks 73201062Sluigi# from the floppy. 74201062Sluigi 75201062Sluigiprogs fsck 76201062Sluigi 77201062Sluigi# ifconfig is needed if you want to configure interfaces. 78201062Sluigiprogs ifconfig 79201062Sluigi 80201062Sluigi# You will also need a shell and a bunch of utilities. 81201062Sluigi# The standard shell is not that large, but you need many 82201062Sluigi# external programs. In fact most of them do not take much space 83201062Sluigi# as they merely issue a system call, and print the result. 84201062Sluigi# For a more compact version of shell and utilities, you could 85201062Sluigi# try busybox, however most system management commands in busybox 86201062Sluigi# will not work as they use linux-specific interfaces. 87201062Sluigi 88201062Sluigiprogs sh 89201062Sluigiln sh -sh 90201062Sluigi 91201062Sluigi# the small utilities 92201062Sluigiprogs echo 93201062Sluigiprogs pwd mkdir rmdir 94201062Sluigiprogs chmod chown 95201062Sluigiln chown chgrp 96201062Sluigiprogs mv ln cp rm ls 97201062Sluigiprogs cat tail tee 98201062Sluigiprogs test 99201062Sluigiln test [ 100201062Sluigi 101201062Sluigiprogs less 102201062Sluigiln less more 103201062Sluigiprogs mount 104201062Sluigiprogs minigzip 105201062Sluigiln minigzip gzip 106201062Sluigiprogs kill 107201062Sluigiprogs df 108201062Sluigiprogs ps 109201062Sluigiprogs ns # this is the picobsd version 110201062Sluigiln ns netstat 111201062Sluigiprogs vm 112201062Sluigiprogs hostname 113201062Sluigiprogs login 114201062Sluigiprogs getty 115201062Sluigiprogs stty 116201062Sluigiprogs w 117201062Sluigiprogs msg 118201062Sluigiln msg dmesg 119201062Sluigiprogs reboot 120201062Sluigi 121201062Sluigiprogs sysctl 122201062Sluigiprogs swapon 123201062Sluigiprogs pwd_mkdb 124201062Sluigiprogs umount 125201062Sluigiprogs du 126201062Sluigiprogs passwd 127201062Sluigi 128201062Sluigiprogs route 129201062Sluigi 130201062Sluigi# If you want to run natd, remember the alias library 131201062Sluigiprogs natd 132201062Sluigilibs_so -lalias # natd 133201062Sluigiprogs tcpdump 134201062Sluigispecial tcpdump srcdir /usr/src/usr.sbin/tcpdump/tcpdump 135201062Sluigilibs_so -lpcap # used by tcpdump 136210125Sluigilibs_so -lcrypto # used by tcpdump with inet6 137201062Sluigi 138201062Sluigi# ppp is rather large. Note that as of Jan.01, RELEASE_CRUNCH 139201062Sluigi# makes ppp not use libalias, so you cannot have aliasing. 140201062Sluigi#progs ppp 141201062Sluigi 142201062Sluigi# You need an editor. ee is relatively small, though there are 143201062Sluigi# smaller ones. vi is much larger. 144201062Sluigi# The editor also usually need a curses library. 145201062Sluigiprogs ee 146201062Sluigi 147201062Sluigiprogs arp 148201062Sluigi 149201062Sluigi# these require libgeom 150201062Sluigi# progs bsdlabel fdisk mdconfig 151201062Sluigi 152201062Sluigiprogs kldload kldunload kldstat 153201062Sluigiprogs kldxref 154201062Sluigiprogs grep 155201062Sluigilibs_so -lgnuregex -lbz2 156201062Sluigi# dhclient-script requires 'sed' 157201062Sluigiprogs dhclient 158201062Sluigiprogs sed 159201062Sluigiprogs date 160201062Sluigiprogs time 161201062Sluigiprogs ping 162210125Sluigiprogs ping6 163210125Sluigiprogs tar 164210125Sluigi 165201062Sluigi#progs routed 166201062Sluigiprogs ipfw 167201062Sluigiprogs traceroute 168201062Sluigiprogs mdmfs 169201062Sluigiln mdmfs mount_mfs 170201062Sluigi# Various filesystem support -- remember to enable the kernel parts 171201062Sluigi# progs mount_msdosfs 172201062Sluigiprogs mount_nfs 173201062Sluigi# progs mount_cd9660 174201062Sluigiln mount_nfs nfs 175201062Sluigiln mount_cd9660 cd9660 176201062Sluigi#progs newfs 177201062Sluigi#ln newfs mount_mfs 178201062Sluigi# ln mount_msdosfs msdos 179201062Sluigi 180201062Sluigi# For a small ssh client/server use dropbear 181210125Sluigiprogs jail jexec jls # why not... 182201062Sluigi 183210125Sluigi 184201062Sluigi# Now the libraries 185201062Sluigilibs_so -lc # the C library 186201062Sluigilibs_so -ll # used by sh (really ?) 187201062Sluigilibs_so -lufs # used by mount 188201062Sluigi### ee uses ncurses but as a dependency 189201062Sluigi#libs_so -lncurses 190201062Sluigilibs_so -lm 191201062Sluigilibs_so -ledit -lutil 192201062Sluigilibs_so -lcrypt 193201062Sluigilibs_so -lkvm 194201062Sluigilibs_so -lz 195201062Sluigilibs_so -lbsdxml 196201062Sluigilibs_so -lsbuf 197201062Sluigilibs_so -ljail # used by ifconfig 198210125Sluigilibs_so -lipsec -lmd # used with ipv6 199210125Sluigilibs_so -larchive -lbz2 200210125Sluigilibs_so -llzma # added after 207840 201