Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >如何非交互地配置Linux内核构建?

如何非交互地配置Linux内核构建?
EN

Unix & Linux用户
提问于 2011-09-01 02:56:49
回答 3查看 6.3K关注 0票数 6

是否有任何方法以这种方式配置linux内核(仅举一个例子):

代码语言:javascript
代码运行次数:0
复制
make config CONFIG_OPTION=y && make config CONFIG_OPTION1=no CONFIG_OPTION3=64 CONFIG_OPTION4=/path/

这些配置选项的所有依赖项和替代方案都将在非交互模式下自动设置。

EN

回答 3

Unix & Linux用户

发布于 2012-09-28 12:08:30

选项I:

qconfig工具似乎达到了这个目的,尽管这取决于您喜欢哪个接口。它使用一个您希望更改的CONFIG_ directives输入文件,并对它们进行更改。我还没试过。

我还没有试过,但它看起来不像按照您所描述的那样,通过命令行参数具有接口。

选项II:

sed -i 's:CONFIG_X=y:# CONFIG_X is not set:g' .config

奇怪的是,非交互式配置似乎根本没有引起注意。当然,它在一般情况下并不适用,但是当您只需要翻转几个开关(几乎没有或没有依赖项),例如一个make目标,那么它将非常有用,比直接使用sed更方便用户,并且比维护.config-with-X.config-without-X更好。

票数 3
EN

Unix & Linux用户

发布于 2011-09-01 03:09:06

最简单的方法是使用所需的选项手工构建.config文件。当然,这需要给出所有的配置选项,因此它适用于对现有的交互式创建的.config文件所做的微小更改。

如果您要求使用当前的.config,但只通过make更改一些标志,我不知道。但是您可以尝试通过脚本编辑.config文件,然后运行make

票数 1
EN

Unix & Linux用户

发布于 2016-09-11 13:27:15

答案移至:如何编写脚本menuconfig来自动化Linux内核构建配置?

Config片段

scripts/kconfig/merge_config.sh

用法:

代码语言:javascript
代码运行次数:0
复制
git checkout v4.9

make x86_64_defconfig

grep -E 'CONFIG_(DEBUG_INFO|GDB_SCRIPTS)[= ]' .config
# # CONFIG_DEBUG_INFO is not set

# GDB_SCRIPTS depends on CONFIG_DEBUG_INFO in lib/Kconfig.debug

cat <<EOF >.config-fragment
CONFIG_DEBUG_INFO=y
CONFIG_GDB_SCRIPTS=y
EOF

# Order is important here. Must be first base config, then fragment.
./scripts/kconfig/merge_config.sh .config .config-fragment

grep -E 'CONFIG_(DEBUG_INFO|GDB_SCRIPTS)[= ]' .config
# CONFIG_DEBUG_INFO=y
# CONFIG_GDB_SCRIPTS=y

不幸的是,进程替换不起作用:

代码语言:javascript
代码运行次数:0
复制
./scripts/kconfig/merge_config.sh arch/x86/configs/x86_64_defconfig \
    <( printf 'CONFIG_DEBUG_INFO=y\nCONFIG_GDB_SCRIPTS=y\n' ) 

原因:https://unix.stackexchange.com/a/164109/32558

merge_config.shmake alldefconfig目标的简单前端。

交叉编译时,必须在运行ARCH时导出merge_config.sh,例如:

代码语言:javascript
代码运行次数:0
复制
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
make defconfig
./scripts/kconfig/merge_config.sh .config .config-fragment

Buildroot使用BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILEShttps://stackoverflow.com/questions/1414968/how-do-i-configure-the-linux-kernel-within-buildroot实现它的自动化

相关:https://stackoverflow.com/questions/7505164/how-do-you-non-interactively-turn-on-features-in-a-linux-kernel-config-file

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/19905

