正点原子阿尔法IMX6ULL开发板移植mjpg_streamer

2024-03-10 16:59

本文主要是介绍正点原子阿尔法IMX6ULL开发板移植mjpg_streamer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

正点原子阿尔法IMX6ULL开发板移植mjpg_streamer


文章目录

  • 正点原子阿尔法IMX6ULL开发板移植mjpg_streamer
  • 1.nfs共享目录
  • 2.移植 MJPG 库
  • 3 移植 mjpg-streamer 服务器


1.nfs共享目录

首先已经搭建号nfs环境。在开发板下
先创建目录get

mkdir get

开发板终端执行下列命令

mount -t nfs -o nolock,nfsvers=3 192.168.10.100:/home/alientek/linux/nfs get/

ip地址自行设置,虚拟机的ip

然后查看get目录
在这里插入图片描述
如何搭建nfs环境见其他文章

2.移植 MJPG 库

使用 mjpg-streamer 要用到 MJPG 库, 所以我们要先把 MJPG 库移植到开发板上。
MJPG 库下载地址:
http://www.ijg.org/files/
在这里插入图片描述
在这里插入图片描述
将下载好的 jpegsrc.v8b.tar.gz 压缩包放到ubuntu中 自定义mjpg 文件夹下, 然后解压:

tar -vxf jpegsrc.v8b.tar.gz

在这里插入图片描述
然后在目录下创建文件夹用来存放编译生成文件,执行以下命令配置编译选项:

./configure --host=arm-poky-linux-gnueabi --prefix=/home/alientek/tools/mjpg/install/

参数说明:
–prefix=/home/alientek/tools/mjpg/install/: 为上步创建的文件夹路径, 根据实际填写。
–host=arm-linux-gnueabihf: 为交叉编译工具的名字。
在这里插入图片描述
执行 make 编译, 完成后如下图:

make

在这里插入图片描述

make install

进入install 文件夹查看, 有如图所示文件即为成功:
在这里插入图片描述
将install 的/lib/下的库文件拷贝到开发板的/lib/目录下:

在这里插入图片描述

3 移植 mjpg-streamer 服务器

mjpg-streamer 是一个命令行应用程序, 可通过网络将 JPEG 文件从网络摄像头流传输到各种类型的查看器, 例如浏览器, mplayer 等其他能够接收 MJPG 流的软件。
下载网站:
MJPG-streamer / Code / [r182] (sourceforge.net)
https://sourceforge.net/p/mjpg-streamer/code/HEAD/tree/

在这里插入图片描述
输入

svn checkout https://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer-code

下载, 目录下多出以下文件:

在这里插入图片描述
进入 mjpg-streamer/mjpg-streamer-code/mjpg-streamer/文件夹:
执行

source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

使能交叉编译工具

make clean

输入以下命令修改交叉编译工具:

find -name "Makefile" -exec sed -i "s/CC = gcc/CC = arm-linux-gnueabihf-gcc/g" {} \;

正点原子阿尔法开发板是基于I.MX6UL芯片的ARM Linux开发板,它提供了两种交叉编译工具链:

  • 一种是Poky编译器,是Yocto项目编译出的,常用于编译Uboot和Linux出厂源码,以及快速编译Qt应用程序到开发板上运行。
    另一种是通用的交叉编译器,用于ARM Linux驱动和应用开发。
    这两种交叉编译工具链的名字分别为:
  • arm-poky-linux-gnueabi-
  • arm-linux-gnueabihf-
grep "arm-linux-gnueabihf-gcc" * -nR

在这里插入图片描述
继续修改编译选项, 搜索“CFLAGS” :
在这里插入图片描述
根据搜索出来的信息, 进入 plugins 文件夹, 修改 plugins/input_uvc/Makefile, 第 15 行添加

CFLAGS += -I /home/alientek/tools/mjpg/install/include/

更据1中安装的MJPG 库目录来,自行修改,下同
第 25 行改为:

LFLAGS += -L /home/alientek/tools/mjpg/install/lib/-ljpeg

在这里插入图片描述
回到 mjpg-streamer 目录下, 执行

make 

编译, 成功后如下图

在这里插入图片描述
在目录下会生成.so 库文件和 mjpg_streamer,
在这里插入图片描述
将.so 文件拷贝到开发板的/lib/目录下, mjpg_streamer 文件夹拷贝到开发板的/bin/目录下, www 拷贝
到/opt/目录下:
先将文件拷贝到nfs目录下

