rk3568 buildroot 软件包升级方法及 iptable nat 问题解决(iptables No chain target match by that name. )

  • Buildroot 2023 sdk中默认 iptable的版本1.6.1, 本文通过将其升级到1.8版本,介绍buildroot 软件包的一般升级方法 。另外分析了: iptables -t nat错误: iptables: No chain/target/match by that name和ERROR: 0 not a valid target的解决方法

buildroot 软件包升级方法

buildroot没有类似openwrt opkg一样自带方便易用的包管理工具,应用软件基本上都需要在sdk框架下编译rootfs进行定制。通过,rk3568官方发布的sdk是基于buildroot某个版本定制。应用软件的版本也就随buildroot 基线确定了,如果想升级某个应用软件的版本,就需要自己准备源码进行编译安装了。下面以ipTable为例,介绍buildroot应用软件升级方法。

iptable v1.6.1升级到1.8

首先从官方上下载包含有iptable 1.8版本buildroot包, 不建议直接从其他渠道下载单独的iptable源码,因为buildroot基线 通常有特定版本的应用软件以及想对应的makefile文件 ,还有针对 buildroot做适配的一些补丁。

下载后,从中提取出iptables包及其依赖包。

#下载最新buildroot包
wget https://buildroot.org/downloads/buildroot-2024.02.9.tar.gz

#解压
buildroot-ef2af4b67f3403fc0feaca8a07d1733f17c6b316

#提取其中的iptables包及依赖包,更新到buildroot sdk对应目录下
package\iptables
package\libnftnl

编译问题

#编译错误 [iptables 1.8.8 Configuring] no suitable libnftnl found, :no suitable libnftnl found.
checking for libnftnl >= 1.1.6... no
*** Error: no suitable libnftnl found. ***
    Please install the 'libnftnl' package
    Or consider --disable-nftables to skip
    iptables-compat over nftables support

解决方案是下载libnftnl1.6版本, 重新编译buildroot后升级成功。

iptable nat : No chain/target/match by that name. or ERROR: 0 not a valid target)

现象

buildroot内核中已经设置了iptable相关组件,但是执行命令提示错误。无论 是1.6.1还是1.8版本均存在该问题。现象如下:

root@RK356X:/# iptables -t nat -A POSTROUTING -s 192.18.28.100/24 -j SNAT --to-source 190.99.99.99
iptables: No chain/target/match by that name.

root@RK356X:/# iptables -t nat -L
ERROR: 0 not a valid target)
Aborted
root@RK356X:/# iptables -V
iptables v1.6.1

解决:问题根源 是少一个ko[bpfilter.ko]

分析线索:编译内核过程中生成了一些ko文件 , 其中bpfilter需要手动加载,

-rw-r--r-- 1 root root   173080  928 12:11 ./net/bpfilter/bpfilter.ko
-rw-r--r-- 1 root root   376328  928 12:11 ./net/ipv4/tcp_htcp.ko
-rw-r--r-- 1 root root   369424  928 12:11 ./net/ipv4/tcp_bic.ko
-rw-r--r-- 1 root root   346000  928 12:11 ./net/netfilter/xt_physdev.ko
-rw-r--r-- 1 root root   816864  928 12:11 ./net/bridge/netfilter/ebtables.ko
-rw-r--r-- 1 root root   628256  928 12:11 ./drivers/net/wireless/marvell/mwifiex/mwifiex_sdio.ko
-rw-r--r-- 1 root root  1271088  928 12:11 ./net/8021q/8021q.ko
-rw-r--r-- 1 root root   368936  928 12:11 ./net/ipv4/tcp_westwood.ko
-rw-r--r-- 1 root root 12784112  928 12:11 ./drivers/net/wireless/marvell/mwifiex/mwifiex.ko
-rw-r--r-- 1 root root 20732936  928 12:11 ./drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmdhd.ko

两种解决方案:

**解决方法一: **

拷贝./net/bpfilter/bpfilter.ko到文件系统中,手动inmod

解决方法二:

#检查内核编译选型,将其设置为*
--- BPF based packet filtering framework (BPFILTER)destination                                                               x x  
  x x                                                       <M>   bpfilter kernel module with user mode helper
  

使用方法二修改内核编译选型, 更新 内核后, 无需要手动加载ok, iptable工作正常。

image-20250109155142612

### RK3568 Buildroot 配置与构建说明 对于RK3568芯片,Buildroot 提供了一套完善的工具链来简化嵌入式 Linux 系统的构建过程。以下是针对该芯片的具体配置和构建指导。 #### 准备工作 确保安装了必要的依赖项,包括但不限于 GCC、make 和 git 工具。可以通过包管理器如 apt-get 或 yum 安装这些工具[^2]。 #### 获取源码 下载最新的 Buildroot 源代码仓库: ```bash git clone https://github.com/buildroot/buildroot.git cd buildroot ``` #### 初始化配置 为了支持 RK3568 芯片,建议基于已有的 Rockchip 平台模板进行初始化设置: ```bash make rockchip_rk3568_defconfig ``` 这一步会加载默认适用于 RK3568 的配置选项,涵盖了基本外设的支持和其他常用功能的选择[^1]。 #### 自定义配置 如果需要调整某些特定参数或添加额外组件,则可通过图形界面进一步定制化: ```bash make menuconfig ``` 在此模式下可以根据项目需求启用或禁用各项特性,比如网络协议栈、文件系统类型或是用户空间程序等。 #### 开始编译 完成上述准备工作之后就可以执行实际的编译操作了: ```bash time make -j$(nproc) ``` 这里 `-j` 参数指定了并发作业的数量,默认采用 CPU 核心数作为最大并行度以加速整个流程;而 `time` 命令用于记录总耗时以便后续优化参考[^4]。 #### 结果验证 成功完成后将会得到一套完整的固件映像文件集,通常位于输出目录下的 images 文件夹中。接下来可将其部署至目标硬件设备上测试运行效果[^3]。 ```python import os def check_build_output(): output_dir = "output/images" files = ["zImage", "rk3568-xxx.dtb", "rootfs.squashfs"] for f in files: path = os.path.join(output_dir, f) if not os.path.exists(path): print(f"{f} does not exist.") else: print(f"{f}: Found") check_build_output() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月光技术杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值