mirror of
https://git.missingno.dev/kolibrios-nvme-driver/
synced 2024-12-22 22:08:47 +01:00
53 lines
3.1 KiB
Markdown
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.
|