简介

目的

解决Linux Deepin在更新内核到5.10后无法使用蓝牙的问题。

硬件:联想小新13 Pro 2020 AMD R5 4600U

OS: win 10 + deepin 20

原因

尝试过的方法:

为什么打算用编译来解决这个问题?

其它方法我都尝试过了均无法解决。。。目前还剩下的希望来自 Deepin 升级1005后没有蓝牙或没有声音问题解决方案 kirin2020:重新编译内核解决。。

其实也可以更换OS,windwos目前十分稳定,fedora的kde和gnome版本都体验过live版,gnome丑的一批。。kde安装过程出错了。。

为什么讨厌它却又整体搞它?

讨厌是因为deepin-wine5自己打自己脸,一边挂着GPL3一边不开源deepin-wine5;一边是被论坛的人怼了有点不开心,吃一顿忘掉这件事,不要和三观不一样的人持久战,你说的都对。商店也是让人头大。喜欢是因为在很早深度就开始做linux OS了,而现在统信入局了,持观望态度

或许我还不是一个资深的Linux Developer,只能在论坛里看看有啥能回答的,哪里有bug需要提交反馈issue,能解决OS重大问题的暂时没发现。。解决一些平时使用中的问题并发帖交流。

现在的样子

下载内核

选择内核

下载内核及相关工具

出于简单好找考虑,选一个开山鼻祖大神的原装内核吧,不要直接点击后面的tarball下载。。慢的想死

所以必须要找镜像站点下载,cdn已经考虑过这个问题了。当然也可以直奔清华镜像的linux kernel去下载,速度飞起

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.16.tar.xz

安装内核编译工具

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

下图是我分别从清华镜像和官方网站下的内核,官方下的tarball虽然体积小一点,但是下载速度不行。。。强烈建议cdn下载或者清华镜像

解压内核

说实话,看了不少帖子,很少有人说自己在哪个文件夹/路径下编译,那这里推测出这个在哪里并不重要。

tar xvzf linux-5.10.16.tar.gz

# 进入解压目录

cd linux-5.10.16

配置内核

内核的配置文件都在/boot目录下

可以向下面一样复制一份当前内核的配置文件作为参考,

cp /boot/config-$(uname -r) .config

但是我当前5.10.5内核并不靠谱,蓝牙没了,5.7.7的内核支持硬件都正常,因此我选择拷贝5.7内核配置

也可以通过git来对比两个文件发生了那些变化,最后没看出来啥,还是直接复制5.7内核配置吧。。

# 直接复制5.7内核配置

cp /boot/config-5.7.7-amd64-desktop .config

# 开始配置

make menuconfig

menuconfig的操作方法简单直观,在界面上部就已经列出了,改变选项值除了按“Y/N/M”三个键之外,还可用空格。可以键入问号(即Shift+问号键)来查看帮助,键入斜杠(/)来检索设置项。

值得注意的是,一些组件在编译时可以选择将其编译到内核中(显示为[]和<>)或是编译为模块(显示为[M]和)。编译到内核中就成为了内核的一部分;而编译成为模块则会被安装到指定的目录中,使用modprobe等工具加载。

https://www.jianshu.com/p/9fbdfd919fc0

1、启用蓝牙支持

内核中的蓝牙选项位于【Network Settings】 --> 【Bluetooth subsystem support】,先选中【Bluetooth subsystem support】,然后按”Y“,勾选它:

在Deepin系统中启用蓝牙支持,解决蓝牙指示灯亮但看不到有关的设置

2、启用特定类型蓝牙设备协议支持

【Bluetooth subsystem support】中有子菜单,按回车进入,如下所示:

在Deepin系统中启用蓝牙支持,解决蓝牙指示灯亮但看不到有关的设置

其中有几个选项,控制特定类型蓝牙设备协议的支持,一般全部启用

https://bbs.deepin.org/zh/post/208149

