随笔十三、Buildroot添加SpeexDSP库

语音对讲场景有时候需要实现回音消除或者噪声抑制功能,利用speexdsp的音频处理的3A算法可以实现需求,因此需要在Buildroot里添加speexdsp库。

1. 准备

speex官网下载SpeexDSP源码,当前最新版本是1.2.1,解压speexdsp-1.2.1.tar.gz到工作文件夹

2. 交叉编译

进入工作文件夹

cd speexdsp-1.2.1/
touch build.sh

编辑buils.sh文件

#!/bin/bash

PREFIX="/home/vm/tspi/speexdsp-1.2.1/build"
TOOLCHAIN_DIR="/home/vm/tspi_linux_sdk/buildroot/output/rockchip_rk3566/host/bin"
TOOLCHAIN="$TOOLCHAIN_DIR/aarch64-buildroot-linux-gnu-gcc"

@mkdir -p build

echo "配置..."
./configure \
  --prefix=$PREFIX \
  --host=aarch64-linux \
  --enable-shared \
  --enable-static \
  --enable-sse \
  CC=$TOOLCHAIN

echo "编译..."
make

echo "安装..."
make install

echo "清理..."
make clean

$PREFIX是生成库的目录,在工作文件夹下的build

$TOOLCHAIN是交叉编译工具

编译

./build.sh

在build/lib子文件夹里会生成静态库和动态库

3. 动态库使用

将3个动态库文件libspeexdsp.so、libspeexdsp.so.1、libspeexdsp.so.1.5.2拷贝到/home/vm/tspi_linux_sdk/buildroot/output/rockchip_rk3566/target/usr/lib/

编译buildroot、烧写镜像到泰山派开发板,程序运行时就可以调用speexdsp库函数了。

build/include子文件夹里面是头文件,供应用程序函数调用。

当然也可以在应用程序里直接使用静态库。

### 如何在 Buildroot添加 pip 支持 对于希望在 Buildroot 构建环境中集成 `pip` 的开发者来说,理解如何配置和利用 Buildroot 提供的功能至关重要。由于 Ubuntu 18 及其他一些 Linux 发行版可能需要单独安装 `pip`[^1],而在较新的 Python 版本中 `pip` 已经默认包含于其中[^3],因此,在基于 Buildroot 创建自定义根文件系统的场景下,直接支持 `pip` 成为了一个重要需求。 #### 配置 Buildroot 使用 pip 要使 Buildroot 支持 `pip` 安装包管理器,可以按照如下方法操作: - **启用 Python 解释器** 确保在 `.config` 文件中启用了 Python 支持。这通常意味着设置选项如 `BR2_PACKAGE_PYTHON3=y` 或者针对特定版本的 Python 设置相应的宏定义。 - **添加 pip 到目标系统** 为了让最终的目标设备能够运行 `pip` 命令,应该在 Buildroot 菜单配置 (`make menuconfig`) 下找到并勾选 `Python package manager (pip)` 项。具体路径可能是 `Target packages -> Programming languages -> python -> python-pip`. 一旦完成了上述配置更改,则可以通过执行标准编译流程来重建整个项目: ```bash make ``` 完成之后,生成的镜像将会携带预安装好的 `pip` 实用程序,允许用户在其上进一步扩展应用程序环境。 #### 自动化脚本示例 下面是一个简单的 shell 脚本例子,用于展示如何自动应用这些修改到现有的 Buildroot中: ```shell #!/bin/bash # 更新子模块并获取最新源码 git submodule update --init # 启用必要的软件包 echo 'BR2_PACKAGE_PYTHON3=y' >> .config echo 'BR2_PACKAGE_PYTHON_PIP=y' >> .config # 开始构建过程 make olddefconfig make -j$(nproc) ``` 此脚本假设当前目录即为 Buildroot 源代码所在位置,并且已经初始化好了 Git 子模块。它会追加所需的配置参数至现有配置文件末尾,并启动多线程编译任务以加速处理速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值