I feel like the boot menu is going to be far too busy for the end user. I'd go with something closer to
blah blah: - Install Now - Try without installing - Show advanced options... where: - Install now -- boots into the graphical installer (no desktop unless you cancel or something) - Try without installing -- boots into livecd desktop (backed by RAM, I guess) - Show advanced options... -- opens a second-level menu with - Text-mode installer - Live boot without Ramdisk - etc. On 4 July 2017 at 21:45, Hermès BÉLUSCA-MAÏTO <hermes.belu...@sfr.fr> wrote: > Hello everyone, > > > > One of the long-term plan for ReactOS was to have a graphical user-mode > interface for the 1st-stage setup, similar to e.g. what may be found in > newer versions of Windows (Vista+), as an alternative to our current 1st-stage > setup in text-mode > > (note that I say “alternative”, not “replacement”, because both of them > can live together without fundamental changes to either ReactOS or our ISO > images, both of them can share core functionality, and finally because some > people may prefer the text-mode either for unattended installations or for > low-memory conditions). > > > > You can find some information about the 1st-stage GUI setup here: > https://reactos.org/wiki/First_Stage_GUI_Setup . In our source code, it > can be found in base/setup/reactos/ . Currently only most of the screens > have been implemented, while the core functionality is not present. However > this functionality can somehow be taken by reusing the source code of > USETUP (see my branch https://svn.reactos.org/svn/reactos/branches/setup_ > improvements/base/setup/ ). > > > > > > Abstract (aka. TL;DR): I explain below the needed changes introduced > experimentally in the “setup-improvements” branch, revision 75273, to > generate an all-in-one ReactOS bootcd, that includes both the 1st-stage > text-mode setup + 1st-stage GUI setup alternative + live-demo > functionality. This is meant to replace our currently separated “bootcd” / > “livecd” ISOs, where the latter currently do not offer the possibility to > install ReactOS. Some currently known potential problems are evoked. > > > > Images: Proposed BootCD contents : http://i.imgur.com/EBA6JHd.png ; > Proposed Boot Menu : http://i.imgur.com/14n5Ryi.png . > > > > > > Having a 1st-stage GUI setup also means that it’ll also use the > already-existing functionality that we offer in our “Live-CD” ISOs. > Currently, the “Live-CD” ISOs we provide only allow for demonstration > purposes, while the ReactOS installation proper is found in our so-called > “Boot-CD” ISOs (which currently only contain text-mode setup). Thus, the 1 > st-stage GUI setup, as an alternative to the 1st-stage setup in > text-mode, means that both ISOs can be merged all in one, and we won’t have > to make a distinction between both: they will be able to offer both the 1 > st-stage in text mode AND a graphical mode (à la “Live-CD”) where it is > possible to choose whether to test ReactOS in demo mode, or to install it > via the GUI setup. > > Such an all-in-one ISO capability was already present in the trunk under > the name “hybridcd”, but was used only when we built ISO images for the > public events where ReactOS participated (FOSDEM, CLT, …). But now, having > the setup process both in text mode and in graphics mode, in addition to > the Live-CD demonstration capability, really suggests just using the > all-in-one ISO and stop doing the “Boot-CD” (aka. only setup) vs. “Live-CD” > (aka. only demo) separation. We would just generate only one type of ISO > that contains everything. > > > > With that in mind, I have committed in my branch “setup_improvements”, in > revision 75273 : https://svn.reactos.org/svn/reactos?view=revision& > revision=75273 such changes to be able to only build an ISO that contains > everything. These changes are minimal, in the sense that I haven’t > purposelessly changed the names of the build targets just to be fancy. Such > changes may be done later, but not now. > > > > The needed changes are the following: First, the build target that will > generate the all-in-one CD is called “bootcd”, because this also was the > main build target for ISOs before the change. Second, I completely remove > the “hybridcd” build target, because its functionality are now absorbed by > “bootcd”. Third, the build target “livecd” is reduced to its strict > minimum. For the sake of building a RAMDISK boot drive (see comments > after), I continue to generate an ISO for “livecd”. But I’ve changed the > generated name to “liveimage.iso”, to emphasize the point that it has to be > understood as a (virtual) disk image for RAMDISK purposes, not just as a > ISO image. Note that I haven’t renamed the build target “livecd” to, say, > “liveimage” to reduce my commit changes (such a renaming may be done > later). The “livecd” target builds a list of files that need to be present > in the image. The generated liveimage.iso is no-more a bootable ISO, I’ve > removed inclusion of freeloader + El-Torito boot-sector + the > USB-ISO-Hybrid functionality for it. > > The “bootcd” target has been slightly changed in order to include the > liveimage.iso as a file (for RAMDISK), and to also add the contents of this > image in a flattened tree within the bootcd iso: the two directories > “Profiles” and “reactos”. > > The 1st-stage text-mode setup is kept, as said before, but its > corresponding files + the installation CAB source + the 1st-stage GUI > setup application proper goes into a (renamed) directory called “i386”, > corresponding to installation files for an i386 installation (technically, > 1 per architecture when we’ll have a ReactOS ported to other archs). These > files cannot be present in the same “reactos” directory as the ones from > the flattened LiveImage, because some of the files are different (smss.exe, > registry, etc…) Our FreeLdr knows from where to boot the 1st-stage > text-mode (from i386), as well as the Live-demo in graphics mode (from > reactos). > > I need to adjust the code of few setup components for them to stop relying > on hardcoded “reactos/” path, and instead use a more “dynamic” (determined > at runtime) path. > > > > NOTE FOR DEVS/SYSADMINS: The “bootcdregtest” build target, generating the > special ISO that is fed to our test bots, remains exactly the same, and the > files contained in the generated ISO have not changed. > > > > NOTE about the RAMDISK feature: I enabled it so that a user can remove the > demo media (CD, …) and reuse the drive for other purposes, while still > being able to use ReactOS. Of course this requires a large amount of RAM > available. And that’s also why I include the flattened liveimage files so > that one can use the demo without the RAMDISK (when few memory is > available). > > As is currently implemented, this makes the ReactOS all-in-one bootcd > large (it gains a good 100 MB) due to duplicated space (the flattened > files, plus the same inside “liveimage.iso”). I cannot do better (unless > ditching either the RAMDISK, or keeping it but not include the flattened > files) because ReactOS currently doesn’t have a way to boot from disk > images **that are not meant to be a RAMDISK**. The day when this > difficulty is removed, a single disk image could be used either as the > RAMDISK or the (non-removable) installation. > > A second remark is that I don’t plan to have the 1st-stage GUI setup > available when booting ReactOS in RAMDISK mode because, as a consequence of > its current implementation, I would otherwise need to duplicate the > installation CAB source in the RAMDISK image too, making it again larger. > > > > NOTE about the FreeLdr Boot Menu: Since ReactOS is not that stable > currently, we like to boot it in debug mode, and redirect the output to a > serial port (usually COM1). However some people don’t have serial ports on > real hardware, so we propose to boot with debug output redirected to > screen. However this may slow ReactOS down, so we also like to boot ReactOS > with debug mode disabled. That’s why I proposed the declination of these > boot modes for each ReactOS installation contained in the BootCD > (Live+Setup, with or without RAMDISK, and with debug enabled or not). The > problem is that it clutters a lot the boot menu. A remedy would be to > implement in FreeLdr the functionality of editing **existing** boot > entries to change their associated boot options, so that one could add by > hand the options to enable (or disable) debugging. This is currently > unimplemented. The only implemented feature is to set up a new boot entry > on the fly to boot ReactOS afterwards. > > > > NOTE for regress-testers: Possible remark that I may hear: “I only care > about installing ReactOS (perhaps just in unattended mode) and I don’t care > at all about the GUI setup nor about the Live-demo thingie, and your new > BootCD is too large. I want to be able to download & use the good-old > bootcd for regress-testing.” . So what to do? Since we currently build and > store the “bootcdregtest” ISOs, but are not publicly available through our > www.reactos.org/getbuilds interface, I would suggest here to make them > available to people, so that those who want to quickly DL and/or > install/regress-test ReactOS could use these ISOs instead (which are really > just the good old BootCDs, but with unattended installation enabled **and** > with our test-suite included). They are not that much large, just a bit > more than the old regular bootcd. > > > > Please let me know whether you have other > remarks/comments/questions/suggestions/etc… > to make the new BootCDs better. > > > > > > Best, > > > > Hermès > > _______________________________________________ > Ros-dev mailing list > Ros-dev@reactos.org > http://www.reactos.org/mailman/listinfo/ros-dev >
_______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev