linux 内核 config_localversion_auto,关于CONFIG_LOCALVERSION_AUTO设置去掉内核版本号SVN后缀...
最近在TI 的DVSDK下写驱动模块时老受linux内核svn版本号问题的困扰,如"2.6.37-svn41"、"2.6.37-svn51"等等,svn版本变一次,从上面取下的代码内核版本就要变一次,这样造成原来驱动模块ko文件必须重新拷贝到新的lib/modules/2.6.37-svn51下,非常麻烦且不利于发版本。
按其说法将arch/arm/configs/omap3_evm_defconfig里面
CONFIG_LOCALVERSION_AUTO=y
修改为#CONFIG_LOCALVERSION_AUTO=y
或#CONFIG_LOCALVERSION_AUTO is not set
清理内核源码根目录下的.config文件后,重新make omap3_evm_defconfig或者make linux_config,CONFIG_LOCALVERSION_AUTO相关项虽然未设置但依旧被内建。
后来发现将其设置为:
CONFIG_LOCALVERSION_AUTO=n
才使其默认不选上,其原理研究后再补上。
但是这样做了之后,编译linux内核并引导发内核版本变成了"2.6.37+",多了个“+”号
这个就需要修改scripts/setlocalversion的脚本了,先来看一段代码
scm_version()
{
local short
short=false
cd "$srctree"
if test -e .scmversion; then
cat .scmversion
return
fi
if test "$1" = "--short"; then
short=true
fi
# Check for git and a git repo.
if test -d .git && head=`git rev-parse --verify --short HEAD 2>/dev/null`;then
# If we are at a tagged commit (like "v2.6.30-rc6"), we ignore
# it, because this version is defined in the top level Makefile.
if [ -z "`git describe --exact-match 2>/dev/null`" ]; then
# If only the short version is requested, don't bother
# running further git commands
if $short; then
echo "+"
return
fi
……
fi
……
fi
}
这里有个echo "+",那“2.6.37+”里面的“+”到底是这条语句产生的吗?开始看到有些博客说修改这里,注释掉"echo "+"",但并未起作用。需要认真分析一下,看第3个f语句,意思是至少有.git目录存在的话才会执行这后面的,但我们用的svn,没有.git的,所以这里的echo "+"并未执行。再看一段代码:
# scm version string if not at a tagged commit
if test "$CONFIG_LOCALVERSION_AUTO" = "y"; then
# full scm version string
res="$res$(scm_version)"
else
# append a plus sign if the repository is not in a clean
# annotated or signed tagged state (as git describe only
# looks at signed or annotated tags - git tag -a/-s) and
# LOCALVERSION= is not specified
if test "${LOCALVERSION+set}" != "set"; then
scm=$(scm_version --short)
res="$res${scm:++}"
fi
fi这里的if就是说如果CONFIG_LOCALVERSION_AUTO定义的话,会加上svn版本号,我们已经设为n了,所以会执行else部分,scm=$(scm_version --short)虽然将--short传给scm_version使得short=true,但.git不存在,所以scm_version并未打印出“+”,再来看res="$res${scm:++}"这句话什么意思呢?scm:++实际上是说如果scm未定义的话,将使用默认值"+"也就是说:+表示使用默认值的意思,而第二个“+”表示默认值。所以将第二个“+”去掉即可。也就是改成res="$res${scm:+}",即可打印不带“+”的版本号“2.6.37”。
希望给遇到同样问题的同行以帮助!
linux 内核 config_localversion_auto,关于CONFIG_LOCALVERSION_AUTO设置去掉内核版本号SVN后缀...相关推荐
- [替换操作系统内核]——Linux替换内核版本、设置默认内核及删除特定版本内核
一.Linux内核下载地址 为了方便大家找到各个版本的Linux内核,将地址附上:Index of /pub/linux/kernel/ 二.Centos操作系统替换内核版本 当前系统内核版本为3.1 ...
- linux 3.5.0-23-generic内核版本系统调用数目,Linux操作系统分析(三)- 更新内核与添加系统调用...
环境:Ubuntu 12.10 学号:SA****199 1.更新内核: 直接安装的系统内核版本一般不是最新,用 uname -a 查看一下 自己的版本,OK,我的是: Linux chenh ...
- Linux Malloc分析-从用户空间到内核空间
Linux Malloc分析-从用户空间到内核空间 本文介绍malloc的实现及其malloc在进行堆扩展操作,并分析了虚拟地址到物理地址是如何实现映射关系. ordeder原创,原文链接: http ...
- linux内核4.0,新闻|Linux内核4.0功能:实时内核补丁,支持PS3
Linux Torvalds 在Linux内核邮件列表里发布了Linux内核新的稳定版. Linux 4.0,代号为'Hurr durr I'm a sheep',带来了一小系列新硬件支持,驱动改进, ...
- linux 编译3g驱动_linux重新编译内核
1.内容简介 linux内核简介 linux内核版本号 linux为什么重新编译内核 linux内核编译模式 linux内核功能划分 linux内核编译步骤 2linux内核简介 内核,是一个操作系统 ...
- s5pv210 linux内核移植,S5PV210(TQ210)学习笔记——内核移植与文件系统构建之二
由于之前做过2440和6410,鉴于时间原因,这里暂时跨过其他模块的裸机驱动和uboot移植,直接进入内核移植及驱动开发方面的学习. 三 设置uboot启动参数 我的nfs根目录为/nfsroot,我 ...
- linux 各用户内存_Linux用户空间与内核空间(理解高端内存)
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数 ...
- 一文读懂 Linux 下单机实现百万并发的内核黑科技:连接跟踪(Conntrack)
公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 本文介绍连接跟踪(connection tracking,conntrack,CT)的原理,应用,及其在 Linu ...
- linux 上下文切换时对用户task和内核task区别对待——针对fpu
目录 关于pthread和kthread的说明 和kthread/pthread区别对待相关的数据结构 调用图 fpu load/store 在调度中的处理 fpu load/store 在KVM中的 ...
最新文章
- 2016-2017-2 《Java程序设计》预备作业1 总结
- OpenCV之feature2d 模块. 2D特征框架(1)Harris 角点检测子 Shi-Tomasi角点检测子 定制化创建角点检测子 亚像素级的角点检测 特征点检测
- 前端进阶之如何正确判断this的指向?
- 组装自己的tesla超级计算机
- JAVA学习--面向对象的特征二:继承性
- java中几种基本数据类型之间的转换
- 今日头条人群洞察报告
- box2dweb 学习笔记--sample讲解
- python vs golang_Ruby vs Golang:四个维度对比,谁更胜一筹?
- 金三银四,那浏览器兼容你知多少?
- 信息系统安全等级保护备案任务详单
- CS 系统框架二[增加默认启动以及代码打开窗体]
- Oracle常用SQL总结
- pytorch基础知识
- java 小总结,以后复习看以看
- java中的值传递与引用传递
- Linux core文件生成及设置 查看core文件由哪个程序生成的
- 21天挑战赛第三文——多线程threading
- 适用于 iOS、Android 和 Windows 设备的移动设备管理
- 易乐游装在云服务器_新手搭建云服务器详细过程