First Stage GUI Setup

From ReactOS Wiki
Jump to: navigation, search

Objective

We want to offer, as an alternative to the 1st stage text-mode setup (usetup) as default setup, a 1st stage GUI setup so we can join bootcd and LiveCD to one CD (like in Ubuntu), which provides both the functionality of LiveCD as well as setup-cd. The modes selected in FreeLoader should be:

  • LiveCD (booting a Live-System without touching any hard disk),
  • GUI-Setup (booting a GUI similiar to LiveCD for the first stage of setup, usetup replacement),
  • Text-Setup (booting the old text-mode setup).

It can be possible to combine both LiveCD and GUI-Setup modes into one entry, in which case, a GUI selector can be used to ask the user whether to test the LiveCD, or to perform the installation. Note: This GUI selector has been introduced in r70607 by Eric Kohl.

Steps

Language and Keyboard selection

Select system and setup language Done
Select keyboard layout Done

preview of first page of setup

Setup Type / Action

  • Install ReactOS Done
  • Update ReactOS (not selectable at the moment)
  • Recovery tools (not reachable at the moment)

Device Settings

Computer type Done
Display settings Done
Keyboard type Done

Partition Tool

Manage partitions (create, format, delete) to install ReactOS.
Select and use RAID or SCSI hard disk drivers
Support for FAT32 and later NTFS, EXT2, etc. Installation folder in "advanced options"-dialog
Setup boot loader (install, configure)

These features can be shared by both the text-mode, and the GUI setup programs, if they are shared via a "setup-library".

Summary

List all properties of selected installation to check the setup before the installation process starts

Install ReactOS

Create/prepare partitions
Copying files
Installing hives
Installing boot loader

First stage setup successful dialog

Reboot to resume with second stage Done

Unattended setup

Read settings from file and setup system without user interaction

Issues

Following thing(s) need to be fixed before we can continue:

On the other hand, I'm looking for a(n elegant) solution to update the language of the installer during runtime. Especially how to reload and setup dialog resources after "SetThreadLocale". ANSWER: See how it is currently done for the LiveCD.

Installing hives should be done in an offline fashion (we set up the contents of the hives for the ReactOS installation that is being performed, not for the ReactOS installation instance that is currently running during setup, aka. the one in the LiveCD). Therefore the setupapi functions cannot be used as they are.

Installing the boot loader should be performed in a multi-boot-friendly way. Support for FreeLdr is mandatory, but one has to think about how to do it for a UEFI platform (when we'll support them).

See Also