分类 技术 下的文章

我使用开源的 XFS 文件系统是为了其扩展属性带来的小小便利。扩展属性是一种为我的数据添加上下文的独特方式。

“文件系统” 是一个描述你的计算机怎样跟踪你创建的所有文件的完美词语。你的计算机存储有大量的数据,无论是文档、配置文件还是数以千计的照片。这需要一种对人和机器都友好的方式。诸如 Ext4、XFS、JFS、BtrFS 的文件系统是你的计算机用来跟踪文件的“语言”。

你的桌面或终端可以帮助你快速查找文件。例如,你的文件管理器可能有过滤功能,以便让你可以快速查看家目录内的图片,它也可能带有搜索功能以让你使用文件名定位文件。这些特性被称作文件属性,正如其名,它们是由文件头或者文件系统代码定义的文件对象的属性。大多数的文件系统记录了标准的文件属性,例如文件名、文件大小、文件类型、创建时间、上次访问时间等。

我在我的计算机上使用开源的 XFS 文件系统,不是为了其稳定性和高性能,而是为了其扩展属性带来的小小便利。

常见的文件属性

当你保存一个文件,文件相关的数据也会随同保存。常见的属性会告诉操作系统是否更新访问时间,什么时间同步数据到硬盘等逻辑细节。哪些属性被保存取决于底层文件系统的功能和特性。

在标准文件属性(如果有标准属性的话)之外,XFS、Ext4 和 BtrFS 文件系统都可以使用扩展属性。

扩展属性

XFS、Ext4 和 BtrFs 允许你创建自己的任意文件属性。由于是自己创建的,操作系统不会有内建支持,不过我以“标签”的方式使用它们,就像图片的 EXIF 数据一样。开发者们也许会选择使用扩展属性去开发应用内的自定义的功能。

XFS 中的属性有两个“命名空间”:用户(user)和根(root)。当创建属性时,你必须将其加入其中一个命名空间。要将属性添加到根命名空间,必须使用 sudo 命令或以 root 身份登录。

增加一个属性

你可以使用 attrsetfattr 命令在 XFS 文件系统中为文件增加属性。

attr 命令默认在 user 命名空间下进行,所以你只需要为属性设置一个名字(-s)和值(-V)。

$ attr -s flavor -V vanilla example.txt
Attribute "flavor" set to a 7 byte value for example.txt:
vanilla

setfattr 命令需要你指定目标命名空间:

$ setfattr --name user.flavor --value chocolate example.txt

列出扩展文件属性

使用 attr 或者 getfattr 命令可以看已添加到文件上的扩展属性。attr 命令默认使用 user 空间,使用 -g 以获取扩展属性:

$ attr -g flavor example.txt
Attribute "flavor" had a 9 byte value for example.txt:
chocolate

getfattr 命令需要属性的命名空间和名字:

$ getfattr --name user.flavor example.txt 
# file: example.txt
user.flavor="chocolate"

列出所有扩展属性

要看一个文件的所有扩展属性,你可以使用 attr -l

$ attr -l example.txt
Attribute "md5sum" has a 32 byte value for example.txt
Attribute "flavor" has a 9 byte value for example.txt

或者,你也可以使用 getfattr -d

$ getfattr -d example.txt
# file: example.txt
user.flavor="chocolate"
user.md5sum="969181e76237567018e14fe1448dfd11"

扩展文件属性可以使用 attrsetfattr 更新,就像你创建这些属性一样:

$ setfattr --name user.flavor --value strawberry example.txt

$ getfattr -d example.txt
# file: example.txt
user.flavor="strawberry"
user.md5sum="969181e76237567018e14fe1448dfd11"

其他文件系统上的属性

使用扩展属性最大的风险是忘记这些属性是特定于某个文件系统的。这意味着当你从一个磁盘或分区复制文件到另外一个磁盘或分区时,这些属性都会丢失,即使目标位置的文件系统也支持扩展属性。

为了避免丢失扩展属性,你需要使用支持保留这些属性的工具,例如 rsync 命令。

$ rsync --archive --xattrs ~/example.txt /tmp/

但无论你使用什么工具,如果你传输文件到一个不知道如何处理扩展属性的文件系统,这些属性都会被丢弃。

搜索属性

与扩展属性交互的机制并不多,所以使用这些添加的文件属性的方法也有限。我使用扩展属性作为标签机制,这让我可以将没有明显关系的文件联系起来。例如,假设我需要在一个项目中用“知识共享”的图形。假如我预见性地将 license 属性添加到了我的图形库中,我就可以使用 findgetfattr 在图形文件夹中寻找:

find ~/Graphics/ -type f \
    -exec getfattr \
    --name user.license \
    -m cc-by-sa {} \; 2>/dev/null

# file: /home/tux/Graphics/Linux/kde-eco-award.png
user.license="cc-by-sa"
user.md5sum="969181e76237567018e14fe1448dfd11"

