Subversion Repositories QNX 8.QNX8 IFS tool

Rev

Rev 46 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
46 pmbaty 1
# IFS Tool for QNX
45 pmbaty 2
 
47 pmbaty 3
![QNX 8.0 x86_64 UEFI booting an IFS created with mkifs](filedetails.php?repname=QNX%208.QNX8%20IFS%20tool&path=%2Fx86-uefi-console.png "QNX 8.0 x86_64 UEFI booting an IFS created with mkifs")
45 pmbaty 4
 
47 pmbaty 5
__ifstool__ is a portable open-source reimplementation of [QNX 8.0's mkifs](https://www.qnx.com/developers/docs/8.0/com.qnx.doc.neutrino.utilities/topic/m/mkifs.html), that is able to pack, unpack and analyze x86_64 BIOS and UEFI QNX IFS images, compressed or not, bootable or not, using the same script file-based syntax as mkifs. Most of the mkifs options are supported. Can be built as a **native QNX tool**. Already used in production in some places.
45 pmbaty 6
 
7
As an illustration, the bootable QNX8 IFS pictured in the above screenshot was built using __ifstool__.
8
 
47 pmbaty 9
The goal was to turn QNX8 into a self-hosted platform. Since QNX no longer supplies a native toolchain (compiler, linker, binary utilities, IFS utilities) __ifstool__, when used along with the GNU linker (cf. [QNX8 GNU binutils](listing.php?repname=QNX%208.QNX8%20GNU%20binutils)) can be used as a drop-in replacement.
45 pmbaty 10
 
11
## Language
12
 
13
POSIX-compliant ANSI C99.
14
 
15
## IDE
16
 
17
The development environment used was [Microsoft Visual Studio](https://visualstudio.microsoft.com). A Visual Studio 2022 solution file is supplied.
18
 
19
## Dependencies
20
 
47 pmbaty 21
* Oberhumer's [miniLZO](https://www.oberhumer.com/opensource/lzo/#minilzo) compression library (supplied)
22
* Oberhumer's [UCL](https://www.oberhumer.com/opensource/ucl/) compression library (supplied)
45 pmbaty 23
 
24
## How to build
25
 
26
* For __Win32__: open Visual Studio project -> Build.
47 pmbaty 27
* For __QNX8/x86-64__: run `make.cmd` (if using Win32) or `make.sh` (if using a POSIX platform).
28
* For __QNX8/aarch64le__: run `make.cmd` (if using Win32) or `make.sh` (if using a POSIX platform). Note the bootable IFS feature on this target is untested.
29
* For __GNU/Linux__: run `make.sh`
30
* For __FreeBSD__: run `make.sh`
31
* For __macOS/Darwin__: run `make.sh` -- yes, it works on macOS too :)
45 pmbaty 32
 
33
Feedback is welcome.
47 pmbaty 34
 
35
-- 
36
Pierre-Marie Baty <pm@pmbaty.com>