dtb对于linux驱动是否有用?
wszgrcy opened this issue · 2 comments
wszgrcy commented
事情是这样的,我买的是另一个比较便宜的盒子,提取出的dtb,无线驱动名是ap6356 但是android的dmesg告诉我其实我的无线是rtl8822bs
然后我看了下硬件,也确实是rtl的
于是我先找到4.4-legacy版本的armbian(因为这个版本的有对应的驱动),刷上sd后,虽然用的是其他的dtb,但是驱动确实跑上去了
于是我自己尝试把驱动移植到5.10上,折腾了一天后终于构建完了,启动竟然发现也成功了
这里就有两个问题,我用的4.4和自己移植的5.10都是rockchip4-b的,并且dtb上驱动既不是ap6356也不是rtl8822bs,但是为啥依旧可以使用?是不是dtb仅对uboot阶段生效?而这个阶段没有使用无线?
还是说dtb里定义的驱动名其实是个摆设?关键的是引脚,中断之类的定义?
最后问下大佬有没有什么交流群?自己搞实在太费劲了,好多东西都自己摸索
WillzenZou commented
- dtb在uboot和内核中都有用,相关驱动都会获取
- 关于定义的名称,驱动不一定会去读取名称那个属性,所以起啥名都没关系,只要针脚寄存器之类的配置对了就行,可能你那盒子有多个WIFI的版本,厂商懒得改。
- 但有一个肯定会读取匹配的compatible值,只要驱动有匹配到,就能获取它需要的属性节点了,一般来说其他什么名字不太重要。只要compatible,针脚,时钟,寄存器等配置对了就行。
wszgrcy commented
- dtb在uboot和内核中都有用,相关驱动都会获取
- 关于定义的名称,驱动不一定会去读取名称那个属性,所以起啥名都没关系,只要针脚寄存器之类的配置对了就行,可能你那盒子有多个WIFI的版本,厂商懒得改。
- 但有一个肯定会读取匹配的compatible值,只要驱动有匹配到,就能获取它需要的属性节点了,一般来说其他什么名字不太重要。只要compatible,针脚,时钟,寄存器等配置对了就行。
感谢大佬回复...过年前提的问题,现在差不多明白了...那个驱动源码我看了.
直呼卧槽...引脚定义全部写进驱动,完全没有用dtb上的东西.非常尴尬.
好在源码上的引脚定义正好和我接的一样....