1# 2# $FreeBSD: releng/10.2/release/picobsd/qemu/crunch.conf 246932 2013-02-18 02:08:41Z luigi $ 3# 4# Configuration file for "qemu" images.. 5# 6# Depending on your needs, you will almost surely need to 7# add/remove/change programs according to your needs. 8# Remember that some programs require matching kernel options to 9# enable device drivers etc. 10# 11# To figure out how much space is used by each program, do 12# 13# size build_dir-bridge/crunch/*lo 14# 15# Remember that programs require libraries, which add up to the 16# total size. The final binary is build_dir-bridge/mfs.tree/stand/crunch 17# and you can check which libraries it uses with 18# 19# ldd build_dir-bridge/mfs.tree/stand/crunch 20 21# crunchgen configuration to build the crunched binary, see "man crunchgen" 22# We need to specify generic build options, the places where to look 23# for sources, and the list of program and libraries we want to put 24# in the crunched binary. 25# 26# NOTE: the string "/usr/src" below will be automatically replaced with 27# the path set in the 'build' script. 28 29# Default build options. Basically tell the Makefiles 30# that to use the most compact possible version of the code. 31 32buildopts -DWITHOUT_PAM -DRELEASE_CRUNCH -DPPP_NO_NETGRAPH 33buildopts -DTRACEROUTE_NO_IPSEC -DNO_INET6 34buildopts -DWITHOUT_IPX 35 36# Directories where to look for sources of various binaries. 37# @__CWD__@ is a magic keyword in the picobsd's (Makefile.conf) 38# which is replaced with the directory with the picobsd configuration 39# corresponding to your image. This way you can have custom sources 40# in that directory overriding system programs. 41 42srcdirs @__CWD__@/src 43 44# Some programs are especially written for PicoBSD and reside in 45# release/picobsd/tinyware. 46# Put this entry near the head of the list to override standard binaries. 47 48srcdirs /usr/src/release/picobsd/tinyware 49 50# Other standard locations for sources. 51# If a program uses its own source directory, add 52 53srcdirs /usr/src/bin 54srcdirs /usr/src/sbin/i386 55srcdirs /usr/src/sbin 56srcdirs /usr/src/usr.bin 57srcdirs /usr/src/gnu/usr.bin 58srcdirs /usr/src/usr.sbin 59srcdirs /usr/src/libexec 60 61# For programs that reside in different places, the best option 62# is to use the command "special XXX srcdir YYY" where XXX is the 63# program name and YYY is the directory path. 64# "special XXX ..." can be used to specify more options, see again 65# the crunchgen manpage. 66 67#--- Basic configuraton 68# init is always necessary (unless you have a replacement, oinit) 69progs init 70 71# fsck is almost always necessary, unless you have everything on the 72# image and use 'tar' or something similar to read/write raw blocks 73# from the floppy. 74 75progs fsck 76 77# ifconfig is needed if you want to configure interfaces. 78progs ifconfig 79 80# You will also need a shell and a bunch of utilities. 81# The standard shell is not that large, but you need many 82# external programs. In fact most of them do not take much space 83# as they merely issue a system call, and print the result. 84# For a more compact version of shell and utilities, you could 85# try busybox, however most system management commands in busybox 86# will not work as they use linux-specific interfaces. 87 88progs sh 89ln sh -sh 90 91# the small utilities 92progs echo 93progs pwd mkdir rmdir 94progs chmod chown 95ln chown chgrp 96progs mv ln cp rm ls 97progs cat tail tee 98progs test 99ln test [ 100 101progs less 102ln less more 103progs mount 104progs minigzip 105ln minigzip gzip 106progs kill 107progs df 108progs ps 109progs ns # this is the picobsd version 110ln ns netstat 111progs vm 112progs hostname 113progs login 114progs getty 115progs stty 116progs w 117progs msg 118ln msg dmesg 119progs reboot 120 121progs sysctl 122progs swapon 123progs pwd_mkdb 124progs umount 125progs du 126progs passwd 127 128progs route 129 130# If you want to run natd, remember the alias library 131progs natd 132libs_so -lalias # natd 133progs tcpdump 134special tcpdump srcdir /usr/src/usr.sbin/tcpdump/tcpdump 135libs_so -lpcap # used by tcpdump 136libs_so -lcrypto # used by tcpdump with inet6 137 138# ppp is rather large. Note that as of Jan.01, RELEASE_CRUNCH 139# makes ppp not use libalias, so you cannot have aliasing. 140#progs ppp 141 142# You need an editor. ee is relatively small, though there are 143# smaller ones. vi is much larger. 144# The editor also usually need a curses library. 145progs ee 146 147progs arp 148 149# these require libgeom 150# progs bsdlabel fdisk mdconfig 151 152progs kldload kldunload kldstat 153progs kldxref 154progs grep 155libs_so -lgnuregex -lbz2 156# dhclient-script requires 'sed' 157progs dhclient 158progs sed 159progs date 160progs time 161progs ping 162progs ping6 163progs tar 164 165#progs routed 166progs ipfw 167progs traceroute 168progs mdmfs 169ln mdmfs mount_mfs 170# Various filesystem support -- remember to enable the kernel parts 171# progs mount_msdosfs 172progs mount_nfs 173# progs mount_cd9660 174ln mount_nfs nfs 175ln mount_cd9660 cd9660 176#progs newfs 177#ln newfs mount_mfs 178# ln mount_msdosfs msdos 179 180# For a small ssh client/server use dropbear 181progs jail jexec jls # why not... 182 183 184# Now the libraries 185libs_so -lc # the C library 186libs_so -ll # used by sh (really ?) 187libs_so -lufs # used by mount 188### ee uses ncurses but as a dependency 189#libs_so -lncurses 190libs_so -lm 191libs_so -ledit -lutil 192libs_so -lcrypt 193libs_so -lkvm 194libs_so -lz 195libs_so -lbsdxml 196libs_so -lsbuf 197libs_so -ljail # used by ifconfig 198libs_so -lipsec -lmd # used with ipv6 199libs_so -larchive -lbz2 200libs_so -llzma # added after 207840 201