admin管理员组

文章数量:1593060

实验室组了一台服务器,采用的是微星的Z790-A MAX WIFI7主板,华硕4090tuf显卡,刚开始给实验室电脑装的是Ubuntu22.04的系统(装Ubuntu22.04系统教程网上很多,不介绍了),发现装完之后没有wifi图标,之前我在笔记本和服务器上装过几次20.04和22.04只不过对应的显卡不一样,也都出现没有wifi图标的问题,但是基本都是缺失网卡驱动的原因(我记得好像显卡驱动问题也会产生这个问题),为了保险期间还是网上搜集了一些资料,有的博客写的纯属胡扯会把系统搞崩(不建议改系统的底层东西),有的博客按照上面的操作没有什么作用(笔记本的除外),最后看着看着还是坚信自己的判断网卡驱动和显卡驱动的原因。所以这里我的结论是,如果你也缺失wifi图标,那么我个人觉得95%概率是缺失网卡驱动的原因,还有一种情况是网卡驱动和显卡驱动都正常,但是就是没有wifi图标,此时可能的原因是当前Ubuntu系统的内核版本太低,你的网卡太新导致不匹配不显示问题。下面就是我这两天一路遇见bug以及debug的过程。希望能对大家有点启发。

1.Ubuntu22.04关闭Secure Boot(小提示)

在安装Ubuntu22.04的时候,一定要先进入主板的BIOS界面关闭安全启动(Secure Boot),我个人理解的是我们的安装镜像并没有获得受信任签名,安全启动可能会阻止系统的引导过程,以及后面的一些驱动程序的安装也会受到影响,所以一定要进入BIOS关闭安全启动。

之后按照网上步骤安装,在安装Ubuntu22.04的时候,到连接网络的步骤的时候,发现灰色,那么恭喜你你的系统装完之后大概率是没有wifi图标的,可能很多人会跳过联网继续下一步,这里我认为其实需要在安装的时候就解决下,因为离线操作可能会让我们安装过程中跳过安装那些必要驱动和依赖。至于怎么解决后面安装Ubuntu24.04的时候我会说下。

2. Ubuntu22.04没有wifi图标,刚开始可以使用手机USB线共享网络,后面换了显卡驱动,发现手机无法共享网络了,即使手机端正常设置。

安装完Ubuntu22.04后,果然没有wifi图标,此时可以拿手机数据线,插到电脑主机上,打开热点,选择USB tethering(中文界面好像是共享网络),然后发现电脑连接上以太网了,此时可以正常上网,我第一次尝试的时候只是连网去查了一些资料,然后就首先看了下显卡驱动(在设置里面的软件和更新,附加驱动)发现使用的是开源驱动,然后果断切换回nvidia的专用闭源驱动,reboot,然后手机共享网络就失效了。

1. 首先确认自己是否缺失网卡驱动

sudo lshw -c network

如果出现unclamid说明没有网卡驱动,。

lspci | grep Network

查看网络硬件的信息。对于我的主板因为使用Qualcomm Atheros无线芯片,那么驱动是ath系列,怎么判断是ath哪个系列?

lspci -nn | grep -i network

这里会显示一些信息,类似controller [0280]: Qualcomm Technologies, Inc WCN785x Wi-Fi 7(802.11be) 320MHz 2x2 [FastConnect 7800] [17cb:1107] (rev 01),其中网卡的PCIe ID是[17cb:1107],你可以直接在谷歌上面搜索[17cb:1107]驱动,这就是你网卡所用的驱动ath12k。

或者参考Linux官方给的驱动列表

en:users:drivers [Linux Wireless]

2. 令人头疼的“套娃”问题。

可能到现在很高兴,觉得知道网卡驱动了,下载完网卡驱动就可以了,但是Linux系统最突出的特点是,“套娃”依赖,你下载驱动不光要下载驱动,还要下载安装这个驱动所需要的依赖,然后下载安装驱动依赖所需要的依赖。。。。。。无止尽的依赖,就比如安装网卡驱动你需要gcc和make总的来说就是build-essential和内核版本的内核头文件(linux-headers),还有的一些网卡驱动可能需要特定的库文件,如果你可以通过共享网络使得系统暂时有网,那么上面的依赖问题也不是很令人头疼,无非就是输入命令行系统自动下载,比如

sudo apt update
sudo apt install build-essential linux-headers-$(uname -r)

缺什么下什么,但是前面提到,我们因为更换为Nvidia的专用驱动,导致手机无法共享网络,所以你只能找一个有网的电脑,然后下载到U盘里面,然后通过U盘移植到服务器上,这是十分耗时的,而且我觉得很笨很无意义的方法,因为这时候你也不知道这样操作完之后能否解决。我也尝试将显卡驱动切换为最初的版本,但是失败了,我也没花费时间具体研究,与其这样还不如重新装系统,及时止损,节约时间。重装系统之后,连上网络,先装网卡驱动,然后装完之后再切换为Nvidia的专用显卡驱动,通常情况下,网卡驱动和显卡驱动是独立的,它们之间不会相互影响。

