Install Ubuntu on Dell Inspiron 14 7490
I have just installed Lubuntu 20.04 on this laptop. It's possible, but not easy.
Intel RST support in the Linux Kernel
As you said in your question, there were some patches proposed to enable Linux to work in Intel RST mode. The patches were refused in the official Linux branch, but Daniel Drake, who proposed the patches, is working on Endless OS, a Linux based OS, and they maintain an updated version of this patch in their version of the Linux kernel available on GitHub. This kernel is based on Ubuntu's kernel, and they rebase a set of patches on top of it every time they update it, including the patch to support Intel remapped NVMe devices.
Knowing that, you now have two choices :
Install Endless OS
at this point we are getting desperate and would settle for any distribution
If you don't mind, you can just install Endless OS, and it should work out of the box. Go to https://endlessos.com/download/, download the Basic Multilanguage image, and follow the instructions to create an USB stick from Linux. Or follow the instructions to create an USB stick from Windows.
Use Endless OS's kernel on Ubuntu
This one is a lot harder, and you need a lot of technical knowledge.
The idea is to pull and build the kernel from the Endlessm repository on GitHub, and use these packages as a custom kernel on Ubuntu.
For that, you have to pull the Git repository :
git pull https://github.com/endlessm/linux/
Install the necessary build dependencies :
sudo apt install build-essential fakeroot
sudo apt build-dep linux
Build the packages :
cd linux/
fakeroot debian/rules clean
fakeroot debian/rules binary
After a long time, you will then have a lot of .deb files created in the parent directory.
From there, you can use them to create a custom Ubuntu install CD (I haven't done that, but it should be possible).
Or, you can use Endless OS live version to :
- launch a shell (Alt-F2 and type xterm to get a terminal),
- partition your NVME drive using cfdisk and mkfs.ext4,
- decompress a minimal instance of Ubuntu on your new partition (I have used the squashfs from Lubuntu),
- mount bind /dev /run /var/run in it,
- mount /proc /sys in it,
- chroot into it and do the minimum configuration to get a working system (/etc/hosts, /etc/hostname, /etc/resolv.conf, /etc/fstab, install and configure grub, configure tzdata and keyboard-configuration, add a new user)
- install your new kernel packages in the chroot.
You may have to turn Secure Boot off in the kernel to be able to boot on your kernel.
I won't detail the full process, as I don't exactly remember all the steps, but I managed to get a working system with a custom kernel. There were some problems with nouveau when suspending/rebooting, but since I have installed the nvidia driver, everything is working correctly.
Nvme drive is recognized as /dev/nvme0n1. From dmesg :
[ 0.630319] intel-nvme-remap 0000:00:17.0: Found 1 remapped NVMe devices
[ 0.630357] intel-nvme-remap 0000:00:17.0: PCI host bridge to bus 10000:00
lsblk output :
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 953,9G 0 disk
├─nvme0n1p1 259:1 0 680M 0 part /boot/efi
├─nvme0n1p2 259:2 0 128M 0 part
├─nvme0n1p3 259:3 0 105,7G 0 part
├─nvme0n1p4 259:4 0 990M 0 part
├─nvme0n1p5 259:5 0 15G 0 part
├─nvme0n1p6 259:6 0 1,3G 0 part
├─nvme0n1p7 259:7 0 30G 0 part /
└─nvme0n1p8 259:8 0 800,1G 0 part /home
If you use a custom kernel, you may also want to pin the version you are using to avoid it being replaced with the default version when upgrading.
In /etc/apt/preferences.d/linux-image-generic (I haven't tested it yet) :
Package: linux-image-generic
Pin: release a=now
Pin-Priority: 501
Warning
The method described here should only be used if you know what you are doing. The kernel patch in Endless OS's kernel was rejected from the official kernel, I can't guarantee it's quality. I can't guarantee that it will be maintained in the long run and ported to new versions of the kernel.
If you install Ubuntu with a custom kernel, you will have to manage all the kernel updates yourself. I hope that this fix will only be temporary until Dell release a bios version with AHCI mode support, but it may not happen.
The kernel also include other patches that you may want to review. You may also have to build and install other packages from Endlessm repository, like linux-firmware, as some of theses patches are to add support for new hardware not currently supported by the official Linux kernel.