泰山派RK3566:Buildroot系统实现视频监控-ffmpeg+nginx+trmp+usb摄像头推流

序言

网上目前大多是以ARM架构为基础,依据IMX6ull开发板相关资料进行移植操作,针对RK-AARCH64的相关内容较少,坑较多,现做个总结。
RK3566 是基于 AARCH64 的处理器,即 RK3566 处理器使用的是 ARMv8-A 架构的 64 位模式。
也就是说,RK3566 支持 AARCH64 指令集和特性。因此需要AARCH64的交叉编译环境,以及openssl,pcre,zlib第三方依赖包

实验环境

1.虚拟机:VMware Workstation Pro   ---  Ubuntu18.04
2.开发板:立创开发板-泰山派-RK3566  ---   Buildroot系统
3.nginx-1.20.0
4.openssl-3.2.1
5.pcre-8.45
6.zlib-1.3**

实验步骤

1.虚拟机中安装交叉编译器(GNU)

交叉编译器下载地址在这里插入图片选择述
选择红框内的进行下载,将下载的交叉编译工具gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz复制到你想安装的目录下,选择为/opt文件夹下,复制完成后在/opt目录下输入命令进行解压:

 sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar -C /opt/

解压之后获得gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu的文件夹,这个文件夹的名字太长,将文件夹重命名为:gcc-aarch64-linux-gnu

sudo mv gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu gcc-aarch64-linux-gnu

将/opt/gcc-aarch64-linux-gnu/bin目录添加到环境变量中

sudo gedit /etc/profile

在文件的末尾添加如下内容:

export PATH="/opt/gcc-aarch64-linux-gnu/bin:$PATH" 

接下来输入命令,让环境变量生效:

source  /etc/profile

重启一下:

reboot

重启之后输入命令,查看环境变量是否生效:

aarch64-linux-gnu-gcc -v

出现如下图所示,则安装成功。(我安装的是2017版本)
注意:记录红框处的安装路径,后期要用到
在这里插入图片描述

2.下载Nginx、nginx-rtmp-module、openssl、pcre、zlib

1.自行选择文件目录,执行下面命令,在虚拟机中下载相关文件

 1. wget http://nginx.org/download/ngi
### 解决方案 在遇到 `arm-buildroot-linux-gnueabihf-gcc` 编译错误 `'没有那个文件或目录'` 的情况下,通常是因为以下几个原因: 1. **工具链未正确安装**:如果工具链未完全解压或者路径配置有误,则可能导致命令无法找到对应的可执行文件。 2. **动态链接库缺失**:某些依赖项可能未安装,特别是对于 ARM 工具链而言,缺少必要的核心支持包可能会引发此类问题。 3. **环境变量未生效**:即使已将工具链路径添加到 `/etc/profile` 中,但如果会话未重新加载该配置文件,也可能导致命令不可用。 以下是针对上述情况的具体分析和解决方法: #### 一、确认工具链是否正确安装并解压 确保下载的工具链已经成功解压至指定位置。可以通过以下方式验证: ```bash ls /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/ ``` 应能看到类似 `arm-linux-gnueabihf-gcc` 的二进制文件[^1]。如果没有看到对应文件,说明解压过程存在问题,需重新解压工具链压缩包。 #### 二、检查动态链接库是否存在 有时即便工具链本身无误,但由于系统缺乏必要组件(如 LSB Core 支持),仍会出现 “没有那个文件或目录” 错误。此时可以尝试安装 Linux Standard Base core 软件包来解决问题: ```bash sudo apt-get update && sudo apt-get install lsb-core ``` 这一步骤能够修复因缺少基础运行时支持而导致的功能异常[^3]。 #### 三、更新 shell 配置使更改立即生效 虽然已经在全局 profile 文件中追加了新的 `$PATH` 设置,但当前用户的 zsh 或 bash 可能尚未应用这些修改。建议手动 source 此脚本或将相关语句加入个人 dotfiles 如 `.zshrc` 来持久化效果: ```bash source /etc/profile echo 'export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/' >> ~/.zshrc ``` 另外需要注意的是,在 SSH 远程登录场景下,默认只会读取 login shell 初始化逻辑而非交互式非登录模式下的定义;因此最好显式调用一次上面提到的方法以保障一致性[^2]。 最后提醒一点关于 Qt 应用程序开发中的特殊情况——即当启用了基于 libudev 的输入设备检测机制之后,无论是否设置了隐藏游标的选项(QT_QPA_EGLFS_HIDECURSOR),只要存在任何有效的指针装置都会强制呈现光标图标[^4]。不过这个问题与本次讨论的主题无关联,仅作为补充信息提供给读者了解背景知识之用。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值