This is the BSD Installer project from SummerOfCode2005

Integrate BSD Installer into the FreeBSD install CD's

Integrating the BSD Installer into the FreeBSD release building process.

  1. Checkout the perforce tree
  2. cd to the scripts directory
  3. Copy the config.txt.eg to config.txt
  4. Change the variables to be correct for your system:
    • PATCH_DIR is a directory where the patches are placed
    • SRC_DIR is the location of the source code for the version of FreeBSD you are currently running
    • BUILDNAME, CVSROOT and CHROOTDIR are to be set as for release(7)
  5. Run 'sh build_patch.sh'. This will create a patch, a script and tarballs to be used with LOCAL_PATCHES and LOCAL_SCRIPT during release
    • The current release Makefile has extra changes. The first two chunks need to be removed or the new release Makefile needs to be intergrated.
  6. The release/Makefile needs to be patched to export the -DBSDINSTALLER to the child script. There is a patch in the scripts directory for RELENG_6 for rev. 1.853.2.16
  7. Run 'sh build_release.sh'. This will run 'make buildworld' in SRC_DIR from config.txt followed by 'cd release' and 'make release -DBSDINSTALLER …'
    • This dosn't add any packages to the ISO image. The BSD Installer can install them if you add them later (eg. rerelease)
  • Can only install to one drive, can't have / on ad0 and /usr on ad1
  • Install to multiple disks
  • Create a scriptable backend for large scale installations
  • Install on GVinum, GMirror, etc
  • Update the building instructions to show how to install packages
  • Lua - All installed form packages.
    • Lua 5.0 - The newer BSDInstaller backend is written in Lua. Lua is interpreted so will need to be on the install CD's
    • compat-5.1 - Required as the BSDInstaller uses it
    • posix - Used to call posix functions
    • luasocket - Used to send emails when a problem is encountered
  • BSDInstaller
    • libaura - Required for libdfui and frontend
    • libdfui - Required to communicate between backend and frontend
    • backend - The actual work is done by this to install FreeBSD. Not installed from a package
    • ncurses frontend - Provide interaction with the user
  • libaura → /usr/local/lib/libaura3.so
  • libdfui → /usr/local/lib/libdfui4.so
  • liblua → /usr/local/lib/liblua.so
  • liblualib → /usr/local/lib/liblualib.so
  • Lua → /usr/local/bin/lua
  • lua modules → /usr/local/lib/lib/lua/5.0/ and /usr/local/lib/share/lua/5.0/
  • BSDInstaller backend → /usr/libexec/bsdinstaller/
  • ncurses frontend → /usr/sbin/bsd_installer_ncurses

The Lua modules are all in the ports tree. The Lua modules are:

  • app - devel/lua50-app
  • compat-5.1 - devel/lua50-compat51
  • dfui - devel/lua50-dfui
  • filename - devel/lua50-filename
  • luasocket - net/luasocket
  • posix - devel/lua50-posix
  • pty - devel/lua50-pty

Other parts:

  • libaura - devel/libaura
  • libdfui - devel/libdfui
  • ncurses front end - devel/dfuife_curses
  • Other frontends - Not yet

There are three virtual consoles:

  • ttyv0: The frontend
  • ttyv1: The backend
  • ttyv2: A standard login screen to login as root with no password.

To see the installation log change to console ttyv1. It is also written to /var/log/install.log on the installed disk.

Packages are only installable from the first CD.

BSD Installer is split into three main parts:

  1. A Frontend to display the menu to the user.
  2. A Backend to tell the Frontend what to display.
  3. A library to get the Frontend and Backend talking to each other.

The BSD Installer is installed from a minimal live CD. The front and back ends run from separate virtual consoles. This is to display any output from the backend to the console, eg. the results of newfs.

  • bsdinstaller.txt
  • Last modified: 2026/10/12 10:55
  • (external edit)