10

How can I install Kubuntu on a Dell Inspiron 14 7490 laptop?

A friend of mine received this laptop for Christmas and wants to use it with Linux. More specifically, we want to install Kubuntu 19.10, but at this point we are getting desperate and would settle for any distribution. The main issue is that laptop has a single SSD, but Linux can't detect it so we are not able to select it in the installer.

What we have done so far

EDIT: Our last try dates from the 2020-02-02

EDIT (2020-04-09): The issue is still there with the BIOS v1.4.1.

  1. Download and install all the latest drivers from Dell's website. In particular, we update the BIOS driver: the initial version was 1.1.1, we installed the version 1.3.0. (The version 1.1.1 wasn't even able to boot into Kubuntu's live USB)
  2. Download kubuntu-19.10-desktop-amd64.iso from the official website. We checked that the checksums are OK.
  3. Create a bootable USB drive using Rufus. We set the partition scheme to MBR, target system to BIOS or UEFI and file system to FAT32.
  4. Reboot to firmware (UEFI)
  5. Set the POST time to 5 seconds
  6. Set "UEFI Boot Path Security" to Never
  7. Disable secure boot (or we get an Initramfs unpacking failed error).
  8. Apply the changes
  9. Enter the boot menu (with F12 during the boot sequence)
  10. Select the USB drive.
  11. The USB drive boots into grub. Select "Start Kubuntu (Safe Graphics)", the default option ("Start Kubuntu") leads to a black screen.
  12. Select "Try Ubuntu", it starts a live USB desktop session. We can connect to the WiFi, use Firefox, open the terminal. At this point we can run some commands to get a better view of the system. Here are some results:

    ls -alR /dev
    

    Output

    lshw
    

    Output

    lsblk
    

    Output

    cat /var/log/syslog
    

    Output

  13. Run the "Install Kubuntu" program. It crashes when at the step where we should select the hard drive.

Where we are stuck

The main issue is that the SSD of the laptop is not detected. It prevents the installer from formatting the hard drive and installing Linux. There are multiple reports of people encountering this issue (see links below). I'll summarize my understanding of the situation in this question, and hope to post an actionable solution if we find one.

Acronyms

First of all, some acronyms:

  • SATA is the technology for connecting hard drives. It can operate in multiple modes, such as AHCI or Intel RST.
  • AHCI is a SATA mode standardized by Intel. It serves as the interface between the hardware and operating systems: all operating systems are able to use it to communicate with the hard drives.
  • RAID is a technology to use multiple physical hard drive as a single logical ("virtual") hard drive. By duplicating data on multiple physical drives, it is more resistant to hard drive failures.
  • Intel Rapid Storage Technology (Intel RST) is a Windows application "that provides improved performance and reliability for systems equipped with SATA disks". It has a feature called "RAID" that is a software solution working with a single drive. Outside Intel, it is often called "fake RAID" because it requires special software support instead of using multiple physical drives and being transparent to the OS. This is not supported by Linux.

Dell Inspiron 14 7490 BIOS

The BIOS menu has a "System Configuration" section allowing to configure how the hard drive is exposed to the OS: "SATA Operations". Here is what this section looks like on this laptop (Bios version 1.2.1) :

Inspiron SATA Operations

