神船 TX6 安装 ArchLinux

Last updated on July 15, 2022 am

神船 TX6 安装 ArchLinux

警告!本文可能有大量图片,流量消耗大。

本文为安装完毕一个多月后撰写,部分回忆可能与事实有所出入,仅供参考。

Part 1 准备工作

由于原装 SSD 使用的是被认为较差的群联 PS3111 主控且运行在 SATA 速率下,我选择加装一条 NVMe 的 SSD。蓝天的 NK60SB 模具拥有第二个 M.2 2280 硬盘位,且为 PCIe 3.0 × 4 速率。(在这里补充一下,固件里面可能写的模具是 NKx0Sx,其中 NK50、NK60、NK70 分别对应 15.6 吋、16.1 吋、17.3 吋的屏幕,NK50SZ 无独显,NK50S5 搭载 NVIDIA GeForce MX350 独显,NK50/60/70 后缀 SB 对应 GTX1650,SE 对应 GTX1650Ti,但可能识别是 NKx0Sx,参考神舟的网站)为了管理方便,NVMe 固态“象征性地”在 Windows 下分出 5GiB,其余容量全部不分配。

虽然安装 ArchLinux 和 WinPE 没啥关系,但为了防止哪天 Win 出问题,我打算顺便创建一个 WinPE 的启动盘。