文件系统的秘密

文件系统一般不会引起你的注意。它们实际是定义文件的系统。这不是计算机做的最让人兴奋的任务,也不是用户应该关心的东西。但是有些文件系统可以给你有趣、安全的特殊能力,扩展文件属性就是一个好例子。它的用途可能有限,但是扩展属性是你为数据增加上下文的独特方法。

(题图:MJ/06c0c478-7af7-49e4-836b-a9923db9dc0c)


via: https://opensource.com/article/22/6/linux-attr-command

作者:Seth Kenlon 选题:lkxed 译者:wznmickey 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这篇文章是《Btrfs 详解》系列文章中的一篇。从 Fedora Linux 33 开始,Btrfs 就是 Fedora Workstation 和 Fedora Silverblue 的默认文件系统。

介绍

文件系统是现代计算机的基础之一。它是任何操作系统必不可少的一部分,且通常不为人注意。但是,像 Btrfs 这样的现代文件系统提供了许多很棒的特性,使计算机的使用更加方便。例如,它可以无感地为你压缩文件,或者为增量备份建立可靠的基础。

这篇文章将带你高屋建瓴地了解 Btrfs 文件系统是如何工作的,有什么特性。本文既不会过多涉及技术细节,也不会研究其底层实现,系列后续的文章会详细介绍一些重要特性。

什么是文件系统

如果你基本了解过文件系统是如何工作的,那么下面的内容对你应该是不陌生的,你可以直接跳到下一节。否则,请先阅读下面对文件系统的简短介绍。

简单来说,文件系统允许你的 PC 去寻找存储在磁盘上的数据。这听起来像是微不足道的工作,但实际上时至今日各种类型的非易失性存储设备(比如机械硬盘、固态硬盘、SD 卡等等)仍然与 1970 年代 PC 被发明时基本相同:一个(巨大的)存储块集合。

Block ” 是最小的可寻址存储单元。PC 上的每个文件内容被存储在多个块中。一个块通常是 4096 字节的大小。这取决于你的硬件和在这之上的软件(即文件系统)。

文件系统允许我们从海量的存储块中查找文件的内容,这是通过所谓的 inode 去实现的。一个 inode 在特殊格式的存储块里记录了文件的信息。这包含文件的大小,哪里去寻找组成文件内容的存储块,访问规则(即谁可读,可写,可执行)等等。

下面是 inode 的示意图:

A text file “myfile.txt” and a hypothetical example of its representation on disk. All the squares are individual storage blocks.

inode 的结构对文件系统的功能有巨大的影响,因此它是各种文件系统诸多的重要数据结构之一。出于这个原因,每个文件系统有各自的 inode 结构。如果你想了解更多信息,看看下面 链接 关于 Btrfs 文件系统 inode 结构的内容。如需更详细地了解各个字段的含义,你可以 参考 ext4 文件系统的 inode 结构。

写时复制(CoW)文件系统

相比 ext4,Btrfs 拥有的杰出特性之一是,它是一个 写时复制 Copy-on-Write (CoW)文件系统。当一个文件被改变和回写磁盘,它不会故意写回它原来的位置,而是被复制和存储在磁盘上的新位置。从这个意义上,可以简单地认为 Cow 是一种 “重定向”,因为文件写入被重定向到不同的存储块上。

这听起来很浪费,但实际上并不是。这是因为被修改的数据无论如何一定会被写到磁盘上,不管文件系统是如何工作的。Btrfs 仅仅是确保了数据被写入在之前没被占据的块上,所以旧数据保持完整。唯一真正的缺点就是这种行为会导致文件碎片化比其他文件系统要快。在日常的电脑使用中,你不太可能会注意到这点差异。

CoW 的优势在哪里?简单的说:文件被修改和编辑的历史被保存了下来。Btrfs 保存文件旧版本的引用(inode)可以轻易地被访问。这个引用就是快照:文件系统在某个时间点的状态镜像。这将是这系列文章里的单独的一篇,所以暂时留到后面介绍。

除了保存文件历史,CoW 文件系统永远处于一致的状态,即使之前的文件系统事务(比如写入一个文件)由于断电等原因没有完成。这是因为文件系统的元数据更新也是写时复制的:文件系统本身永远不会被覆写,所以中断不会使其处于部分写入的状态。

对文件的写时复制

你可以将文件名视为对 inode 的指针。在写入文件的时候,Btrfs 创建一个被修改文件内容(数据)的拷贝,和一个新的 inode(元数据),然后让文件名指向新的 inode,旧的 inode 保持不变。下面是一个假设示例来阐述这点:

Continuation of the example above: 3 more bytes of data were added