There are two modes:

  • "Disabled": The SSD is fully disabled and you can't access it at all.
  • "RAID": This does not enable real RAID (obviously, there's only one SSD in this laptop) but enables Intel RST (aka fake RAID). Also called "AHCI+RAID" because it uses "remapped AHCI".

Previous Dell laptops had a different BIOS. On my Dell XPS 15 9560 I have the following menu: XPS SATA Operations

It has an extra "AHCI" option that is not available on the Dell Inspiron 14 7490 (BIOS v1.2.1).

Linux does not support Intel RST currently and requires the SATA mode to be AHCI. Otherwise it cannot communicate with the SSD. Since direct "AHCI" is not available on the Inspiron laptop, it prevents the installation of Linux.

Potential solutions

BIOS update to provide the AHCI option again

I've been using Dell laptops with Linux for a long time because because they had the reputation that it would "just work". This reputation played when I helped my friend chose a laptop: I expected the installation to go smoothly. This whole situation where they release a laptop with a new BIOS preventing from even installing Linux severely damaged their image. There are multiple threads on the Dell forums complaining about this issue (here is the most commented on).

A possible solution would be for Dell to simply release a BIOS update that unlocks the "AHCI" SATA mode. It would allow to select this mode and install Linux without further issues. This would be the ideal solution, but I don't know how reactive Dell is about these issues. I don't even know if they'll ever release this kind of patch. Opening support requests about this issue may raise the priority of a BIOS update.

Add Intel RST support to the Linux Kernel

An other solution would be to enable Linux to work in Intel RST mode. The most recent discussion I could find on Linux Kernel Mailing List dates from June 2019. The proposed patch in this discussion was declined.

From what I could understand, supporting Intel RST in the Linux Kernel is hard for two reasons: a complex protocol and lacking documentation. When enabling "Intel RST", the BIOS does in fact exposes the SSD through a "remapped AHCI" that looks like AHCI but does not behave like AHCI. The Kernel can detect that the SSD is in remapped mode, but can't use it. It can't use it because this technology is under-documented currently preventing from them from properly implementing it. In the syslog posted above, we can see the step where it warns that the drive is remapped:

Feb  2 18:21:34 kubuntu kernel: [    1.082521] ahci 0000:00:17.0: version 3.0
Feb  2 18:21:34 kubuntu kernel: [    1.083006] ahci 0000:00:17.0: Found 1 remapped NVMe devices.
Feb  2 18:21:34 kubuntu kernel: [    1.083007] ahci 0000:00:17.0: Switch your BIOS from RAID to AHCI mode to use them.
Feb  2 18:21:34 kubuntu kernel: [    1.083096] ahci 0000:00:17.0: AHCI 0001.0301 32 slots 16 ports 3 Gbps 0x0 impl RAID mode
Feb  2 18:21:34 kubuntu kernel: [    1.083098] ahci 0000:00:17.0: flags: 64bit ncq sntf pm clo only pio slum part deso sadm sds apst 

I don't know when or even if the Kernel will add support for AHCI remapped SSD. If more laptops are released where "Intel RST" is the only option, they may have no choice.

I haven't tried the kernel patch. As mentioned above, I am helping a friend who wants to use Ubuntu: since it's not my laptop I prefer to avoid trying out custom patches.

Use dmraid

One of the comments to this question mentioned that Intel RST is supported through dmraid. This thread asks to boot into live USB and run the following command before starting the installer: "dmraid --erase_metadata --raid_devices /dev/XdY where X and Y denote the SSDs you're using".

The problem with this solution is that Linux can't see the SSD at all. lsblk only displays loop0 and /dev/sda (corresponding to the pendrive). When looking into /dev, there is no /dev/sdb or /dev/nvmeX drive.

Conclusion

Ultimately my question is "How can I install Kubuntu (or Ubuntu) on this laptop?".

My conclusion is that it is currently impossible to install Linux on this laptop. We have to wait for an update from either Dell or Linux. If someone finds out a solution, please answer this question. I am also disappointed in Dell's laptops and will be more reticent to recommend them in the future.

References

  • 3
    So what is your question? – Pilot6 Jan 21 at 12:54
  • How can I install Ubuntu on this laptop? – Demurgos Jan 21 at 12:57
  • Linux can undersstand RST, but you need dmraid to be cofigured. – Pilot6 Jan 21 at 12:59
  • I saw mentions of dmraid when searching around this issue. I did not understand how to install Linux using it. I'll try to look more into it. If you know how to solve this issue using dmraid, please post an answer: you can see the various links, it would be valuable for many people. – Demurgos Jan 21 at 13:02
  • 1
    We are installing Kubuntu 19.10, but the problem also seems to affect other Linux distributions. – Demurgos Jan 21 at 13:13
5

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.

| improve this answer | |
  • Thank you very much for the research and this very thorough answer! Since it's my friends laptop, I do not feel comfortable asking him to try it (for the reasons listed in you warnings section). I believe this answer will be useful for many people! – Demurgos Apr 29 at 22:34
  • I up-voted your answer, but I'll wait until the end of the year before marking it as accepted: I hope that an easier solution will be available (and I don't know if I can change an accepted answer). – Demurgos Apr 29 at 22:34
0

I have ordered the same laptop. It has yet to arrive. Unfortunate that this is the case.

Just thought I would let you know that dell has released a new driver for this laptop since your original post.

https://www.dell.com/support/home/uk/en/ukbsdt1/drivers/driversdetails?driverid=2mt79

I don't know if it will fix the problem and add AHCI support. It is not listed as a feature but it might be worth a download to find out.