简单的说我把蓝牙下所有能变成yes都变了yes,说实话,如果5.7的配置能正常,我这里为什么还要修改呢。。。阿哲。。

说实话没啥需要配置的,比较5.7的配置清单可以工作。。然后Save保存,然后exit退出

编译内核

-j后面的参数是线程数,我的cpu六核心12线程,6~12挑一个,比较系统也要占用cpu

# 多线程编译内核

make -j12

10:12-11:17

安装模块和内核

11:17 ~ 11:21

11:21 ~ 11:25

11:25 ~ 11:26

# 安装模块

sudo make modules_install

# 安装内核

sudo make install

# 安装头文件

sudo make headers_install

这个头文件不是很理解。。whatever,程序员嘛,那就安装头文件,虽然其他帖子里也没有这一步呗

Debian、Ubuntu、Linux Mint默认头文件在/usr/src下。

设置启动

# 启用新内核来作为引导

sudo update-initramfs -c -k 5.10.16

# 更新 grub

sudo update-grub

清理文件

编译清理

编译后,如果对内核源码进行了一些修改,或是同一个内核源码用来给多个设备进行编译,一般都需要进行一番清理。

sudo make clean

sudo make distclean

make clean只会清理编译输出的文件,如*.o(目标代码)、*.cmd(编译命令记录)等,而保留当前内核的配置文件,便于重新编译;而make distclean的清理则比较彻底,会将内核配置文件、内核配置程序的可执行文件等(如menuconfig的可执行文件)一并清除。