复制
相关文章
Linux内核如何与硬件交互
Linux 提供了各种工具,用于报告和检查 CPU、RAM、存储和网络的操作。本文演示了其中许多实用程序的工作原理。
云云众生s
2024/05/03
1700
Linux内核如何与硬件交互
Linux 非交互式SSH
ssh是linux管理时常用的一个服务,ssh有个特点,属于交互式操作,就是当你执行ssh时,他会要求你手动输入密码 这就给shell脚本带来了麻烦,如果想在脚本中使用ssh进行自动化远程操作,非常不方便 ssh支持双方配置后的免密码操作,但比较麻烦 还有一种常用的方式:expect,把密码放入脚本,执行expect,他可以帮助我们自动完成输入密码的这个交互,expect实质是进行模拟操作,执行脚本时会感觉到这个动作 下面介绍下 sshpass,以非交互式操作ssh,可以直接在命令行指定密码,方便了
dys
2018/04/03
4.1K0
构建Linux内核调试环境
构建Linux内核调试步骤 系统版本 当前宿主机内核版本 // 目前的环境是ubuntu[root@ubuntu ~]$ uname -a Linux ubuntu 5.15.0-41-generic #44-Ubuntu SMP Wed Jun 22 14:20:53 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux 调试的内核版本 linux-4.19.25 安装系统组件 qemu-kvm [root@ubuntu ~]$ sudo apt install libvi
用户4700054
2023/02/26
2.7K0
构建Linux内核调试环境
Linux内核配置
#[ip] #关闭IPV6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 #[arp系列],内容太多,详细看http://www.52wiki.cn/docs/jichu/818 #ARP参数,检查一次相邻层记录的有效性的周期。当相邻层记录失效时,将在给它发送数据前,再解析一次。缺省值是60秒。 net.ipv4.neigh.default.gc_stale_time = 120 #定义了对目标地址为本机I
陈不成i
2021/05/25
2.5K0
linux内核版本介绍_如何查看linux内核
第一列,版本性质:主分支(mainline),稳定版(stable),长期维护版(longterm)
全栈程序员站长
2022/09/28
26.4K0
linux内核版本介绍_如何查看linux内核
Linux登录shell和非登录(交互式shell)环境变量配置
使用Jenkins执行shell脚本的时候, 碰到command not found. 比如java mvn, 这些环境变量配置在/etc/profile 中, 但jenkins执行的时候并没有加载.
Ryan-Miao
2020/05/19
2.7K0
【Linux 内核构建】如何查看 Linux 系统中可以选择的内核有哪一些?如何切换 Linux kernel 版本?
grub 配置文件(通常为 /boot/grub/grub.cfg)包含了所有可用的内核选项。可以查看这个文件来了解所有可用的内核版本:
Lokinli
2024/09/09
2770
【Linux 内核构建】如何查看 Linux 系统中可以选择的内核有哪一些?如何切换 Linux kernel 版本?
如何编译 Linux 内核
曾经有一段时间,升级 Linux 内核让很多用户打心里有所畏惧。在那个时候,升级内核包含了很多步骤,也需要很多时间。现在,内核的安装可以轻易地通过像 apt 这样的包管理器来处理。通过添加特定的仓库,你能很轻易地安装实验版本的或者指定版本的内核(比如针对音频产品的实时内核)。
用户8639654
2021/10/15
7.2K0
【Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )
在上一篇博客 【Linux 内核】编译 Linux 内核 ④ ( 打开 Linux 内核编译 菜单配置 |菜单配置中的光标移动与选中状态 | 保存配置 | 配置项帮助文档 ) 中 , 已经将编译配置保存到了 .config 文件中 ;
韩曙亮
2023/03/30
12.4K0
【Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )
【Linux 内核】编译 Linux 内核 ④ ( 打开 Linux 内核编译 菜单配置 |菜单配置中的光标移动与选中状态 | 保存配置 | 配置项帮助文档 )
在菜单配置中 , 可以选择裁剪一些内核模块 , 内核越小 , 运行速度越快 ; 上面的内核编译选项 , 如果不清楚细节 , 暂时按照默认配置编译即可 ;
韩曙亮
2023/03/30
2.3K0
【Linux 内核】编译 Linux 内核 ④ ( 打开 Linux 内核编译 菜单配置 |菜单配置中的光标移动与选中状态 | 保存配置 | 配置项帮助文档 )
如何优雅地打包非 JavaScript 静态资源
假设你正在开发一个网络应用程序。在这种情况下,你很可能不仅要处理 JavaScript 模块,还要处理各种其他资源--Web Workers(它也是 JavaScript ,但它拥有一套独立的构建依赖图)、图片、CSS、字体、WebAssembly 模块等等。
coder_koala
2021/11/10
1.3K0
如何优雅地打包非 JavaScript 静态资源
如何定制Linux内核?
上篇文章我们讲述了如何定制Linux外围文件系统,本文我们来讲讲如何定制Linux内核。
我是乖宝宝哦
2022/10/06
2.2K0
如何定制Linux内核?
Linux内核配置-ARP系列
all为所有,defalut为默认,其他为接口自己的 如果接口没填写,将会把defalut的值放接口上,实际生效的为all和接口中参数值较大的那个 #arp_ignore arp_ignore的参数含义如下: 定义了对目标地址为本机IP的ARP询问的不同应答模式。 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.eth0.a
陈不成i
2021/05/25
6K0
Linux内核参数的配置方法
/proc是一个伪文件系统,可以像访问普通文件系统一样访问系统内部的数据结构,获取当前运行的进程、统计和硬件等各种信息。例如可以使用cat /proc/cpuinfo获取CPU信息。
mazhen
2023/11/23
2420
【Linux 内核】编译 Linux 内核 ③ ( 安装 ncurses | 安装 flex | 安装 bison | 打开 Linux 内核编译配置菜单 )
命令 , 打开 Linux 内核编译配置菜单 , 进行 编译配置 ; 执行上述命令后 各种报错 , 最终排查完毕后 , 需要安装 ncurses , flex , bison 这
韩曙亮
2023/03/30
23.8K0
【Linux 内核】编译 Linux 内核 ③ ( 安装 ncurses | 安装 flex | 安装 bison | 打开 Linux 内核编译配置菜单 )
Linux内核15-内核如何创建进程
不论是clone()、fork()还是vfork(),它们最核心的部分还是调用_do_fork()(一个与体系无关的函数),完成创建进程的工作。它具有如下参数:
Tupelo
2022/08/15
2.1K0
Linux系统内核如何升级
有些小伙伴在使用Linux系统时可能会遇到网卡不能使用,亮度不能调节,触摸板不能识别,等等问题,这些都是内核版本过低而导致,只需要把内核升级一下就可以, 下面为大家分享一下Linux系统内核升级方法。
用户4988085
2021/07/28
8.6K0
如何编译安装Linux内核
Compiler: gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
用户8705048
2021/06/08
7.1K0
如何以非交互方式将参数传递给交互式脚本
我有一个 Bash 脚本,它使用 read 命令以交互方式读取命令参数,例如 yes/no 选项。是否有一种方法可以在非交互式脚本中调用这个脚本,并将默认选项值作为参数传递?
程序熵
2024/03/06
1330
如何以非交互方式将参数传递给交互式脚本
如何编写一个简单地内核模块
Linux给应用程序提供了丰富的api,但是有时候我们需要跟硬件交互,访问一些特权级信息,所以可以使用编写内核模块这种方式。 另外Linux是宏内核结构,效率非常高,没有微内核那样各个模块之间的通讯损耗,但是又不能方便的对内核进行改动,可扩展性和可维护性比较差,内核模块提供了一种动态加载代码的方式,弥补了宏内核的不足。
yifei_
2022/11/14
1.3K0

相似问题

如何非交互地配置Linux内核构建?(标记不正确为重复)

10

配置Linux内核

10

如何非交互地运行Arch?

10

Linux内核是如何构建的

20

如何编写脚本menuconfig来自动化Linux内核构建配置?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文