这里 myfile.txt 增加了三个字节。传统的文件系统会更新中间的 Data 块去包含新的内容。CoW 文件系统不会改变旧的数据块(图中灰色),写入(复制)更改的数据和元数据在新的地方。值得注意的是,只有被改变的数据块被复制,而不是全部文件。

如果没有空闲的块去写入新内容,Btrfs 将从被旧文件版本占据的数据块中回收空间(除非它们是快照的一部分,本系列后续文章会看到)。

对目录的写时复制

从文件系统的角度看,目录只是特殊类型的文件。与常规文件不同,文件系统直接解释数据块的内容。一个目录有自身的元数据(inode,就像上面说的文件一样)去记录访问权限或修改时间。最简单的形式,存在目录里的数据(被叫作目录项)是一个 inode 引用的列表,每个 inode 又是另外的文件或目录。但是,现代文件系统在目录项中至少会存储一个文件名和对应的 inode 引用。

之前已经指出,写入一个文件会创建之前 inode 的副本,并相应修改其内容。从根本上,这产生了一个和之前无关的新的 inode 。为了让被修改的文件对文件系统可见,所有包含这个文件引用的目录项都会被更新。

这是一个递归的过程!因为一个目录本身是一个带有 inode 的文件。修改目录里的任何一项都会为这个目录文件创建新的 inode 。这会沿着文件系统树递归直到文件系统的根。

所以,只要保留对任何旧目录的引用,并且这些目录没有被删除和覆写,就可以遍历之前旧状态的文件系统树。这就是快照的功能。

后续文章可以期待的内容

Btrfs 不只是一个 Cow 文件系统。它目标是实现高级特性的同时关注容错、修复和易于管理(参见 文档)。本系列未来的文章将会专门介绍这些特性。

  • 子卷 – 文件系统中的文件系统
  • 快照 – 回到过去
  • 压缩 – 透明节省存储空间
  • 配额组 – 限制文件系统大小
  • RAID – 替代 mdadm 配置

这远非 Btrfs 特性的详尽列表。如果你想全面地了解可用特性,查看 维基文档

总结

我希望我已能激起你进一步了解计算机文件系统的兴趣。如果目前你有任何疑问,请在评论区留言讨论以便在日后文章中探讨,同时,你也可以自行学习文中提供的相关资源。如果你发现 Btrfs 中某项特别有趣的功能,也欢迎在评论区提出。如果某个主题收到足够的关注,我可能会在系列文章中新增相关内容。下一篇文章再见!

(题图:MJ/35fa1970-1806-4026-8d58-095a56206ec9)


via: https://fedoramagazine.org/working-with-btrfs-general-concepts/

作者:Andreas Hartmann 选题:lkxed 译者:A2ureStone 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

以下是确保 Windows 系统已准备好运行虚拟机的必要条件。

在 VirtualBox 中看到了“ 无法打开虚拟机会话 failed to open a session for the virtual machine ”错误?

你的系统上可能没有启用虚拟化。

这是在 Windows 系统上创建虚拟机所需执行的几件事之一。

简单来说,你需要了解:

  • 在你的 PC 上启用虚拟化支持
  • 使用虚拟机程序创建/管理虚拟机
  • 确保某些系统资源要求以无缝使用虚拟机

下面是第一件事:

在 Windows PC 上启用虚拟化

如果你的系统预装了 Windows 10/11,那么你很可能已经启用了虚拟化。你不需要额外的设置。

但如果你在系统上手动安装了 Windows,那么可能需要检查 BIOS 设置以查看它是否支持虚拟化。如果禁用,虚拟机程序将无法运行并给出错误。

这是使用 VirtualBox 程序时出现的错误:

你怎么能这么做呢? 以下是基本步骤:

  1. 前往 UEFI 固件设置(或 BIOS 菜单)。你通常可以通过按 Del 按钮或 F1F2F10F12 来访问它。
  2. 根据主板制造商的不同,用户界面会有所不同。但是,在大多数情况下,你必须进入到其中的“ 高级 Advance ”选项,并访问“ CPU 配置 CPU Configuration ”设置。
  3. 在 CPU 配置中,你必须启用 “Intel (VMX) Virtualization Technology” 或 “SVM Mode”(适用于 AMD 处理器)。

下一步是什么? 考虑到你已经启用了虚拟化支持,你需要使用 虚拟化程序 来帮助你完成工作。

使用虚拟化程序

你可以选择第三方应用以方便使用,也可以选择使用 Windows 自带的 Hyper-V。

Hyper-V

我们不会详细介绍如何使用 Hyper-V,但为了节省你一些时间,你可以按照以下步骤启用它,然后按照其文档使用它。

? Hyper-V 不适用于 Windows 10/11 家庭版。

考虑到你的系统上安装了 Windows 专业版/教育版/企业版,可以通过控制面板或使用 PowerShell 轻松启用它。

我更喜欢控制面板,只需在搜索栏中搜索 “Windows 功能”或通过 “控制面板 → 程序 → 打开或关闭 Windows 功能” 打开。

