Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. This is the BSD Installer project from [[SummerOfCode2005|SummerOfCode2005]] ===== Project Name ===== Integrate BSD Installer into the %%FreeBSD%% install CD's ===== Synopsis ===== Integrating the BSD Installer into the %%FreeBSD%% release building process. ===== Building from Perforce ===== - Checkout the perforce tree - cd to the scripts directory - Copy the config.txt.eg to config.txt - 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) - 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. - 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 - 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) ===== Bugs ===== * Can only install to one drive, can't have / on ad0 and /usr on ad1 * See also [[BSDInstaller/PrepareDisk]] ===== Releases ===== ==== BETA 1 ==== * Released 2005-07-29 * Based on the older C backend * [[ftp://ftp.freebsd.org/pub/FreeBSD/SOC2005/bsdinstaller/6.0-BSDINSTALLER-BETA-1-i386.iso|ISO]] * Fixes since BETA 1 release * [[http://perforce.freebsd.org/chv.cgi?CH=81195|Fixed spelling in Distributions screen]] * [[http://perforce.freebsd.org/chv.cgi?CH=81232|Fix dhclient and Sendmail]] * [[http://perforce.freebsd.org/chv.cgi?CH=81274|Explain how to get to a shell]] * [[http://perforce.freebsd.org/chv.cgi?CH=81323|Save dmesg.boot to be viewed later]] * [[http://perforce.freebsd.org/chv.cgi?CH=81330|Install the source dists]] * [[http://perforce.freebsd.org/chv.cgi?CH=81331|Remove "Setup NetBoot Install Services"]] * [[http://perforce.freebsd.org/chv.cgi?CH=81383|Add a kernel without PREEMPTION for Qemu and Vmware]] * [[http://perforce.freebsd.org/chv.cgi?CH=81440|Install the ports tree if asked to]] * [[http://perforce.freebsd.org/chv.cgi?CH=82814|Install packages from /usr/packages]] * [[http://perforce.freebsd.org/chv.cgi?CH=82892|Select package dependencies]] * [[http://perforce.freebsd.org/chv.cgi?CH=82899|Stop a repeatable segmentation fault]] * The backend has been changed to use the newer Lua version after change 82899 ==== BETA 2 ==== * Released 2005-12-11 * Based on the newer Lua backend * Fixes since BETA 2 release * [[http://perforce.freebsd.org/chv.cgi?CH=88060|Multiple fixes (see description)]] * [[http://perforce.freebsd.org/chv.cgi?CH=88142|Allow boot1 to be used rather than boot0]] * [[http://perforce.freebsd.org/chv.cgi?CH=88143|Remove unused options from the Select Task menu]] * [[http://perforce.freebsd.org/chv.cgi?CH=88144|Remove two references to /README that imply there are install instructions there]] * [[http://perforce.freebsd.org/chv.cgi?CH=88438|Rename the bsd_lua -> bsdlua, libbsd_lua.so -> libbsdlua.so, libbsd_lualib.so -> libbsdlualib.so and install the header files]] ==== Snapshot 2006-05-12 ==== * Released 2006-05-15 * [[ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/bsdinstaller/7.0-20060512-BSDINSTALLER-i386-disc1.iso|ISO]] * Fixes since snapshot 2006-05-12 * [[http://perforce.freebsd.org/chv.cgi?CH=97242|Rename the FreeBSD/DragonFly slice type to FreeBSD]] * [[http://perforce.freebsd.org/chv.cgi?CH=97243|Rename "Ports tree" to "Ports collection"]] * [[http://perforce.freebsd.org/chv.cgi?CH=97611|Start the first partition on a slice at offset 16]] * [[http://perforce.freebsd.org/chv.cgi?CH=97849|Replace "this disk" with the disk name, Change "formatted" -> "created", Change "primary partition" to "install partition"]] * This is a list of open questions/wants/problems with this release of the BSDInstaller on %%FreeBSD%% * Change partition editor to allow setting the start offset of a fdisk slice * Will it support %%PPPoE%%? * Add support for dangerously dedicated disks? - No * Will it support installing on multiple disks? - No * Add a dialog to explain slices and partitions * Does it support hotkeys bound to interface elements like sysinstall - Yes, eg. Esc is bound to back in many (all?) interfaces ==== Todo ==== * 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 ===== Details ===== ==== Parts ==== * 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 ==== Installation locations ==== * 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 ==== Virtual consoles ==== 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 ==== Packages are only installable from the first CD. ===== Architecture ===== BSD Installer is split into three main parts: - A Frontend to display the menu to the user. - A Backend to tell the Frontend what to display. - 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. ===== Links ===== * [[http://www.bsdinstaller.org|The BSD Installer]] * [[http://cvs.bsdinstaller.org/cgi-bin/cvsweb.cgi/|BSD Installer CVSweb]] * [[http://fubar.geek.nz/blog/|My Blog]] bsdinstaller.txt Last modified: 2008/06/17 21:37by 127.0.0.1