Please revise the installer to add vmd to modules

It’s already been handled in manjaro latest release this is causing a lot of failure with this Intel vmd crap that is in laptops, causes a non-bootable state because the nvme drive can’t be seen.

1 Like

I’m not sure if it has been added to the Calamares installer yet but we are aware of it and i will check. I have dealt with it a number of times.

1 Like

latest calamares release does not have the option, i think Manjaro done that with MHWD?

It will be possible to add but the way calamares handles mkinitcpio makes this a bit complicated.

But we can add it into our cleaner script.

And it will need testing if some users with such hardware would be here to do so I could start implementing a fix for this.

It will need also to add this to load on ISO boot I think ?

3 Likes

I’d say so as well. But unfortunately I cannot test it because I don’t have such a machine.

But I added the vmd module to mkinicpio.conf on another real machine, and that caused no problems. After reboot lsmod shows vmd.
The same with a virtualbox vm.

How does one add the kernel parameters on the installer or it can’t?

  • vmd added to MODULES in /etc/mkinicpio.conf
  • nvme_load=YES added to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub

Edit: I have had about 4 cases that required this setup lately

ISO does use systemd-boot :wink:
Possible to add the both entries on ISO before building, and to have them on installed systems we will ned to add a script that does it or use one we have already and adding it:
adding a sed command to modify /etc/mkinitcpio.conf after calamares done setup what is needed to the file and regenerate it…

And grub can be modified here:

The Problem I see is that we do not know exactly if calamares is adding anything at the MODULES="" line… what would make it complicated to sed the files… would need to find out if it will be possible to first read the line and modify it without removing entries…

I had a discussion about that with cal-devs already… calamres is overwriting anything on mkinitcpio.conf as it has implementations to add needed stuff into it…

So we only can modify the file after calamars done that…

I’m not entirely sure it needs both the vmd module in mkinitcpio and the kernel parameter? I think on some instances i was able to get EOS to install with just the vmd module. :man_shrugging: Not all problems seem to be exactly the same. Some nvme drives are not seen. I don’t have the hardware also. It seems to be these consumer branded Intel laptops with raid controller(fake raid or software raid)or Intel Optane also cause some issues?

it is always a good idea to add compatibility layers to the ISO as if the first try does not work or users are unable to boot they do not get a good experience from the start up :wink:

The devices causing the issue is devices which is constructed of two devices which are shown to the OS as one - you could call it fake_raid and it actually works like a raid 0 with the difference being that the smaller or lower part - if one can call it that - is the fastest and on Windows this part is used as storage for the OS - at least that is what I am told.

Something called Intel Volume Management - an example is Optane H10 devices.

It is difficult to speculate on why it is made that way - but the lower cost of cells used for the slower part of the device comes to mind.

I understand what the hardware is. Personally i don’t care for it. Some of these are one device with a software layer. (Firmware)

So we can do the MODULES line (and grub changes) in c_c_s.

It would be nice to somehow know if vmd module is needed.
Does anyone know a way/command to see that?

I only know if i look at the hardware using inxi and i see a raid controller. Or RST in the Bios.

1 Like

Could you show the inxi output showing this?

I don’t have the hardware but if i could find a post where i helped a user?

1 Like

Here is one example:

Hardware-1: Intel Volume Management Device NVMe RAID Controller driver: vmd v: 0.6 port: 4000 bus-ID: 0000:00:0e.0 
           chip-ID: 8086.9a0b rev: class-ID: 0104 

Edit: Another example where using only vmd and not the kernel paramater as i stated to @joekamprad Sometimes the nvme drive isn’t recognized and can’t be seen.

Edit: Another example where i used both the kernel parameter and vmd.

12RAID:      12Hardware-1 Intel Volume Management Device NVMe RAID Controller 12driver vmd 12v 0.6 
           12port 3000 12bus-ID 0000:00:0e.0 12chip-ID 8086.9a0b 12rev 12class-ID 0104 
1 Like

Thanks! Now I must leave for a while… :wink:

1 Like

Why wouldn’t you use the initcpiocfg modules in calamares for this? You could just add it find_initcpio_features(). This would have the added benfit of potentially being upstreamed and benefiting all Calamares users.

on my question about this, i do not get any info that it will be possible to do that in calamares… so I do not investigate more deeply into try that :wink:
something like this part ?

    if uses_btrfs:
        modules.append("crc32c-intel" if cpuinfo().is_intel else "crc32c")
    else:
        hooks.append("fsck")

    return (hooks, modules, files)

Yes. If you just want to hardcode it, you can literally just add:

hooks.append("vmd")

Just make sure it is before the return line.

If you want to detect it, it would be a few more lines to do the detection.