我最近想构建一个sf21的kmod,但是不太清楚怎么用这个target跑起来。
@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的固件
