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 is possible to combine both LiveCD and GUI-Setup modes into one installation image, in which case, a GUI selector can be used to ask the user whether to test the LiveCD, or to perform the installation. 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) in both MBR and GPT schemes to install ReactOS. Partly done
  • Support for FAT32 and later NTFS, EXT2, etc. Installation folder in "advanced options"-dialog. Partly done
  • Setup boot loader (install, configure).
These features are intended to be shared by both the text-mode and the GUI setup programs, with a "setup-library".
Therefore their implementation will be finished once the corresponding code in the text-mode setup program has been modularized.
See progress at the following branches:
setup_improvements_partitioning_GPT and setup_improvements_formatting.
  • Select and use RAID or SCSI hard disk drivers.

Summary

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

Install ReactOS

  • Create/prepare partitions.
  • Copying files. Partly done
  • Installing hives. Partly done
  • Installing boot loader.

The file copying functionality depends on fixes for the cab archive extraction code, by back-porting the latest Wine's setupapi code fixes related to this area. This is done in the setupapi_partial_winesync_fixes branch. In particular the extraction code must NOT depend on the existence of a write-access temporary folder on the current ReactOS SystemRoot directory (which, for the setup/LiveCD, is actually on the installation media). This problem has been fixed in Wine's setupapi recently, and needs to be imported back in our code base.

First stage setup successful dialog

  • Reboot to resume with second stage Done

Unattended setup

  • Read settings from file and setup system without user interaction. Done

Issues

The following issue(s) need to be fixed before we can continue:
- Back-syncing Wine's setupapi code related to the extraction of cab archives.
Existing related JIRA reports CORE-14164 and CORE-12542.

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.

See Also