Difference between revisions of "First Stage GUI Setup"

From ReactOS Wiki
Jump to: navigation, search
(Partition Tool)
m (Use JIRA templates)
 
(25 intermediate revisions by 10 users not shown)
Line 1: Line 1:
current developers: [[User:Maku|Matthias Kupfer]], [[User:Frik85|Klemens Friedl]]
 
 
 
== Objective ==
 
== Objective ==
We want to replace the 1st stage textmode setup (usetup) as default setup by a 1st stage GUI setup. So we can join bootcd and livecd to one cd, which provides functionality of livecd as well as setup-cd. The modes selected in freeloader should be:
+
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)
+
* [[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)
+
* GUI-Setup (booting a GUI similiar to [[LiveCD]] for the first stage of setup, usetup replacement),
* Text-Setup (booting the old textmode setup)
+
* Text-Setup (booting the old text-mode setup).
(Later LiveCD and GUI-Setup mode might be combined to one entry.)
+
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 {{rev|70607}} by Eric Kohl.
 
 
  
 
== Steps ==
 
== Steps ==
Line 13: Line 10:
 
=== Language and Keyboard selection===
 
=== Language and Keyboard selection===
  
Select system and setup language and keyboard layout
+
* Select system and setup language <font style="color:green">Done</font>
 +
* Select keyboard layout <font style="color:green">Done</font>
 +
 
 
[[Image:1st_stage_lang.png|right|320px|preview of first page of setup]]
 
[[Image:1st_stage_lang.png|right|320px|preview of first page of setup]]
  
 
=== Setup Type / Action ===
 
=== Setup Type / Action ===
  
* Install ReactOS
+
* Install [[ReactOS]]. <font style="color:green">Done</font>
* Update ReactOS
+
* Update [[ReactOS]]. (not selectable at the moment)
* Recovery tools
+
* Recovery tools (not reachable at the moment).
  
 
=== Device Settings ===
 
=== Device Settings ===
  
Computer type<br />
+
* Computer type. <font style="color:green">Done</font><br/>
Display settings<br />
+
* Display settings. <font style="color:green">Done</font><br/>
Keyboard type
+
* Keyboard type. <font style="color:green">Done</font>
  
 
=== Partition Tool ===
 
=== Partition Tool ===
  
Manage partitions (create, format, delete) to install ReactOS.<br />
+
* Manage partitions (create, format, delete) in both MBR and GPT schemes to install [[ReactOS]]. <font style="color:orange">Partly done</font>
Select and use RAID or SCSI hard disk drivers<br />
+
* Support for [[File_Systems#FAT32|FAT32]] and later [[File_Systems#NTFS|NTFS]], [[File_Systems#EXT2|EXT2]], etc. Installation folder in "advanced options"-dialog. <font style="color:orange">Partly done</font>
Support for FAT32 and later NTFS, EXT2, etc. Installation folder in "advanced options"-dialog<br />
+
* Setup boot loader (install, configure).
Setup boot loader (install, configure)<br />
+
 
 +
:: 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:
 +
:: [https://github.com/hbelusca/reactos/tree/setup_improvements_partitioning_GPT setup_improvements_partitioning_GPT] and [https://github.com/hbelusca/reactos/tree/setup_improvements_formatting 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. <font style="color:green">Done</font>
  
=== Install ReactOS ===
+
=== Install [[ReactOS]] ===
  
Create/prepare partitions<br />
+
* Create/prepare partitions.
Copying files<br />
+
* Copying files. <font style="color:orange">Partly done</font>
Installing hives<br />
+
* Installing hives. <font style="color:orange">Partly done</font>
Installing boot loader<br />
+
* 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 [https://github.com/hbelusca/reactos/tree/setupapi_partial_winesync_fixes 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 ===
 
=== First stage setup successful dialog ===
  
Reboot to resume with second stage
+
* Reboot to resume with second stage <font style="color:green">Done</font>
 +
 
 +
=== Unattended setup ===
 +
 
 +
* Read settings from file and setup system without user interaction. <font style="color:green">Done</font>
 +
 
 +
=== Issues ===
 +
 
 +
The following issue(s) need to be fixed before we can continue:<br/>
 +
- Back-syncing Wine's setupapi code related to the extraction of cab archives.<br/>
 +
Existing related JIRA reports {{JIRA|14164}} and {{JIRA|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==
 +
* [[ReactOS Welcome Wizard]]
 +
* [[LiveCD]]
 +
* [[LiveUSB]]
 +
 
 +
[[Category:ReactOS Components]]

Latest revision as of 18:34, 18 March 2021

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