cp *.so start.sh mjpg_streamer /home/alientek/linux/nfs/mjpg
cp www /home/alientek/linux/nfs/mjpg -rf
cp mjpg_streamer /home/alientek/linux/nfs/mjpg

让后在板子终端下拷贝到相应位置
在这里插入图片描述

cp *.so /lib/
cp www /opt/ -rf
cp mjpg_streamer /bin/

在这里插入图片描述
到此移植结束,移植后自行测试
此处我使用正点原子的ov2640测试出了点问题,努力解决中

这篇关于正点原子阿尔法IMX6ULL开发板移植mjpg_streamer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/794896

相关文章

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因

开发板NFS挂载文件目录

文章目录 序NFS1. 安装 NFS 服务器和客户端在服务器上(NFS 服务器端)在客户端上(NFS 客户端) 2. 配置 NFS 服务器创建共享目录编辑 `/etc/exports` 文件启动 NFS 服务 3. 在客户端挂载 NFS 共享创建挂载点挂载 NFS 共享验证挂载 4. 设置开机自动挂载5. 解决权限问题 序 本节主要实现虚拟机(服务器)与开发板(客户端)通过N

安卓开发板_联发科MTK开发评估套件串口调试

串口调试 如果正在进行lk(little kernel ) 或内核开发,USB 串口适配器( USB 转串口 TTL 适配器的简称)对于检查系统启动日志非常有用,特别是在没有图形桌面显示的情况下。 1.选购适配器 常用的许多 USB 转串口的适配器,按芯片来分,有以下几种: CH340PL2303CP2104FT232 一般来说,采用 CH340 芯片的适配器,性能比较稳定,价

RT-Thread(Nano版本)的快速移植(基于NUCLEO-F446RE)

目录 概述 1 RT-Thread 1.1 RT-Thread的版本  1.2 认识Nano版本 2 STM32F446U上移植RT-Thread  2.1 STM32Cube创建工程 2.2 移植RT-Thread 2.2.1 安装RT-Thread Packet  2.2.2 加载RT-Thread 2.2.3 匹配相关接口 2.2.3.1 初次编译代码  2.2.3.

Redis 篇-深入了解基于 Redis 实现分布式锁(解决多线程安全问题、锁误删问题和确保锁的原子性问题)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录         1.0 分布式锁概述         1.1 Redis 分布式锁实现思路         1.2 实现基本的分布式锁         2.0 Redis 分布式锁误删问题         2.1 解决 Redis 分布式锁误删问题         3.0 Redis 分

多线程篇(并发相关类- 原子操作类)(持续更新迭代)

目录 前言 一、原子变量操作类(AtomicLong为例) 1. 前言 2. 实例 二、JDK 8新增的原子操作类LongAdder 三、LongAccumulator类原理探究 前言 JUC包提供了一系列的原子性操作类,这些类都是使用非阻塞算法CAS实现的,相比使用锁实现原子性操作这在性能上有很大提高。 由于原子性操作类的原理都大致相同,这里讲解最简单的AtomicLo

【Java编程的逻辑】原子变量 CAS 显示锁

原子变量 在理解synchronized中有使用synchronized保证原子更新操作,但是使用synchronized成本太高了,需要先获取锁,最后还要释放锁,如果获取不到锁还需要等到。这些成本都是比较高的,对于这种情况,可以使用原子变量。 Java并发包中的基本原子变量类型有以下几种: AtomicBoolean:原子Boolean类型,常用来在程序中表示一个标志位 AtomicIn

基于IMX6ULL的Cortex-A中断原理讲解,以及编写其中断向量表

首先借助STM32我们需要了解中断系统是如何构成的         会有一个中断源,也就是能够向CPU发出中断请求的设备或事件。中断源不分硬件和软件,也就是产生中断信号,就会执行中断服务函数         但是CPU是如何知道中断源产生后就找到对应的中断服务函数呢,这个时候就要引入中断向量表,它的主要功能是描述中断对应的中断服务函数,每个中断源都有一个唯一的中断号(也称向量号),

libmad音频解码库-Linux交叉编译移植

下载并解压libmad-0.15.1b.tar.gz 下载链接:https://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz $tar -xvf libmad-0.15.1b.tar.gz$cd libmad-0.15.1b 1、先执行下面的命令:这条命令是为了适配高版本的gcc,因为高版本的gcc已经将-fforce-mem去除了: