9012年在 ASUS ZenBook Pro UX501VW 上安装 manjaro

准备工作

  • 最新官方镜像 Manjaro - XFCE 18.1.1

  • 轻松创建USB启动盘 Rufus

  • 备份笔记本电脑的全部数据,格式化干烂机械硬盘并删除分区,重置 Windows

开始安装

  • 插上 USB 启动盘,开机 F2 进入 BIOS 设置各种启动选项,不在此赘述;
  • 参照 官方用户指南Dual-booting with Microsoft Windows 10 一节:
    • 按步骤设置语言、时区、区域、键盘布局;
    • 直至分区方式步骤,参照 Erase the disk and let Calamares choose a partition scheme 小节:
      • 选择 Erase disk. 把系统装进128GB SSD, 设置 swap with hibernation;
  • 设置用户名和密码
  • 确认你的设置,然后坐和放宽
  • 确认是否安装 LibreOffice, 可装可不装,我先不装

安装期间查看 混合图形技术,并从中查阅所有与 NVIDIA 有关的文章,并决定采用哪种方案;

综合考虑后我选择 nvidia-xrun. (后来发现其实最迟在17年以后就可以不用 nvidia-xrun 实现同样功能)

安装后调教

设置软件源

在终端中

1
2
sudo pacman-mirrors -c China -m rank
sudo vi /etc/pacman.conf

在上述 /etc/pacman.conf 文件最后增加 archlinuxcn 源,并保存:

1
2
3
[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

继续在终端中

1
2
3
4
sudo pacman -Syyu
sudo pacman -Sy archlinuxcn-keyring
sudo pacman -S yay
yay --aururl "https://aur.tuna.tsinghua.edu.cn" --save

安装本地化和基础工具

可以且必要但不是全部:

1
2
3
4
5
6
sudo pacman -S vim
sudo pacman -S fcitx-im fcitx-configtool fcitx-skin-material fcitx-rime fcitx-mozc fcitx-googlepinyin
sudo pacman -S wqy-zenhei wqy-bitmapfont wqy-microhei ttf-wps-fonts adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" #manjaro 自带 zsh, 所以直接装 oh-my-zsh
yay -S powerline-fonts-git #安装 powerline 字体
vim ~/.zshrc #修改主题和配置

提升(?)性能

修理一下 这台机器 容易出现的问题,首先遇见的是挂起后再开机会导致耳机爆音:

1
sudo vim /etc/modprobe.d/alsa-base.conf #创建文件

在上述 /etc/modprobe.d/alsa-base.conf 中填入 options snd-hda-intel model=dell-headset-multi

1
2
3
4
5
mkdir Programs #随便新建个文件夹放软件,针对有整理癖的用户
cd Programs
git clone https://github.com/dakatapetrov/zenbook-pro-ux501vw-sound-fix.git #dakatapetrov 制作的修复工具
cd zenbook-pro-ux501vw-sound-fix/
./install.sh

要为英特尔显卡启用节能功能,创建 /etc/modprobe.d/i915.conf 文件并包含以下内容:

1
options i915 enable_rc6=1 enable_fbc=1 lvds_downclock=1 semaphores=1

然而我并不知道如何检查效果,据说甚至会导致屏幕冻结,尽管我还没碰到过这种情况。

警告:经过两天测试,我认为下面的方案存在不小的问题,或者性能表现不佳,可能完全是错误的,请勿模仿

接下来要解决的就是N卡切换问题,参照 nvidia-xrun

1
2
3
4
5
uname -r #检查内核版本
sudo pacman -S nvidia bbswitch #在接下来的对话中我选择对应内核版本的最新驱动
yay -S nvidia-xrun #也有其他版本可以选,我最终选了 nvidia-xrun-git
lspci | grep -i nvidia | awk '{print $1}' #确认返回值,是不是1:0:0
sudo vim /etc/X11/nvidia-xorg.conf.d/30-nvidia.conf

在上述 /etc/X11/nvidia-xorg.conf.d/30-nvidia.conf 文件中写入

1
2
3
4
5
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1:0:0" #对应此处1:0:0
EndSection

然后

1
2
sudo pacman -Rdd nvidia-utils #然而这一步在我的电脑没有实际效果,因为 nvidia-utils 并未安装
vim ~/.nvidia-xinitrc

在上述 ~/.nvidia-xinitrc 文件中写入

1
2
3
4
5
6
7
if [ $# -gt 0 ]; then
$*
else
# openbox-session
# Alternatively, you can also use xfce4:
xfce4-session #第一次我可能在这里忘记修改注释的位置,使用了 openbox-session, 重启电脑后只显示 ASUS logo, 风扇狂转,无法进入系统
fi

然后

1
2
3
4
sudo -i
echo 'bbswitch ' > /etc/modules-load.d/bbswitch.conf #在启动时载入 bbswitch 模块
echo 'options bbswitch load_state=0 unload_state=1' > /etc/modprobe.d/bbswitch.conf #在启动时关闭 nvidia 模块
vim /usr/lib/modprobe.d/nvidia-xrun.conf #将 nvidia 相关模块加入黑名单

第一次,我参照 英文版 在上述 /usr/lib/modprobe.d/nvidia-xrun.conf 文件中写入

1
2
3
4
5
6
#似乎有问题
blacklist nvidia
blacklist nvidia-drm
blacklist nvidia-modeset
blacklist nvidia-uvm
blacklist nouveau

然后重启了,就有了上面所说的重启电脑后只有 ASUS logo, 风扇狂转的情形。由于无暇确认是 ~/.nvidia-xinitrc 有问题,还是 /usr/lib/modprobe.d/nvidia-xrun.conf 有问题,只好插上 USB 启动盘重新进入 LiveCD, 挂载系统后用 LiveCD 的命令行还原上述魔改。

实际上第二次我采用了另一种方法,与之前相比区别在于完成对 /etc/modprobe.d/bbswitch.conf 的写入之后,实行以下操作:

1
2
3
4
5
6
7
lsmod | grep nvidia | cut -d ' ' -f 1 > /tmp/nvidia
lsmod | grep nouveau | cut -d ' ' -f 1 >> /tmp/nvidia
sort -n /tmp/nvidia | uniq > /tmp/nvidia.conf #去重
sed -i 's/^\w*$/blacklist &/g' /tmp/nvidia.conf #添加blacklist
cp /tmp/nvidia.conf /etc/modprobe.d/nvidia.conf #移动
#👆实际我的操作是 cp /tmp/nvidia.conf /usr/lib/modprobe.d/nvidia-xrun.conf 应该没区别
cat /proc/acpi/bbswitch #重启系统后运行该命令检查结果 0000:01:00.0 ON 说明开启成功

而上述 /usr/lib/modprobe.d/nvidia-xrun.conf 黑名单的内容变成了:

1
2
3
4
5
6
7
8
blacklist agpgart
blacklist drm
blacklist drm_kms_helper
blacklist i2c_algo_bit
blacklist mxm_wmi
blacklist nouveau
blacklist ttm
blacklist wmi

虽然不知道为什么,反正重启之后是正常了。

到此为止,就基本解决了安装问题。网上提到的有些操作也没有全部做完,对我来说够用就行,接下来就是慢慢装常用软件了。不过,最后重启几次发现键盘背光突然失效,明明一开始都是好的。不过不要紧, N550JV 的介绍 里有提到键盘背光的修复方法,首先安装 asus-kbd-backlight, 然后在内核模块 /etc/modules-load.d/modules.conf 中添加 asus-nb-wmi, 然后让 asus-kbd-backlight.service 服务开机启动:

1
2
3
yay -S asus-kbd-backlight
sudo vim /etc/modules-load.d/modules.conf #添加 asus-nb-wmi
systemctl enable --now asus-kbd-backlight.service

至此完工。

后记

重新回到 Manjaro 怀抱。

上一台 Manjaro 笔记本是大二时就从我爸那里薅来的昭阳K47A,经历过 Win7, Ubuntu, Win10, Chromium OS, CentOS, Feroda, Manjaro 是我用它折腾的最后一个操作系统,当时无脑装了 GNOME 版本,也没怎么关注显卡,直接用的开源驱动,即使换了新电池,续航还是一般,硬盘也没换成 SSD, 运行效果并不堪用,只能对付轻量的工作。由于各种原因不得不把机器还给我爸了。

昨天在自己的曾经的出差主力笔记本 UX501VW 上安装 Manjaro 之前,我一直在物色下一台适合出差的便携笔记本,同时要满足良好支持 Linux 发行版的要求。这么一来市面上有售的品牌新机中,能选的范围就比较少了,然而我穷,看了也是白看。

即使我最近又清理了自己的数字订阅,再次把信用卡月开支削减到合适的程度,我还是不能下决心去买新的败家玩意儿。

于是我的目光又落在了2016年购入的 ASUS ZenBook Pro UX501VW, 这台让我无比后悔的机器。

官方授权网点购入,非4K屏,店家把内存加到16G。使用不到一年后掉了8G内存,送售后说要换主板,结果换完主板后 CPU 发热降频严重,原来中画质流畅玩战地1的水平居然低画质都会掉帧,不过对付日常工作还是绰绰有余,啥都能干。直到今年发现8G内存又掉了,过保以后,再送售后换主板也麻烦,就自己拆机重新涂了硅脂清灰,仔细检查了内存,插拔之后只过几天,又从16G掉到8G……这下傻眼了,我猜平时搬运的时候动作太大,把什么部位撞坏了导致接触不良吧,又或者这块内存条素质真的不行。内存抢救不回来,也懒得修,吃内存的工作放在台式机上一样可以做。最后一次清灰加硅脂,散热还是不错的,只要 Win10 不抽风,cpu 可以保持在40~50摄氏度,最高普遍在75~80摄氏度,极限也是低于90摄氏度。电池损耗有点大,持续工作时间2-4小时,不过这段时间不会有很多出差任务,而我已经习惯带着无比轻便的 Pixel C 出门。

工作台式机为了和实验室其他人兼容和稳定性,还是选择了 Windows 10 + WSL2 的组合。这么一来,如果想要把玩 Linux 桌面环境,加购新设备显然是最好的选择。而我又想起了 Manjaro, 它的开箱即用设定和优秀的兼容性对我的吸引力足够充分,而在 UX501VW 这样一台看似到处是坑的设备上,它也应该可以很好的运行,所以,何乐而不为呢?

安装 Manjaro, 完成诸般设置后,发现续航依然能打。更感人的是,并没有显著的性能下降,而 CPU 温度甚至可以保持在29-36摄氏度之间,实际可以用手感觉出来,是个很宜人的温度(尽管我在另一台电脑上做过测试,安静状态下 Ubuntu 的温度的确比 Windows 10 低上几度,不知道是不是传感器的问题)。

通过安装新系统让自己的旧笔记本变得焕然一新,也借此机会重新整理一下生活的方方面面吧。