[系统安装] 惠普笔记本系统安装记

Posted by Liler on September 10, 2022

最近想把惠普笔记本的原装操作系统Windows 11 家庭版换成Linux,折腾了一番,虽然刚开始失败了,最后还是成功了。

整个过程如下:

  1. 安装Debian 11成功了,但是有些功能不能用,寻找解决办法但是失败了

  2. 然后想换回Window 11 Pro版本,安装时遇到了驱动问题,失败了,

  3. 然后尝试安装Ubuntu 22.04.1 LTS, 安装成功,而且没有遇到安装Debian后遇到的问题

  4. 重新装回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 http://deb.debian.org/debian bullseye-backports main contrib non-free
    deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free
    
    #deb http://deb.debian.org/debian/ bullseye-proposed-updates main contrib non-free
    #deb-src http://deb.debian.org/debian/ bullseye-proposed-updates main contrib non-free
    
    # testing
    #deb http://deb.debian.org/debian testing main contrib non-free
    #deb-src http://deb.debian.org/debian testing main contrib non-free
    #
    #deb http://deb.debian.org/debian-security/ testing-security main contrib non-free
    #deb-src http://deb.debian.org/debian-security/ testing-security main contrib non-free
    #
    #deb http://deb.debian.org/debian testing-updates main contrib non-free
    #deb-src http://deb.debian.org/debian 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

    解决方法:

    可以参考下面的几个链接:

    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

    解决方法:

    1. 忽略它

    2. 在BIOS里面关闭TPM

    3. 用下面的方法让这个提示信息不显示

      编辑文件 /etc/default/grub , 在有 GRUB_CMDLINE_LINUX_DEFAULT 的一行添加参数 tpm_tis.interrupts=0, 修改过后为:

      GRUB_CMDLINE_LINUX_DEFAULT="quiet tpm_tis.interrupts=0"
    4. 重启后就不会显示了

    资料来源

  • 出现thermal zone的问题

    具体问题:

    acpitz failed to read out thermal zone (-61)

    解决方法:

    编辑文件 /etc/modprobe.d/iwlmvm.conf 添加一行:

    options iwlmvm power_scheme=1

    资料来源

  • 出现其他固件的问题

    基本思路跟上面的一样,查看dmesg信息,根据提示找到对应的固件,并拷贝到 /lib/firmware/ 对应的目录下面

经验教训

解决这些问题花费了好几天的时间,主要原因是以前没有经历过,走了很多弯路,而且老是想折腾出来。

经验如下:

  • 有些问题如果不影响使用就有不用去管,否则很花费时间或者根本就解决不了。

  • 有了问题先明确是什么样的问题,然后找问题的具体表现,例如从log文件里面查找问题信息

  • 在网上寻找问题的解决方案时,可以直接搜索问题的具体表现,一般很快就找到解决方案

  • 解决问题,重要的是要明确大概思路,知道问题是什么,大概出现在哪里,问题的具体表现是什么,解决问题大概需要哪些步骤, 去哪里查找解决方案,自己能否根据已有的知识探索一番就可以解决等等。

  • 解决了问题后,把问题及其解决方案记录下来,以便下次查找,要不然很容易忘记,忘记了以前的工作就白费了

解决硬件不能被系统使用、不能正常工作的问题的思路:

  1. 出现了哪些问题,跟哪些硬件有关

  2. 查找硬件的具体型号

  3. 根据硬件的具体型号,看看官方网站对具体硬件的介绍,是否有驱动,有什么样的前置条件,是否要求内核版本

  4. 如果要求具体的内核,就先安装对应的内核

  5. 根据具体型号、dmesg里面的提示查找、下载与安装对应的驱动

主要思想如下:

  • Linux系统内核管理电脑硬件,但特定版本的内核只能支持特定版本的硬件

  • 硬件需要驱动或者固件才能被操作系统使用

  • 总而言之,硬件需要特定版本的内核与固件支持才能被正常使用

Please leave your comment: