When it comes to my laptop, the ASUS ProArt Studiobook 2023 (in case there are some UEFI settings that I can get your tips about), NVMe hard drives are not detected in the initramfs generated by genkernel, but dracut's works fine. I googled around but there's no similar problems. The setup is btrfs as root on a NVMe SSD.
Firstly, I compiled the Linux 6.10.2 kernel via
Code: Select all
genkernel all --menuconfig
(Settings up there come from my desktop PC that uses Linux 6.6.38, I copied the config to my Laptop at first to apply my general settings that didn't include this section)│ │ <M> NVM Express block device
│ │ [*] NVMe multipath support
│ │ [ ] NVMe verbose error reporting
│ │ [*] NVMe hardware monitoring
│ │ <M> NVM Express over Fabrics RDMA host driver
│ │ <M> NVM Express over Fabrics FC host driver
│ │ <M> NVM Express over Fabrics TCP host driver
│ │ [ ] NVM Express over Fabrics In-Band Authentication
│ │ <M> NVMe Target support
│ │ [*] NVMe Target Passthrough support
│ │ <M> NVMe loopback device support
│ │ <M> NVMe over Fabrics RDMA target support
│ │ <M> NVMe over Fabrics FC target driver
│ │ <M> NVMe over Fabrics FC Transport Loopback Test driver
│ │ <M> NVMe over Fabrics TCP target support
│ │ [ ] NVMe over Fabrics In-band Authentication support
I believe that NVMe support was built as modules, the btrfs first module load and udev prompted in the initramfs as well, but NVMe block devices didn't show up when I run
Code: Select all
ls dev
So I booted into the initramfs by dracut to use my laptop and ran
Code: Select all
lsinitrd /boot/initramfs-<my initramfs>
as .ko files.lib/modules/<version>-gentoo-x86_64/kernel/drivers/nvme/host/
Then I went back to the initramfs created by genkernel and get to the rescue shell to ran
Code: Select all
lsmod | grep nvme
To load modules in the rescue shell, I ran
Code: Select all
modprobe nvme nvme-core
Still, there're no NVMe block devices in /dev. I tried to plug in my USB Drive and it adds /dev/sda and /dev/sda1 to the device list. What should I do to make NVMe block devices detected in the initramfs?
Secondly, I compiled the kernel with NVMe block devices support as built-in, that is
As I boot into the initramfs, NVMe block devices are not here as well, checking the module list "nvme" is not there and I can't load as modules since it is built-in support.│ │ <*> NVM Express block device
What should I do to make it work, if you need more information, please let me know.
Any response will be appreciated.
---------- [Edited 01/08/2024] ----------
I solved the issue by switching VMD support to built-in, since laptops are rarely seen to have a customisable UEFI BIOS that allows you to turn off VMDWithout CONFIG_VMD=y kernel cannot access its NVME devices. Another way is; Disable it in your BIOS (it is only necessary if you use RAID).