接下来,单击 “Hyper-V” 并点击 “OK”。就是这样。

它将通过获取所需的文件来应用更改。你只需要等待。

完成后,它会要求你重启系统以使新功能生效。

第三方虚拟化程序

虽然使用 Hyper-V 可以让虚拟机获得更好的性能,但它使用起来却并不那么简单。

因此,建议终端用户使用第三方虚拟机程序。

最好的选择之一是 VirtualBox。我们还有一个指南可以帮助你使用 VirtualBox 安装 Linux

它是一个开源程序,具有一系列功能和用户友好的界面。你也可以在 Windows、Linux 和 macOS 上使用它。

你还可以选择专有(但流行)的选项,例如 VMware Workstation

想了解这些程序吗?你可以查看 Linux 下的一些可用选项,了解有哪些解决方案:

9 个最佳虚拟化软件

检查系统资源和要求

创建和使用虚拟机并不完全是一个非常占用资源的过程。但是,你可能需要注意一些变量。

其中一些包括:

  • 确保你的系统至少有 4 GB 内存(越多越好)
  • 双核或以上 64 位处理器

如果你不知道,即使虚拟机是孤立的机器,也会占用你系统的资源。大多数最低规格建议 4 GB RAM,但我建议使用 8 GB

如果你想要运行两个虚拟机,你可能需要在 Windows 上拥有超过 8GB 的内存

除了内存,你应该有一个多核处理器。这样,一些内核可以自由地让你在主机上做其他事情,而另一些内核则用于处理虚拟机。

当确定了处理器和内存,接下来就是磁盘空间

对于虚拟机来说,磁盘通常是动态分配的,也就是说,物理存储驱动器的空间会随着操作系统及其文件的增加而消耗。

在某些类型的虚拟磁盘中,它保留你指定的整个空间。因此,执行此操作时,请在启动之前检查可用磁盘空间。通常最好选择一个未安装 Windows 系统的单独驱动器。

如果你遵循了上述所有提示,你的 Windows 系统就可以运行和管理虚拟机了。现在,你可以 在 Windows 的虚拟机中轻松地安装 Linux

? 那么,你喜欢用什么方式来处理虚拟机?请在下面的评论中告诉我们你的想法。

(题图:MJ/c1690724-a797-442b-8fb5-b6d41ef0c45c)


via: https://itsfoss.com/windows-enable-virtualization/

作者:Ankush Das 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

解决 VLC 的视频播放问题?以下是检查 VLC 日志文件的方法。

在 VLC 上观看你喜爱的视频时,你可能会遇到与编解码器、时间戳、视频播放等相关的问题。

但好消息是,就像 检查防火墙的日志 一样,你可以使用 VLC 执行相同的操作来跟踪错误的根本原因。

? 与 Linux 不同,VLC 不会自动保存日志,一旦关闭,所有日志都会自动删除,因此你必须手动保存它们。

因此,请确保在关闭 VLC 播放器之前保存或读取日志文件。

检查并保存 VLC 日志文件

虽然听起来很复杂,但这是最简单的方法,它不仅允许你保存日志,还可以让你读取日志而不将其保存到文件中。

首先,从顶部菜单栏转到“ 工具 Tools ”菜单,然后选择“ 消息 Messages ”,或者,你也可以按 Ctrl + M 达到相同的效果:

它将显示与当前播放的视频文件相关的日志。

在这里,你有两种选择:你可以仅读取日志,也可以保存日志。

单击“消息”选项卡后,你会注意到 “ 冗余 Verbosity ” 选项,因此让我们看一下多个详细程度选项的效果。

  • 错误 Errors : 只会记录错误信息
  • 警告 Warnings : 它将总结错误和警告消息
  • 调试 Debug :此级别将包括错误、警告和调试消息

选择适当的详细程度选项后,你很快就会看到与所选选项相关的日志。

正如你所看到的,当我选择 “调试” 选项时,它还包含警告日志。

要保存日志,请点击 “ 另存为 Save as... ” 按钮,它将打开文件管理器,在这选择保存文件的位置并为其指定适当的名称:

现在,你可以使用任何文本编辑器打开日志文件:

从这里,你可以识别导致错误的罪魁祸首。

有关 VLC 的更多信息

你是否知道你可以使用 VLC 下载 YouTube 视频或使用 YouTube 链接来流式传输视频而无需广告?

嗯,VLC 能做的远不止这些。如果你有兴趣,请查看我们详细的 让 VLC 更出色的技巧指南

我希望本指南对你有所帮助。

(题图:MJ/f614be05-cc16-40ef-9b2d-8f7a6864400f)


via: https://itsfoss.com/vlc-check-log/

作者:Sagar Sharma 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Armbian 23.08 版本已出炉,初步开始为这款轻薄的 Snapdragon 笔记本提供支持。

