Commit graph

31 commits

Author SHA1 Message Date
Colin Finck c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
Colin Finck 956092d462 - Add 0x96 as ISO9660 partition type to ntdddisk.h (from https://en.wikipedia.org/wiki/Partition_type) and detect it using IsRecognizedPartition.
- Make our isohybrid create an MBR with partition type 0x96.

This properly assigns a drive letter to the Live-CD and lets me boot into desktop using "qemu -hda livecd.iso".
Fixes CORE-13184

svn path=/trunk/; revision=75586
2017-08-17 11:03:40 +00:00
Thomas Faber 4185903012 [CMAKE]
- Only call mkhive once, as it always generates all 6 binary hives (and if you don't give it all inf files, some of the hives will end up empty).
- Remove no longer needed dependency of efisys on bcd_hive
CORE-13241

svn path=/trunk/; revision=74537
2017-05-13 19:54:51 +00:00
Colin Finck 02ae08f9cb [ISOHYBRID]
Patch all our ISOs (bootcd, bootcdregtest, livecd, hybridcd) with isohybrid in order to make them bootable from HDDs or any kind of USB drives.
The added MBR at the beginning of each ISO doesn't cause any harm for normal CD booting anymore after my patch in r74460.
There is also no need for the dedicated isohybrid targets anymore.

Our ISOMBR master boot record now successfully loads our ISOBOOT boot sector. ISOBOOT loads FreeLdr and indicates that we're booting from HDD, so that FreeLdr can successfully load the kernel.
We then bugcheck in the kernel with either 0x0000007B (INACCESSIBLE_BOOT_DEVICE) using bootcd or 0x0000006B (PROCESS1_INITIALIZATION_FAILED) using livecd.
Testcase is:
  qemu-system-i386 -m 512 -hda bootcd_or_livecd.iso

Needs more investigation, but these are separate bugs and I consider CORE-12648 fixed.

svn path=/trunk/; revision=74461
2017-05-03 15:32:33 +00:00
Hermès Bélusca-Maïto ed384844a1 [HOST-TOOLS]: Add isohybrid to the list of host-tools (for NEW-BUILD scenario).
[BOOT]: Add experimental "isohybrid_bootcd(regtest)/livecd/hybridcd" targets to build patched "ISO-Hybrid" (i.e. USB-flashable) ISOs using the isohybrid tool.
CORE-12648

svn path=/trunk/; revision=74154
2017-03-12 17:43:12 +00:00
Colin Finck 4485b549ba Remove the USE_MKISOFS switch and make mkisofs our one and only ISO creation tool.
CDMake is moved to rosapps as per Hermès' wish, but not added to the build.

svn path=/trunk/; revision=73521
2017-01-11 12:16:25 +00:00
Colin Finck 04c65f7051 [MKISOFS]
Update mkisofs to schily-2016-12-14 giving us the following features:
- Support for -duplicates-once to store duplicate files in the tree only once in the filesystem (see also CORE-9266)
  I've enabled this for the hybridcd target where it actually saves us 25 MB.
- Proper System-ID "Win32/MinGW" and "Win32/MSVC" under Windows hosts depending on the compiler

CORE-12578

svn path=/trunk/; revision=73520
2017-01-11 11:56:36 +00:00
Giannis Adamopoulos 14a6ac2ce8 [BOOT] LiveCD: Create all profile subdirectories that Shell wants. Patch by Serge Gautherie. CORE-12527
svn path=/trunk/; revision=73443
2016-12-09 20:40:52 +00:00
Mark Jansen f52999c41e [MKISOFS] Silence progress spam.
svn path=/trunk/; revision=73141
2016-11-05 17:28:00 +00:00
Hermès Bélusca-Maïto 698798ac5c [BOOTDATA]: Fix the indentation of the file(..) commands, noted by Thomas.
svn path=/trunk/; revision=73105
2016-11-02 21:49:50 +00:00
Hermès Bélusca-Maïto 1562869a7a [BOOTDATA]: Diverse improvements for mkisofs support and ISO image configuration:
- Make our build system create the required empty directory for mkisofs, instead. (It's not the purpose of the SVN to hold special files/directories just to make host tools happy; instead it's the job of the buld system to create them.)
- Place the boot files (catalog & co.) preferably at the beginning of the ISO image (it makes ISO image analysis easier, and is back-compatible with cdmake & oscdimg & windows ISOs): use the build system to generate the mkisofs sorting file. See the CMakeLists.txt for more details.
- Set in one place the ISO manufacturer & volume name strings so that it makes easier to bulk-change them (and makes features like CORE-12233 a bit easier to maintain).
- The EFI image must be set up with no emulation mode! (See section "12.3.2.1 ISO-9660 and El Torito" of the UEFI spec v2.4 errata B, for example).

[MKISOFS]: Add some useful offline documentation.

CORE-11988

svn path=/trunk/; revision=73104
2016-11-02 21:43:46 +00:00
Colin Finck 96877abf85 [MKISOFS]
Import a minimal version of the highly portable mkisofs tool from schily-2016-10-27 (https://sf.net/projects/schilytools) and use it for creating ReactOS ISOs from now on.

mkisofs is the de-facto standard ISO creation tool on most platforms and actively maintained.
Compared to cdmake, its features have matured and it adds ISO9660:1999 support among many other things.
I can import its UDF features as soon as we need them.

mkisofs has been integrated into our buildsystem in the sdk/tools/mkisofs folder with these subfolders:
* "reactos"
  Host-specific include files that are usually generated by the upstream buildsystem. For us, I have handcrafted them to be enough for mkisofs and compatible with Windows, Linux and Mac OS X.
  Follow the original layout of the generated files whenever you have to edit these.
* "schilytools"
  Contains the actual mkisofs code and dependencies while maintaining the original directory layout.
  Only synchronize with newer versions, but never modify. Submit patches upstream instead :)

ISOs are now being built with a single ISO9660:1999 filesystem instead of classic ISO9660 + Joliet.
For the moment, you can switch back to cdmake using -DUSE_MKISOFS:BOOL=0 on the CMake commandline. cdmake will be completely removed in about a month if no problems occur.

CORE-11988

svn path=/trunk/; revision=73051
2016-10-27 22:51:59 +00:00
Hermès Bélusca-Maïto 4dd9a543a3 [BOOTDATA]: Normally, in the hybridcd, the livecd stuff should go into its own subdirectory.
svn path=/trunk/; revision=70655
2016-01-29 01:18:53 +00:00
Alex Ionescu e7cbf6ea1b [ROSLOAD]: Create directory and build rules. rosload.efi is now dropped in system32\boot just like on the Windows Setup DVD. BlImgLoadBootApplication is able to find it.
[BOOTMGR/BOOTLIB]: Fix factorings that were incorrect but not noticed when bootmgr was the only bootlib user. Now with rosload in the picture, they became obvious.
[EFISYS]: BCD should not be on the EFISYS.BIN, only on the boot volume, just like a Windows DVD.

svn path=/trunk/; revision=70626
2016-01-20 06:59:12 +00:00
Hermès Bélusca-Maïto 95a7eb8721 [EFISYS]: Add 'bcd_hive' as a dependency.
[FATTEN]: Fix help message. Functions with no parameters are void. Remove an hardcoded array size.

svn path=/trunk/; revision=69160
2015-09-09 19:48:15 +00:00
Alex Ionescu 28b4a595d3 [EFI]
- Add BCD creation.
- Add BCD to bootcd, and also to EFISYS.BIN. Verified the BCD is now present on the EFI partition.

svn path=/trunk/; revision=69156
2015-09-09 18:43:09 +00:00
David Quintana a9ac73d0f7 [FATTEN]
* Allow customizing the 8-letter volume label from the FAT header.
* Make the efisys.bin have EFIBOOT as a label.
* Improve a bit the help text.

svn path=/trunk/; revision=69140
2015-09-09 03:01:14 +00:00
Hermès Bélusca-Maïto de6171695d OMGWTFBBQ!!!! We can now boot our ISOs on UEFI systems!!
Thanks gigaherz for the "fatten" utility!, and others for testing.

[CDMAKE]
- Add multi-boot CD support, following El-Torito specification, such that we can the usual ISO boot sector on BIOS-based PCs, and the UEFI loader on UEFI-based PCs.
- Load segment should be stored in little endian.
- Fix the computation of the sector count (count in 512 byte sectors and rounded up).
- Rework the command-line options to make them more compatible with CDIMAGE / OSCDIMG.
CORE-10120

[BOOTDATA]
- Activate the UEFI boot support for our ISOs.

svn path=/trunk/; revision=69139
2015-09-09 02:11:49 +00:00
David Quintana d2e60268e5 [FATTEN]
* Change the number of FAT copies stored by the formatting code to 2.
* Implement /BOOT command, to apply a boot sector to the image (FAT12/16 only, for now).
* Make use of the command above to finally get the generated efisys.bin loading in 7zip as a floppy.

svn path=/trunk/; revision=69135
2015-09-09 00:49:47 +00:00
David Quintana 5b5fa693bd [EFISYS][BOOTMGFW]
* Compute and use a "platform short name" in the EFI filenames.

svn path=/trunk/; revision=69119
2015-09-08 15:26:34 +00:00
David Quintana 2f3a69e66f [FATTEN]
* Fix folder creation and external file access.
* Add fatten as a host-tool.
* Add a target for creating efisys.bin from the bootmgfw
TODO: Make the name of the boot*.efi depend on the platform (ia32/x64/arm).
TODO: Add efisys as a dependency to the bootcd, when we need to make use of the efisys.bin file for the iso (waiting for hbelusca's cdmake work).

svn path=/trunk/; revision=69109
2015-09-08 03:37:47 +00:00
Alex Ionescu 286f63072a [BOOTMGFW]
Nothing to see here. I hope this doesn't break the build.

svn path=/trunk/; revision=68992
2015-09-04 14:16:56 +00:00
Amine Khaldi b8911d58ce [LIVECD] Add the required folder for the favorites menu to work. By Barrett Karish. CORE-9780
svn path=/trunk/; revision=68240
2015-06-22 18:33:49 +00:00
Hermès Bélusca-Maïto 77df154671 [LIVE|HYBRIDCD]: We also need an empty "Default User/Start Menu/Programs" directory.
svn path=/trunk/; revision=66109
2015-01-29 00:20:56 +00:00
Hermès Bélusca-Maïto a40388d89c [HYBRIDCD]: It appears we need to manually create the default_user/desktop folder to not fail (as we do for the real livecd).
svn path=/trunk/; revision=66081
2015-01-23 22:19:33 +00:00
Hermès Bélusca-Maïto 2bf5258b98 [HYBRIDCD]: Require dependency from bootcd too, so that the files that are needed for building the bootcd (the reactos.cab, .inf etc) are also built so that they can be incorporated into the hybridcd.
CORE-9069

svn path=/trunk/; revision=66054
2015-01-18 19:21:42 +00:00
Hermès Bélusca-Maïto bb43ef9710 [REACTOS]
Add basic Hybrid-CD generation to our build system.

Few changes were needed, especially in how we deal with the CD target "all": it's only for all the CD targets *BUT* the hybridcd. For the hybridcd you need to always specify the target manually (like in "... FOR all hybridcd" or "... FOR bootcd hybridcd" for example).

Since at the moment we cannot have the bootcd in RAMDISK, and I want to be able to either have the hybridcd booting livecd from within the CD (i.e. read/writes from the CD) or in RAMDISK, I need to also add the files that are going to be copied into the bootcd or livecd into the hybridcd.

CORE-9069 #resolve

svn path=/trunk/; revision=66051
2015-01-18 13:55:23 +00:00
Amine Khaldi fe0958fb25 * Improve the way we create bootcd, livecd and bootcdregtest. The effort results in ~28% *smaller* build folder, and *much* faster generation of the ISOs.
[CDMAKE]
* Introduce a way to create an iso using a file map instead of the current on-disk layout. This allows us to massively reduce the IO and the disk space needed to perform the creation of the 3 ISOs, and at the same time speed up the process. Brought to you by Art Yerkes (arty) with review/bug fix by Thomas Faber.
[CMAKE]
* Leverage the newly introduced cdmake feature.
* Silence cdmake verbosity.
* Write the contents of the file lists at once, instead of appending to it one item by one.
[VGAFONTS]
* Don't include the cab file twice.

svn path=/trunk/; revision=59547
2013-07-21 13:33:03 +00:00
Jérôme Gardou 073e87c6d2 [CMAKE]
- make generated files depend on their generator
It seems stupid, but I removed this quite some time ago, don't ask me why.
Now, you just have to build the tools and do an incremental build each time a tool is updated.

svn path=/trunk/; revision=53088
2011-08-05 20:40:40 +00:00
Sylvain Petreolle 713fbb28eb Add bootcdregtest target to cmake build.
svn path=/trunk/; revision=51824
2011-05-19 21:55:57 +00:00
Timo Kreuzer fae2044a23 [CMAKE]
Integrate cmake stuff into trunk
Only files added.

svn path=/trunk/; revision=51783
2011-05-16 13:12:07 +00:00