问题标签 [kbuild]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2155 浏览

kbuild - 是否可以在 Kconfig 中将选项转换为 int

我正在寻找一种将选项转换为 Kconfig 文件中的 int 的方法。例如,我想要:

当然,你不能使用=with select,所以上面的行不通。实际的选择列表有点长且不稳定,所以我想避免#ifdef在另一个文件中有一个字符串来将它们转换为整数(加上这些值在 Makefiles 和 C 文件中使用......)

我的替代方法是让BUFSIZE用户可配置,但这是有问题的,因为我不能很好地限制可能的值。同样,如果我为 , 指定一个默认值int并运行make oldconfig(该值之前未定义),它会提示我输入一个值。如果您为选择设置了默认值,它似乎不会提示您进行 make oldconfig。这很重要,因为FOOBAR它经常关闭/打开,我希望它在打开时自动选择架构的默认值。

我想知道是否有一个我忽略的干净解决方案。

0 投票
1 回答
248 浏览

linux-kernel - 编译linux内核时如何添加内核参数?

我按照这个项目中的说明进行操作,但我不知道如何添加"console=ttyAMA0,115200 panic=5"到内核参数。任何人都知道如何添加这个内核参数?

0 投票
1 回答
312 浏览

android - 如何仅构建包含我更新的源代码的目录

通过从三星和 AOSP 下载源代码并按照自述文件中的说明运行 make,我成功地为三星 Note 3 创建了一个图像。但现在我想修改一个设备驱动程序,并在图像中查看结果。这意味着我真的不想重新创建整个图像。而只是修改后的文件,即 /drivers/char/examples 目录。我尝试了“m”、“mm”和“mmm”,但出现以下错误:

我还尝试从示例目录运行 make 并得到:

这是我在此目录中的内容以及 make 文件:

我应该怎么做,当我更新 c 源文件时,我可以构建一个更新的图像来刷新我的手机并尝试查看结果?

我想知道我是否删除了examples.ko,make会再次重建。问题是如果我只为 /examples 目录发出 make ,这会起作用吗?

谢谢,肖恩

0 投票
1 回答
1211 浏览

linux - Hello world kconfig 和 makefile 使其类似于 linux 内核 menuconfig

如何实现 hello world Makefile 和 Kconfig?

我知道如何编写 Makefile,但是我们如何编写类似于 Linux Kernel 的 Makefile 和 Kconfig。
我想编写一个可以打开类似于 Linux Kernel 的 menuconfig 的小程序?

我不希望它用于 Linux Kernel 模块编译,我知道那部分,我想学习将任何应用程序转换为这样的可配置应用程序。

我应该从哪里开始的任何示例指针?

0 投票
1 回答
650 浏览

eclipse - 支持 Kconfig 的 IDE?

是否有任何 IDE 可以导出 Kconfig 文件以自动添加包含和源文件夹,以及设置在那里定义的实际符号?

我的意思是,几乎不可能有一个完整的 Eclipse 环境用于 Linux 内核开发。现在我基本上有一个“Makefile Project”,其中包含选定的包含和源文件夹并内置构建,但我的代码依赖于内核构建中定义的符号。

编辑

我刚刚意识到内核构建会生成一个 include/generated/autoconf.h,这对此很有帮助,可能对大多数开发人员来说已经足够了

0 投票
0 回答
156 浏览

linux - 如何识别给定内核源代码文件的 .config 或 menuconfig 条目

在 Linux Yocto (fsl-community-image, imx6qsabresd, core-image-kernel-dev) 下为 PCIe 设备 (avc8000nano) 编译树外驱动程序期间,我收到以下警告消息,后来禁止加载驱动程序:

我想,我必须更改内核配置,但我不知道如何为定义这些符号的源代码文件获取相应的 .config 或 menuconfig 条目。

0 投票
1 回答
4067 浏览

c - Suggestions to handle `Wframe-larger-than`-warning on kernel module

Hello and a happy new year,

I'm working on a kernel-module. It is necessary to do a numeric calculation of some parameter to set up the device correctly. The function works perfectly but the gcc compiler (I'm using kbuild) gives me the warning:

If I'm right this means that space local variables exceed a limitation given by the machine the module compiled on.

There are some questions now:

  1. Does this warning refer to the whole memory space needed for the module, this explicit function or this function and its sub-functions?
  2. How critical is this?
  3. I don't see a way to reduce the needed memory. Are there some suggestions to handle this? Any how-to?

Maybe it is helpful: The calculation uses a 64bit fixed-point-arithmetic. All the functions of this library are inline functions.

Thanks in advance

Alex


Following the advice from @Tsyvarev the problem could reduce to the allocation in a function as this example shows (I know that the code doesn't make sense - it's only for showing how I declare the variables inside the functions):

0 投票
1 回答
817 浏览

linux-kernel - 为我的项目使用“make menuconfig”/Kconfig 基础设施

我想利用现有的 'make menuconfig' / Kconfig 基础设施为我自己的项目构建一个配置文件,这与 Linux 内核或模块开发无关。我主要在 Linux 上开发。

我在哪里可以得到代码?是否有 API 可以读取 make menuconfig 创建的配置文件?最后一个问题(虽然我想我知道答案):它会在 Windows 上运行吗?

问候。

0 投票
0 回答
92 浏览

c - 使用 Kbuild 从不同的内核目录有选择地构建模块

我在使用 KBUILD 有选择地从不同目录构建模块时遇到了麻烦。我有 2 个内核目录 Kernel / kernel-XXX

让驱动程序目录结构如下

虚拟驱动需要 ac,bc,cc 进行编译。我在 kernel-XXX 中有一个更新版本的 virtual_driver_XXX.c,它也依赖于 ac、bc、cc

如何修改 kernel/drivers/boom 目录中的 makefile 以从 kernel-XXX 目录中获取 virtual_directory_XXX.o。这里应该采取什么方法。

kernel/drivers/boom 目录下的当前makefile如下。

生成文件

我想要类似的东西

生成文件

问题是我在 kernel-XXX/drivers/boom 中没有 Makefile,因为我不知道如何使用 kernel/drivers/boom 目录中的 ao/bo/co 构建 virtual_driver_XXX。

0 投票
1 回答
1652 浏览

compilation - Makefile 在编译时通过定义?

我试图在编译时为内核模块传递一个“名为 DEBUG 的定义变量”。

即提供与下面的 DEBUG 相同的功能,但在内核模块的 Makefile 中。

谁能给我一个关于如何实现这一点的提示?

生成文件:

我正在使用链接中的模块(在 init 函数中有一个小的变化,请参见#if #endif 语句)

你好ç:

我想看到 dmesg 在之后产生以下内容

sudo insmod test_module.ko

解决方案:

使下面的代码按预期执行