您尚未登录。

#1 2021-08-31 23:04:03

lily
会员
注册时间: 2020-12-31
帖子: 18

联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

2022年2月3日更新

Linux 内核更新至 5.16 以上之后,本贴中的很多问题已经彻底消失。

问题一:无线网卡

Linux > 5.16 已经包含 Realtek 8852AE 的驱动,因此正常安装后即可正常使用无线网卡,无需额外处理。

问题三:睡眠(suspend)

AGESA 固件版本 1.2.0.2 已经解决了睡眠后黑屏,睡眠后无法唤醒的问题,使用最新 linux 内核及 linux-firmware 应当不会面临该问题。

问题四:触摸屏问题

在最新固件版本之后,YOGA 14c 的触摸屏支持问题已经得到了极大的改善,在一些应用中(例如:Chromium、KDE)你可以发现可以正常使用触摸屏了,例如当用手在触摸屏向上划动,可以正常滚动页面,而非鼠标单击后拖拽。

但是在一些应用中,比如说:Firefox,对于触摸屏支持仍然存在一些问题,触摸屏划动,仍被识别为鼠标单击后拖拽。

参考 Firefox 维基页面,在添加 MOZ_USE_XINPUT2=1 环境变量之后,即可正常识别触摸操作。

仍存在的问题

YOGA 14c 一大卖点可360旋转的屏幕,屏幕旋转后即可当作平板使用。但当前 Linux 对于屏幕旋转的支持仍然很差。具体而言,有如下问题:

虚拟键盘支持不良,无法正常使用虚拟键盘,也无法正常唤出虚拟键盘。

旋屏后会自动禁用实体键盘,但当旋转回来时,却不能正常恢复实体键盘功能。结合无法使用虚拟键盘,当旋屏之后,基本上只有重启一条路可以走。

------------------------------------------------------------------------------------------分割线----------------------------------------------------------------------------------------------------

新款 YOGA 14c 锐龙版 2021,搭载 AMD R7 5800U 低压处理器,约 22W 性能释放,配备 16GB 双通道 LPDDR4X-4266 高频内存。作为一款触屏、翻屏二合一本,6000元售价可谓是性价比极高。

本文将讲一讲本人安装ArchLinux过程中遇到的一些问题。

一、网络(已解决)

ArchLinux安装需要联网,但该机使用的 Realtek 8852AE 无线网卡尚未被内核支持,且该机无有线网口。

因此要么购买USB网卡,要么自定义安装镜像,为镜像补上 rtw89-dkms-git、linux-headers、dkms 三个包。

如何自定义安装镜像,可以参考:https://wiki.archlinux.org/title/Archiso#Build_the_ISO

此外,安装时也需要额外安装上述三个包。


二、安全启动

该机默认预装的 Windows 10 默认是开启 BitLocker 的,这一点,你进磁盘管理,缩分区时可以很明显的看出。

安装时需要禁用安全启动,但由于开启了BitLocker,当关闭安全启动后,可能会出现环境改变,无法进入Windows系统,需要你手动输入解密密钥的情况。

因此初始安装完毕后,需要为Boot loader以及内核签名,添加安全启动。

具体可参考:https://wiki.archlinux.org/title/Unifie … ecure_Boot

本人采用 shim+systemd-boot 方案。


三、睡眠(suspend)(已解决)

安装好之后,你会发现,笔记本无法睡眠,具体表现是睡眠之后,机器无法唤醒。

查阅资料后,我发现这一问题的原因以及解决方法了。

详细内容请参考该github页面:https://github.com/jrandiny/yoga-slim7-ubuntu#suspend

经测试 Bios Unlock 方案因为主板版本以及 BIOS 版本不同,无法直接应用。

因此只有修改 DSDT 这一方案可用。

参考上述页面以及Arch维基,修改并重打包 DSDT,修改 boot loader 设置之后即可正常睡眠并唤醒。

特别注意的是:上述页的patch文件是基于Yoga Slim 7 AMD,而不是Yoga 14c AMD,因此不能直接使用打上补丁,需要参考对照之后,自行修改。

具体而言,主要是应用了补丁文件18行以及917行这两处的修正,11317行的那处修正,并没有找到相应的内容。但只修正了前两处,好像就已经可以开启 S3 ,正常休眠了。


四、尚未解决的问题(部分解决)

