Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aekhv/mininvme
MiniNVMe kernel module for Linux
https://github.com/aekhv/mininvme
kernel linux nvme
Last synced: 4 days ago
JSON representation
MiniNVMe kernel module for Linux
- Host: GitHub
- URL: https://github.com/aekhv/mininvme
- Owner: aekhv
- License: gpl-2.0
- Created: 2024-12-09T10:52:27.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-01-14T11:14:23.000Z (28 days ago)
- Last Synced: 2025-01-14T12:25:58.634Z (28 days ago)
- Topics: kernel, linux, nvme
- Language: C
- Homepage:
- Size: 34.2 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MiniNVMe kernel module for Linux
## Description
The MiniNVMe kernel module is designed for data recovery from partially faulty NVMe storage devices. This module has minimal functionality and hides the connected devices from the operating system. As result to get full control over connected device you have to use an external application with user application library. For more information see the source code of the QMiniNVMeDevice library.## Preparation
Before using this module you have to block the loading of the standard NVMe driver. Open `/etc/default/grub` in any plain text editor and append (or edit) the line below:
```
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nvme"
```
Finally type `sudo update-grub` and reboot your system.## How to build
Make sure Linux kernel headers are installed:
```
sudo apt-get install linux-headers-$(uname -r)
```
If everything above is done type in terminal:
```
git clone https://github.com/aekhv/mininvme.git
cd mininvme
make
```
As result file `mininvme.ko` will be generated.## How to run
Just type in terminal:
```
sudo insmod mininvme.ko
```
If any NVMe device is attached you will see in `dmesg | grep mininvme` output something like this:
```
[ 707.339182] mininvme: Kernel object loaded
[ 707.339222] mininvme: PCI device attached: vendor 0x1e95, device 0x9100, class 0x0108, revision 0x03
[ 707.339929] mininvme: Character device created: /dev/mininvme4
```
>P.S. The number at the end of the device name means the PCIe bus number. For example, `/dev/mininvme4` means the device attached to the PCIe bus number 4.