为Deepin Linux编译内核 - 爱拼安小匠](https://www.jianshu.com/p/9fbdfd919fc0)

清理之后可用空间大小增加了将近20G。。。

重启

重新启动之后应该会进入新内核的OS,但是我emm黑屏了。。裂开好吧

上次用apt安装5.4内核也是黑屏

卸载办法

# 列出当前已经安装的内核

dpkg --get-selections| grep linux-image

# 卸载内核,purge参数会把相关的header也清除

sudo apt remove --purge linux-image-5.10.5-amd64-desktop+

# 刷新引导菜单

sudo update-grub

然后我发现我删除了5.10.5的???我现在用的就是这个啊。。。我去。。我要删的应该是5.10.16啊。。裂开

可是dpkg出来的结果压根就没有5.10.16让我选???可是更新grub里面就有??这就离谱

参考

make clean:清理大多数编译生成的文件,但会保留config文件等

make install 后再执行,不然 make install 会因为找不到需要安装的东西而重新make

make mrproper: 清理所有编译生成的文件、 config及某些备份文件,几乎只在第一次执行内核编译前才用这条命令

make distclean: mrproper、 patches以及编辑器备份文件

标签:make,蓝牙,Deepin,编译,5.10,内核,Linux

来源: https://blog.csdn.net/weixin_43031092/article/details/113811841

deepin编译Linux内核,为Deepin编译Linux 5.10内核的悲伤故事经历:从入门到卸载相关推荐

  1. centos7内核默认包含在操作系统镜像中_定制centos7.7安装镜像默认内核5.5去除默认3.10内核

    镜像定制内容: 定制镜像内容 基于官方镜像minimal版定制 禁用自带的 nouveau nvidia驱动(Linux安装显卡驱动免重启即时生效),为自动化部署脚本提供便携. 检查方式: [root ...

  2. 2.龙芯2k1000 linux3.10内核编译过程

    龙芯2k1000 linux3.10内核编译过程 文章目录 龙芯2k1000 linux3.10内核编译过程 (一).在Ubuntu环境下载并配置交叉编译链 (二).下载linux3.10内核源码 ( ...

  3. 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #6 使用localmodconfig缩短编译时间...

    HACK #6 使用localmodconfig缩短编译时间 本节介绍使用make localmodconfig生成精简的.config文件,缩短内核编译时间的方法. 为了能够应对各种各样的环境,发布 ...

  4. linux 内核驱动模块的编译及加载

    主机:Windows 7旗舰版,VMware7.1.2,Fedora9 编译环境:arm-linux-gcc 4.4.3 Linux版本:linux-2.6.32.2 busybox版本:busybo ...

  5. 【Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )

    文章目录 一.查看 .config 编译配置文件 二.正式编译内核 一.查看 .config 编译配置文件 在上一篇博客 [Linux 内核]编译 Linux 内核 ④ ( 打开 Linux 内核编译 ...

  6. linux内核编译静态库,用icc编译Linux内核完美教程[图文]

    本文将介绍用icc(Intel? C++ Compiler)版本 10.1.x 来编译Linux的内核(支持2.6.22以上的版本) 2.6.23以上包含2.6.23的内核它的解压和引导内核代码改变了 ...

  7. Linux内核裁剪及编译

    Linux内核裁剪及编译可加载模块 一 Linux基础知识 linux内核组要由五个子系统组成: 进程调度 内存管理 文件系统 网络接口 进程间通信 Linux源码目录 arch    目录中包含于体 ...

  8. 深度linux安装双,Deepin 20正式发布,新的外观和感觉,双内核安装

    经过几个月的开发,基于deepin20debian的GNU/Linux发行版现在终于可以下载了,为社区提供了一个优雅.用户友好.稳定的桌面操作系统. 基于最新的DebianGNU/Linux10.5& ...

  9. linux编译内核实验,实验六 Linux内核编译实验.doc

    实验六 Linux内核编译 讲师:杨行 [实验目的] 1.掌握Linux内核编译 2.了解Linux内核Makefile 3.了解Linux内核Kbuild系统 [实验原理] 网站可以下载标准内核文件 ...

最新文章

  1. 为什么,AX中存储的数据与我们日常理解相违背。
  2. DFT,DTFT,DFS,FFT之间的关系以及序列补零和插值对频域的影响
  3. 听音训练手册--音频制品与听评
  4. JavaScript面试时候的坑洼沟洄——表达式与运算符
  5. 5.7.22mysql charset_Mysql5.7.22 坑爹的 `character_set_database`
  6. idea2020shezhi代码检查级别_ICT技术:阿里巴巴代码缺陷检测探索与实践
  7. Python档案袋( 命令行操作 及 Os与Shutil文件操作补充 )
  8. 说明 RISC 和 CISC 指令系统的区别?
  9. T-SQL Parser
  10. 省市联动_简单的Demo,适用于各种二级菜单联动
  11. 《JavaScript征途》广泛征集读后感创作者,参与有奖!
  12. 计算机网络基础应用课程标准,王建波《计算机网络基础》课程标准.doc
  13. 前端运行python代码几种方式_前端和python
  14. 表格里加横线一分为二_excel表格分割线一分为二斜线
  15. Cisco ASA 的telnet设置
  16. 苹果mac有什么用_苹果的T2“安全芯片”在Mac中有什么作用?
  17. 美国计算机留学直博几年,美国读博士需要几年才能毕业?
  18. 比较MQTT与OPC-UA
  19. 盒马“开吃”火锅行业,海底捞们还有机会“捞钱”吗?
  20. 基于 Springboot 的 Bark 通知辅助处理项目

热门文章

  1. How to debug Material delta download
  2. why context node binding does not work in pop up window case
  3. SAP专家培训之Netweaver ABAP内存管理和内存调优实践
  4. 使用命令行结合jq提取出Kubernetes配置文件里的secret信息
  5. mysql running_mysql常用命令
  6. Win10计算机首次使用时间,如何查看Win10开机运行了多长时间
  7. java label覆盖_java – 将JLabel置于JLabel之上,其中包含图像
  8. mysql级联_MySQL 级联复制(A-B-C)
  9. python测试代码性能_使用python timeit 模块检测代码性能
  10. arma模型平稳性和可逆性的条件_时间序列预测模型ARIMA实现