虽然安装好系统之后,最大特色触摸屏可以正常使用,触摸屏只是被单纯的映射为鼠标,参考维基页面,尝试了其中几种方案,但并没有找到获得与原生Windows相似触控体验的解决方案。

最近编辑记录 lily (2022-02-03 11:55:54)

离线

#2 2021-09-01 00:17:03

nerimoe
会员
注册时间: 2021-09-01
帖子: 1

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

如果换成wayland的话触摸板应该就不会被映射成鼠标吧?

离线

#3 2021-09-05 16:22:28

lily
会员
注册时间: 2020-12-31
帖子: 18

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

nerimoe 说:

如果换成wayland的话触摸板应该就不会被映射成鼠标吧?

好像并不能

离线

#4 2021-09-05 21:08:39

SamLukeYes
会员
所在地: Canton, China
注册时间: 2020-07-19
帖子: 320
个人网站

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

lily 说:

好像并不能

应该是因设备而异。有的触摸板会被识别为触摸板,但有的就只是识别为鼠标。

离线

#5 2021-09-12 10:20:34

chinggg
会员
注册时间: 2021-09-12
帖子: 1

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

正好在物色主流价位的轻薄本本,因为其它爆款都涨了很多所以保持首发价的 Yoga 14c 反而显得有性价比了,就是不知道 Linux 下体验如何,现在终于看到有人发贴了。请问楼主装的什么 DE ?我习惯使用 KDE,不知道体验如何

离线

#6 2021-10-03 12:14:04

lily
会员
注册时间: 2020-12-31
帖子: 18

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

chinggg 说:

正好在物色主流价位的轻薄本本,因为其它爆款都涨了很多所以保持首发价的 Yoga 14c 反而显得有性价比了,就是不知道 Linux 下体验如何,现在终于看到有人发贴了。请问楼主装的什么 DE ?我习惯使用 KDE,不知道体验如何

桌面环境也用的 KDE

离线

#7 2021-10-08 12:12:01

archeychen
会员
注册时间: 2021-03-15
帖子: 3

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

楼主,想问一下,你用的内核版本是怎么样的?
我是linux-ck 5.14.9-1,然后按照那个方法修改了之后
$ cat /sys/power/mem_sleep
s2idle [deep]

$ sudo dmesg | grep ACPI:| grep support
[    0.227908] ACPI: PM: (supports S0 S3 S4 S5)

显示已经支持s3,并且模式也是deep休眠了。

但是我休眠+合盖后还是睡死,人傻了。

桌面用的是kde。
楼主那边是什么情况呢

离线

#8 2021-10-08 12:13:24

archeychen
会员
注册时间: 2021-03-15
帖子: 3

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

还有就是,目前似乎指纹识别无法使用?
我搜了一下那个设备号,国外论坛的说法是,商家拒绝提供linux的驱动代码,现在无法用指纹识别

离线

#9 2021-11-11 09:58:49

lily
会员
注册时间: 2020-12-31
帖子: 18

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

archeychen 说:

楼主,想问一下,你用的内核版本是怎么样的?
我是linux-ck 5.14.9-1,然后按照那个方法修改了之后
$ cat /sys/power/mem_sleep
s2idle [deep]

$ sudo dmesg | grep ACPI:| grep support
[    0.227908] ACPI: PM: (supports S0 S3 S4 S5)

显示已经支持s3,并且模式也是deep休眠了。

但是我休眠+合盖后还是睡死,人傻了。

桌面用的是kde。
楼主那边是什么情况呢

新版内核之后修改DST以修复睡眠功能好像已经失效,我这里也有这个问题。

离线

#10 2021-12-02 13:56:59

dudk
会员
注册时间: 2021-12-02
帖子: 1

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

能具体讲一下shim+systemd-boot的方法吗

离线

#11 2021-12-03 22:27:40

gzroc
会员
注册时间: 2021-03-24
帖子: 224

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

我看中了yoga13,这几天多多4249,R5锐龙,16g,512,有点心动,不知道能不能正常安装。。

离线

#12 2022-01-20 10:50:14

gzroc
会员
注册时间: 2021-03-24
帖子: 224

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

关注,我也看中yaga13s,坐等大神带飞

离线

#13 2022-01-20 11:19:57

Tee
会员
注册时间: 2016-09-10
帖子: 137
个人网站

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

