2
0
mirror of https://git.missingno.dev/kolibrios-nvme-driver/ synced 2024-11-12 19:27:28 +01:00

add README.md

This commit is contained in:
Abdur-Rahman Mansoor 2024-08-26 20:10:57 -04:00
parent 388eca270e
commit c2d8abad58
Signed by: ramenu
GPG Key ID: 8D15FCF6795779C8

57
README.md Normal file
View File

@ -0,0 +1,57 @@
# 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. |
| 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/)**
- **[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:
```bash
git clone https://git.kolibrios.org/GSoC/kolibrios-nvme-driver
```
2. Change into the directory of the cloned repository and manually extract the latest KolibriOS images
from [the KolibriOS website](https://kolibrios.org/en/download.htm) into the cloned repository.
3. Install the driver into the image:
```bash
make install
```
And you should be good to go.