3. 安装Ubuntu24.04

准备重装系统后,突然有装Ubuntu24.04的想法,因为考虑到后面硕士毕业实验室可能没人鼓捣服务器,以及避免随着时间的延长驱动兼容问题,现在安装最新的对后面可能实验室的师弟们使用方便一些,于是决定装24.04,因为Ubuntu24.04是今年4月刚发布,网上的教程很少,国内的几乎就零零星星,我看了下大部分国内一些人装讲解都是让系统自动分区,几乎是傻瓜式装系统,还有人在那胡扯,而我想手动分区,Ubuntu24.04分区和之前的系统还不一样。下面是我试错两次后(得到大佬写的博客在移动硬盘上搭建Ubuntu24.04深度学习环境(Anaconda + CUDA + Pytorch)_ubuntu 24.04 cuda-CSDN博客的提示才解决的+.+)才安装成功的过程。


1 制作启动盘
2.进入引导界面try or install ubuntu
3.选择语言中文简体

4. 自定义安装Ubuntu24.04 设置(根据自己的喜好随意设置即可)

5.选择键盘布局

到这个步骤的时候,先用手机共享网络,联网安装,这样会把一些用的驱动程序和依赖,软件给我们自动安装上,安装Ubuntu22.04的时候也可以这样操作,到联网上一个步骤的时候,先用手机共享网络,联网安装,这样会把一些用的驱动程序和依赖,软件给我们自动安装上,安装Ubuntu22.04的时候也可以这样操作。

6. install Ubuntu

7. 选择安装类别,选择交互安装

8. 安装内容选择,选择扩展选择(多按总比后面自己单独按好,虽然耗时,但那是为了后面节省时间)

9. 安装第三方图形和wifi软件(全选!全选!全选!)

10. 磁盘分区

选择第二个手动分区。

"-"表示格式化所选分区,注意格式完所有分区后,第一步是先点击用于安装引导程序的设备,因为这会自动创建efi的挂载点图片和这里的技巧是来自之前参考的大佬博客),我们再安装的过程中一定要保证efi的顺序是第一个的,否则会安装失败,接着是swap分区,接着是挂载点/,ext4分区,挂载点/home,ext4分区,说一下我的分区方案给大家参考下,我们实验室固态是2T的,引导分区点击用于安装引导程序的设备会自动设置大小,swap我给了32G,因为实验室服务器内存是128G的,swap只是在内存不够用的情况下,将swap的大小暂时作为内存使用,128G实际内存很大,所以没给多,实际内存少的话,建议多给些swap, /相当于系统盘吧(我理解的),我给了220G,/home是我们平时存放东西的地方,我剩下的全给了,/可以再多给些,但是个人觉得300G封顶了。

11. 创建用户名
12. 选择位置时区
13.开始安装

4. 升级Ubuntu系统内核(如果你有wifi图标,此步骤不需要)

按照上述步骤装完Ubuntu24.04后,发现网卡驱动和显卡驱动都正常,而且显卡驱动默认给的就是Nvidia专用驱动,而且可以使用手机共享网络,但是就是没有wifi图标,当时就让我emo了,因为这正常的让你不知道哪里出现问题了,国内几乎没资料,后来参考了国外论文上大家讨论的,判断时Ubuntu系统内核版本太低的问题导致的,参考下面两个资料。

基于Ubuntu24.04原内核6.8.0升级到6.9.0 - 小蓝博客

这篇文章升级内核的方法已经失效不能用。但有参考价值。

https://www.reddit/r/Ubuntu/comments/1cfhnmd/ubuntu_2404_lts_qualcomm_ncm865_wifi_7_adapter/?rdt=36464&onetap_auto=true&one_tap=true

How to upgrade Ubuntu to 24.10 and kernel to latest version
这里给出升级内核的具体方法,以6.10内核为例(建议不要更新的太新,不要跨越幅度太大,因为你需要的软件和驱动可能没跟上最新的内核)。可以在下面的网站找自己想要的内核版本Index of /mainline

# 创建一个存放安装包的位置, 这里以tmp为例
cd /tmp
wget -c https://kernel.ubuntu/mainline/v6.10.8/amd64/linux-headers-6.10.8-061008-generic_6.10.8-061008.202409040917_amd64.deb
wget -c https://kernel.ubuntu/mainline/v6.10.8/amd64/linux-headers-6.10.8-061008_6.10.8-061008.202409040917_all.deb
wget -c https://kernel.ubuntu/mainline/v6.10.8/amd64/linux-image-unsigned-6.10.8-061008-generic_6.10.8-061008.202409040917_amd64.deb
wget -c https://kernel.ubuntu/mainline/v6.10.8/amd64/linux-modules-6.10.8-061008-generic_6.10.8-061008.202409040917_amd64.deb

然后解压,你如果当前文件夹没有别的deb安装包,可以执行下面的命令一次性解压

sudo dpkg -i *.deb

如果想一个个的解压

sudo dpkg -i 包名.deb

注意再解压linux-image-unsigned之前先解压linux-modules,因为linux-image-unsigned依赖于linux-modules,否则会报错。

