记一次在AMD笔电上安装Ubuntu经历

本文最后更新于:2022年9月20日 上午

sudo apt install screenfetch

背景

新购入了一台Lenovo小新AIR 14笔电,CPU为AMD最新的RYZEN 5500U,安装Ubuntu 20.04 后主要出现了屏幕亮度无法调节触控板失效不能正常挂起(待机) 三个硬件问题

一番搜索后,获得了“升级Linux内核就可能解决问题”的信息,遂尝试为系统更新内核

升级内核至5.11后屏幕亮度和触控板的问题都解决了,挂起暂时还有些小问题

升级Linux内核

注意!升级Linux内核是很不明智的行为,只有Ubuntu官方维护推送更新的版本才算是稳定可靠的版本。以下内容仅为我个人在笔记本电脑上瞎折腾的尝试,一定不要在生产环境上实验!

升级到最新的内核可以带来新功能。新机器嘛,没有数据,就算失败了彻底重装系统就好,再大不了七天无理由退货,开搞!

本文已更新,在文章末尾处可以找到降级Linux内核和删除多余内核的方法。

查看当前Linux内核版本

1
uname -sr

这个命令可以查看当前内核版本,此时(2021年3月中旬)Ubuntu 20.04通过官方源apt可以更新到的最新版本为5.8,而前往The Linux Kernel Archives网站查看最新的stable版本已是5.11

The Linux Kernel Archives 内核存档

附上一篇Linux中国帖子的链接 哪个 Linux 内核版本是 “稳定的”? | Linux 中国_技术无边

方便起见,不自行编译而是下载现成的deb包安装更新

下载合适的Ubuntu Kernel

打开Ubuntu的Kernel网站,下拉找到我们要的5.11.8版本,进入下载

不同版本的内核

点击进入这个页面,根据自己的硬件设备选择不同的版本,我这里选择amd64也就是x86-64的版本。

同一内核的不同硬件版本

一共需要下载四个文件:两个header头文件,一个image镜像,一个modules模块

  • linux-headers-5.11.8-051108_5.11.8-051108.202103200636_all.deb
  • linux-headers-5.11.8-051108-generic_5.11.8-051108.202103200636_amd64.deb
  • linux-image-unsigned-5.11.8-051108-generic_5.11.8-051108.202103200636_amd64.deb
  • linux-modules-5.11.8-051108-generic_5.11.8-051108.202103200636_amd64.deb

下载好的deb文件

Warning:在内核版本4.17之前(不含4.17)中是无modules文件的,所以你只需要3个软件包即两个header,一个image即可完成更新。而网上目前搜索到的内核更新教程通常都是适合4.17内核之前的,而我们更新到4.17之后版本,例如我们更新到5.2.4,在dpkg步骤时候会提示缺少依赖项,没有modules文件!

安装新内核

在文件资源管理器中右键"在终端打开",或者打开一个终端进入存放这四个deb文件的目录,执行下面的命令,安装四个deb包

1
sudo dpkg -i *.deb

安装deb包

安装成功

安装完成后重启电脑,再次执行uname -sr,检查是否已经完成更新

已经更新到Linux 5.11.8

在我的机器上,升级到Linux 5.11后再次重启电脑,触控板就可以正常使用了,屏幕亮度也可以调节了

触控板被正确识别,可以正常使用

选择从指定的内核启动

如果安装新的高版本内核后,还想要从低版本内核启动,需要配置一下grub。详细内容见本文降级Linux内核-配置GRUB

更新硬件固件

在尝试启用指纹识别器的过程中发现了这篇帖子ubuntu 20.04 启用指纹登录,发现了fwupd这个程序,记录一下。

fwupd 是一个简单的守护程序,可让您更新某些设备的固件,包括用于多数计算机的 UEFI。参考自ArchLinux文档

1
2
3
fwupdmgr get-devices  # 显示fwupd检测到的所有设备
fwupdmgr get-updates # 列出系统上任何可用设备的更新
fwupdmgr update # 安装更新

虽然一番操作之后系统还是没有识别出指纹识别器,至少又新学到一个软件的用法吧。

GRUB

谨慎操作,这里只是简单列出来我在我的机器上做的事情,谨慎参考。

1
sudo vim /etc/default/grub

在打开的grub配置文件中,修改这一行

1
GRUB_CMDLINE_LINUX="iommu=soft"  # 增加了一个 iommu=soft 

然后运行

1
sudo update-grub

