佐须之男的博客

技术需要沉淀,成长需要痛苦,成功需要坚持,敬仰需要奉献

如何适配OpenWrt不支持的硬件-OpenWrt适配-跟着佐大学OpenWrt开发进阶培训班22讲

为什么有些硬件OpenWrt不支持?

  • OpenWrt的kernel对该硬件支持完善,但缺乏相关的适配。只需要做简单适配flash layout、gpio、dts等。

  • OpenWrt的kernel对该硬件的驱动支持不完善 ,如缺乏相关的驱动、DTS支持。缺乏PHY驱动、无线网卡驱动、交换机驱动等。

  • OpenWrt的kernel不支持该平台,但官方的kernel或者主线kernel支持此硬件。全新的SOC芯片,例如:Apple M1芯片、RK3568、IPQ6018等。

从宏观角度上讲适配OpenWrt的原理

  • 针对kernel,添加硬件驱动的支持,让外设跑起来。driver support,需要熟悉dts、硬件的datasheet、调试是关键。

  • 针对kernel,添加arch级别的支持,让CPU跑起来。platform support,通常SOC厂商会提交相应patch到内核。

如何适配OpenWrt不支持的硬件?

  • 适配OpenWrt的kernel,也可使用官方或者主线kernel。

  • 适配Bootloader(U-boot) ,也可以使用机器自带的U-Boot。

  • 适配configs、脚本、patch、Makefile等,如:生成Image的Makefile、 /etc/board.d、/lib目录的脚本、内核默认配置等。

适配的一般步骤 (rootfs模式)

  • 研究官方文档

  • 编译OpenWrt

  • 配置交叉编译工具链

  • 编译kernel

  • 编译U-boot

  • 构建刷机镜像

  • 微调OpenWrt系统配置

基于Rockchip rk3328、rk3399、rk3568方案讲解如何适配OpenWrt

« 上一篇

© 2016 佐须之男版权所有 | 业务合作 181-1435-4589 (陆工)