最新发布的 Armbian 有助于解决在 Arm 计算机上安装并运行 Linux 发行版的困难 —— 这是一项不小的挑战。

今年 3 月我们 评测 的联想 Thinkpad X13S 第一代,是我们评估的首款主流 Arm 驱动笔记本电脑。当然,市面上确实还有其他的 Arm 笔记本,如 Pine64 的 Pinebook Pro 和多款基于 Arm 的 ChromeBook 等。然而,X13S 更接近常规的基于 x86 的笔记本电脑:具备优质的配置,配有 16GB 内存和 256GB 的 NVMe SSD,更重要的是,它搭载了 PC 行业标准的 UEFI 固件,这在消费级 Arm 计算机上尚属罕见。另一个好消息是,你可以禁用安全启动,这是许多 Arm 设备不支持的。十年前,这是最初的微软 Surface RT 的一个 关键问题:Windows RT 一团糟,而它的固件不让你运行其他的系统。

虽然 X13S 从 2022 年 5 月就开始发售,但要让这个机器支持运行 Linux,却花费了一段不短的时间。一篇 博客文章 列出一些相关问题,文章副标题 “拥抱苦难” 已经透露出难度之大。这篇文章链接了一篇有关如何在该机器上安装 Debian 的 很老的指南。我们按照指南操作,尝试安装中间版的 Debian,定制内核,看起来安装成功了。

将其从 SSD 启动,着实需要巨大的努力,这涉及到进入 UEFI 固件 Shell,并手动逐个查阅 30 到 40 个条目才能找出并启用正确的 UEFI 启动条目,但经过数小时的寻找和无数次的重启,它成功工作了,Debian 能够启动。不幸的是,在启动已经安装的操作系统时,屏幕在输出几行以后就变黑了,再也没亮过。虽然操作系统还在运行,例如,按下电源键会在几秒后干净地关闭电源,但由于没有显示,甚至是文本显示也没有,我们无法配置 Wi-Fi 连接,而且该机器并没有内建的以太网接口。

随着最新固件和更新的支持,现在已经能在基于 Arm 的 Thinkpad 上使用 Ubuntu Lunar 的 GNOME 桌面环境。

此外,尚有一种 “概念版” 的 Ubuntu 23.04 “Lunar Lobster”,其开发并未完成,该公司要求我们不公开相关链接。自从我们拿到这台机器以来,已经进行了多次固件更新:最初其固件版本为 1.25,如今已经更新至 1.57。在固件版本更新到 1.49 时,固件设置程序增加了一个处于测试阶段的 “Linux” 选项,并随着下一次更新,机器首次成功通过我们的 Ubuntu USB 启动盘启动。但引导过程极慢,开机至少需要 10-15 分钟,甚至更久,而且当它运行在 立付 Live 系统模式下时,设备功能有显著限制:比如无法发出声音,Wi-Fi 仅支持 2.4GHz 等。尽管如此,它的运行效果尚可,足以完成安装。初次启动进入的是空白屏幕,然而,你可以切换到虚拟控制台,登录并从 Shell 提示符下更新操作系统。在更新并重启后,图形登录界面出现,此时我们可以正常登录,5GHz Wi-Fi 也开始正常工作。

在固件 1.56 更新阶段,Ubuntu 在这款硬件上仍有诸多限制:无声音,仅支持 Wayland,不支持 X.org。按照我们的惯例,我们安装时将 /home 挂载在独立的磁盘分区中,Ubuntu 在一个只读的主目录上启动,但这导致 Ubuntu 无法保存任何设置,也未能创建常用的文件夹(如 ~/Documents 等)。然而,执行了一条手动的 chown 命令后,权限问题得以解决,/home 目录也得以写入。

全面更新后,就连 X.org 也能正常运行,这意味着非 GNOME 桌面可能最终也能被成功运行。

固件版本 1.57 出现在上个月,重新安装并更新 Ubuntu “Lunar” 后,声音和 X11 功能得以正常工作,这意味着非 Wayland 桌面现在也变得可行。尽管仍有一些困难,但是配备一个 USB-C 以太网适配器会有很大帮助,现在的 X13S 笔记本已经可以很好地运行 Ubuntu。相较于 Windows 运行下的状态,一个显著的差异在于,没有了 x86 模拟环境,只有原生的 Arm64 应用,机器的运行状况变得没那么热了。尽管底座会变热,但它可以放在白白的大腿上使用而不会烫到你。

甚至连声音芯片也得到了支持,我们可以播放音频并调整音量。

一个(相对)更加简单的选择是——Armbian

在 Arm 笔记本上运行 Linux 的问题在于,基于 Arm 的计算机并不仅仅是一台 CPU 类型不同的 x86 个人电脑。标准的主板和芯片组以及可替换的 GPU 是相当稀有的。大部分机器都是围绕一种高度集成的 SoC 构建的,它包含了 CPU、GPU 以及所有其他组件。