| improve this answer | |
  • No. Alas the new BIOS hasn't solved the problem. The AHCI option is still missing – gruggie Jan 31 at 10:56
  • Unfortunate. Examining Pages 17 and 18 of the service manual suggests that there might be a second PCIe slot: topics-cdn.dell.com/pdf/… However, this might be different motherboards because the discrete graphics. Further, my version is Irish and doesn't have the LTE. However it also suggests disabling the Intel RST in windows on page 80. Perhaps on your version that will be possible and then you could try install and boot from there. My machine is not likely to arrive until the this day next week. – Heaveysam Jan 31 at 11:41
  • Further to my last comment: Looking here: intel.co.uk/content/www/uk/en/support/articles/000024018/… It would appear that optane is only available with Windows... On linus tech tips he mentioned about increases in performance though if you constantly load large sets of files that is throw out the window, as the caching won't work. It would appear the MX250 version has the intel optane installed according to the service manual. Perhaps disabling in windows will help. If not, perhaps a m.2 drive without optane? – Heaveysam Jan 31 at 12:04
-1

I think this looks promising: https://wiki.debian.org/DebianInstaller/SataRaid. I'm interested in this laptop so I'd like to know if it works.

specifically it suggests you just need to add dmraid=true to the kernel boot options then it should be able to see the devices

It might also be worth trying the debian installer to see if it works then you at least know if it's supported by linux and should be possible in ubuntu

Use the following method only if you want to have a dual boot system with Debian and the other operating system on the same Serial ATA RAID:

  1. Set up your fake RAID in the BIOS (see owners manual).

  2. Boot from a Debian installation media.

  3. Move the cursor to the Install boot menu entry (do not hit Enter yet):

    1. Press Tab to edit the kernel boot line.

    2. Add dmraid=true to the end of the line.

    3. Press Enter.

      Note: In UEFI-installer you must press e key instead Tab and use arrow keys for moving to end of 4-st line (example for x86_64 architecture):

      • linux /install.amd/vmlinuz video=vesa:ywrap,mtrr vga=788 \ -- quiet

      Add dmraid=true to end of this line and press F10 or Ctrl+X to run installer.

      • linux /install.amd/vmlinuz video=vesa:ywrap,mtrr vga=788 \ -- quiet dmraid=true
  4. Install Debian as usual, until you get to the disk partitioner. You will see your fake RAID as one disk with a confusing long name. Use it as if it were a single disk and configure your partitions any way you want, including LVM and friends.

  5. Complete the installation. The installation of GRUB may fail, but that is OK; GRUB needs to be reinstalled either way. If GRUB installation fails, select "continue without bootloader" to complete the Debian installation.

  6. Reboot as instructed by Debian Installer.

  7. Boot using the Debian installation media again.

  8. In the boot menu, go to Advanced Options, and move the cursor to "Rescue system" (do not hit Enter yet):

    1. Press Tab to edit the kernel boot line.
    2. Add "dmraid=true" without quotes to the end of the line.
    3. Press Enter.
  9. You will be presented with screens similar to the installation screens. Go through with them until you are asked to choose a root filesystem to mount and use.

  10. Choose the first /dev/dm-? (? is a number). You will get a command prompt.

  11. (Optional) Type bash into the prompt, for easier command line editing and command history.

  12. Modify /etc/default/grub (e.g. nano /etc/default/grub) and uncomment GRUB_DISABLE_LINUX_UUID=true (699437). Save the file and exit the editor.

  13. Type update-grub and press enter. This is very important, because otherwise the GRUB boot menu later wont be able to display your freshly installed kernel!

  14. Type grub-install /dev/mapper/ and press tab and tab again, you will get the names of the fake raid partitions.

    1. Complete grub-install /dev/mapper/ with the name of your whole fake disk.

      For example grub-install /dev/mapper/isw-jggdha7s-SYS (Note that there is no number at the end of the name). You may have something like /dev/mapper/isw-jggdha7s-SYS and /dev/mapper/isw-jggdha7s-SYS1, or /dev/mapper/isw-jggdha7s-Volume and /dev/mapper/isw-jggdha7s-Volume1. Choose the one without the partition number and press enter.

    2. Everything should install now without an error.

  15. Type blkid | grep swap with the result of the command change the entry in the /etc/fstab. (e.g. nano /etc/fstab)

    1. Ex: /dev/mapper/isw.. to UUID="f7d88.." on the swap line
  16. Type exit (twice if you did step 11). Now you should be back in the rescue system menu. Choose the Reboot system option. Now boot off your fake RAID and see GRUB starting your new Debian installation.

| improve this answer | |
  • Thanks for the reply, Debian's guide seems pretty good. I don't know when we'll be able to test it, but if we do I'll post the results. I have no idea why you were downvoted: did someone try it without success? – Demurgos Mar 4 at 16:50
  • 1
    I gather that it probably won't work as the intel support for this device as not been merged and it seems that posting the link to the driver is irrelevant discussion and will be deleted. Thanks for the encouragement Demurgos I was feeling like this forum isn't for me. – Martin Mar 5 at 19:30

Not the answer you're looking for? Browse other questions tagged or ask your own question.