在戴尔灵越 14 7490 上安装 Ubuntu

Dem*_*gos 13 dell intel system-installation rst

如何在Dell Inspiron 14 7490笔记本电脑上安装 Kubuntu ?

我的一个朋友在圣诞节收到了这台笔记本电脑,并希望将它用于 Linux。更具体地说,我们想安装 Kubuntu 19.10,但在这一点上,我们越来越绝望,并且会满足于任何发行版。主要问题是笔记本电脑只有一个 SSD,但 Linux 无法检测到它,因此我们无法在安装程序中选择它。

到目前为止我们所做的

编辑:我们最后一次尝试的日期是 2020-02-02

编辑(2020-04-09):问题仍然存在于 BIOS v1.4.1。

  1. 下载并安装所有来自戴尔的网站上最新的驱动程序。特别是,我们更新了 BIOS 驱动程序:初始版本是1.1.1,我们安装了版本1.3.0。(该版本1.1.1甚至无法启动到 Kubuntu 的实时 USB 中
  2. kubuntu-19.10-desktop-amd64.iso官网下载。我们检查了校验和是否正常。
  3. 使用 Rufus 创建一个可启动的 USB 驱动器。我们将分区方案设置为MBR,目标系统设置为BIOS or UEFI,文件系统设置为FAT32
  4. 重新启动到固件 (UEFI)
  5. 将 POST 时间设置为 5 秒
  6. 将“UEFI 引导路径安全”设置为 Never
  7. 禁用安全启动(否则我们会收到Initramfs unpacking failed错误消息)。
  8. 应用更改
  9. 进入引导菜单(在引导顺序中使用 F12)
  10. 选择 USB 驱动器。
  11. USB 驱动器启动到 grub。选择“Start Kubuntu (Safe Graphics)”,默认选项(“Start Kubuntu”)导致黑屏。
  12. 选择“Try Ubuntu”,它会启动一个实时 USB 桌面会话。我们可以连接到WiFi,使用Firefox,打开终端。此时我们可以运行一些命令来更好地了解系统。以下是一些结果:

    ls -alR /dev
    
    Run Code Online (Sandbox Code Playgroud)

    输出

    lshw
    
    Run Code Online (Sandbox Code Playgroud)

    输出

    lsblk
    
    Run Code Online (Sandbox Code Playgroud)

    输出

    cat /var/log/syslog
    
    Run Code Online (Sandbox Code Playgroud)

    输出

  13. 运行“安装 Kubuntu”程序。它在我们应该选择硬盘驱动器的步骤时崩溃。

我们被困的地方

主要问题是未检测到笔记本电脑的 SSD。它可以防止安装程序格式化硬盘驱动器和安装 Linux。有多个关于人们遇到此问题的报告(请参阅下面的链接)。我将总结我对这个问题的情况的理解,如果我们找到一个可行的解决方案,希望能发布一个可行的解决方案。

缩略语

首先,一些缩略词:

  • SATA是一种连接硬盘的技术。它可以在多种模式下运行,例如 AHCI 或 Intel RST。
  • AHCI是 Intel 标准化的 SATA 模式。它充当硬件和操作系统之间的接口:所有操作系统都能够使用它与硬盘驱动器进行通信。
  • RAID是一种将多个物理硬盘用作单个逻辑(“虚拟”)硬盘的技术。通过在多个物理驱动器上复制数据,它更能抵抗硬盘驱动器故障。
  • 英特尔快速存储技术 (Intel RST)是一种 Windows 应用程序,“可为配备 SATA 磁盘的系统提供改进的性能和可靠性”。它有一个称为“RAID”的功能,它是一种使用单个驱动器的软件解决方案。在英特尔之外,它通常被称为“假 RAID”,因为它需要特殊的软件支持,而不是使用多个物理驱动器并且对操作系统透明。Linux 不支持此功能。

戴尔灵越 14 7490 BIOS

BIOS 菜单有一个“系统配置”部分,允许配置硬盘驱动器向操作系统公开的方式:“SATA 操作”。以下是这台笔记本电脑(Bios 版本 1.2.1)上该部分的样子:

Inspiron SATA 操作

有两种模式:

  • “已禁用”:SSD 已完全禁用,您根本无法访问它。
  • “RAID”:这不会启用真正的 RAID(显然,这台笔记本电脑中只有一个 SSD),但会启用 Intel RST(又名假 RAID)。也称为“AHCI+RAID”,因为它使用“重新映射的 AHCI”。

以前的戴尔笔记本电脑有不同的 BIOS。在我的戴尔 XPS 15 9560 上,我有以下菜单: XPS SATA 操作

它有一个额外的“AHCI”选项,在 Dell Inspiron 14 7490 (BIOS v1.2.1) 上不可用。

Linux 目前不支持 Intel RST,要求 SATA 模式为 AHCI。否则它无法与 SSD 通信。由于直接“AHCI”在 Inspiron 笔记本电脑上不可用,因此它阻止了 Linux 的安装。

潜在的解决方案

BIOS 更新以再次提供 AHCI 选项

我长期以来一直在使用带有 Linux 的戴尔笔记本电脑,因为它们享有“可以正常工作”的声誉。当我帮助我的朋友选择一台笔记本电脑时,这种声誉就发挥了作用:我希望安装能够顺利进行。在他们发布带有新 BIOS 的笔记本电脑的整个情况下,甚至无法安装 Linux 严重损坏了他们的形象。戴尔论坛上有多个帖子抱怨这个问题(这里是评论最多的)。

一个可能的解决方案是戴尔简单地发布解锁“AHCI”SATA 模式的 BIOS 更新。它将允许选择此模式并安装 Linux,而不会出现其他问题。这将是理想的解决方案,但我不知道戴尔对这些问题的反应如何。我什至不知道他们是否会发布这种补丁。打开有关此问题的支持请求可能会提高 BIOS 更新的优先级。

向 Linux 内核添加 Intel RST 支持

另一种解决方案是使 Linux 能够在 Intel RST 模式下工作。我在 Linux 内核邮件列表上找到的最新讨论是2019 年 6 月。这次讨论中提议的补丁被拒绝了。

据我所知,在 Linux 内核中支持 Intel RST 很困难,原因有两个:复杂的协议和缺乏文档。启用“Intel RST”时,BIOS 确实通过“重新映射的 AHCI”暴露了 SSD,该 AHCI 看起来像 AHCI,但行为却不像 AHCI。内核可以检测到 SSD 处于重映射模式,但无法使用它。它无法使用它,因为该技术目前记录不足,阻止他们正确实施它。在上面发布的系统日志中,我们可以看到警告驱动器已重新映射的步骤:

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 
Run Code Online (Sandbox Code Playgroud)

我不知道内核何时甚至是否会添加对 AHCI 重映射 SSD 的支持。如果发布更多笔记本电脑,而“英特尔 RST”是唯一选择,他们可能别无选择。

我没试过内核补丁。如上所述,我正在帮助一个想要使用 Ubuntu 的朋友:因为它不是我的笔记本电脑,所以我宁愿避免尝试自定义补丁。

使用 dmraid

对此问题的评论之一提到英特尔 RST 通过dmraid. 此线程要求启动到实时 USB 并在启动安装程序之前运行以下命令:“dmraid --erase_metadata --raid_devices /dev/XdY其中 X 和 Y 表示您正在使用的 SSD”。

这个解决方案的问题是 Linux 根本看不到 SSD。lsblk只显示loop0/dev/sda(对应于随身碟)。在查看时/dev,没有/dev/sdb/dev/nvmeX驱动器。

结论

最终我的问题是“如何在这台笔记本电脑上安装 Kubuntu(或 Ubuntu)? ”。

我的结论是目前不可能在这台笔记本电脑上安装 Linux。我们必须等待戴尔或 Linux 的更新。如果有人找到解决方案,请回答这个问题。我也对戴尔的笔记本电脑感到失望,将来会更加谨慎地推荐它们。

参考

Flo*_*yle 8

我刚刚在这台笔记本电脑上安装了 Lubuntu 20.04。这是可能的,但并不容易。

Linux 内核中的 Intel RST 支持

正如您在问题中所说,提出了一些补丁以使 Linux 能够在 Intel RST 模式下工作。这些补丁在正式的Linux分支被拒绝,但丹尼尔·德雷克,谁提出的补丁,正在无尽的操作系统,基于Linux的操作系统,和他们保持这个补丁的更新版本,他们的版本的Linux内核可以在GitHub上。该内核基于 Ubuntu 的内核,每次更新时都会在其上重新设置一组补丁,包括支持英特尔重新映射 NVMe 设备的补丁。

知道了这一点,您现在有两个选择:

安装无尽操作系统

在这一点上,我们变得绝望并且会满足于任何分配

如果你不介意,你可以安装 Endless OS,它应该是开箱即用的。转到https://endlessos.com/download/,下载 Basic Multilanguage 映像,然后按照说明从 Linux 创建 U 盘。或者按照说明从 Windows 创建 U 盘

在 Ubuntu 上使用 Endless OS 的内核

这个要难很多,你需要很多技术知识。

这个想法是从GitHub 上Endlessm 存储库中提取和构建内核,并将这些包用作 Ubuntu 上的自定义内核。

为此,您必须拉取 Git 存储库:

git pull https://github.com/endlessm/linux/
Run Code Online (Sandbox Code Playgroud)

安装必要的构建依赖项:

sudo apt install build-essential fakeroot
sudo apt build-dep linux
Run Code Online (Sandbox Code Playgroud)

构建包:

cd linux/
fakeroot debian/rules clean
fakeroot debian/rules binary
Run Code Online (Sandbox Code Playgroud)

很长一段时间后,您将在父目录中创建很多 .deb 文件。

从那里,您可以使用它们来创建自定义的 Ubuntu 安装 CD(我还没有这样做,但应该可以)。

或者,您可以使用 Endless OS 实时版本来:

  • 启动一个 shell(Alt-F2 并输入 xterm 以获取终端),
  • 使用 cfdisk 和 mkfs.ext4 对 NVME 驱动器进行分区,
  • 在新分区上解压一个最小的 Ubuntu 实例(我使用了 Lubuntu 的 squashfs),
  • mount bind /dev /run /var/run 在里面,
  • 在其中挂载 /proc /sys,
  • chroot 进入它并做最小配置以获得一个工作系统(/etc/hosts、/etc/hostname、/etc/resolv.conf、/etc/fstab,安装和配置 grub,配置 tzdata 和键盘配置,添加一个新用户)
  • 在 chroot 中安装新的内核包。

您可能必须在内核中关闭安全启动才能在您的内核上启动。

我不会详细说明整个过程,因为我不完全记得所有步骤,但我设法获得了一个带有自定义内核的工作系统。挂起/重启时 nouveau 出现了一些问题,但由于我已经安装了 nvidia 驱动程序,一切正常。

Nvme 驱动器被识别为 /dev/nvme0n1。从 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
Run Code Online (Sandbox Code Playgroud)

lsblk 输出:

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
Run Code Online (Sandbox Code Playgroud)

如果您使用自定义内核,您可能还想固定您正在使用的版本,以避免在升级时将其替换为默认版本。

在 /etc/apt/preferences.d/linux-image-generic (我还没有测试过):

Package: linux-image-generic
Pin: release a=now
Pin-Priority: 501
Run Code Online (Sandbox Code Playgroud)

警告

只有当您知道自己在做什么时,才应使用此处描述的方法。Endless OS 内核中的内核补丁被官方内核拒绝,我不能保证它的质量。我不能保证它会长期维护并移植到新版本的内核中。

如果使用自定义内核安装 Ubuntu,则必须自己管理所有内核更新。我希望这个修复只是暂时的,直到戴尔发布支持 AHCI 模式的 bios 版本,但它可能不会发生。

内核还包括您可能想要查看的其他补丁。您可能还需要从 Endlessm 存储库构建和安装其他软件包,例如 linux-firmware,因为其中一些补丁将添加对官方 Linux 内核当前不支持的新硬件的支持。