首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带双引导MediaTek的Wifi驱动程序

带双引导MediaTek的Wifi驱动程序
EN

Ask Ubuntu用户
提问于 2022-01-16 03:10:25
回答 1查看 880关注 0票数 1

所以我有一个带有Ubuntu21.10和Windows 10的双引导的Zephyrus G15。

当我第一次启动Ubuntu时,我的Wi公司卡的司机们工作得很好。但是windows无法连接到我的路由器。所以我卸载并重新安装了我的无线网卡的窗口驱动程序。它起了作用,但现在当我回到Ubuntu时,我无法连接wifi,甚至连以太网都无法连接。

sudo lshw -c网络:

代码语言:javascript
复制
       description: Ethernet controller
       product: Realtek Semiconductor Co., Ltd.
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:03:00.0
       version: 05
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list
       configuration: latency=0
       resources: ioport:d000(size=256) memory:fc800000-fc80ffff memory:fc810000-fc813fff
  *-network UNCLAIMED
       description: Network controller
       product: MEDIATEK Corp.
       vendor: MEDIATEK Corp.
       physical id: 0
       bus info: pci@0000:04:00.0
       version: 00
       width: 64 bits
       clock: 33MHz
       capabilities: pciexpress msi pm cap_list
       configuration: latency=0
       resources: iomemory:fc0-fbf iomemory:fc0-fbf iomemory:fc0-fbf memory:fc20300000-fc203fffff memory:fc20400000-fc20403fff memory:fc20404000-fc20404fff

艾斯普西

代码语言:javascript
复制
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. Device 8162 (rev 05)
04:00.0 Network controller: MEDIATEK Corp. Device 7961

lspci -nnk \ grep 0280 -A3

代码语言:javascript
复制
04:00.0 Network controller [0280]: MEDIATEK Corp. Device [14c3:7961]
    Subsystem: AzureWave Device [1a3b:4680]
    Kernel modules: mt7921e
05:00.0 Non-Volatile memory controller [0108]: SK hynix Device [1c5c:174a]

不名-r

代码语言:javascript
复制
5.13.0-19-generic

更多信息

https://paste.ubuntu.com/p/9Sz5G6xm33/

我的Windows安装是否可能影响了我的Ubuntu?我启动Ubuntu从一个闪存盘和司机工作良好。我甚至试图更新内核,但没有结果。

当它说:network UNCLAIMED是什么意思?

谢谢

EN

回答 1

Ask Ubuntu用户

发布于 2022-01-21 01:12:53

未来的人也有同样的问题。

我发现问题出在哪里了。我的WIFI卡是MediaTek WIFI 6 MT7921,它目前由Linux5.16内核支持,但5.13内核对它的支持很差,这是我的Ubuntu21.10附带的一个。实际上,它在第一次引导时工作非常糟糕,而对于下一次引导,它将根本不起作用。

因此,解决方案是使用以下命令升级到新内核:

代码语言:javascript
复制
# download the kernel files, headers, modules...etc
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16/amd64/linux-headers-5.16.0-051600_5.16.0-051600.202201092355_all.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16/amd64/linux-headers-5.16.0-051600-generic_5.16.0-051600.202201092355_amd64.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16/amd64/linux-image-unsigned-5.16.0-051600-generic_5.16.0-051600.202201092355_amd64.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16/amd64/linux-modules-5.16.0-051600-generic_5.16.0-051600.202201092355_amd64.deb

现在,在您的系统中安装内核:

代码语言:javascript
复制
sudo dpkg -i *.deb

修正破碎的依赖关系:

代码语言:javascript
复制
sudo apt install -f

您现在可以重新启动,如果不使用安全引导,它可能会工作。

然而,如果您是,那么您需要禁用它或签署自己的内核。我跟踪了这个指南。但是,签署内核的基本步骤是:

使用文本创建一个名为mokconfig.cnf的文件:

代码语言:javascript
复制
# This definition stops the following lines failing if HOME isn't
# defined.
HOME                    = .
RANDFILE                = $ENV::HOME/.rnd 
[ req ]
distinguished_name      = req_distinguished_name
x509_extensions         = v3
string_mask             = utf8only
prompt                  = no

[ req_distinguished_name ]
countryName             = <YOURcountrycode>
stateOrProvinceName     = <YOURstate>
localityName            = <YOURcity>
0.organizationName      = <YOURorganization>
commonName              = Secure Boot Signing Key
emailAddress            = <YOURemail>

[ v3 ]
subjectKeyIdentifier    = hash
authorityKeyIdentifier  = keyid:always,issuer
basicConstraints        = critical,CA:FALSE
extendedKeyUsage        = codeSigning,1.3.6.1.4.1.311.10.3.6
nsComment               = "OpenSSL Generated Certificate"

将<>部件与您的信息一起归档。确保只对国家、州和城市使用两个字符,例如:美国CA LA。

创建用于签名内核的公钥和私钥:

代码语言:javascript
复制
openssl req -config ./mokconfig.cnf \
        -new -x509 -newkey rsa:2048 \
        -nodes -days 36500 -outform DER \
        -keyout "MOK.priv" \
        -out "MOK.der"

将键也转换为PEM格式(mokutil需要DER,sb符号需要PEM):

代码语言:javascript
复制
openssl x509 -in MOK.der -inform DER -outform PEM -out MOK.pem

注册您的垫片安装的密钥:

代码语言:javascript
复制
sudo mokutil --import MOK.der

重新启动系统。您将遇到一个名为MOKManager的工具的蓝色屏幕。选择“登记莫克”,然后选择“查看键”。确保这是您在步骤2中创建的密钥。然后继续这个过程,您必须输入步骤4中提供的密码。继续启动您的系统。

验证您的密钥是通过以下方式注册的:

代码语言:javascript
复制
sudo mokutil --list-enrolled

对已安装的内核进行签名(应该在/boot/vmlinuz-内核版本处):

代码语言:javascript
复制
sudo sbsign --key MOK.priv --cert MOK.pem /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface --output /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface.signed
sudo cp /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{,.signed}
sudo update-grub

现在您可以重新启动=)

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1387350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档