Rev 45 | Go to most recent revision | 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 | |
46 | pmbaty | 3 | ![x86 UEFI console on QNX 8.0](filedetails.php?repname=QNX%208.QNX8%20IFS%20tool&path=%2Fx86-uefi-console.png "x86 UEFI console on QNX 8.0") |
45 | pmbaty | 4 | |
5 | __ifstool__ is a portable open-source reimplementation of QNX'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. |
||
6 | |||
7 | As an illustration, the bootable QNX8 IFS pictured in the above screenshot was built using __ifstool__. |
||
8 | |||
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 native binutils](listing.php?repname=QNX%208.QNX8%20native%20binutils)) can be used as a drop-in replacement. |
||
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 | |||
21 | * LZO compression library (supplied) |
||
22 | * UCL compression library (supplied) |
||
23 | |||
24 | ## How to build |
||
25 | |||
26 | * For __Win32__: open Visual Studio project -> Build. |
||
46 | pmbaty | 27 | * For __QNX8/x86-64__: run 'make.cmd' (if using Win32) or 'make.sh' (if using a POSIX platform). |
45 | pmbaty | 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' |
||
46 | pmbaty | 31 | * For __macOS/Darwin__: run 'make.sh' -- yes, it works on macOS too :) |
45 | pmbaty | 32 | |
33 | Feedback is welcome. |