如何使用Openwrt snapshot target构建kmod?

我最近想构建一个sf21的kmod,但是不太清楚怎么用这个target跑起来。

1 个赞

@libiunc OP 大手子速来

(是不是要用 OpenWrt SDK builder那一套,不知道 snapshot 有没有)

我没用过image builder(我菜)

这个是加入feeds.*里面使用的,作为第三方源码(readme文件里有写)看起来限定内核版本是6.6(6.12应该问题不大)

你可以参考 coolsnowwolf/lede 或者 immortalwrt/user-FAQ

sir this way(op官方教程)

个人推荐是克隆源码本地编译,对我来说很简单

友情提醒,主线的sf21没有硬件流量卸载支持(视同软路由,只能开软件流量卸载。我还没研究

git clone github.com/openwrt/openwrt

cd openwrt

#安装编译依赖(readme里面有,其特色化分支Immortalwrt有一键安装脚本,不过自己会用包管理器去装也没问题,只是一些包的名称在每个发行版内有些许不同)

#修改feeds.conf.default 在最后一行加入第三方源

git pull

./scripts/feeds update -a

./scripts/feeds install -a

make menuconfig

选中siflower sf21 bpi-rv2

高级编译选项 llvm使用host的(不选你会交叉编译一遍rv64gc的llvm20,相当耗时)

按/ (右shift左边那个)搜索 mimic(你要搜的名称)

然后根据提示找路径 按y选中 (master/main分支,建议勾选luci以使用webui来获取更好的使用体验)

保存并退出 然后执行

make V=s -j$(nproc)

如果提示错误2 请j1跑一遍得到报错发在这里

如果没报错 在

bin/target/siflower/sf21/

下找到squashfs刷入即可(initramfs也能刷,只是刷了开机不保留数据)

原厂固件没有校验,随便刷 刷炸了uboot里面httpd 192.168.1.1 然后电脑设定对应的地址和网关即可进入failsafe webui(俗称的不死uboot)

如果你有ipk/apk/bin的文件 想要一个带受kmod的固件(有可执行的二进制文件,但是系统缺少对应的kmod)

请参考

根据makefiles可知

这个软件包依赖

libbpf libffi kmod-sched-core kmod-sched-bpf

你只需要将其加入 openwrt selector

这里,然后点击请求构建即可。过一会你就能下载到带这些kmod的固件了

2410稳定版没有siflower这个target,

早些时候snaoshot分支的内核是6.6,但是今天 github.com/openwrt/openwrt/pull/20555 被合并了,你请求构建出来的固件 内核版本应该是6.12

不过隔壁Immortalwrt的selector还没同步官方源码 你还是可以搞到6.6的固件