当前位置: 首页 > news >正文

Imx6ull交叉编译nginx

Imx6ull交叉编译nginx

需要下好的包
Nginx(下载压缩包源码)
nginx-rtmp-module(可以下载压缩包源码也可以 git clone https://github.com/arut/nginx-rtmp-module.git)
pcre(下载源码)
zlib(下载源码)
openssl(下载源码)

下载完之后解压到指定目录就好了(不用交叉编译 不用交叉编译 真可以不用)
我的位置是:

/home/jemee/linux/tool/openssl-1.1.1g
/home/jemee/linux/tool/nginx-rtmp-module	
/home/jemee/linux/tool/pcre-8.39
/home/jemee/linux/tool/zlib-1.2.13

在这里插入图片描述

进入nginx-1.20.0目录。在这个目录下新建一个名为config.sh的脚本文件,文件内容如下:

./configure --prefix=/home/jemee/linux/tool/nginx-1.20.0/install \
--with-http_ssl_module \
--with-http_mp4_module \
--with-http_v2_module \
--without-http_upstream_zone_module \
--with-cc=arm-linux-gnueabihf-gcc  \
--with-cpp=arm-linux-gnueabihf-cpp \
--with-pcre=/home/jemee/linux/tool/pcre-8.39 \
--with-openssl=/home/jemee/linux/tool/openssl-1.1.1g \
--without-http_gzip_module \
--add-module=/home/jemee/linux/tool/nginx-rtmp-module

参数—prefix指定安装目录,–with-cc=arm-linux-gnueabihf-gcc
–with-cpp=arm-linux-gnueabihf-cpp \在指定交叉编译工具
指定库文件目录
在consigure之前还需要配置一些文件

首先打开 nginx 源码目录下的 auto/cc/name 文件,将 21 行处的”exit 1”给注释掉!
在这里插入图片描述

修改完成之后保存退出。接着打开 auto/types/sizeof 文件,将 15 行处的” ngx_size=”修改为” ngx_size=4”,
并且将 36 行处的”$CC”修改为”gcc”,如下所示

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

为了防止编译pcre的时候报错,需要配置pcre交叉工具链。修改auto/options
在这里插入图片描述

修改objs/Makefile
在这里插入图片描述

使用sh config.sh,执行脚本成功如下:

在这里插入图片描述

这个时候我们需要修改 nginx 源码目录下的 objs/ngx_auto_config.h 文件,将如下内容添加到该头文件中

#ifndef NGX_HAVE_SYSVSHM
#define NGX_HAVE_SYSVSHM 1
#endif

添加完成之后保存退出, make 编译
若出现以下错误(参考知乎:https://zhuanlan.zhihu.com/p/591025497)
在这里插入图片描述

查看报错信息是openssl的编译出错,但是在objs/Makefile下并未找到和 -m64 相关的选项。 此时的-m64参数其实在openssl解压文件夹下。其实到这一步,我们可以发现Nginx的Makefile会生成各个模块的Makefile,最后调用这些Makefile去编译各个模块。既然如此,自己手动配置openssl的编译选项,并单独编译。
编辑 objs/Makefile 文件

在这里插入图片描述
修改为:
在这里插入图片描述

进入openssl解压目录
先建一个 .openssl 目录(用命令行建立 nginx会在这个目录里找需要的库),然后执行以下配置
./config no-asm shared --prefix=/home/jemee/linux/tool/openssl-1.1.1g/.openssl --cross-compile-prefix=arm-linux-gnueabihf-

no-asm: 在交叉编译过程中不使用汇编代码代码加速编译过程;
shared: 生成动态连接库。
–cross-compile:交叉工具前缀

修改openssl 的Makefile 在 vim 下/-m64找到所有-m64选项删除-m64,我这里只有两处
然后执行openssl 的make
成功会生成以下内容:
在这里插入图片描述

然后回到nginx解压目录 执行make
若出现以下错误:
在这里插入图片描述

在/obj/Makefile里添加 –lpthread
在这里插入图片描述

执行make 成功如下:

在这里插入图片描述

make install
在这里插入图片描述

在ARM上执行nginx

将nginx拷贝到arm平台根文件系统下。再将安装目录下的conf、logs、html 文件夹拷贝到开发板Linux 系统的/etc/nginx 目录下。 conf文件夹下包含了nginx的配置文件。
执行 nginx ./nginx -p /etc/nginx 报错:getpwnam (“ xxxx ”) failed in /etc/ nginx / nginx .conf
在开发板系统上 vi /etc/nginx/conf/nginx.conf 将第一行内容改成如下图所示:
在这里插入图片描述
在这里插入图片描述

没有用户的话建立用户
在这里插入图片描述

我们先用addgroup命令,添加root组,组号(GID)为0。执行addgroup命令前,必须先建立空白的/etc/group文件:
/ # touch /etc/group
/ # addgroup -g0 -S root
然后再用adduser命令,添加一个root账户,用户号(UID)为0,所属组为root组,家目录为/root,shell为/bin/sh。执行adduser命令前,必须先建立空白的/etc/passwd文件:

/ # touch /etc/passwd
/ # adduser -h/root -Groot -S -u0 -s/bin/sh root

我这里建立的是root1
在这里插入图片描述

运行出错
在这里插入图片描述

给权限运行
在这里插入图片描述

Pc测试

在这里插入图片描述

在交叉编译可能会遇到很多错误(我装了两天半才搞好),可以参考别人的经验:
https://codeleading.com/article/125368509/
https://zhuanlan.zhihu.com/p/591025497
https://blog.csdn.net/qq_42020799/article/details/125874687
真诚的感谢其他博主的帮忙

相关文章:

Imx6ull交叉编译nginx

Imx6ull交叉编译nginx 需要下好的包 Nginx(下载压缩包源码) nginx-rtmp-module(可以下载压缩包源码也可以 git clone https://github.com/arut/nginx-rtmp-module.git) pcre(下载源码) zlib(下载源码) openssl(下载源…...

阿里云短信验证

1.了解阿里云用户权限操作 需要通过个人账户获得 授权码(id、密码),再通过这些信息获得服务 阿里云网址 :https://www.aliyun.com/ 1.登陆阿里云服务器2.进入个人账号然后点击 AccessKey 管理3.创建用户组4.添加用户组权限&…...

Excel常用可视化图表

目录柱状图与条形图折线图饼图漏斗图雷达图瀑布图及甘特图旭日图组合图excel图表:柱状数据条、excel热力图、mini图可视化工具的表现形式:看板、可视化大屏、驾驶舱 柱状图与条形图 条形图是柱状图的转置 类别: 单一柱状图:反映…...

虹科分享 | 网络流量监控 | 数据包丢失101

什么是数据包? 数据包是二进制数据的基本单位,在网络连接的设备之间编号和传输,无论是在本地还是通过互联网。一旦数据包到达其目的地,它就会与其他数据包一起按编号重新组合,回到最初传输的较大消息中。 数据包是我们…...

毕设常用模块之舵机介绍以及使用方法

舵机 舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为 20ms,宽度为 1.5ms 的基准信号,将获…...

残酷现实:大部分的App小程序,日活<100

残酷现实:99%的APP小程序&#xff0c;日活<100 日活跃用户数量(DAU&#xff09;是一个核心指标 Daily Active Users 互联网的难度系数一路拉高 只有流过血的战士&#xff0c;才能意识到战场的残酷 趣讲大白话&#xff1a;赵本山小品台词&#xff0c; 残酷的现实已直逼我心理…...

excel 一对多数据查询公式 经典用法

所谓一对多&#xff0c;就是符合某个指定条件的有多个结果&#xff0c;要把这些结果都提取出来。 下面咱们就说说一对多查询的典型用法&#xff0c;先看数据源&#xff1a; A~D列是一些员工信息&#xff0c;要根据F2单元格指定的学历&#xff0c;提取出所有“本科”的人员姓名…...

Zookeeper3.5.7版本——客户端命令行操作(节点删除与查看)

目录一、节点删除示例1.1、节点删除1.2、递归节点删除二、查看节点状态示例一、节点删除示例 1.1、节点删除 在客户端上创建 test 节点&#xff0c;并查看该节点 [zk: localhost:2181(CONNECTED) 5] create /test "123456"删除 test 节点&#xff0c;并查看该节点 […...

一句话设计模式6:享元模式

享元模式:局部单例模式。 文章目录 享元模式:局部单例模式。前言一、享元模式的作用二、如何实现享元模式总结前言 享元模式其实很简单,但是如果用好,确实可以达到减少内存,事半功倍的效果;适合 系统要创建大量相似对象,相同对象等; 一、享元模式的作用 1 享元模式可以解决对象…...

【C语言进阶】文本与二进制操作文件,优化通讯录。

前言&#xff1a;上篇文章&#xff0c;我们已经学习了有关本地磁盘文件的常用文件操作&#xff0c;已经能够对本地文件进行调用与读写。我们磁盘中还存在着一些内容用二进制存储的文件&#xff0c;这也就是我们今天将要讲解的内容。一、文本文件与二进制文件根据数据的组织形式…...

CleanMyMac X4.20最新Mac系统垃圾清理工具

CleanMyMac X是一款Mac系统垃圾清理工具,可以清除Mac系统多余的语言包、系统缓存、应用程序、PowerPc软件运行库等,是硬盘瘦身的好工具。在面对一款多功能型的软件时&#xff0c;复杂的操作面板是最容易让人头疼的&#xff0c;好在 CleanMyMac 一直以来都原生支持简体中文语言&…...

为什么做知识管理,就想选择Baklib呢?

随着科技的不断发展&#xff0c;知识管理已经成为现代企业不可或缺的一个重要组成部分。由于信息化快速发展&#xff0c;企业每天都会产生大量的数据和信息&#xff0c;如何高效地获取、整理和利用这些信息已经成为了企业成功的关键因素之一。为了更好地管理企业知识&#xff0…...

Spring Cloud融合gateway自带GatewayFilter使用 | Spring Cloud 15

一、Spring Cloud Gateway内置GatewayFilter 路由过滤器允许以某种方式修改传入的 HTTP 请求或传出的 HTTP 响应。路由过滤器的范围是特定路由。Spring Cloud Gateway 包括许多内置的 GatewayFilter 工厂。 官网地址&#xff1a;https://docs.spring.io/spring-cloud-gateway…...

SVN 版本控制软件

SVN 版本控制软件 属于C/S结构软件&#xff08;客户端与服务端&#xff09; 服务端软件&#xff1a;VisualSVN 网址&#xff1a;Downloads | VisualSVN 下载好&#xff1a;VisualSVN-Server-5.1.3-x64.msi 客户端软件&#xff1a;TortoiseSVN 网址&#xff1a;http://tor…...

全流程基于最新导则下的生态环境影响评价技术方法及图件制作与案例

目录 专题一、生态环境影响评价框架及流程 专题二、基于遥感解译的土地利用现状图的编制 专题三、生物多样性测定及R语言分析 专题四、植被类型及植被覆盖度图的编制 专题五、生物量与净初级生产力测定&#xff1a;实测及模型 专题六、生态系统类型及服务价值评估 专题七…...

(蓝桥真题)分果果(动态规划)

题目链接&#xff1a;P8746 [蓝桥杯 2021 省 A] 分果果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 样例1输入&#xff1a; 5 2 6 1 2 7 9 样例1输出&#xff1a; 0 样例2输入&#xff1a; 5 5 6 1 2 7 9 样例2输出&#xff1a; 2 分析&#xff1a;这道题的状态表…...

【CSS】CSS 背景设置 ① ( 背景颜色 | 背景图片 | 背景平铺 )

文章目录一、背景颜色1、语法说明2、代码示例二、背景图片1、语法说明2、代码示例三、背景平铺一、背景颜色 1、语法说明 CSS 的背景颜色样式语法 : 默认的背景颜色是 transparent 透明 ; background-color:颜色值;background-color 属性 可以 定义 文本颜色 , 其颜色值有三种…...

uniCloud基础使用

获取openID云函数use strict; exports.main async (event, context) > {//event为客户端上传的参数console.log(event : , event)// jscode2session 微信小程序登录接口&#xff0c;获取openidconst {code} event;// 云函数中如需要请求其他http服务&#xff0c;则使用uni…...

5、Elasticsearch优化

一、Elasticsearch集群配置 1、硬件选择 Elasticsearch的基础是 Lucene &#xff0c;所有的索引和文档数据是存储在本地的磁盘中&#xff0c; 具体的路径可在 ES 的配置文件 ../config/elasticsearch.yml 中配置&#xff0c;如下&#xff1a;磁盘在现代服务器上通常都是瓶颈。…...

地质灾害防治单位资质

地质灾害危险性评估&#xff0c;是指在地质灾害易发区进行工程建设或者编制地质灾害易发区内的国土空间规划时&#xff0c;对建设工程或者规划区遭受山体崩塌、滑坡、泥石流、地面塌陷、地裂缝、地面沉降等地质灾害的可能性和建设工程引发地质灾害的可能性作出评估&#xff0c;…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...

【汇编逆向系列】六、函数调用包含多个参数之多个整型-参数压栈顺序,rcx,rdx,r8,r9寄存器

从本章节开始&#xff0c;进入到函数有多个参数的情况&#xff0c;前面几个章节中介绍了整型和浮点型使用了不同的寄存器在进行函数传参&#xff0c;ECX是整型的第一个参数的寄存器&#xff0c;那么多个参数的情况下函数如何传参&#xff0c;下面展开介绍参数为整型时候的几种情…...