在这里,我选择使用 U 盘安装。参考 macOS、Windows 10、GParted Live、WinPE 多种操作系统,用一个 U 盘搞定 - 知乎,选择使用 DiskGenius 为 U 盘创建两个 FAT32 的文件分区,第一个分区 3.1GiB,第二个 4.1GiB,用来实现 ArchLinux Live Install 和启动 WinPE。为了方便,可以设置不同的卷标。为了省事,我没有格式化,而是把原有的文件扔进了 PE 的分区。分区后,从 ArchLinux 网站(https://archlinux.org/download )下载 x86_64 的安装 ISO,用资源管理器装载后把文件复制进第一个分区。下载安装 AOMEI PE Builder,安装,生成 ISO 文件后用同样的方法复制进第二个分区。

需要注意的是,如果 AOMEI PE Builder 下载缓慢的话,可以用我分享的版本:链接: https://pan.baidu.com/s/1C3O-OAkBika2yj4UGAU1xw 提取码: mfi5,将里面的目录复制到你的下载目录,这个目录在 PE Builder 安装位置的 DownloadPath.ini 文件中有指定。

aomei_prog

之后插入 U 盘,在 BIOS 里面 Boot Manager 可以选择 EFI Boot Devices 了,可以进入 AOMEI PE Builder,发现一切正常,也可以进入 ArchISO 看一看。

sel_boot

aomei_desktop

archiso_menu

然后,尴尬的事情发生了。一直出现

1
2
3
4
5
6
7
8
9
Waiting 30 seconds for device /dev/disk/by-label/ARCH_202011 ...

ERROR: '/dev/disk/by-label/ARCH_202011' device did not show up after 30 seconds...

​ Falling back to interactive prompt

​ You can try to fix the problem manually, log out when you are finished

sh: can't access tty: job control turned off

starterr

不得已,我只好格式化 U 盘,这次用 DiskGenius 来往分区里写文件,一番操作后,终于成功启动 LiveCD 了。

copyiso

为了避免需要在浏览器中登录 WiFi,我使用手机连接 WiFi 后开启 WLAN 信号桥,中继出一个不需要浏览器认证的网络。

WLANBridge

Part 2 安装

整个安装过程,参考以下文章,请以官方 Wiki 为准:Installation guide (简体中文) - ArchWiki

ArchLinux安装(UEFI) - 知乎

Arch Linux 怎么安装? - 知乎

Arch Linux 安装指南 2020.08 - 知乎

2020 Archlinux双系统安装教程(超详细) - 知乎

如果 CAPS-LOCK 按键无法使用,按住 Shift 的同时按下字母键来输入大写字母。

1.关闭 Win10 的“快速启动”功能(我安装时并没有关闭,漏掉了这一步),重启进入 BIOS,从 U 盘启动 ArchISO,键入以下命令以验证启动模式:

1
ls /sys/firmware/efi/efivars

目录被正常显示,说明我使用的是 UEFI 模式启动。

接下来我们使用 iwctl 连接 WiFi,键入 iwctl 后使用 device list 命令列出可用的无线网卡,使用 station 网卡名 scan 来扫描后用 station 网卡名 get-networks 列出扫描到的热点,使用 iwctl --passphrase 密码 station 网卡名 connect SSID 连接,之后按 CtrlD 退出 iwctl。

image-20201121001

2.使用 ping archlinux.org 检查能否连接 archlinux 网站,之后使用 timedatectl set-ntp true 命令确保系统时间准确(我当时好像没有检查时间,有些图片缺失)

image-20201121002

3.使用 fdisk -l 命令查看块设备,发现我们的目标磁盘块设备文件为 /dev/nvme0n1(Linux 中有“一切都是文件”一说),使用 gpt 磁盘分区表,接下来确定分区方案。

image-20201121003

分区参考了 Linux 桌面用户是否有对 /boot 单独分区的必要? - 知乎Partitioning (简体中文) - ArchWiki,为了简便选择不设立 swap 分区,选择使用 cfdisk 工具(应该是?):cfdisk 块设备路径 后会进入一个互动式的界面,在这里我给剩余空间分出 2GiB 留作 EFI 引导和 boot 用(这块硬盘上原来是没有 EFI 分区的),分出 32GiB 作为根目录所需,另外在结尾预留 1.9 GiB 以备以后扩展或修正等后其余容量留给主目录,分区类型分别为 EFI System,Linux root (x86-64),Linux filesystem,确认磁盘上原有的分区没有被错误地修改后即可写入新的分区,注意要记住你创建的分区的块设备文件,在本例中是屏幕最左侧的那一列。

image-20201121004

4.创建分区完毕后对其进行格式化,Linux 有许多不同的文件系统,但由于本人对文件系统不甚了解,最终为根目录和主目录选择较老的 ext4 文件系统:mkfs.ext4 块设备文件,而根据 Wiki,UEFI 推荐使用 FAT32 文件系统:mkfs.fat -F32 块设备文件。之后进行挂载分区,在这里我把根目录的块设备挂载到 /mnt(mount 块设备 挂载点),之后执行 mkdir /mnt/efimkdir /mnt/home 为 EFI 和主目录创建挂载点并挂载。

image-20201121005

5.使用 pacstrap 安装脚本安装 base 软件包、Linux 内核和常规硬件的固件(这里我没有使用 LTS 内核之类的),这里 /mnt 是根目录的挂载点:

1
pacstrap /mnt base linux linux-firmware

image-20201121006

注意,这里日志中输出的几个关于 aic94xx,wd719x,xhci_pci 的 WARNING 可以参见 Wiki 说明:mkinitcpio - ArchWiki

接下来创建分区表(/mnt 仍然是根目录挂载点):

1
genfstab -U /mnt >> /mnt/etc/fstab

接着检查一下创建的分区表 /mnt/etc/fstab:image-20201121007

6.chroot 进安装的系统环境:arch-chroot /mnt(/mnt 为根目录挂载点),之后执行 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 设置为上海(东八区)时间,执行 hwclock --systohc 命令,到此时间设置完毕。

7.编辑 /etc/locale.gen 这个文本文件,在此我通过取消对应行前面的注释(即删除 # 号)来将 locale 设置为 en_US.UTF-8,不设置为中文的理由可以见官方 Wiki,据说会使 tty 乱码。之后,在终端执行 locale-gen 命令,然后,同样地创建 /etc/locale.conf,写入:

1
LANG=en_US.UTF-8

8.为你的机器想一个 hostname 来替换这一步的所有 myhostname:

创建 /etc/hostname,写入以下内容:

1
myhostname

在 /etc/hosts 添加对应的信息:

1
2
3
127.0.0.1	localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname

使用 passwd 命令,为 root 用户设置密码。就算你用 sudo,这步也十分重要。

9.最后安装启动引导,对于我使用的 GPT 分区表 + UEFI 系统,需要安装 grub 和 efibootmgr 软件包:

1
pacman -S grub efibootmgr

如果你想让 GRUB 自动检测到 Windows 的存在并自动配置好 Windows 的启动条目的话,还需要安装 os-prober 和 ntfs-3g。

之后执行 grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB。这里的 /efi 是我为 EFI 系统选择的挂载点,最后的 grub 是启动引导器标识,详见 wik,这一步将把 GRUB EFI 安装到 挂载点/EFI/启动引导器标识 路径。之后,执行 grub-mkconfig -o /boot/grub/grub.cfg 来生成配置文件。

image-20201121008

10.到这里可能就可以重启了,可能最好在此之前安装联网相关的软件包,但我已经不记得当时进行了什么操作。按 Ctrl + C 退出 chroot,之后 umount -R 挂载点 以卸载分区,使用 reboot 以重启。

image-20201121009

image-20201121011

Part 3 锦上添花

1.电脑时间问题

Linux Windows 双系统时间不一致 - 少数派

2.添加用户及 sudo

以下大部分内容可以在这里找到答案:

General recommendations - ArchWiki

3.安装桌面环境(DE)

在这里,我选择 SDDM 作为显示管理器, KDE 作为桌面环境。但是,我安装 KDE 时选择的是 plasma-desktop 这一“最小化安装”,导致安装出来竟然在图形界面没有提供终端模拟器,最后按 Ctrl + Alt + F2 登录进另一个 tty 后手动安装了 konsole 软件包才得以解决。事后我还安装了 dolphin 和 ark。

image-20201121012

4.安装字体

5.NVIDIA 独显驱动

我的 Intel Graphics UHD 630集成显卡一开始使用的是 mesa 软件包,希望使用 bumblebee 来实现双显卡切换,最终我的机器不仅无法启动图形界面,连其他的 tty 都无法开启,只好又插上了 ArchISO,卸载了 bumblebee,决定使用 PRIME 方案,结果,Arch wiki 里面nvidia-xconfig 的配置直接让我无法进入 KDE。我发现我的情况似乎与 wiki 上不一致,后来的一些研究为我提供了帮助:ArchLinux nvidia-settings ERROR: Unable to load info from any available system 。以下网页说,现代系统不需要 nvidia-xconfig 了。

image-20201121010

6.键盘背光

根据网络上的提示,我成功地为 NK60SB 开启了键盘背光,编译了相关驱动

7.续航测试

某日,在图书馆没有能充电的位置了,顺便进行测试:屏幕亮度 20%,连接 WiFi,关闭蓝牙,开启独显(如果我没有配置错误的话)。机器电池 47 WHr,采用 Intel i5-10400 CPU,NVIDIA GeForce GTX1650 独显,16.1吋 60Hz 1080P 屏幕,进行少量网页浏览,主要是 WPS PDF 浏览和 WPS 文字编辑。

image-20201128001

8.开启蓝牙

Wiki 中提供了步骤,注意我的机器需要疑难解答中的步骤才能与手机配对。


神船 TX6 安装 ArchLinux
https://zhaozihanzzh.github.io/2020/12/25/arch-install/
Author
zhaozihanzzh
Posted on
December 25, 2020
Licensed under