在 x86 个人电脑上,操作系统可以依赖标准固件来启动计算机,但并非所有的 Arm 设备都拥有这样的固件。制造商为每种 Arm 设备打造适合运行特定操作系统的设备,替换为另一种操作系统可能非常棘手。这就是为什么树莓派计算机系列成功的原因之一:不是因为它们特别简单,它们并不是,而是因为它们的销售量大,因此得到广泛的支持。

Armbian 项目就是对这个问题的答案。它为大量的单板计算机(SBC)——主要是 Arm 架构的,正如名字暗示的那样,虽然并非只有这些——编译了特殊的内核。在 23.08 版本(代号为 Colobus)的发布时,已经列出了支持的 59 个 Arm64 设备,以及 8 个 RISC-V 的板卡,还有一个 通用的 x86-64/UEFI 版本。我们在去年 3 月时点评了 Armbian 22.02,但我们重新回顾它,是因为这次发布包含了一个在 X13S 上的 版本,即使支持仍在 持续进行

对于 x86 PC 来说,你通常从安装介质启动,然后将操作系统安装到机器的内部硬盘上。但对于 SBC 来说,更常见的是将镜像写入内存卡,然后从内存卡启动电脑,因此并无特定的安装进程。Armbian 为 X13S 提供的下载压缩后只有大约 2GB,但它包含了一个完全安装的系统,因此你至少需要一个 16GB 的 U 盘。第一次启动时,它会进入文本模式提示并要求 root 密码、用户账户的凭据,时区以及地区信息。只有在这些信息输入完毕之后,它才会加载图形桌面。

Armbian 的 Cinnamon 桌面实际上是专为 Arm64 设计的 Debian 12.1,额外附加的驱动及微调使其符合 X13s 的需要。

这套方案成功地创建了一个工作正常的系统,包括屏幕亮度调节等功能。系统重启后,我们可以连接 2.4GHz 和 5GHz 的 Wi-Fi,并以典型的 Debian 方式进行更新:使用 sudo apt update && sudo apt full-upgrade -y 命令。然而,系统没有声音,而且电池支持也尚未到位:不能充电,并且电量指示器不能工作。而且,我们的 Planet Computers USB-C 集线器上的以太网端口也未被检测到。我们试图使用 armbian-installer 脚本将 Armbian 安装到 SSD,但尽管 Ubuntu 找到并将其添加到 GRUB 菜单中,Armbian 仍无法从 SSD 启动。

总结

随着时间推移,高通 Snapdragon 8cx Gen 3 平台的 Linux 支持得到了改善。在最新版本上,Ubuntu 在 X13S(内核版本 6.2)上已经可用,我们预期,随着下个月 Ubuntu 新版的发布,这种设备可能变成一个受到支持的平台。

与此同时,一些其他的发行版也在进行支持工作。虽然 Fedora 有一个 内核镜像,但目前只是停留在这个阶段。另外,openSUSE Tumbleweed 也有一个预发布 镜像,但还没有安装程序,对声音以及电池也尚无支持。

OpenBSD 可以直接支持高通芯片,但是这个操作系统的常规限制,如蓝牙的全面缺失仍然存在。我们已经验证了其可以从 USB 启动并成功配置 Wi-Fi 及 USB 以太网卡,但我们并未深入尝试,因为对于删除我们当时唯一能够完全运行的操作系统——Windows,我们持保守态度。

在 Windows 11 Arm64 上的 Ubuntu 22.04 上运行的 GNOME 网络浏览器 Epiphany

当然,还有 Windows 的 Linux 服务 Windows Services for Linux (WSL)。这目前是最快捷到达可工作的 Linux 系统的途径:我们试验了在 Windows 11 下的 WSL2 中运行 Ubuntu,它工作得相当完美——且带来附加优势,你明确知道你正在运行的是原生 Arm 应用,而非在耗电的模拟环境下运行的 x86 代码。然而,要注意运行 Windows 本身并不高效,如果你在后台有一些 X86 的应用,你的电池续航会严重受影响。

如果你乐意从 U 盘启动——此处我们推荐使用一个高速 USB-C 盘——那么 Armbian 就能很轻松地帮你启动,虽然有一些限制。随着新内核支持的提升,Armbian 的功能也将随之增强。

X13S 并未准备好全面采纳任何自由和开源的操作系统——例如,网络摄像头尤其仍未得到支持——但 Ubuntu 已经差不多准备好了。目前的镜像并非官方版本,但你可以在你信任的搜索引擎上找到它。如果这个方式失败,那么 Armbian 将是你的第二选择。

(题图:MJ/701d8523-f00b-4ac4-b559-428a9ab2746f)


via: https://www.theregister.com/2023/09/08/linux_on_the_thinkpad_x13s/