好奇 原生Windows相似触控体验 是怎样的?比如长按拖拽这样吗?(我想象的)


啦哆咪 - 用Linux制作音乐
https://lado.me

离线

#14 2022-02-03 11:54:14

lily
会员
注册时间: 2020-12-31
帖子: 18

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

Tee 说:

好奇 原生Windows相似触控体验 是怎样的?比如长按拖拽这样吗?(我想象的)

这个可以看我的更新

离线

#15 2022-02-03 12:47:21

lily
会员
注册时间: 2020-12-31
帖子: 18

Re: 联想 Yoga 14c 锐龙版安装ArchLinux需要注意的几件事

dudk 说:

能具体讲一下shim+systemd-boot的方法吗

这个凭借印象大概说一说吧,主要参考页面:Unified Extensible Firmware Interface/Secure Bootsystemd-boot

首要要禁用 Secure Boot ,这就不用多说了。

以下步骤操作针对  /boot 分区 同时为 ESP 分区的情况。

第一步:安装 systemd-boot

安装 EFI boot manager

bootctl install

然后你应当看到 /boot/EFI/systemd/systemd-bootx64.efi/boot/EFI/EFI/BOOT/BOOTX64.EFI 两个文件了。

使用 efibootmgr --verbose 应当也能看到 systemd-boot 的启动项。

然后在 /boot/loader 目录添加相应的配置文件,systemd-boot 并不能像 grub 那样自动生成配置文件。

添加 /boot/loader/entries/linux.conf

title Arch Linux
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux.img
options loglevel=3 root="LABEL=arch_os" rw 

添加 /boot/loader/entries/linux-fallback.conf

title Arch Linux (fallback initramfs)
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux-fallback.img
options loglevel=3 root="LABEL=arch_os" rw 

需要安装 amd-ucode,且以上仅为示例,请根据自己情况修改 options 。

添加 /boot/loader/loader.conf

timeout 3
console-mode keep
default linux.conf

然后重启系统,确认 systemd-boot 可以正常工作后进入下一步

第二步:安装 shim

安装 shim-signedsbsigntools

复制文件

cp /usr/share/shim-signed/shimx64.efi /boot/EFI/systemd/
cp /usr/share/shim-signed/mmx64.efi /boot/EFI/systemd/

添加 EFI 启动项

efibootmgr --verbose --disk /dev/sdX --part Y --create --label "Shim" --loader /EFI/systemd/shimx64.efi

生成 MOK 密匙

openssl req -newkey rsa:4096 -nodes -keyout MOK.key -new -x509 -sha256 -days 3650 -subj "/CN=my Machine Owner Key/" -out MOK.crt
openssl x509 -outform DER -in MOK.crt -out MOK.cer

MOK.cer 复制至 /boot/MOK.cer
MOK.cer 复制至 /etc/MOK.cer
MOK.crt 复制至 /etc/mok/MOK.key,特别注意文件权限。

签名 systemd-boot

cp /boot/EFI/systemd/systemd-bootx64.efi /boot/EFI/systemd/grubx64.efi
sbsign --key MOK.key --cert MOK.crt --output /boot/EFI/systemd/grubx64.efi /boot/EFI/systemd/grubx64.efi

签名内核

sbsign --key MOK.key --cert MOK.crt --output /boot/vmlinuz-linux /boot/vmlinuz-linux

添加 pacman hook

/etc/pacman.d/hooks/999-sign_kernel_for_secureboot.hook

[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = linux
Target = linux-lts
Target = linux-hardened
Target = linux-zen

[Action]
Description = Signing kernel with Machine Owner Key for Secure Boot
When = PostTransaction
Exec = /usr/bin/find /boot/ -maxdepth 1 -name 'vmlinuz-*' -exec /usr/bin/sh -c 'if ! /usr/bin/sbverify --list {} 2>/dev/null | /usr/bin/grep -q "signature certificates"; then /usr/bin/sbsign --key /etc/mok/MOK.key --cert /etc/mok/MOK.crt --output {} {}; fi' ;
Depends = sbsigntools
Depends = findutils
Depends = grep

然后重启系统,启用 Secure Boot。

开机时按 F12 选择启动项 shim。

初次启动时会让你导入 MOK,导入成功后再次重启。

如果能正常进入系统,即完成 Secure Boot 的设置,可以进入 BIOS 将默认启动功设为 shim 。

离线

页脚