Rev 46 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 46 | Rev 47 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | # IFS Tool for QNX |
1 | # IFS Tool for QNX |
2 | 2 | ||
3 |  |
4 | 4 | ||
5 | __ifstool__ is a portable open-source reimplementation of QNX's |
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. |
6 | 6 | ||
7 | As an illustration, the bootable QNX8 IFS pictured in the above screenshot was built using __ifstool__. |
7 | As an illustration, the bootable QNX8 IFS pictured in the above screenshot was built using __ifstool__. |
8 | 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 |
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. |
10 | 10 | ||
11 | ## Language |
11 | ## Language |
12 | 12 | ||
13 | POSIX-compliant ANSI C99. |
13 | POSIX-compliant ANSI C99. |
14 | 14 | ||
Line 16... | Line 16... | ||
16 | 16 | ||
17 | The development environment used was [Microsoft Visual Studio](https://visualstudio.microsoft.com). A Visual Studio 2022 solution file is supplied. |
17 | The development environment used was [Microsoft Visual Studio](https://visualstudio.microsoft.com). A Visual Studio 2022 solution file is supplied. |
18 | 18 | ||
19 | ## Dependencies |
19 | ## Dependencies |
20 | 20 | ||
21 | * |
21 | * Oberhumer's [miniLZO](https://www.oberhumer.com/opensource/lzo/#minilzo) compression library (supplied) |
22 | * UCL compression library (supplied) |
22 | * Oberhumer's [UCL](https://www.oberhumer.com/opensource/ucl/) compression library (supplied) |
23 | 23 | ||
24 | ## How to build |
24 | ## How to build |
25 | 25 | ||
26 | * For __Win32__: open Visual Studio project -> Build. |
26 | * For __Win32__: open Visual Studio project -> Build. |
27 | * For __QNX8/x86-64__: run |
27 | * For __QNX8/x86-64__: run `make.cmd` (if using Win32) or `make.sh` (if using a POSIX platform). |
28 | * For __QNX8/aarch64le__: run |
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 |
29 | * For __GNU/Linux__: run `make.sh` |
30 | * For __FreeBSD__: run |
30 | * For __FreeBSD__: run `make.sh` |
31 | * For __macOS/Darwin__: run |
31 | * For __macOS/Darwin__: run `make.sh` -- yes, it works on macOS too :) |
32 | 32 | ||
33 | Feedback is welcome. |
33 | Feedback is welcome. |
- | 34 | ||
- | 35 | -- |
|
- | 36 | Pierre-Marie Baty <pm@pmbaty.com> |