作者:Liam Proven 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我们能否在 Arch Linux 中通过主流的桌面环境或窗口管理器来全面运行 Wayland?一起来探索答案。

Wayland 是一种针对 Linux 运行图形应用的高效、现代化的协议。相较之下,它在安全、稳定和图形性能方面相较老旧的 X.Org 显示服务器表现更出色。

尽管 X.Org 多年来一直是默认的显示服务器,但其年代漫长且复杂度高,导致了许多问题,包括安全漏洞和对新型硬件的兼容性问题。而 Wayland 提供了一个更简洁和安全的显示协议,用以解决这些问题。

虽然向 Wayland 转型已经有近十年的时间,但这是可以理解的。大型 Linux 发行版,例如 Ubuntu 和 Fedora,自 2021 年起就默认使用 Wayland,因为该协议现已逐渐稳定。

然而,对 Arch Linux 用户来说,使用 Wayland 进行自定义安装可能会比较复杂。在所有主流桌面环境中,只有 KDE Plasma 和 GNOME 有最新的 Wayland 支持。Xfce、LXQt 及其他桌面环境正在开发支持 Wayland 的功能,但现在还没有做好准备。

在窗口管理器方面,Sway 在 Arch Linux 中已经全面支持 Wayland。尽管如此,我还是希望能测试 Wayland 在 Arch 中的表现,并给你提供一个截至今日的状态报告。

让我们来尝试在 Arch Linux 中配置 KDE Plasma 和 GNOME 以全面支持 Wayland。

Arch Linux 中的 Wayland 设置

在理想的情况下,你应已经安装了 基础的 wayland 包。打开一个终端,并通过运行下列命令进行核实:

pacman -Qi wayland

如果你尚未安装,则可以使用以下命令进行安装:

sudo pacman -S --needed wayland

KDE Plasma 桌面环境

接下来的步骤设定的前提条件是你拥有一个没有安装任何桌面环境或窗口管理器的裸机 Arch Linux 环境。你可以通过使用 高效的 archinstall 脚本 进行 Arch Linux 的裸机安装。

在 Arch Linux 中,为了设置标准的 KDE Plasma,我们需要对 Wayland 进行一些调整。因此,该过程中需要从 AUR 安装一些包进来,这就要求你已经 设置了 Yay 或者其他的 AUR 辅助工具。

首先,利用以下命令从 AUR 安装一个定制的 sddm 显示管理器 Wayland 软件包。请注意,这个 sddm 包与 Arch Extra 仓库中的 sddm 包并不相同。根据 ArchWiki 的指南,只有 GDM 和 sddm-git 在 Arch Linux 中提供了完善的 Wayland 支持。

yay -S sddm-git

安装完成后,执行下述命令来安装更多 Wayland 包。

  • xorg-xwayland:使得 xclients 能在 Wayland 下运行
  • xorg-xlsclients:列出正在一个显示端口上运行的客户端应用(可选)
  • qt5-wayland:为 Wayland 提供的 Qt API
  • glfw-wayland:供 Wayland 使用的 GUI 应用开发包
pacman -S --needed xorg-xwayland xorg-xlsclients qt5-wayland glfw-wayland

然后,执行以下命令以安装 Plasma 和与 Wayland 会话关联的应用。请保持以下的安装顺序。

pacman -S --needed plasma kde-applications
pacman -S --needed plasma-wayland-session

注意:如果你是英伟达用户,你可能需要考虑安装 egl-wayland 包,但需要说明的是,我没有尝试过此操作。

我们现在来安装 Firefox 和 Chromium,这样能够帮助我们测试 Wayland 是否正常运行。

pacman -S --needed firefox chromium

安装完成后,启动 sddm 显示管理器和 NetworkManager 服务。

sudo systemctl enable sddm
sudo systemctl enable NetworkManager

另外,sddm 显示管理器需要做一些额外设置。使用你喜欢的文本编辑器,打开 sddm 的配置文件,然后在 [Theme] 下面添加 Current=breeze

sudo nano /usr/lib/sddm/sddm.conf.d/default.conf
[Theme]
# current theme name
Current=breeze

设置完成后,保存并关闭文件,然后进行重启。

reboot

重启后,在登录屏幕上,你应该可以看到 Wayland 的选项。选择并登录 KDE Plasma 的 Wayland 会话。

Plasma Wayland 会话登录界面

你还能通过查看 $XDG_SESSION_TYPE 变量来 核实你是否在运行 Wayland

Arch Linux 中运行的 KDE Plasma 与 Wayland

如果你希望强制让 Firefox 以 Wayland 运行,那么就在 /etc/environment 中添加以下行。

MOZ_ENABLE_WAYLAND=1

然后重新启动或执行下方的命令使其生效。

source /etc/environment

