Throughout the development of the text based installer for OpenSolaris, some of the previous files associated with the slim_cd install were modified and other new files were created. Below is a general list outlining the modifications made and a brief overview of what new files were created. Files Changed: ----------------------------------------------- /lib/svc/method/live-fs-root ----------------------------------------------- We pulled the live-fs-root from the slim-source gate and made a few changes to it. At the bottom of live-fs-root we added an if statement to determine if the install is a text install. If it is, it disables gdm and our service will start the installer. If it isn't a text install, live-fs-root checks for other types of installs. Changes to live-fs-root start at line 657 of the copy we are giving you. ------------------------------------------------------------------------------------------------------------------------- slim_source/usr/src/cmd/distro_const/slim_cd/all_lang_slim_cd_x86.xml ------------------------------------------------------------------------------------------------------------------------- The all_lang_slim_cd_x86.xml file was pulled from the current slim-source gate and altered to include our grub entry. Changes made to the current xml is just adding an entry to the grub menu. The changes are: «entry» «title_suffix»Text Installer«/title_suffix» «line»kernel$ /platform/i86pc/kernel/$ISADIR/unix -B textinstaller=enable«/line» «line»module$ /boot/$ISADIR/x86.microroot«/line» «/entry» The key change above is the variable passed in: textinstaller. Our shell script and live-fs-root currently rely on this name, so the names need to match/be consistent. ------------------------------- /etc/syslog.conf ------------------------------- This is just a temporary fix to get the error messages/warnings from displaying on /dev/console where the installer is running We commented out the following lines: --» # *.err;kern.notice;auth.notice /dev/sysmsg --» # *.err;kern.debug;daemon.notice;mail.crit /var/adm/messages *.alert;kern.err;daemon.err operator *.alert root *.emerg * # if a non-loghost machine chooses to have authentication messages # sent to the loghost machine, un-comment out the following line: auth.notice ifdef(`LOGHOST', /var/log/authlog, @loghost) mail.debug ifdef(`LOGHOST', /var/log/syslog, @loghost) # # non-loghost machines will use the following lines to cause "user" # log messages to be logged locally. # ifdef(`LOGHOST', , --» # user.err /dev/sysmsg --» # user.err /var/adm/messages user.alert `root, operator' user.emerg * ) Another more ideal way of doing this was discovered by Sanjay and Ethan too late into the project to implement, those ideas/changes are explained in the service portion below. New Files: We took a copy of the live-root-fs.xml file from the slim gate and changed some dependencies and exec_methods to create a new service called text-installer. This file can have changes made to it to prevent the errors/warnings mentioned above. The changes would make it like the legacy text installer of Solaris. Sanjay stated that the key to making this work is to take control of the console through the startd propval 'need_console'. Also a single instance of our service could be implemented as well. -------------------------------- text-install.xml --------------------------------- The text installer service that executes our shell script and installer when text install is chosen from the grub menu. Currently located in /var/svc/manifest/system The service is dependent on the sysconfi service and makes console-login dependent on the text install. «dependency name='sysconfig' type='service' grouping='require_all' restart_on='none' » «service_fmri value='svc:/milestone/sysconfig' /» «/dependency» «dependent name='console-login' grouping='exclude_all' restart_on='none' » «service_fmri value='svc:/system/console-login:default' /» «/dependent» -------------------------------- execCurses.sh -------------------------------- This shell script is executed from the service. The script sets the term to sun-color which was needed for curses. Then it executes the text installer, currently called test.curses. After the text installer executes the shell script handles the system restart if they selected a reboot after install. After all of that completes the text install service is disabled. The script is structured such that the setting of the terminal, executing the installer, and rebooting only occurs if the textinstaller variable is set to enable from the grub menu. This means that in any other case except for the initial install, the shell script disables our service and the installer doesn't execute. This shell script sets the terminal type for the installer, executes the installer, and reboots after install if necessary. After the installer executes the script disables our text install service in order to let the console-login service start. Currently the console login has a dependency on our service. Currently our service is looking for this file in lib/svc/method ----------------------------------------------------------------------------------- All of our source code to make the text installer ----------------------------------------------------------------------------------- All of the text installer is implemented in C Text files for each screen in the data directory Help text files for each screen ( haven't been implemented yet) You need to have liborchestrator.so.1 to build and run the executable of the text installer currently our makefile is looking in /lib for this and not for the actual copy on the system ( we don't know where it is normally located)