解决新电脑安装ubuntu16.04时,显卡、声卡、wifi、蓝牙驱动问题
解决新电脑安装ubuntu16.04时,显卡、声卡、wifi、蓝牙驱动问题
解决新电脑安装ubuntu16.04时,显卡、声卡、wifi、蓝牙驱动问题普渡上班第一天,拿到的电脑是lenovo 小新air15 2019款笔记本,安装好ubuntu16.04,结果发现如下问题:
1、不能连wifi(没有wifi选项);
2、没有蓝牙;
3、没有声音,外放和插耳机都不行;
4、系统设置里的显卡为LLVMpipe,没有识别出本机显卡Geforce MX250,导致不能调节屏幕亮度,在terminal没有nvidia相关的命令。
我直接先说我的解决过程吧。
一、升级内核
首先安装的ubuntu16.04自带内核太低(4.4.0-21-generic),必须升级内核,高内核可以支持比较多的新硬件设备,但是尽量不要替换为最新的内核(即使它是稳定版,也可能会有问题),比如我升级为截止2020年10月2日最新的稳定版kernel 5.8.13,不能正常使用nvidia驱动,现在我使用的是kernel 5.3.2。
升级内核过程,请参考《ubuntu16.04 升级内核》https://blog.csdn.net/weixin_40641735/article/details/89019657
升级内核过程中遇到的问题:
1、缺少libssl1.1依赖。这个很好解决。自行google,或者按照上面教程中的方法。
2、下载的内核文件一般为两个头文件headers,一个模组文件modules,一个镜像文件image。
3、缺少一些固件。如下图所示:
update-initramfs: Generating /boot/initrd.img-4.8.0-040800-generic W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_01.bin for module i915 W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915 W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915
解决办法:到intel的网站https://git.kernel.org/下载对应的缺少的固件,然后使用mv命令移动到/lib/firmware/对应的文件夹下即可。(内心吐槽:这个网站,我tm弄死没找到可以直接全部下载的地方,如果有高人知道,望告知)
升级内核后,电脑可以外放声音,插上耳机也有反应了,爽歪歪。
二、nvidia显卡驱动
整这个显卡驱动是我整的最久的,最崩溃的时候,整的劳资简直想骂人。奈何本人技术尚浅,所以耽搁了这么久,唉。
首先摆出来我遇到的问题:
1、在nvidia官网上下载了电脑显卡对应的最新驱动,安装好后重启,不能进入图形界面。原因是还没升级之前的内核不支持这个新的显卡驱动,所以加载不出来图形界面。
安装nvidia驱动的过程参考这篇文章,写的很好,开源使人类进步。
《Linux安装NVIDIA显卡驱动的正确姿势》https://blog.csdn.net/wf19930209/article/details/81877822
我是通过shell,用命令来自动安装所有推荐的nvidia驱动。在设置->软件和更新->附件驱动里就可以找到了。
重启之后,便可以看到设置里已经能识别到本机的显卡,在terminal里也能使用nvidia命令,ojbk。
关于上表各参数的含义,请参考这篇文章。
《[ubuntu—【nvidia-smi】命令参数含义》https://www.cnblogs.com/carle-09/p/12420321.html
解决nvidia驱动,期间收获的知识:
a、安装ubuntu系统时,检测到电脑显卡硬件为nvidia系列产品,其实系统会自动安装nouveau驱动,以实现图形界面。
nouveau是第三方人员基于nvidia显卡所写的开源驱动,比较坑。与nvidia驱动相冲突,所以欲使用nvidia,必先禁用nouveau。
禁用方法,详见上文的《Linux安装NVIDIA显卡驱动的正确姿势》。其中新知识:
①backlist黑名单。我们在linux中安装驱动,有时会遇到驱动受限或冲突等问题,通常解决方式都是要修改blacklist.conf。对内核模块来说,黑名单是指禁止某个模块装入的机制。在 /etc/modprobe.d/ 中创建 .conf 文件,使用 blacklist 关键字屏蔽不需要的模块。
②LLVMpipe 是一个基于 LLVM 的 Gallium3D 驱动,利用 CPU 的实现 OpenGL 加速效果。尽管该驱动运行 3D 游戏颇为吃力,但是在现代的 CPU 上实现混合桌面特效还是绰绰有余的。
说白了就是显卡驱动有问题时,用cpu来实现opengl(Open Graphics Library),出现图形界面。
③ubuntu无限重复登录界面。当nvidia驱动有问题的时候,就会出现这个问题。主要是在我手动安装nvidia驱动时会出现。所以尽量还是不要手动安装显卡驱动吧,坑多得很。解决办法:进入命令行模式,登录账户,卸载安装的nvidia驱动,就能正常登录,进入桌面了。此时会有一个小bug:命令行界面,会出现乱码,解决办法:把文本模式设置为英文,LANG=en_US。
b、grub为多系统启动管理器。电脑为双系统,或者linux为多内核。
c、Initrd ramdisk或者initrd是指一个临时文件系统,它在启动阶段被Linux内核调用。initrd主要用于当“根”文件系统被挂载之前,进行准备工作。initramfs是initrd的替代品,与内核有关。
d、lspci里显示的信息中
VGA INTEL为集成显卡
nvidia为独立显卡
e、手动安装nvidia驱动时,必须先关闭X-windows服务,否则无法正常安装驱动。
1. sudo service lightdm stop #关闭桌面服务 2. sudo service lightdm status 3. sudo service lightdm restart #重启桌面服务
f、当系统处于secure boot时,nvidia驱动不会正常安装。因为nvidia驱动是闭源的,linux认为闭源的就是危险的,所以必须disable secure boot,才能正常安装与使用nvidia。
可以在bios中设置为secure boot disabled(不然电脑可能无法正常进入图形化界面)
三、wifi驱动
说起这个,也是很坑的一个东西啊。
我先整理一下网络上的解决办法,以及我的实践经历:
windows下查看无线网卡为wireless ac 9560,在intel网站下下载对应的驱动文件.ucode,拷贝到/lib/firmware/,本来就应该皆大欢喜的事情,结果tm还是没出来wifi选项,wtf。鉴于本人能力有限,一直卡在这个地方,还升级了几个内核,也苦心全网搜索解决办法,结果没有搞定。
此时牛逼的办法来了哈,擦亮双眼:
terminal输入dmesg | grep wifi,出来的开机报告里面会提示用户缺少哪个文件,直接下载好,然后拷贝到/lib/firmware/,sudo update-grub,重启,神奇的一幕出现了,可爱的wifi选项回来了。用这个方法,我同样解决了蓝牙的问题。
掌握到的知识:
a、dmesg
Linux dmesg命令用于显示开机信息。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
解决新电脑安装ubuntu16.04时,显卡、声卡、wifi、蓝牙驱动问题相关教程
-
Selenium2+python自动化3-解决pip使用异常转载
Selenium2+python自动化3-解决pip使用异常【转载】 一、pip出现异常 有一小部分童鞋在打开cmd输入pip后出现下面情况:Did not provide a command Did not provide a command?这是什么鬼? 正常情况应该是酱紫 二、解决办法: 1.pip是一个.exe的可执行文件,在c
-
转载解决Eclipse源码部分属性值不能查看
转载:解决Eclipse源码部分属性值不能查看 问题 研究JDK源码的同学应该知道,在debug的时候是无法看源码中变量的值的,为什么呢?因为在JDK中,sun对 rt.jar 中的类编译时,去除了调试信息。那么是否有解决办法呢?答案是肯定的。 解决方案 1.在你的 D: 盘新建
-
五十个小技巧提高PHP执行效率解决三大常见问题
五十个小技巧提高PHP执行效率,解决三大常见问题 在项目开发过程中,经常遇到了一些PHP处理程序性能底下的情况,程序运行在centos+nginx环境,虽然这个有很多的原因如:服务器本身配置,运行环境nginx服务,php-fpm配置等等,更多有一点仍然是PHPer没有对程
-
全排列问题
全排列问题 在解决全排列问题之前,先讲解一个它的子问题,输出给定数字比它大的下一个数字,为了方便,我们把输入和输出数字用数组表示 给出一组数,输出它的下一个排列 假设给定数组[1,2,3,5,4] 比它大的下一个数字是[1,2,4,3,5] 思想: 假设出入数组为arr
-
Mac adb 提示 command not found. 解决办法
Mac adb 提示 command not found. 解决办法 造成此类现象的原因是:未配置Android的环境变量。因此,您需为Mac中的Android SDK配置环境变量。 启动Mac自带的终端Terminal。 进入当前用户的home目录。 在命令行输入 echo $HOME 创建.bash_profile文件。 命令
-
跟我一起使用create-react-app脚手架搭建vw-layout解决方案
跟我一起使用create-react-app脚手架搭建vw-layout解决方案 之前也是看过大漠的vw适配Vue-cli,我自己写H5,还有使用vue做项目的时候,会搭建大漠博客中的那一套。 现在在github上面,看见了一位博主使用create-react-app也是用vw适配,非常开心,现在我们一
-
解决Your content must have a ListView whose id attribute is
解决Your content must have a ListView whose id attribute is "android.R.id.list"的问题 在使用ListView控件时id命名有个要注意的地方:当你程序报错: Your content must have a ListView whose id attribute is android.R.id.list 当主Activity继承了Lis
-
关于mysql修改了root的密码后忘记的解决方法
关于mysql修改了root的密码后忘记的解决方法 1.关闭正在运行的mysql服务; 2.用管理员权限,cmd进入dos界面; 3.如果没有配置mysql\bin,需要进入mysql安装目录的bin下,例如我的在E盘: 4.运行mysqld --skip-grant-tables 然后回车,这段命令的意思就是从安