为什么当我更改BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE并运行make linux-reconfigure内核.config不会改变?

时间:2018-03-13 15:51:12

标签: buildroot

Buildroot 7d43534625ac06ae01987113e912ffaf1aec2302 2018.02,Ubuntu 17.10 host。

我跑:

// perfect-world.js
// Assumes that no args are ever omitted, nothing ever
// throws (catching is up to the caller). Functions in this
// file may also call each other, but with caution. Any function
// that uses the result of something that might fail go in messy-shell.
// Functional, in the Functional Programming sense.
export const getDOMElement = (selector, element) => {
  return element.querySelector(selector);
};

// NOTE: knows nothing of Promises, try/catch, JSON.parse, etc.
// Doesn't mutate the DOM either, just processes server response.
export const processAJAXData = data => {
  return Object.entries(data).forEach(datum => {
    // do stuff.
  });
};

其中kdb是具有make qemu_x86_64_defconfig printf 'BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=\"kdb\"\n' >>.config make olddefconfig time make BR2_JLEVEL="$(nproc)" 的Linux内核配置。

然后如预期的那样:

CONFIG_KGDB=y

有一场比赛。

但后来我想尝试一个新的内核配置,所以我试试:

grep '^CONFIG_KGDB=y' ./output/build/linux-4.15/.config

其中sed -i 's/BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=kdb/BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=nokdb/' 是具有nokdb的内核配置,然后是:

CONFIG_KGDB=n

但令我惊讶的是,内核time make BR2_JLEVEL="$(nproc)" linux-reconfigure 没有改变,.config仍在那里。

只有我这样做:

CONFIG_KGDB=y

是否有更好的方法可以强制重新生成内核rm -f ./output/build/linux-4.15/.config time make BR2_JLEVEL="$(nproc)" linux-reconfigure ,例如其他一些.config目标?

我不喜欢这个linux-*解决方案,因为它迫使我处理"内部" rm内的路径。

我希望output为我做再生。

如果您打开和关闭linux-reconfigure,这会影响Linux内核的BR2_TARGET_ROOTFS_INITRAMFS选项。

http://lists.busybox.net/pipermail/buildroot/2018-March/215817.html

1 个答案:

答案 0 :(得分:1)

检查配置文件的时间戳,以便执行以下操作:

touch kdb
touch nokdb
printf 'BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=\"kdb\"\n' >>.config
make olddefconfig
time make BR2_JLEVEL="$(nproc)"

kdbnokdb具有相同的修改日期,内核不会在下一个重新配置:

sed -i 's/BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=kdb/BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=nokdb/'
time make BR2_JLEVEL="$(nproc)" linux-reconfigure

但是如果你触摸新的配置文件,它就可以工作,即使没有明确使用linux-reconfigure目标:

touch nokdb
time make BR2_JLEVEL="$(nproc)"

或者,如果您只编辑已使用的文件而不是指向新文件,则配置也会按预期更新。