这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【EEPW-Let'sdesign】MicrochipSAMA7D65-V/7E

共1条 1/1 1 跳转至页

【EEPW-Let'sdesign】MicrochipSAMA7D65-V/7EW-04|80个包零闭源,我编了个模块验证

菜鸟
2026-11-11 22:47:33     打赏

申报里要确认两件事:底层代码是不是完全开源,实际可修改的空间有多大。

这两问得分开答。开源看许可证,能改看你能不能真把代码编进去。

license.manifest 里 80 个包

Yocto 构建完会在 tmp/deploy/licenses/ 下生成 license.manifest。格式是每个包五行:

PACKAGE NAME: base-files
PACKAGE VERSION: 3.0.14
RECIPE NAME: base-files
LICENSE: GPL-2.0-only

core-image-minimal 一共 80 个包。统计许可证:

grep "^LICENSE:" license.manifest | sed "s/^LICENSE: //" \
  | sort | uniq -c | sort -rn

结果:GPL-2.0-or-later | BSD-3-Clause 16 个,GPL-2.0-only & LGPL-2.1-or-later 9 个,MIT 和 GPL-2.0-only 各 8 个,剩下是 LGPL、BSD、Apache、Zlib、PD 各种组合。

04_01_开源构成.png【04_01_开源构成】

检索 CLOSED、Proprietary、binary-only,零命中。

那 4 个闭源组件

但 BSP 层里确实有受限件,得连配方一起查,只看 manifest 会漏——最小镜像根本没把它们装进来。

搜 LICENSE = "CLOSED" 和 LICENSE_FLAGS 里的 commercial:

04_02_闭源组件.png【04_02_闭源组件】

egt-media 是 EGT 图形演示的媒体素材,python3-cryptoauthlib 是安全芯片配套库,wireless-kit-webpages 是无线套件的网页资源,mchp-wireless-firmware 是二进制固件(LICENSE = "MICROCHIP_FW")。

而且不是理论存在。microchip-graphics-image 的 IMAGE_INSTALL 里就带着 egt-media,还拖了 linux-firmware-ralink 和 linux-firmware-ath6k。

分层看这个问题

启动链、内核 6.6.64、全部驱动、设备树——100% 开源且可改。 这是二次开发真正要动的地方。

闭源只出现在无线、图形媒体、安全芯片这些可选周边。 最小镜像不用它们,一样能跑。

选型时值得多问一句:这些闭源件是不在核心路径上,还是恰好就在你要用的功能上。你要是正好做无线,那 mchp-wireless-firmware 就成了必须接受的前提。

改得动吗,编个模块

开源是必要条件,不是充分条件。能改才算数。

我写了个最小的 hello 模块,用内核构建树编:

make -C <kernel-build> M=$(PWD) ARCH=arm \
  CROSS_COMPILE=arm-poky-linux-gnueabi- modules

04_03_模块验证.png【04_03_模块验证】

552 毫秒出来,hello.ko 3768 字节。

hello.ko: ELF 32-bit LSB relocatable, ARM, EABI5
vermagic=6.6.64-linux4microchip+sama7d65-2025.02
         mod_unload ARMv7 p2v8

vermagic 和 kernel-abiversion 里的完全一致,加载不需要 --force。

设备树改动更快,dtc 直接跑,毫秒级。

工具链上踩的坑

第一次编模块没成功,报 as: unrecognized option "-EL"。

原因是我图省事,直接拿 sysroots-components 里的 gcc-cross-arm 加 PATH。那个目录只有 gcc,没有 binutils,-EL 传下去找不到交叉汇编器,退回到主机的 as。

换成完整工具链就好了:tmp/work/.../meta-toolchain/1.0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/,里面有 as、ld、objdump 全套。

这个坑值得记:交叉编译报出奇怪的汇编器参数错误,多半是工具链不完整,不是代码问题。

结论

对"是否完全开源":是,核心链路全部开源可改。

对"可修改空间":够用,模块半秒、DTB 毫秒级,试错循环很顺。

前提是你别踩在那 4 个闭源组件上。





关键词: Microchip     SAMA7D65-V     模块    

共1条 1/1 1 跳转至页

回复

匿名不能发帖!请先 [ 登陆 注册 ]