如何在Dell Inspiron 14 7490笔记本电脑上安装 Kubuntu?
我的一个朋友在圣诞节收到了这台笔记本电脑,想在 Linux 上使用它。更具体地说,我们想安装 Kubuntu 19.10,但在这一点上,我们越来越绝望,愿意接受任何发行版。主要问题是笔记本电脑只有一个 SSD,但 Linux 无法检测到它,因此我们无法在安装程序中选择它。
到目前为止我们所做的
编辑:我们的最后一次尝试日期为 2020-02-02
编辑(2020-04-09):BIOS v1.4.1 的问题仍然存在。
- 从戴尔网站下载并安装所有最新的驱动程序。特别是,我们更新了 BIOS 驱动程序:初始版本是,我们安装了版本。(该版本甚至无法启动到 Kubuntu 的 live USB 中)
1.1.1
1.3.0
1.1.1
kubuntu-19.10-desktop-amd64.iso
从官网下载。我们检查了校验和是否正常。- 使用 Rufus 创建一个可启动的 USB 驱动器。我们将分区方案设置为
MBR
,目标系统设置为BIOS or UEFI
,文件系统设置为FAT32
。 - 重新启动到固件 (UEFI)
- 将 POST 时间设置为 5 秒
- 将“UEFI 引导路径安全”设置为
Never
- 禁用安全启动(或者我们得到一个
Initramfs unpacking failed
错误)。 - 应用更改
- 进入引导菜单(在引导过程中使用 F12)
- 选择 USB 驱动器。
- USB 驱动器启动到 grub。选择“启动 Kubuntu(安全图形)”,默认选项(“启动 Kubuntu”)导致黑屏。
选择“试用 Ubuntu”,它会启动一个实时 USB 桌面会话。我们可以连接WiFi,使用火狐,打开终端。此时我们可以运行一些命令来更好地了解系统。以下是一些结果:
ls -alR /dev
lshw
lsblk
cat /var/log/syslog
运行“安装 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)上的部分内容:
有两种模式:
- “已禁用”:SSD 已完全禁用,您根本无法访问它。
- “RAID”:这不会启用真正的 RAID(显然,这台笔记本电脑中只有一个 SSD),但会启用 Intel RST(又名假 RAID)。也称为“AHCI+RAID”,因为它使用“重新映射的 AHCI”。
以前的戴尔笔记本电脑有不同的 BIOS。在我的戴尔 XPS 15 9560 上,我有以下菜单:
它有一个额外的“AHCI”选项,在 Dell Inspiron 14 7490 (BIOS v1.2.1) 上不可用。
Linux 目前不支持 Intel RST,需要 SATA 模式为 AHCI。否则无法与 SSD 通信。由于 Inspiron 笔记本电脑上不提供直接的“AHCI”,因此它会阻止 Linux 的安装。
潜在的解决方案
BIOS 更新以再次提供 AHCI 选项
很长一段时间以来,我一直在使用带有 Linux 的戴尔笔记本电脑,因为它们享有“可以正常工作”的声誉。当我帮助我的朋友选择一台笔记本电脑时,这个名声起了作用:我预计安装会顺利进行。他们发布带有新 BIOS 甚至无法安装 Linux 的笔记本电脑的整个情况严重损害了他们的形象。戴尔论坛上有多个帖子抱怨这个问题(这里是评论最多的)。
一个可能的解决方案是戴尔只需发布解锁“AHCI”SATA 模式的 BIOS 更新。它将允许选择此模式并安装 Linux,而不会出现其他问题。这将是理想的解决方案,但我不知道戴尔对这些问题的反应如何。我什至不知道他们是否会发布这种补丁。打开有关此问题的支持请求可能会提高 BIOS 更新的优先级。
将 Intel RST 支持添加到 Linux 内核
另一种解决方案是使 Linux 能够在 Intel RST 模式下工作。我在 Linux Kernel Mailing List 上可以找到的最新讨论可以追溯到 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
我不知道内核何时甚至是否会添加对 AHCI 重新映射 SSD 的支持。如果发布更多笔记本电脑,而“Intel RST”是唯一选择,他们可能别无选择。
我还没有尝试过内核补丁。如上所述,我正在帮助一个想要使用 Ubuntu 的朋友:因为它不是我的笔记本电脑,所以我宁愿避免尝试自定义补丁。
使用 dmraid
对此问题的评论之一提到英特尔 RST 通过dmraid
.
该线程要求启动到 live USB 并在启动安装程序之前运行以下命令:“dmraid --erase_metadata --raid_devices /dev/XdY
其中 X 和 Y 表示您正在使用的 SSD”。
这个解决方案的问题是Linux根本看不到SSD。lsblk
只显示loop0
和/dev/sda
(对应于pendrive)。在查看时/dev
,没有/dev/sdb
或/dev/nvmeX
驱动器。
结论
最终我的问题是“如何在这台笔记本电脑上安装 Kubuntu(或 Ubuntu)? ”。
我的结论是,目前无法在这台笔记本电脑上安装 Linux。我们必须等待戴尔或 Linux 的更新。如果有人找到解决方案,请回答这个问题。我也对戴尔的笔记本电脑感到失望,并且将来会更加谨慎地推荐它们。
参考
- 戴尔支持线程
- 其他线程
- LKML 讨论
- 内核补丁来检测 AHCI 重新映射的设备(但不使用它们)
我刚刚在这台笔记本电脑上安装了 Lubuntu 20.04。这是可能的,但并不容易。
Linux 内核中的 Intel RST 支持
正如您在问题中所说,提出了一些补丁程序以使 Linux 能够在 Intel RST 模式下工作。补丁在官方 Linux 分支中被拒绝,但提出补丁的 Daniel Drake 正在开发基于 Linux 的操作系统Endless OS,并且他们在 GitHub 上提供的 Linux 内核版本中维护了该补丁的更新版本。这个内核基于 Ubuntu 的内核,他们每次更新时都会在其上重新设置一组补丁,包括支持英特尔重新映射的 NVMe 设备的补丁。
知道了这一点,您现在有两个选择:
安装无尽的操作系统
如果您不介意,您可以安装 Endless OS,它应该可以开箱即用。转到https://endlessos.com/download/,下载基本多语言映像,然后按照说明从 Linux 创建 U 盘。或按照说明从 Windows 创建 U 盘。
在 Ubuntu 上使用 Endless OS 的内核
这个比较难,需要很多技术知识。
这个想法是从GitHub 上的 Endlessm 存储库中提取和构建内核,并将这些包用作 Ubuntu 上的自定义内核。
为此,您必须拉取 Git 存储库:
安装必要的构建依赖项:
构建软件包:
很长一段时间后,您将在父目录中创建大量 .deb 文件。
从那里,您可以使用它们创建自定义 Ubuntu 安装 CD(我没有这样做,但应该可以)。
或者,您可以使用 Endless OS 实时版本:
您可能必须在内核中关闭安全启动才能在内核上启动。
我不会详细说明整个过程,因为我不完全记得所有步骤,但我设法获得了一个带有自定义内核的工作系统。nouveau 在挂起/重新启动时出现了一些问题,但是由于我已经安装了 nvidia 驱动程序,所以一切正常。
Nvme 驱动器被识别为 /dev/nvme0n1。从 dmesg :
lsblk 输出:
如果您使用自定义内核,您可能还需要固定您正在使用的版本,以避免在升级时将其替换为默认版本。
在 /etc/apt/preferences.d/linux-image-generic (我还没有测试过):
警告
仅当您知道自己在做什么时,才应使用此处描述的方法。Endless OS内核中的内核补丁被官方内核拒绝,我不能保证它的质量。我不能保证它会长期维护并移植到新版本的内核。
如果您使用自定义内核安装 Ubuntu,您将必须自己管理所有内核更新。我希望这个修复只是暂时的,直到戴尔发布支持 AHCI 模式的 bios 版本,但它可能不会发生。
内核还包括您可能想要查看的其他补丁。您可能还必须从 Endlessm 存储库构建和安装其他软件包,例如 linux-firmware,因为其中一些补丁是为了添加对当前不受官方 Linux 内核支持的新硬件的支持。
我订购了相同的笔记本电脑。它还没有到来。不幸的是,情况就是这样。
只是想我会让你知道,自从你原来的帖子以来,戴尔已经为这台笔记本电脑发布了一个新的驱动程序。
https://www.dell.com/support/home/uk/en/ukbsdt1/drivers/driversdetails?driverid=2mt79
我不知道它是否会解决问题并添加 AHCI 支持。它没有被列为一项功能,但可能值得下载以找出答案。
我认为这看起来很有希望:https ://wiki.debian.org/DebianInstaller/SataRaid 。我对这台笔记本电脑很感兴趣,所以我想知道它是否有效。
具体来说,它建议您只需将 dmraid=true 添加到内核启动选项,然后它应该能够看到设备
也可能值得尝试使用 debian 安装程序来查看它是否有效,那么您至少知道它是否受 linux 支持并且应该可以在 ubuntu 中使用