Phoenix OS/4: Difference between revisions
Line 3: | Line 3: | ||
==Installation instructions== | ==Installation instructions== | ||
THIS IS A DRAFT. DON'T USE THIS INSTRUCTION -- IT IS INCOMPLETE. | THIS IS A DRAFT. DON'T USE THIS INSTRUCTION -- IT IS INCOMPLETE. | ||
From now, we assume that you downloaded the latest OS/4 kernel distribution zip file, and it is named like this: | |||
<tt>os2krnlSVNxxxx_unoff.zip</tt>, where <tt>xxxx</tt> is the SVN revision of the downloaded release. | |||
To unify the following installation instruction, it is assumed, that the downloaded distribution file's name is <tt>os4krnl_current.zip</tt>. Please, rename the downloaded file to <tt>os4krnl_current.zip</tt> using your favorite filemanager or the CMD.EXE's <tt>ren</tt> command like this: <tt>ren os2krnlSVNxxxx_unoff.zip os4krnl_current.zip</tt>. | |||
Also, you will need the <tt>unzip</tt> utility, [http://hobbes.nmsu.edu/h-search.php?sh=1&button=Search&key=unzip&stype=all&sort=type_name&dir=%2Fpub%2Fos2%2Futil%2Farchiver | which you can find on hobbes]. | |||
Okay, so everything is set up properly -- let's begin! | |||
The OS/4 distribution package includes a powerful kernel loader, which features '''loading OS/4 and OS/2 kernels''', '''kernel selection menu''', '''custom CONFIG.SYS files''' for each kernel, '''CONFIG.SYS editor''' which may be invoked right before the kernel loads (available on OS/4 kernels only; although the modified version of the config is not put back on the disk, the feature is fairly useful in crash recovering), '''chainloading another kernel bootloaders''' and '''preloading files in the memory''' (better boot time). | The OS/4 distribution package includes a powerful kernel loader, which features '''loading OS/4 and OS/2 kernels''', '''kernel selection menu''', '''custom CONFIG.SYS files''' for each kernel, '''CONFIG.SYS editor''' which may be invoked right before the kernel loads (available on OS/4 kernels only; although the modified version of the config is not put back on the disk, the feature is fairly useful in crash recovering), '''chainloading another kernel bootloaders''' and '''preloading files in the memory''' (better boot time). | ||
So, the first thing to do, is to install the OS/4 kernel bootloader, because the original one is unable to load the OS/4 kernel. If you use a recent version of ACPI, original kernel, or both (you have eCS), then it is highly recommended to keep the original bootloader: | So, the first thing to do, is to install the OS/4 kernel bootloader, because the original one is unable to load the OS/4 kernel. | ||
* | If you use a recent version of ACPI, original kernel, or both (you have eCS), then it is highly recommended to keep the original bootloader: | ||
* unset the hidden attribute of the original kernel bootloader: <tt>attrib -H \OS2LDR</tt> | |||
* rename OS2LDR to OS2LDR.IBM | * rename <tt>OS2LDR</tt> to <tt>OS2LDR.IBM</tt>: <tt>ren \OS2LDR OS2LDR.IBM</tt> | ||
* extract OS2LDR from the OS/4 package to the root of the boot drive | * extract OS2LDR from the OS/4 package to the root of the boot drive: <tt>unzip os4krnl_current.zip OS2LDR -d \</tt> | ||
Then extract the Phoenix OS/4 kernel to the root of the boot drive (the file is named OS4KRNL for the debug version and OS4KRNLR for the release version): | Then extract the Phoenix OS/4 kernel to the root of the boot drive (the file is named OS4KRNL for the debug version and OS4KRNLR for the release version): | ||
* we will use the release version, so do <tt>unzip | * we will use the release version, so do <tt>unzip os4krnl_current.zip OS4KRNLR -d \</tt>. | ||
OS/4 ships also with an updated <tt>DOSCALL1.DLL</tt> library, which works fine with both kernels (highly recommended): | |||
* download [http://hobbes.nmsu.edu/h-search.php?key=lxlite&pushbutton=Search | the lxlite package] from hobbes | |||
* extract the unLock.exe utility to your PATH, for example, to the \OS2 directory: <tt>unzip -j lxlt133.zip lxLite\unLock.exe -d \OS2</tt> | |||
* now unlock your current DOSCALL1.DLL file: <tt>unlock \OS2\DLL\DOSCALL1.DLL</tt> | |||
* rename it for a backup: <tt>ren \OS2\DLL\DOSCALL1.DLL DOSCALL1.IBM</tt> | |||
* and then extract the Phoenix version: <tt>unzip os4krnl_current DOSCALL1.DLL -d \OS2\DLL</tt> | |||
Then you need to configure the OS/4 kernel bootloader to be able to load the original, and the Phoenix kernel. The configuration file's name is OS2LDR.INI. An example configuration file is present in the distribution package, and contains a comment for each line. | Then you need to configure the OS/4 kernel bootloader to be able to load the original, and the Phoenix kernel. The configuration file's name is OS2LDR.INI. An example configuration file is present in the distribution package, and contains a comment for each line. | ||
Create an empty OS2LDR.INI file in the root of the bootdrive and then put this in it using a text editor (or whatever you want): | Create an empty OS2LDR.INI file in the root of the bootdrive and then put this in it using a text editor (or whatever you want): | ||
[config] | [config] | ||
default=1 | default=1 | ||
timeout=15 | timeout=15 | ||
[kernel] | [kernel] | ||
OS2LDR.IBM = IBM orig. kernel ,RESTART | OS2LDR.IBM = IBM orig. kernel ,RESTART | ||
OS4KRNLR = Phoenix kernel ,PRELOAD | OS4KRNLR = Phoenix kernel ,PRELOAD | ||
The <tt>default</tt> statement in the <tt>config</tt> section sets the default selection in the kernel selection menu, and the <tt>timeout</tt> statement sets the time in seconds before the default kernel will be loaded. | The <tt>default</tt> statement in the <tt>config</tt> section sets the default selection in the kernel selection menu, and the <tt>timeout</tt> statement sets the time in seconds before the default kernel will be loaded. | ||
In the kernel section, the statements must comply with the following syntax: | In the kernel section, the statements must comply with the following syntax: | ||
Line 33: | Line 45: | ||
{| class="wikitable" | {| class="wikitable" | ||
|RESTART||Indicates, that the file to be loaded is an another kernel bootloader, rather than a kernel file | |RESTART||Indicates, that the file to be loaded is an another kernel bootloader, rather than a kernel file | ||
|- | |||
|LOGSIZE||??? | |LOGSIZE||??? | ||
|- | |||
|PRELOAD||Use the files preload function (a must for OS4APIC to work properly, also speeds up the loading process) | |PRELOAD||Use the files preload function (a must for OS4APIC to work properly, also speeds up the loading process) | ||
|- | |||
|LOADSYM||Try to find and load the *.SYM files (useful for debugging) | |LOADSYM||Try to find and load the *.SYM files (useful for debugging) | ||
|CFGEXT|| Specifies an extension for the <tt>CONFIG.ext</tt> file to be loaded instead of the CONFIG.SYS file, where <tt>ext</tt> is the extension specified by the CFGEXT statement (must be three characters or less). | |- | ||
|ALTF1- | |CFGEXT|| Specifies an extension for the <tt>CONFIG.ext</tt> file to be loaded instead of the CONFIG.SYS file, where <tt>ext</tt> | ||
is the extension specified by the CFGEXT statement (must be three characters or less). | |||
|- | |||
|ALTF1||Emulates a user pressing Alt-F1 in the loader menu. | |||
|- | |||
|ALTF2||Emulates a user pressing Alt-F2 in the loader menu. | |||
|- | |||
|ALTF3||Emulates a user pressing Alt-F3 in the loader menu. | |||
|- | |||
|ALTF4||Emulates a user pressing Alt-F4 in the loader menu. | |||
|} | |} | ||
Revision as of 14:23, 15 February 2014
Phoenix OS/4 is a project intended to recreate the original kernel for the IBM Operating System/2 using such techniques, as reverse-engineering and disassembling. The main goal of the project is to make the system able to work on the PCs, that it is unable to work on with the original kernel.
Installation instructions
THIS IS A DRAFT. DON'T USE THIS INSTRUCTION -- IT IS INCOMPLETE.
From now, we assume that you downloaded the latest OS/4 kernel distribution zip file, and it is named like this: os2krnlSVNxxxx_unoff.zip, where xxxx is the SVN revision of the downloaded release. To unify the following installation instruction, it is assumed, that the downloaded distribution file's name is os4krnl_current.zip. Please, rename the downloaded file to os4krnl_current.zip using your favorite filemanager or the CMD.EXE's ren command like this: ren os2krnlSVNxxxx_unoff.zip os4krnl_current.zip. Also, you will need the unzip utility, | which you can find on hobbes.
Okay, so everything is set up properly -- let's begin!
The OS/4 distribution package includes a powerful kernel loader, which features loading OS/4 and OS/2 kernels, kernel selection menu, custom CONFIG.SYS files for each kernel, CONFIG.SYS editor which may be invoked right before the kernel loads (available on OS/4 kernels only; although the modified version of the config is not put back on the disk, the feature is fairly useful in crash recovering), chainloading another kernel bootloaders and preloading files in the memory (better boot time).
So, the first thing to do, is to install the OS/4 kernel bootloader, because the original one is unable to load the OS/4 kernel. If you use a recent version of ACPI, original kernel, or both (you have eCS), then it is highly recommended to keep the original bootloader:
- unset the hidden attribute of the original kernel bootloader: attrib -H \OS2LDR
- rename OS2LDR to OS2LDR.IBM: ren \OS2LDR OS2LDR.IBM
- extract OS2LDR from the OS/4 package to the root of the boot drive: unzip os4krnl_current.zip OS2LDR -d \
Then extract the Phoenix OS/4 kernel to the root of the boot drive (the file is named OS4KRNL for the debug version and OS4KRNLR for the release version):
- we will use the release version, so do unzip os4krnl_current.zip OS4KRNLR -d \.
OS/4 ships also with an updated DOSCALL1.DLL library, which works fine with both kernels (highly recommended):
- download | the lxlite package from hobbes
- extract the unLock.exe utility to your PATH, for example, to the \OS2 directory: unzip -j lxlt133.zip lxLite\unLock.exe -d \OS2
- now unlock your current DOSCALL1.DLL file: unlock \OS2\DLL\DOSCALL1.DLL
- rename it for a backup: ren \OS2\DLL\DOSCALL1.DLL DOSCALL1.IBM
- and then extract the Phoenix version: unzip os4krnl_current DOSCALL1.DLL -d \OS2\DLL
Then you need to configure the OS/4 kernel bootloader to be able to load the original, and the Phoenix kernel. The configuration file's name is OS2LDR.INI. An example configuration file is present in the distribution package, and contains a comment for each line. Create an empty OS2LDR.INI file in the root of the bootdrive and then put this in it using a text editor (or whatever you want):
[config] default=1 timeout=15 [kernel] OS2LDR.IBM = IBM orig. kernel ,RESTART OS4KRNLR = Phoenix kernel ,PRELOAD
The default statement in the config section sets the default selection in the kernel selection menu, and the timeout statement sets the time in seconds before the default kernel will be loaded.
In the kernel section, the statements must comply with the following syntax:
<kernel or loader filename> = <kernel selection menu option text>[,option[=value][,option[=value][,option[=value][...]]]]
Possible options are:
RESTART | Indicates, that the file to be loaded is an another kernel bootloader, rather than a kernel file |
LOGSIZE | ??? |
PRELOAD | Use the files preload function (a must for OS4APIC to work properly, also speeds up the loading process) |
LOADSYM | Try to find and load the *.SYM files (useful for debugging) |
CFGEXT | Specifies an extension for the CONFIG.ext file to be loaded instead of the CONFIG.SYS file, where ext
is the extension specified by the CFGEXT statement (must be three characters or less). |
ALTF1 | Emulates a user pressing Alt-F1 in the loader menu. |
ALTF2 | Emulates a user pressing Alt-F2 in the loader menu. |
ALTF3 | Emulates a user pressing Alt-F3 in the loader menu. |
ALTF4 | Emulates a user pressing Alt-F4 in the loader menu. |
Although the original kernel may be loaded by the OS/4 kernel bootloader directly, the most stable configuration is to use original bootloader to load the original kernel.
Notice, that the original bootloader (OS2LDR.IBM) is able to load the only kernel file, named OS2KRNL, and you have to keep the original kernel with that name to have the ability to load it with the original bootloader.
Also notice, that although you have the ability to chainload kernel bootloaders with custom name using the Phoenix bootloader, the first loaded kernel bootloader is always named OS2LDR.
There are also some configuration statements you can use in the config section in the Phoenix bootloader configuration file, but those are usually only useful for debugging and troubleshooting purposes. See the example OS2LDR.INI file in the OS/4 kernel distribution package.
Okay, now reboot your system. You should notice the kernel selection menu with two options, where you can select to load either the original IBM kernel, or the Phoenix one. Although you may fail to boot up with the Phoenix kernel due to a bug in it, there is no doubt you will be able to fall back to the original kernel and boot your system with it (if you were able to do this before :)).