-
2021-05-10 18:04:16
[root@localhost linux-kernel]#
[root@localhost linux-kernel]# xz -d patch-3.16.68-69.xz
[root@localhost linux-kernel]#
[root@localhost linux-kernel]# ls
kernel_4.4.182 kernel_5.0.7 linux-3.16.68 linux-4.14.126 linux-4.19.34.tar.xz linux-4.4.182.tar.xz linux-5.0.7.tar.xz patch-3.18.91-92.xz patch-4.19.54-55.xz
kernel_4.9.182 kernel_92 linux-3.16.68.tar.xz linux-4.14.126.tar.xz linux-4.19.47.tar.xz linux-4.9.182.tar.xz patch-3.16.68-69 patch-3.18.92-93.xz
[root@localhost linux-kernel]#
[root@localhost linux-kernel]#
[root@localhost linux-kernel]#
[root@localhost linux-kernel]# cd linux-3.16.68/
[root@localhost linux-3.16.68]#
[root@localhost linux-3.16.68]#
[root@localhost linux-3.16.68]# head -5 Makefile
VERSION = 3
PATCHLEVEL = 16
SUBLEVEL = 68
EXTRAVERSION =
NAME = Museum of Fishiegoodies
[root@localhost linux-3.16.68]#
[root@localhost linux-3.16.68]#
[root@localhost linux-3.16.68]# patch
patch patchwork
[root@localhost linux-3.16.68]# patch -p1 < ../patch-3.16.68-69
patching file Documentation/networking/ip-sysctl.txt
patching file Makefile
patching file drivers/scsi/megaraid/megaraid_sas_base.c
patching file drivers/virt/fsl_hypervisor.c
patching file fs/ext4/extents.c
patching file include/linux/mm.h
patching file include/linux/tcp.h
patching file include/net/tcp.h
patching file include/uapi/linux/snmp.h
patching file mm/memory.c
patching file mm/mincore.c
patching file net/bluetooth/hidp/sock.c
patching file net/ipv4/proc.c
patching file net/ipv4/sysctl_net_ipv4.c
patching file net/ipv4/tcp.c
patching file net/ipv4/tcp_input.c
patching file net/ipv4/tcp_output.c
patching file net/ipv4/tcp_timer.c
[root@localhost linux-3.16.68]#
[root@localhost linux-3.16.68]#
[root@localhost linux-3.16.68]#
[root@localhost linux-3.16.68]#
[root@localhost linux-3.16.68]# head -5 Makefile
VERSION = 3
PATCHLEVEL = 16
SUBLEVEL = 69
EXTRAVERSION =
NAME = Museum of Fishiegoodies
[root@localhost linux-3.16.68]#
[root@localhost linux-3.16.68]#
[root@localhost linux-3.16.68]#
[root@localhost linux-3.16.68]#
阅读(863) | 评论(0) | 转发(0) |
更多相关内容 -
LWN网站patch使用方法,给Linux内核打patch,编译内核,安装内核,启动时手动选择内核一条龙
2021-07-17 09:17:54给Linux内核打patch 首先下载对应的Linux内核源码。5.x版本的内核源码下载地址: https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ 首页地址: https://www.kernel.org/ 当然这个网站上也有官方版本的patch...LWN网站patch使用方法
如果是从LWN网站下载内核:
邮件格式的patch,直接把所有diff的部分复制下来保存在一个文档里,文档不需要有后缀,就是所谓的patch包了。给Linux内核打patch
首先下载对应的Linux内核源码。5.x版本的内核源码下载地址:
https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/
首页地址:
https://www.kernel.org/
当然这个网站上也有官方版本的patch包可以下载。解压缩后进入源码的最上级目录,将刚才准备好的patch包放在最上级目录里。输入:
patch -p1 < ./[PatchFileName]
其中[PatchFileName]为准备好的patch包文件名。如果有多个patch包就依次打过去。这样patch就打好了。下一步进行内核编译
编译内核
这部分参考资料来自LightningStar的一篇文章,我只是简单总结一下:
环境准备
安装必备的环境:
sudo apt update && sudo apt upgrade sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
配置内核
直接拷贝当前内核的配置文件:
cp /boot/config-$(uname -r) .config
可以使用menuconfig工具进行配置:
make menuconfig
如果不知道怎么配置就直接退出保存就行。
正式编译
依然是在内核源码的最高级目录下:
make -j8
其中 -j8 中的数字 8 指并发执行数量,以加快编译速度。可以自行选择,不要多于CPU核数。
这一步需要很久。安装内核
sudo make modules_install sudo make install
启用内核作为引导:
sudo update-initramfs -c -k 5.10.0
其中后面的数字5.10.0是刚才编译的版本号,刚才安装内核的时候也有输出信息显示。
随后更新grub:
sudo update-grub
重启即可进入新安装的内核。
启动时手动选择内核
如果启动时没有手动选择内核版本的界面则需要做一些配置修改:
sudo gedit /etc/default/grub
有几行需要修改:
- GRUB_TIMEOUT_STYLE=hidden
将该行注释掉 - GRUB_TIMEOUT=0
将0改为3,选择等待时间而已,可以自己看着设置 - GRUB_CMDLINE_LINUX_DEFAULT=“xxx”
这里的xxx每个人可能不一样,总之把后面的改成“text”
保存关闭后更新grub:
sudo update-grub
重启即可看到选择内核进入的界面。
- GRUB_TIMEOUT_STYLE=hidden
-
给Linux内核打patch
2017-08-12 15:09:50Linux下patch打补丁命令 语 法:[options] [originalfile] options: -b或--backup 备份每一个原始文件。 -B或--prefix= 设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称。 -...Linux下patch打补丁命令
常使用的 patch 参数:
-pnum指定目录级别(从路径全称中除去几层目录)比如patchfile路径为 /u/howard/src/blurfl/blurfl.c,setting -p0 gives the entire file name unmodified, -p1 gives u/howard/src/blurfl/blurfl.c without the leading slash, -p4 gives blurfl/blurfl.c and not specifying -p at all just gives you blurfl.c。
-d Directory 打补丁前,更改当前目录到指定目录。
-i PatchFile 从指定文件,而不是从标准输入中读取补丁信息。
-R 逆向补丁,这个选项在防止打错补丁很有用处。
Linux内核官方下载中的patch文件patch-x.y.z是通过使用diff命令与源文件linux-x.0.0比较生成的patch,在某些场合下我们可能需要主版本号和次版本号相同但修补版本号不同的内核,我们没有必要都下载下来,可以通过打补丁的方式获取。比如我们常用的内核版本有3.2.4, 3.2.6,3.6.12。1.首先我们从linux内核官网下载l文件inux-3.2.tar.gz。,patch-3.2.4.gz, patch-3.2.6.gz, patch-3.2.12.gz2.解压文件linux-3.2.tar.gztar -xzf linux-3.2.tar.gz
3.将文件linux-3.2更改为需要的内核版本号,如linux-3.2.4,mv linux-3.2 linux-3.2.4
4.解压patch-3.2.4.gzgunzip -d patch-3.2.4.gz
5.给内核打补丁patch -d linux-3.2.4 -p1 < patch-3.2.4
使用zcat命令可以在不解压的情况下给内核打补丁
zcat patch-3.2.4 | patch -d linux-3.2.4 -p1查看linux-3.2.4目录下的Makefile文件,如果VERSION = 3,PATCHLEVEL = 2,SUBLEVEL = 4则表明打补丁成功。内核版本回退到3.2.0
patch -R -d linux-3.2.4 -p1 < patch-3.2.4
或者
zcat patch-3.2.4.gz | patch -R -d linux-3.2.4 -p1
注意打补丁前最好不要修改内核文件,否则可能会导致打补丁失败
-
linux 内核源码打 patch
2018-12-14 14:32:07最新的版本是4.9.145,中间有10个增量版本,需要全部下载,增量包不支持跨版本,只能从相邻的版本打patch 增量包下载地址示例: 二、对增量包进行重命名 我使用 好压 的批量改名工具 三、对内核打上全部...一、下载当前Linux内核对应的增量包
我的内核当前版本是 4.9.135
最新的版本是4.9.145,中间有10个增量版本,需要全部下载,增量包不支持跨版本,只能从相邻的版本打patch
增量包下载地址示例:
二、对增量包进行重命名
我使用 好压 的批量改名工具
三、对内核打上全部补丁
工具使用方法:
第一个参数:内核源码目录
第二个参数:patch 目录
第三个参数:停止打patch 的版本号
linux-4.9.135$ ./scripts/patch-kernel usage: patch-kernel [-h] [ sourcedir [ patchdir [ stopversion ] [ -acxx ] ] ] source directory defaults to /usr/src/linux, patch directory defaults to the current directory, stopversion defaults to <all in patchdir>.
执行效果:
sun@machine:~/share/build/linux-4.9.135$ ./scripts/patch-kernel ./ ../ 4.9.145 Current kernel version is 4.9.135 ( Roaring Lionus) Applying patch-4.9.136 (xz)... done. Applying patch-4.9.137 (xz)... done. Applying patch-4.9.138 (xz)... done. Applying patch-4.9.139 (xz)... done. Applying patch-4.9.140 (xz)... done. Applying patch-4.9.141 (xz)... done. Applying patch-4.9.142 (xz)... done. Applying patch-4.9.143 (xz)... done. Applying patch-4.9.144 (xz)... done. Applying patch-4.9.145 (xz)... done. Stopping at 4.9.145 base as requested.
可以看到一次性将10个补丁全部打完。
最后将源码目录重命名
mv linux-4.9.135/ linux-4.9.145
-
Openwrt添加内核patch
2020-08-10 18:56:39Openwrt添加内核patch 在openwrt根目录执行以下指令 切换到内核路径下 增加新的patch 编辑要修改的文件 查看修改内容 生成新的patch 更新patch(切换到openwrt根目录) 重新编译固件 编译后patch会... -
给内核打patch的利器 quilt
2015-05-29 17:17:59给内核打patch 毕竟没有svn, 所以打起来麻烦点儿。用quilt 。 1 安装 sudo apt-get install quilt 2 使用 (1) 配置文件.quiltrc保存到当前用户的home目录 cat > ~/.quiltrc QUILT_DIFF_ARGS="--no-... -
buildroot package打patch方法
2021-12-24 16:38:00我们修改了busybox的源码和配置文件,需要通过在buildroot package里面通过打patch的方式,并指定我们的配置文件进行编译; 1、制作patch方法说明 patch文件也叫补丁,就是一个文本文档,这个文档包含了在两个不同... -
内核打补丁
2018-10-10 15:37:31内核打补丁 如果需要的某些特性并没有被现有内核支持,则需要去获取相关的补丁。比如,为了使内核支持图形化的启动界面,我们可能要用到bootsplash工具。!bootsplash项目 http://www.bootsplash.org/ 上提供了针对很... -
一种简单快速的Openwrt内核patch制作方式
2018-10-10 15:01:35openwrt的patch机制非常不错,应用的很广泛,从内核到应用都有涉及,patch机制也方便了多个用户之间的功能同步及差异控制。 在openwrt上常用的patch生成及修改方式为QUILT工具,应用此工具可以修改现有补丁以及生成... -
buildroot package如何打patch
2019-11-14 19:48:23今天修改了thttpd的源码,需要通过在buildroot package里面通过打patch的方式。 其实打patch的方式很简单,只要把生成的patch文件放在对应目录下,比如thttpd 放在后重新make clean,make命令,就会自动打好... -
CentOS 7 升级 kernel,给kernel打patch
2019-02-18 15:59:32CentOS 7 中安装或升级最新的内核:https://linux.cn/article-8310-1.html ELRepo,an RPM repository for Enterprise Linux packages:...Linux下patch打补丁命令 patch [ -b [ -B Prefix ] ] [ -f ] [ -l ] [ -N ... -
Linux下给内核或源码制作和打补丁操作命令--diff、patch
2016-11-28 13:36:45在做开发的过程中难免需要给内核及下载的一些源码打补丁或者说是升级,所以我们学习在Linux下使用diff制作补丁以及如何使用patch打补丁显得尤为重要。 diff与patch命令介绍 1、 diff命令 NAME diff - find ... -
如何制作patch文件及如何打patch 附带linux打补丁命令
2021-05-11 00:48:05对某个版本的Linux内核做了修改以后,如果希望发布出去给别人用,那么就需要制作针对此版本的patch文件。比如基于Linux-2.6.25内核 做了修改,修改后的内容放在文件夹Linux-2.6.25-yuanbor下,那么制作patch文件的... -
OpenWrt内核打补丁方法
2016-07-15 13:32:43OpenWrt内核打补丁方法最近在OpenWrt上配置支持IOS的USB tethering,发现开启kmod-usb-net-ipheth后,内核不识别手里的iphone5,经过多方调查,一个偶然机会发现iphone4是识别的,因此推测客户提供的,基于OpenWrt ... -
【记录】linux内核打补丁、编译
2017-06-04 18:29:12要使用光盘里的补丁文件,因为虚拟机中的补丁文件太老了1、解压内核tar -xjvf linux-2.6.22.6.tar.bz2 2、打补丁首先进入Linux内核根目录,然后使用以下命令打补丁patch -p1 < ../linux-2.6.22.6_jz2440.patch3、... -
centos patch-2.7.1-12.el7_7.x86_64.rpm内核补丁
2020-09-23 17:37:38centos patch-2.7.1-12.el7_7.x86_64.rpm内核补丁 -
制作linux内核补丁,patch文件
2020-08-05 17:17:141.copy内核代码到一个干净的linux系统目录下,比如系统压缩文件为:thd_linux_3.12.17.tar.gz 2.解压系统thd_linux_3.12.17.tar.gz,tar -zxvfthd_linux_3.12.17.tar.gz;解压系统后将系统文件夹重新命名为thd_linux... -
Linux下patch打补丁命令
2021-05-13 20:28:52转自... patch_file_namep:为path的缩写。n:指将patch文件中的path第n条’/’及其左边部分取消。-R:卸载patch包。--dry-run:尝试patch软件,并不真正修改软件... -
Linux生成和打上patch的方法
2021-05-16 06:03:42在团队开发的过程中,经常需要生成patch,或者打上别人提供的patch,那么一般情况是如何操作的呢。首先生成patch需要有两个工程,一个修改前的A工程,一个修改后的B工程。使用linux命令diff就可以生成patch了。格式... -
纪念第一次向Linux内核社区提交patch
2019-10-19 23:35:48最近在研究Linux内核random这一块的代码,在阅读源码的过程中,偶然发现代码中有个地方写的不规范,于是就踏上了向Linux社区提交patch的路。 使用centos 6.5系统。 1、装git和git send-email yum install git yum ... -
如何制作LINUX的patch文件及如何打patch
2020-05-08 10:02:00如何制作LINUX的patch文件及如何打patch 对某个版本的Linux内核做了修改以后,如果希望发布出去给别人用,那么就需要制作针对此版本的patch文件。 patch文件也叫补丁,就是一个文本文档,这个文档包含了在两个不同...