2
0
mirror of https://git.missingno.dev/kolibrios-nvme-driver/ synced 2024-12-22 22:08:47 +01:00
kolibrios-nvme-driver/README.md

53 lines
3.1 KiB
Markdown

# KolibriOS NVMe Driver
This project was developed by Abdur-Rahman Mansoor for Google Summer of Code 2024. However, it's still
being actively maintained. This driver should be compatible with all controller versions, but if you
an encounter a problem, please open an issue and let us know.
The official repository is hosted on [KolibriOS](https://git.kolibrios.org/GSoC/kolibrios-nvme-driver)
so please open any issues or pull requests there.
All files in this repository are licensed under GNU General Public License Version 2. See
the LICENSE file for more details.
## Tested Hardware
* QEMU NVMe Controller (v1.4.0)
* Virtualbox NVMe Controller (v1.2.0)
* VMWare NVMe Controller (v1.3.0)
## Implementation Status
| Feature | Implemented | Description |
|------------------------------------|-------------|--------------------------------------------------------------------------------------------------|
| Mandatory Administrator Commands | Yes | A large majority of the mandatory administrator commands has been implemented. |
| Mandatory I/O Commands | Yes | Support for reading and writing to disk is implemented. |
| Namespace Identification | Yes | Support for identifying active namespaces across all controller versions is implemented. |
| Using Multiple NVMe Devices | Yes | Support for using multiple NVMe drives at once is implemented. |
| MSI/MSI-X interrupts | No | Currently only traditional PIN interrupts can be used. |
| Asynchronous API | No | Currently the driver polls instead of using the asynchronous API of KolibriOS. |
| SMART/Health Information Reporting | No | Low priority, but a nice to have in the future. |
## Building the Driver
Please note that this normally isn't required. The images on KolibriOS's download page should include
the driver by default. Nonetheless, if you want to test the driver or need a new version that isn't
included in upstream yet, here are the steps on how to do so.
First, ensure that you have the following
dependencies installed before continuing (installation process may vary depending on your operating system):
- **[Git](https://git-scm.com/downloads)**
- **[FASM (Flat Assembler)](https://flatassembler.net/download.php)**
- **[GNU Make](https://www.gnu.org/software/make/)**
- **[Mtools](https://www.gnu.org/software/mtools/)**
- **[KPack (KolibriOS's LZMA compressor)](https://wiki.kolibrios.org/wiki/Kpack)**
Once you have all the dependencies installed, follow these steps:
1. Clone the repository: `git clone https://git.kolibrios.org/GSoC/kolibrios-nvme-driver`
2. Extract the latest KolibriOS image from [the KolibriOS website](https://kolibrios.org/en/download.htm) into the cloned repository.
3. Install the driver into the image: `make install`
And you should be good to go.