deepin编译Linux内核,为Deepin编译Linux 5.10内核的悲伤故事经历:从入门到卸载
简介
目的
解决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内核的悲伤故事经历:从入门到卸载相关推荐
- centos7内核默认包含在操作系统镜像中_定制centos7.7安装镜像默认内核5.5去除默认3.10内核
镜像定制内容: 定制镜像内容 基于官方镜像minimal版定制 禁用自带的 nouveau nvidia驱动(Linux安装显卡驱动免重启即时生效),为自动化部署脚本提供便携. 检查方式: [root ...
- 2.龙芯2k1000 linux3.10内核编译过程
龙芯2k1000 linux3.10内核编译过程 文章目录 龙芯2k1000 linux3.10内核编译过程 (一).在Ubuntu环境下载并配置交叉编译链 (二).下载linux3.10内核源码 ( ...
- 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #6 使用localmodconfig缩短编译时间...
HACK #6 使用localmodconfig缩短编译时间 本节介绍使用make localmodconfig生成精简的.config文件,缩短内核编译时间的方法. 为了能够应对各种各样的环境,发布 ...
- linux 内核驱动模块的编译及加载
主机:Windows 7旗舰版,VMware7.1.2,Fedora9 编译环境:arm-linux-gcc 4.4.3 Linux版本:linux-2.6.32.2 busybox版本:busybo ...
- 【Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )
文章目录 一.查看 .config 编译配置文件 二.正式编译内核 一.查看 .config 编译配置文件 在上一篇博客 [Linux 内核]编译 Linux 内核 ④ ( 打开 Linux 内核编译 ...
- linux内核编译静态库,用icc编译Linux内核完美教程[图文]
本文将介绍用icc(Intel? C++ Compiler)版本 10.1.x 来编译Linux的内核(支持2.6.22以上的版本) 2.6.23以上包含2.6.23的内核它的解压和引导内核代码改变了 ...
- Linux内核裁剪及编译
Linux内核裁剪及编译可加载模块 一 Linux基础知识 linux内核组要由五个子系统组成: 进程调度 内存管理 文件系统 网络接口 进程间通信 Linux源码目录 arch 目录中包含于体 ...
- 深度linux安装双,Deepin 20正式发布,新的外观和感觉,双内核安装
经过几个月的开发,基于deepin20debian的GNU/Linux发行版现在终于可以下载了,为社区提供了一个优雅.用户友好.稳定的桌面操作系统. 基于最新的DebianGNU/Linux10.5& ...
- linux编译内核实验,实验六 Linux内核编译实验.doc
实验六 Linux内核编译 讲师:杨行 [实验目的] 1.掌握Linux内核编译 2.了解Linux内核Makefile 3.了解Linux内核Kbuild系统 [实验原理] 网站可以下载标准内核文件 ...
最新文章
- 为什么,AX中存储的数据与我们日常理解相违背。
- DFT,DTFT,DFS,FFT之间的关系以及序列补零和插值对频域的影响
- 听音训练手册--音频制品与听评
- JavaScript面试时候的坑洼沟洄——表达式与运算符
- 5.7.22mysql charset_Mysql5.7.22 坑爹的 `character_set_database`
- idea2020shezhi代码检查级别_ICT技术:阿里巴巴代码缺陷检测探索与实践
- Python档案袋( 命令行操作 及 Os与Shutil文件操作补充 )
- 说明 RISC 和 CISC 指令系统的区别?
- T-SQL Parser
- 省市联动_简单的Demo,适用于各种二级菜单联动
- 《JavaScript征途》广泛征集读后感创作者,参与有奖!
- 计算机网络基础应用课程标准,王建波《计算机网络基础》课程标准.doc
- 前端运行python代码几种方式_前端和python
- 表格里加横线一分为二_excel表格分割线一分为二斜线
- Cisco ASA 的telnet设置
- 苹果mac有什么用_苹果的T2“安全芯片”在Mac中有什么作用?
- 美国计算机留学直博几年,美国读博士需要几年才能毕业?
- 比较MQTT与OPC-UA
- 盒马“开吃”火锅行业,海底捞们还有机会“捞钱”吗?
- 基于 Springboot 的 Bark 通知辅助处理项目
热门文章
- How to debug Material delta download
- why context node binding does not work in pop up window case
- SAP专家培训之Netweaver ABAP内存管理和内存调优实践
- 使用命令行结合jq提取出Kubernetes配置文件里的secret信息
- mysql running_mysql常用命令
- Win10计算机首次使用时间,如何查看Win10开机运行了多长时间
- java label覆盖_java – 将JLabel置于JLabel之上,其中包含图像
- mysql级联_MySQL 级联复制(A-B-C)
- python测试代码性能_使用python timeit 模块检测代码性能
- arma模型平稳性和可逆性的条件_时间序列预测模型ARIMA实现