打开 Firefox,进入 about:support 页面来校验 “Window protocol” 的值。你也可以通过在终端中运行 xlsclients 来查看哪些外部应用正在运行在 Wayland 下。

在 Arch 和 KDE Plasma 下 Firefox 使用的是 xwayland

至此,你已经完成了在 Arch Linux 中使用 Wayland 安装配置 KDE Plasma 的全部步骤。

Wayland KDE Plasma 在 Arch 中的性能表现

总体而言,Arch Linux 下的 KDE Plasma 配合 Wayland 运行得相当顺畅,未出现任何中断使用或重大问题的情形。截图和屏幕录制应用 Spectacle 功能一切正常。尽管如此,我在测试过程中还是注意到了几个小问题。

首先,在开启如 Dolphin 这类应用程序时,底部面板时不时会出现闪烁,这主要是在 VirtualBox 会话中观察到的。

其次,鼠标指针的变化行为有点奇怪。它无法适時地从指针状态切换到操作手柄状态(详见下图)。

最后,当从待机/屏幕关闭状态恢复在线时(在没有安装客户机插件的 VirtualBox 中),KWin 会崩溃。虽然这可能只是虚拟机特有的现象,但仍然需要进行硬重启才能返回到桌面。

在 Arch Linux 的 Wayland 会话闲置状态下,内存消耗大约为 2GB。

GNOME

在 Arch Linux 中,GDM 显示管理器已经完全支持 Wayland。首先,我们通过下列命令安装 GDM:

pacman -S --needed gdm

安装完毕后,使用以下命令安装几个 Wayland 需要的包。

  • xorg-xwayland:使得 xclients 能在 Wayland 下运行
  • xorg-xlsclients:用于列出在显示器上运行的应用程序(可选)
  • glfw-wayland:Wayland 的图形用户界面应用开发包
pacman -S --needed xorg-xwayland xorg-xlsclients glfw-wayland

接下来,你可以用下面的一系列命令来安装 GNOME 和一些与 Wayland 会话相关的应用。请确保按照下列给出的顺序来执行这些命令。

sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme

注意:如果你正在使用英伟达,你可能需要安装 egl-wayland 软件包,但我并未亲自试过此方法。

接下来,我们还要安装 Firefox 和 Chromium,这样你就能测试 Wayland 是否在 GNOME 中正常运行。

pacman -S --needed firefox chromium

一旦这项任务完成,就启动 GDM 显示管理器和 NetworkManager 服务。

sudo systemctl enable gdm
sudo systemctl enable NetworkManager

保存并关闭文件之后,进行重启。

reboot

在登录界面,你能看到 “GNOME (Wayland)” 选项。选择并登录到 GNOME 的 Wayland 会话中,以进入 Arch Linux。

在 Arch Linux 中运行的带有 Wayland 的 GNOME

GNOME 的性能

如果将 GNOME 和 KDE Plasma 进行对比,你会发现 GNOME 在 Arch Linux 的 Wayland 下的表现更胜一筹。没有遇到重大问题或应用屏幕闪烁。这可能源于 GNOME 44 针对 Wayland 的最新改进已普及至 Arch Linux。

此外,Firefox 是在 GNOME 上直接在 Wayland 上运行,而不是使用 xwayland 包装器。

在 GNOME 中的 Firefox 使用 Wayland

解决常见 Wayland 问题

虽然 Wayland 提供了众多优点,但在使用过程中你可能会遇到一些挑战。以下列出了几个常见的问题以及可能的解决方案:

  • 处理不兼容的应用程序:部分较旧或不常用的应用可能还未完全支持 Wayland。你可以考虑寻找专为 Wayland 设计的替代应用,或利用 XWayland 作为兼容性层。
  • 解决性能相关问题:如果你在特定的应用程序中遇到性能问题,确保你已经安装了最新的图形驱动。另外,也可以查看是否有特定的合成器设置或适用于特定应用程序的优化措施。
  • 这个页面 中,也有更多疑难解答的建议。

结论

在 Arch Linux 中将 Wayland 设置为默认的显示服务器可以大大提升安全性、稳定性和图形性能。遵循本指南的安装和配置步骤,你能够从 Xorg 平稳过渡到 Wayland,享受一个更为现代高效的显示体验。

然而,对于 Arch Linux 加 Wayland 的组合来说,整个过程可能会显得稍微复杂一些,因为许多问题崩溃时都需要额外的注意。

这个指南并没包括在 Arch 使用 Wayland 游戏的测试,所以你可能需要在配置完成后自行试验。我希望这篇教程能帮助你在 Arch Linux 中配置 Wayland。

如果你有任何进展,欢迎在下面的评论框中告诉我。

(题图:MJ/188e0c86-ed52-4185-b583-23814fb72ce7)


via: https://www.debugpoint.com/wayland-arch-linux/

作者:Arindam 选题:lkxed 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出