31-Openwrt 内核版本替换

有些时候因为一些解不了的bug,在新的内核版本里面已经解决了,这时候我们会想着升级下内核版本,而不是把整个openwrt升级。

将openwrt14.07中的内核版本从3.10.49更换成17.01的4.4.198
1、更改文件include/kernel-version.mk
-LINUX_VERSION-3.10 = .49
+LINUX_VERSION-4.4 = .198
2、修改文件​target/linux/ramips/Makefile

将KERNEL_PATCHVER:= ××那一行的xx改成自己希望的版本系列即可,但不能具体为4.4.198,应为4.4。不然会报错。

-KERNEL_PATCHVER:=3.10
+KERNEL_PATCHVER:=4.4
3、添加对应的patch

对应新版本的内核,也会有对应的patch,所以我们需要到17.01里面把

  • target/linux/generic/patches-4.4
  • ta
### OpenWRT 内核模块编写、加载与调试 #### 编写内核模块 在OpenWRT环境下编写内核模块涉及创建一个新的包,并将其集成到构建系统中。通常情况下,开发者会将新的内核模块放置于`package/kernel/`目录下[^2]。对于每一个希望作为独立模块编译的组件来说,在对应的Makefile文件里指定其属性为可单独编译是非常重要的。 当准备就绪之后,可以通过命令行工具来触发特定模块的编译过程: ```bash make package/kernel/<module_name>/compile V=s ``` 这里`<module_name>`应替换为目标模块的具体名称,比如`hello_kernel`。此操作将会依据预设配置仅对该模块执行编译工作而不影响整个系统的重新编译效率。 #### 自动化加载机制 许多现成可用的内核模块已经存在于OpenWRT发行版之中,它们被设计成可以在文件系统初始化完成后自动装载。这类自动化行为通常是借助于`autoload`脚本实现的,它会在适当时候调用`insmod`指令完成实际的模块插入动作[^1]。 如果想要让某个自定义编写的模块也能享受到同样的待遇,则需确保该模块已被正确加入到了相应的启动序列当中去。这可能涉及到编辑某些配置文件或是调整现有脚本来适应新增加的功能需求。 #### 调试技巧 针对可能出现的问题以及优化性能方面的需求,掌握有效的调试方法至关重要。一种常见做法是在源码内部添加日志输出语句以便追踪函数调用路径和变量状态变化情况;另外还可以利用诸如`printk()`这样的内置API来进行更深层次的信息收集[^4]。 除此之外,也可以考虑采用GDB等外部调试器连接目标设备进行实时监控分析。不过需要注意的是,由于嵌入式平台资源有限的原因,在选择合适的调试手段之前应当充分评估各种方案的成本效益比。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

creatorly

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

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

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

打赏作者

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

抵扣说明:

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

余额充值