嵌入式linux之buildroot(九)开发期间使用buildroot

1. 问题

Buildroot 的正常操作是下载一个压缩包,对它进行解压缩,然后配置、编译和安装该压缩包中的软件组件,源代码会被提取到 output/build/package-version中,这是一个临时目录,当使用“make clean”时,该目录将被完全删除。所以我们不应该直接修改output目录的源码,buildroot提供OVERRIDE_SRCDIR机制去解决这种问题,用于修改代码并同步。

2. 方法

2.1 分析

~/buildroot$ make menuconfig
→ Build options
($(CONFIG_DIR)/local.mk) location of a package override file

这里看出,配置文件默认为buildroot/loacal.mk。

2.2 实施

~/buildroot$ cp ./dl/linux/linux-5.15.18.tar.xz ./
~/buildroot$ tar -vxf linux-5.15.18.tar.xz
~/buildroot$ vim local.mk
LINUX_OVERRIDE_SRCDIR=$(CONFIG_DIR)/linux-5.15.18
~/buildroot$ make linux-rebuild
>>> linux custom Syncing from source dir /home/ubuntu20/buildroot/linux-5.15.18

make linux-rebuild all命令会将$(CONFIG_DIR)/linux-5.15.18修改过的文件复制同步到output/build/linux-custom。

2.3 测试

~/buildroot/linux-5.15.18$ vim ./init/calibrate.c
void calibrate_delay(void)
{
	unsigned long lpj;
	static bool printed;
	int this_cpu = smp_processor_id();
	
	// 添加内核打印,内核启动过程中会打印此信息
	printk(KERN_INFO "*****Hello Buildroot Kernel*****\n");
				
	......
}
~/buildroot$ make linux-rebuild
~/buildroot$ ./output/images/start-qemu.sh
# dmesg | grep -i hello
*****Hello Buildroot Kernel*****

可以看到,我在LINUX_OVERRIDE_SRCDIR指定路径下修改内核,启动时打印了我的结果。

3. 总结

这里演示了如何修改内核源码,其他软件包同样可以。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lljwork2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值