使配置生效(更新 /boot/grub/grub.cfg

美化

目前的状态

安装必要软件

打开一个Terminal,执行以下命令

1
2
3
sudo apt update
sudo apt install gnome-tweaks chrome-gnome-shell
sudo apt install sassc optipng inkscape libcanberra-gtk-module libglib2.0-dev

在应用程序中可以找到“优化”(GNOME Tweaks)这个软件了

安装GNOME Shell integration 插件

在Chrome浏览器(Firefox也可以)中安装GNOME Shell integration 浏览器插件,然后打开extensions.gnome.org

extensions.gnome.org

安装一些扩展插件。只要进入要安装的扩展的网页,打开右上方的那个开关(浏览器会提示确认执行操作,给予权限允许操作即可),就可以安装扩展了。

在网页上打开这个开关,就会提示安装插件了

所有已安装的extension都可以在应用程序“扩展”或“优化”中管理

管理已安装的扩展

下面分享几个我在使用的扩展:

Dash to Dock

可以把Ubuntu默认的Dock栏换成一个更加美观而功能强大的,有非常多的可选设置项

位置大小:可以调节Dock显示的位置等。

dash-to-dock 位置和大小选项

其中智能隐藏是我非常喜欢的一个功能,可以隐藏Dock,使得应用程序占满显示器全部宽度,鼠标贴靠在屏幕边缘并施加一定压力(也就是鼠标继续往外拉)后Dock随着平滑的动画自然弹出,非常舒适啊。

dash-to-dock 智能自动隐藏设置

行为页中可以找到快捷启动功能:使用键盘快捷键(如Super + 0~9)可以快速启动常驻在Dock上的应用程序,类似Windows 10 的快捷键。

dash-to-dock 行为

Super + 数字键可以快速打开dock上的程序

关于Dash-to-Dock还有许多有趣的设置,可以逐一尝试一下。

Clipboard Indicator

加强剪切板的功能,提供剪切板历史记录等。

Clipboard Indicator

OpenWeather

在Panel上添加一个显示天气的小窗,颜值还不错

天气信息来自openweathermap.orgdarksky.net

OpenWeather扩展

可选的设置项还是比较多的

天气提供源选项

布局选项

Desktop Icons

一个内置的扩展。如果你和我一样喜欢完全零图标的桌面,那可以在这个设置中隐藏桌面上的用户文件夹和回收站

Desktop Icons选项

安装主题包

我使用的主题全部来自 https://www.gnome-look.org 这个网站,可以选择按照评分排序查看下载一些经典好看的主题图标。

Ubuntu 20.04 为所有用户提供的默认存放主题的文件夹分别如下:

  • 主题包: /usr/share/themes/
  • Icons 图标:/usr/share/icons/
  • 鼠标图标: /usr/share/icons/

将下载好的主题包解压到对应的目录(或者先解压再拷贝过去)。注意有的主题从网站下载的一个压缩包中可能包含深色浅色等多种主题,需要仔细辨别一下,分清文件夹层级关系。

我的主题目录

图片展示了我的主题目录,每个文件夹就是一个主题包

切换主题的方法是,打开“优化”(GNOME Tweaks)应用程序,在外观选项卡下就可以选择刚刚下载好的主题了。这里展示了我正在使用的主题图标光标。

在外观选项卡中切换主题

键盘快捷键

系统监视器:gnome-system-monitor

仍然存在的一些小问题

挂起功能不正常

除了关机/注销/切换用户,在笔电上安装的Ubuntu还有一个“挂起”选项,个人理解应该跟Windows的“睡眠”功能类似。

截止到本博文最后更新,这台笔电的挂起功能仍然不能正常使用,常常出现挂起后无法恢复的问题,只能长按电源键8秒强制关机再重新开机。

需要在设置中关闭自动挂起,在优化中关闭“合上笔记本盖子自动挂起”,最好也把电源键功能设置成关机而不是默认的挂起。

这样虽然不能挂起,但是合上盖子自动熄屏,开盖亮屏还是可以实现的。

2022.5:升级 bios 至 2.07 后可以正常挂起。

指纹模块无法使用

这台机器应该是在电源键上集成了指纹模块的,但是无法被识别,也无法使用,小小的遗憾吧,也许以后随着版本更新可以解决。

降级Linux内核/删除多余内核

在后面的折腾中,我发现手动安装的新版本内核(如5.11.14)不是替代旧的(如5.11.6、5.8.0),而是与之共存。GRUB会在电脑启动时自动选择最新版本。如果想要用回低版本,或者删除多余的内核,需要下面的步骤。

查看已安装的内核

1
dpkg --get-selections | grep linux

其中dpkg --get-selections“把已选中的软件包列表打印到标准输出”,通过管道传给grep,找出所有名字含有linux的包

配置GRUB

为了从指定的内核启动(譬如现在已经默认从最新的5.11.14启动,则可以卸载5.11.10,但不能卸载5.11.14,也就无法回退,需要从5.11.10启动后再卸载5.11.14),需要在GRUB里面进行一些设置。

1
sudo vim /etc/default/grub

修改其中的这一行,从

1
GRUB_TIMEOUT=0  # 默认值为0,表示开机不给用户留出选择的时间,直接以默认项启动

改成

1
GRUB_TIMEOUT=5  # 开机时留出5秒钟的时间供用户选择,也可以设置为-1,表示无限长时间,用户不选择就一直等待下去

接下来运行

1
sudo update-grub

使配置生效(更新 /boot/grub/grub.cfg

重启电脑,就会看到UbuntuUbuntu的高级选项等菜单,进入Ubuntu高级选项,就可以自行选择想要启动的内核了。

如果觉得每次开机手动选择麻烦,也可以在/etc/default/grub里面把这一行

1
GRUB_DEFAULT=0

改成你需要的启动项即可。

卸载删除

1
sudo apt remove linux-*-5.11.10*  # 删除所有5.11.10相关的

注意最好不要移除Ubuntu官方的内核(在我的机器上是5.4.0和5.8.0),只移除我们自行安装的就好了。

安装amdgpu驱动

目前的尝试以失败告终,还在继续折腾中。

AMD官网Radeon for Linux驱动下载链接

参考文章

记一次Ubuntu 18.04 内核升级-知乎-CCCCCaO

ubuntu 20.04 启用指纹登录-博客园

Ubuntu 20.04 桌面美化-知乎-Eglinux

写给工程师的 Ubuntu 20.04 最佳配置指南-掘金-BaronTalk

Ubuntu下Grub配置详解-CSDN-Alix_sz

另外,本文在CSDN下的评论区也有小伙伴支招,可以参考。


记一次在AMD笔电上安装Ubuntu经历
https://muzing.top/posts/cc7a1a25/
作者
muzing
发布于
2021年3月18日
更新于
2022年9月20日
许可协议