最近想把惠普笔记本的原装操作系统Windows 11 家庭版换成Linux,折腾了一番,虽然刚开始失败了,最后还是成功了。
整个过程如下:
安装Debian 11成功了,但是有些功能不能用,寻找解决办法但是失败了然后想换回Window 11 Pro版本,安装时遇到了驱动问题,失败了,然后尝试安装Ubuntu 22.04.1 LTS, 安装成功,而且没有遇到安装Debian后遇到的问题重新装回Debian 11,并且解决了有些功能不能使用的问题(例如不能调节屏幕亮度),主要是解决了换内核与安装驱动与固件的问题。具体过程如下:
弃用Windows 11
为什么不使用Windows 11或者其他Windows系统呢?在使用里一小段时间后,发现家庭版本不能换语言,添加组件居然还需要创建帐号, 再加上Windows系统是封闭的系统使用起来不太自由,不能高度定制化,Windows系统是商业公司驱动的, 微软公司与Windows系统的口碑不太好,Windows系统使用各种手段深度绑定用户,安装过程中没有加密整个磁盘的选项, 已经习惯使用Linux,等等原因,决定换系统。
安装系统时,建议加密整个硬盘,这样更加安全,即使丢失了电脑,别人也无法看到数据。
安装Debian 11
下载Debian 11的ISO安装文件,制作安装盘(U盘安装),安装成功后,发现有下面的问题:
屏幕不能调节亮度触控板不能使用WIFI不能使用蓝牙不能使用然后安装nonfree库的相关固件,但是不能解决问题。不能调节亮度导致看多了屏幕眼睛疼,这时想换回Windows 11 Pro版本看看。
安装Windows 11
从官网下面下载Windows 11的ISO文件,下载地址为: Download Windows 11 Disk Image (ISO)
用Windows版本的浏览器,这个页面不显示下载地址,需要使用其他版本的浏览器或者临时修改浏览器的 user agent( 修改为非Windows系统的,例如Linux或者Mac OS的浏览器user agent)。为什么微软要这么做呢?为什么不给Windows用户 多个选项呢?我想可能是为了深度绑定用户。
然后制作安装盘,在Linux下面还是比较简单的,打开Disks工具,选择要安装的U盘,点击右上角的菜单,选择"Restore Disk Image...", 然后按照提示操作就可以了。
安装Windows 11需要一些前提条件,具体资料请查看 HP 电脑 – 对 Windows 11 的支持 与 HP 电脑 - 从 USB 闪存驱动器安装 Windows 11
然后修改UEFI或者BIOS的配置,从U盘安装,进行安装界面,选择了语言后进入下个界面,点击开始安装,然后问题就出现了,提示缺少了有关CD/DVD、 硬盘等的一个驱动。
然后在网上找资料,惠普官网上有一些驱动,但唯独缺少了有关硬盘的驱动,不知道为什么,在网上找了写类似的驱动,尝试了几次都没有成功。
搞不懂为什么Windows系统安装现在搞得如此复杂,反而Linux系统安装就比较简单了。
然后给惠普的售后工程师打电话,他们给了几个驱动,也没有成功。有点疑惑的是,给我的链接可以直接下载,为什么惠普不把它们放在对于的驱动 下载页面呢。
下面把这些驱动的地址粘贴下(电脑型号有关,我的是英特尔的12代处理器,三星的SSD):
https://ftp.hp.com/pub/softpaq/sp134501-135000/sp134521.exe
https://ftp.hp.com/pub/softpaq/sp136001-136500/sp136079.exe
Intel® Rapid Storage Technology Driver for Windows® 10 64-bit and Windows 11* for Intel® NUC12WS products (这个是英特尔官方的驱动)
最后放弃安装Windows 11,甚至下载安装了Windows 10,结果一样失败。在查找资料的过程中,看到了Ubuntu,然后开始尝试安装。
不喜欢折腾的可以使用Ubuntu,试用过程中没有发现大问题。
安装Ubuntu
为什么要选择Ubuntu呢?主要是因为它是基于Debian开发的,而我以前经常使用Debian。
到官网下载ISO文件,并用上面的方法制作了安装盘。安装过程(利用图形安装界面上面的方法安装)中遇到了有趣的问题:
选择带加密的LVM模式时,提供了一个Recovery code,而Debian没有没有提供分区的选项,直接使用整个硬盘安装系统选择了带加密的LVM模式后,需要往整个硬盘里面写随机数字,Ubuntu使用时间较短,而Debian使用的时间比较长安装过程提供的选项较少,而Debian提供的选项很多安装完后,没有发现Debian 11里面的问题,每个硬件都可以使用,而且界面不错,使用了GNOME 42,使用也流畅。
在试用的过程中发现了有趣的问题:
安装chrome后(安装包为chrome-browser),创建新的Firefox的profile,打开这个新的profile后,有些网站不能打开(例如 google.com), 有些可以打开(例如,bing.com),用默认的profile时,任何网站都可以打开。然后打开chrome,有些网站不能打开有些可以打开,出现的问题 跟Firefox的新profile出现的问题一样。
尝试卸载chrome后,打开Firefox的新profile,这时任何网站都可以打开了。这说明chrome包或者所依赖的某个包有问题。
而Debian里面没有这个问题,也许跟chrome的版本有关系。
由于出现了这些问题,再加上Ubuntu是商业公司驱动的,习惯了Debian系统,就决定换回Debian并解决出现的问题。
重装Debian
重装Debian 11后,就开始研究怎么解决出现的问题。
刚开始安装Debian 11后又安装了nonfree库里面的固件,对应的硬件还是不能工作,主要原因这些固件不是最新的。
主要的问题就是怎么让不能工作的硬件工作起来,也就是安装对应的驱动或者固件。
查看具体问题查看系统出现了哪些具体问题,可以通过下面的命令:
# dmesg
这个输出里面有些问题不太好解决,而且对使用几乎没有影响,可以不去管。即使Ubuntu也同样出现一样的问题。
查看有哪些硬件可以使用下面的命令:
# lshw
# lspci
安装高版本的Linux内核在网上查找资料后,发现需要安装高版本的内核(资料说需要5.14以上),这时就需要Debian的其他库里面的包了(例如backports库)。
最终 资料来源 如下(括号里面的是内核版本):
Supported Devices
The following devices are supported (since kernel version):
Wi-Fi 6E products
Intel® Wi-Fi 6E AX411 (5.14)
Intel® Wi-Fi 6E AX211 (5.14)
Intel® Wi-Fi 6E AX210 (5.10)
Wi-Fi 6 products
Intel® Wi-Fi 6 AX201 (5.2)
Intel® Wi-Fi 6 AX200 (5.1)
直接资料来源是这个帖子 Netinst Intel Wi-Fi 6E AX211 firmware
方法如下:
把下面的几行添加到 /etc/apt/sources.list 里:
deb https://www.dnzp.com/uploads/allimg/230606/vxxlz4kptfh bullseye-backports main contrib non-free
deb-src https://www.dnzp.com/uploads/allimg/230606/vxxlz4kptfh bullseye-backports main contrib non-free
#deb https://www.dnzp.com/uploads/allimg/230606/vxxlz4kptfh/ bullseye-proposed-updates main contrib non-free
#deb-src https://www.dnzp.com/uploads/allimg/230606/vxxlz4kptfh/ bullseye-proposed-updates main contrib non-free
# testing
#deb https://www.dnzp.com/uploads/allimg/230606/vxxlz4kptfh testing main contrib non-free
#deb-src https://www.dnzp.com/uploads/allimg/230606/vxxlz4kptfh testing main contrib non-free
#
#deb https://www.dnzp.com/uploads/allimg/230606/vxxlz4kptfh-security/ testing-security main contrib non-free
#deb-src https://www.dnzp.com/uploads/allimg/230606/vxxlz4kptfh-security/ testing-security main contrib non-free
#
#deb https://www.dnzp.com/uploads/allimg/230606/vxxlz4kptfh testing-updates main contrib non-free
#deb-src https://www.dnzp.com/uploads/allimg/230606/vxxlz4kptfh testing-updates main contrib non-free
再运行下面的命令:
# apt update
# apt install linux-image-5.18.0-0.bpo.1-rt-amd64
重启系统在Grub里面选择新内核
使用了新内核后,发现触控板可以使用了,好像也可以调节亮度了(有点时间了忘记了,后面也安装了对应的固件), 但是WIFI还是不能使用。再次使用 dmesg 查看具体问题,然后根据里面的提示安装对应的固件。
固件来源与安装方法可以参考下面的几个链接
Linux* Support for Intel® Wireless Adapters (这个是英特尔官方的固件)
iwlwifi is the wireless driver for Intel's current wireless chips (里面有固件安装方法与来源)
Repository of firmware blobs for use with the Linux kernel (最新的固件在这里)
安装方法:
# cp iwlwifi-*.{ucode,pnvm} /lib/firmware/
WIFI不能使用的解决方法查看这个帖子里面的方法 [Guide] Install Intel Wireless Drivers on Linux
对于我的电脑来说,就是下面的方法:
# # Go to the website: https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/linux-firmware.git/tree/
# # Download and Copied all the iwlwifi-ty-a0-gf-a0-* files to /lib/firmware/
# # 根据dmesg里面的提示来拷贝, 在这个库里面如果没有对应的文件不管它了,我从另外一个地方拷贝了
# # 这个文件 iwlwifi-so-a0-gf-a0-71.ucode,发现改变桌面背景时部分屏幕会先变黑然后才正常,卸载了就没事了
# cp iwlwifi-so-a0-gf-a0* /lib/firmware/
其他可以参考的帖子如下:
Intel wifi and Debian 11
Considering all information I proceeded as follows:
- I removed the firmware-iwlwifi package;
- I downloaded the latest tarball from the kernel git page linked above;
- I extracted the iwlwifi-* and the intel/ibt-* files;
- I put those in a new tarball, which I then put through alien in order to create a .deb package (lazy method, but it works);
- I then installed my freshly created deb package;
- after that I rebooted the system.
... Presto, al just works fine as designed. I reckon that this is the cleanest way of achieving the desired result in lieu of a updated firmware-iwlwifi package or a truly free driver.
出现i915(Intel HD Graphics driver, 英特尔的GPU驱动)问题的解决方法问题如下:
W: Possible missing firmware /lib/firmware/i915/bxt_dmc_ver1_07.bin for module i915
W: Possible missing firmware /lib/firmware/i915/skl_dmc_ver1_27.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_04.bin for module i915
解决方法:
去这里找对应的固件(根据dmesg里面的提示):https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
执行下面的命令:# cp <i915 firmware files> /lib/firmware/i915/
# update-initramfs -u -k all
重启电脑可以参考下面的几个链接:
Possible missing firmware /lib/firmware/i915/* for module i915
Possible missing firmware /lib/firmware/i915
出现tpm的问题具体问题:
tpm_tis MSFT0101:00: 2.0 TPM (device-id 0xFC, rev-id 1)
tpm tpm0: tpm_try_transmit: send(): error -5
tpm tpm0: [Firmware Bug]: TPM interrupt not working, polling instead
解决方法:
忽略它在BIOS里面关闭TPM用下面的方法让这个提示信息不显示编辑文件 /etc/default/grub , 在有 GRUB_CMDLINE_LINUX_DEFAULT 的一行添加参数 tpm_tis.interrupts=0, 修改过后为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet tpm_tis.interrupts=0"
重启后就不会显示了资料来源
出现thermal zone的问题具体问题:
acpitz failed to read out thermal zone (-61)
解决方法:
编辑文件 /etc/modprobe.d/iwlmvm.conf 添加一行:
options iwlmvm power_scheme=1
资料来源
出现其他固件的问题基本思路跟上面的一样,查看dmesg信息,根据提示找到对应的固件,并拷贝到 /lib/firmware/ 对应的目录下面
经验教训
解决这些问题花费了好几天的时间,主要原因是以前没有经历过,走了很多弯路,而且老是想折腾出来。
经验如下:
有些问题如果不影响使用就有不用去管,否则很花费时间或者根本就解决不了。有了问题先明确是什么样的问题,然后找问题的具体表现,例如从log文件里面查找问题信息在网上寻找问题的解决方案时,可以直接搜索问题的具体表现,一般很快就找到解决方案解决问题,重要的是要明确大概思路,知道问题是什么,大概出现在哪里,问题的具体表现是什么,解决问题大概需要哪些步骤, 去哪里查找解决方案,自己能否根据已有的知识探索一番就可以解决等等。解决了问题后,把问题及其解决方案记录下来,以便下次查找,要不然很容易忘记,忘记了以前的工作就白费了解决硬件不能被系统使用、不能正常工作的问题的思路:
出现了哪些问题,跟哪些硬件有关查找硬件的具体型号根据硬件的具体型号,看看官方网站对具体硬件的介绍,是否有驱动,有什么样的前置条件,是否要求内核版本如果要求具体的内核,就先安装对应的内核根据具体型号、dmesg里面的提示查找、下载与安装对应的驱动主要思想如下:
Linux系统内核管理电脑硬件,但特定版本的内核只能支持特定版本的硬件硬件需要驱动或者固件才能被操作系统使用总而言之,硬件需要特定版本的内核与固件支持才能被正常使用里面的链接都被自动去掉了,可以查看原文:https://ssrly.com/blog/2022/09/10/install_os_on_hp_laptop/