之后更新Grub引导

sudo update-grub

重启系统

sudo reboot

重启完之后验证内核版本

uname -r

升级内核版本后出现wifi图标了。

5. 无法安装向日葵远程控制软件

接下来安装服务器一些需要的软件,当测试远程控制软件向日葵的时候,发现按照官网的教程根本没办法下载向日葵,todesk可以正常安装,原因是向日葵采用的依赖在Ubuntu24.04移除了,更新了一个新的依赖,网上很多教程说换依赖,在Ubuntu24.04换22.04的向日葵用的依赖,这纯属闹着玩,虽然短时间解决了,但24.04用22.04的东西不能保证后面不出现问题,这种方法我个人觉得很蠢,即使短时间解决也是饮鸩止渴,我个人观点就是在个人能力不够强的情况下,能不动系统底层就不要动系统底层。参考下面的大佬的方法,确实牛批,而且完美解决,不需要换系统依赖。

ubuntu24.04无法安装向日葵,提示依赖libgconf-2-4怎么办?-系统-寒窗轩

https://zhuanlan.zhihu/p/703722284

6. 无法使用远程控制软件,如向日葵或者Todesk。

测试远程控制软件的时候,发现使用向日葵会使服务器黑屏休眠,todesk会卡到进程100%不动,但是服务器提示确连接上了。出现上述问题的原因是Ubuntu24.04默认图形显示协议采用的Wayland协议(好像17之后的版本都默认采用Wayland协议),但是目前市面上几乎所有远程控制软件(至少我知道的软件)都是基于x11图形显示协议,这是因为x11出现的更早所以普及度更广,但是x11协议在设计时缺乏安全性,在隔离应用程序方面存在问题,Wayland克服x11的限制,且更简洁高效(个人觉得未来,远控软件会逐渐过度到Wayland协议),所以解决上述问题的方法是将图形显示协议切换到x11,可以采用命令行,

sudo nano /etc/gdm3/custom.conf
[daemon]
# Uncomment the line below to force the login screen to use Xorg
WaylandEnable=false # 取消这部分的注释

也可以,点击注销,然后登录界面,点击小齿轮选项,选择Ubuntu on Xorg(大体这个选项记不清了)。

7. 切换x11协议出现的问题。

使用命令行切换x11协议,然后重启,会发现系统黑屏进不去,然后点击注销的方法切换x11,会发现不断重复进入登陆界面,就是就不去系统。

8. 修复切换x11问题黑屏问题

对于注销的方法,很简单,在切换回去即可,对于命令行,需要进入recovery mode进行恢复,一般重启后连续点击ESC键,然后选择Advance启动项,然后进入恢复菜单,选择root Drop to root shell prompt,运行下面的程序

mount -o remount,rw / #获取读写权限
nano /etc/gdm3/custom.conf #打开配置文件
注释掉之前取消注释的那一行即可
然后ctrl+o, ctrl+x退出即可。

之后退出recovery mode,选择那个resume即可,然后正常进入系统了。

9. 显卡驱动安装问题。

上述问题后,我就猜想是不是显卡驱动的问题,我就nvidia-smi了下,发现根本没驱动,原因是更新内核后,之前的显卡驱动没有了,因为一般nvidia一个驱动对应特殊的内核版本。这时候理论上只需要安装上显卡驱动可能就能解决问题。但是显卡驱动安装过程报错,我安装过程我命令行

sudo ubuntu-drivers autoinstall

和软件和更新里面的驱动安装方法我都试了,错误类别卡在nvidia-dkms-550依赖问题上,一开始以为是内核太新,导致英伟达驱动没有对应的,一直不断的降内核,最后就是出现有显卡驱动,没wifi图标,然后升内核,有wifi图标,没显卡驱动,后来参考了下面大佬的博客升级gcc version得以解决。
UBUNTU22.04无法安装nvidia-driver-550 依赖于 nvidia-dkms-550 (<= 550.54.15-1)_e: 无法定位软件包 nvidia-driver-550-CSDN博客

这里不一定非得按照博客上写的升级到gcc 12,先看下自己的gcc版本

gcc --version
sudo apt-get install gcc-14
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 14
udo update-alternatives --config gcc

不断往上升一级尝试即可,我就是升了一级解决了问题。

重新安装Nvidia-Driver-550驱动。

先清理之前下载残留,再下载!!!

sudo apt-get --purge remove "*nvidia*" "libxnvctrl*"

安装方式不建议软件和更新上面安装或者使用autoinstall,我采用的下面的方式安装的

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-550

安装完显卡驱动后,重启,然后nvidia-smi,正常显示!!!

然后再按照注销的方法更新图形显示协议为x11,正常登录进系统,验证下网卡驱动和显卡驱动是否都在,都在!!!完美收官,后面就配置实验室用的软件和环境!!!终于完美收官了。-_-开始搞论文写程序!!!

以上观点,仅供参考,我也不保证你按照我的总结一定能成功。

本文标签: 分区远程控制图标显卡驱动步骤