MTK SDK 不使用 OpenWRT 官方的 dts 定义 ROM 布局,网卡布局。
正式宣告这套源码不支持dts模式
如果要折腾相关驱动,直接改内核文件,把关联的宏打开,menuconfig打不开,手动打开
它,这套源码很多地方耦合性差,所以需要细心一点把牵连的宏都开了。
最后因为是openwrt编译框架,所以改动的地方需要学习补丁制作的方法,把修改之处做成补丁。
补丁的制作方式 检索 “ quilt 工具”
第一次开发openwrt,
从供应商拿到这个版本的sdk准备开发openwrt,
在折腾外部时钟的发现mtk一些坑
直接拿最新的openwrt源码什么编译问题都没有,
就是测试出来的wifi不稳定
于是不断的研究mtk这套源码,为啥wifi这么稳定,怎么移植到新的源码上。
编译后发现dts文件怎么样都是不加载的,所以即便怎么修改都是没意义的.
经过删除和修改文件的方式,发现固件的结果和dts不关连。
后面发现DTS功能应该是 DTB DTC DEVICETREE DTS OF 。。。 等这几个宏没打开
在make menuconfig里面尝试打开dtb
发现找不到user_devicetree 这类的宏在什么地方打开
经过仔细对比,大概率是在板子定义的 config3.10里面,它会在下载源码后,把这块配置加载到内核配置里面
但每次编译器会把最新config更新到这个文件里,所以如果要加载你想要的config配置,需要在编译器先把源码清掉。不然会被源码的配置反写到这里。
尝试将别的config3.10带有启动的这个宏配置文件进行加载,还是不生效
后面找到 被手动屏蔽掉的地方
打开还是不行
因为相关的宏没法打开,导致dtc工具没有被makefile 加载编译
直接找到dtc的mk文件强制打开它
这玩意来自于
网上找到一个补丁0103-MIPS-OWRTDT.patch
里面有描述这个dtb标志位怎么添加,可是这个补丁打不上,原因是内核版本不一致。
0103-MIPS-OWRTDT.patch
From c174d2250e402399ad7dbdd57d51883d8804bba0 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt>
Date: Mon, 15 Jul 2013 00:40:37 +0200
Subject: [PATCH 31/33] owrt: MIPS: add OWRTDTB secionSigned-off-by: John Crispin <blogic@openwrt>
---arch/mips/kernel/head.S | 3 +++arch/mips/ralink/Makefile | 2 +-arch/mips/ralink/of.c | 4 +++-3 files changed, 7 insertions(+), 2 deletions(-)--- a/arch/mips/kernel/head.S
+++ b/arch/mips/kernel/head.S
@@ -86,6 +86,9 @@ EXPORT(__image_cmdline).fill 0x400#endif /* CONFIG_IMAGE_CMDLINE_HACK */+ .ascii "OWRTDTB:"
+ EXPORT(__image_dtb)
+ .fill 0x4000__REFNESTED(kernel_entry, 16, sp) # kernel entry point
--- a/arch/mips/ralink/of.c
+++ b/arch/mips/ralink/of.c
@@ -66,6 +66,8 @@ static int __init early_init_dt_find_memreturn 0;}+extern struct boot_param_header __image_dtb;
+void __init plat_mem_setup(void){set_io_port_base(KSEG1);
@@ -74,7 +76,7 @@ void __init plat_mem_setup(void)* Load the builtin devicetree. This causes the chosen node to be* parsed resulting in our memory appearing*/
- __dt_setup_arch(__dtb_start);
+ __dt_setup_arch(&__image_dtb);strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
于是尝试对他进行手动修改
编译通过了,很开心,但内核没起来,但至少DTS文件是加载进去了
尝试把剩下的补丁也手动进去测试一下,
发现不行,后面的补丁都没打,因为从源码是上就没这个文件,所以可以认定这套源码本身不支持dts,
而且不是官方把一套支持dts 的源码改成他们的结构,而是这芯片的ralink源码本身就不支持这种操作。
参考.html
参考
MTK SDK 不使用 OpenWRT 官方的 dts 定义 ROM 布局,网卡布局。
正式宣告这套源码不支持dts模式
吐了 妈的
现在还剩下:
1.找mtk更新支持dts的额源码
2.给这套源码换内核版本,找一个差不多的但是支持dts的
3.将wifi驱动移植到最新的代码
本文发布于:2024-01-30 14:35:58,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170659656020704.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |