asterisk for mipsel

任务:将asterisk1.8.24.0移植到rt5350上面

交叉工具链:mipsel-linux(3.4.2)

1. 配置asterisk,执行./configure --host=mipsel-linux

    找不到termcap和libxml2,分别对他们交叉编译,然后将生成的库拷贝到交叉工具链的lib目录下即可。

 再执行./configure --host=mipsel-linux,发现还是找不到libxml2。根据提示可以将其关闭。

 执行./configure --host=mipsel-linux --disable-xmldoc

2. 编译asterisk, 执行make,编译报错,报错信息望记了,实际就是少了SDL库,交叉编译后,将库文件和

 头文件都拷贝到交叉工具链的include和lib目录下。再编译即可。

3. 成功编译后,并没有生成chan_sip.so(最重要的文件)。

 修改menuselect.makeopts文件,将chan_sip去掉。即可编译。

    在编译channels/sip/reqresp_parser.c时报错

 LC_CTYPE_MASK undeclared

 解决办法,修改include/asterisk/autoconfig.h文件,去掉#define HAVE_XLOCALE_H 1这行。

 这样就可以生成出chan_sip.so了。

 实际这个问题比较奇怪,在configure的时候,可以看到这两句,

 checking for locale_t in locale.h... no
 checking for locale_t in xlocale.h... no

 理论上说,HAVE_XLOCALE_H这个宏不应该被定义。

4. 因为rt5350上面只有一个4MB大小的norflash,所以只能将其放到外部存储上来运行。

 所以重新配置asterisk,./configure --host=mipsel-linux --disable-xmldoc --prefix=/media/sda1

 make && make install。

 注意:先在上午机上面创建/media/sda1这个目录,这样在make install 后,就可以直接在/media/sda1目录

 下得到编译好的asterisk了。

5. 将编译好的asterisk拷贝到外部存储上运行,发现不正常,但又看不到错误信息,

 修改main/asterisk.c ,将daemon(1, 0)的第二个参数改为1,再编译,然后只把asterisk这个可执行文件拷贝过 去即可。

6. 再次运行后,看到报错信息,在源码里搜索报错信息后,发现是main/asterisk.c的这一行报的错

 res = bind(ast_socket, (struct sockaddr *)&sunaddr, sizeof(sunaddr));

 实际就在绑定unix域协议socket的时候报的错,再使用unix域协议的时候,实际是绑定了一个本地的socket

   类型的文件,经过自己编写测试程序,发现是没法在外部存储上创建这个socket文件。(应该是外部存储是

   FAT32文件系统的缘故,估计格式化为ext3就行了。)那么我们可以将其指  定到norflash上即可。

7. 经过查看源码,发现这个socket文件的路径是在configure的时候生成在defaults.h这个头文件里的,修改这个头文件,将#define DEFAULT_SOCKET改为norflash的位置即可。再次编译,将编译出来的asterisk文件拷贝过去即可。




 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp开发实例github_跨端开发痛点?送你一款Vue最流行的跨端框架——uni-app

前言今天来聊一下前端必备技能——小程序开发。从最早发布的微信小程序,到后来的支付宝小程序、字节跳动小程序、百度小程序、QQ小程序,还有最近发布的360小程序,面对这么多套的代码,开发者该如何开发呢?当业务要求同时…

计算机怎么把单元格内容水平居中,win10系统下怎样让Word中的表格内容居中

Word是我们经常会使用到的一款文字处理软件,其具有非常强大的功能。那么,我们应该怎样使Word中的表格内容居中呢?接下来,小编就以 windows10正式版系统 为例,给大家分享具体操作方法。具体如下:1、首先在Word软件中准备…

双稳态电路的两个稳定状态是什么_从双稳态到双“更”稳态 ——叶芳伟课题组在拓扑光子学研究方向上取得新进展...

你拿起一个计算器,输入“26”,计算器会输出“8”;过了一会儿,你又在这个计算器上输入“26”,它依然会输出“8”。这种靠谱的计算器——对于同一个输入,它始终还给我们同一个输出——我们称之为线性计算器或…

Webots实现大疆Mavic2pro无人机定点飞行

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、将无人机当成一个对象1.1定义无人机相关属性1.2定义用于控制无人机运动的代码1.3主函数实现无人机的点位固定和飞行检测 二、用键盘控制测试代码三、效果展…

【C++专题】static_cast, dynamic_cast, const_cast探讨

首先回顾一下C类型转换:C类型转换分为:隐式类型转换和显式类型转换 第1部分. 隐式类型转换 又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的 算术表达式中, 最宽的数据类型成为目标转换…

浅谈程序员的职业规划

不知不觉参加工作成为程序员已经4年多,记得上高中的时候,从网络上知道了很多IT精英创业成功的例子,如没有读过大学的“汽车之家”创始人李想、facebook创始人马克扎克伯格,让我觉得互联网是个充满梦想的舞台,只要有想法…

python调用数据库数据创建函数_Pyhton应用程序数据库函数封装

1.函数2.迭代器3.递归4.数据库函数5.fetchall函数1.函数:实现指定功能代码的集合def 函数名( ) :2.在python中没有括号,函数体以缩进的方式进行展示快捷键:tab实现了函数的缩进,shifttab实现前移3.调用:函数名( )作用&…

电子计算机和多媒体教材分析,人教新课标:电子计算机与多媒体教材分析

电子计算机与多媒体(4篇)主要内容:本文简要地介绍了电子计算机的发明到多媒体的运用的基本情况,展示了电子计算机的飞速发展和灿烂前景。课文从美国史密森博物馆里存放的世界上第一台电子计算机写起,先概括地交代了电子计算机的飞速发展和它在…

安卓工控主板运行时会自动重启_工控主板在工业自动化中的应用

原标题:工控主板在工业自动化中的应用大家都知道随着科技的发展对于工控主板的用途和应用大大超出了工业自动化的范围,而对于本文联智通达小编将仅坚持工业自动化范围内的应用。首先跟随联智通达小编看一下制造以及工业PC的应用以及如何使该领域的工业自…

am335x gpio驱动

任务: GPIO0_19(带下拉)作为中断, GPIO0_20(带上拉)和GPIO1_14作为输出管脚,GPIO0_11(带下拉)和 GPIO1_15(带上拉)。并编写驱动程序。

海量小文件存储

海量小文件存储 [转自:http://www.fuchaoqun.com/2009/04/deal-with-tons-of-small-files/] Web2.0网站,数据内容以几何级数增长,尤其是那些小文件,几K~几百K不等,数量巨多,传统的文件系统处理起来很是吃力…

与0xf2值相等的是python_腾讯笔试题涵盖的基础知识

1.下列减少内存碎片的方法有哪些是正确的?增加实际申请和释放的次数频繁调用的子函数尽量使用栈内存系统申请一大块内存,自己实现内存分配和释放,定时清理内存降低虚拟内存的大小解答:答案2,3是正确的。属于操作系统中内存管理的问…

重庆大学 计算机组成原理,重庆大学计算机组成原理集(含部分)解决方案.doc

《计算机组成原理》试题集一、选择题在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。1.反映计算机基本功能的是( )A)操作系统 B)系统软件 C)指令系统 D)数据库系统2.若二进制数为1111.101,则…

diff算法_vue源码解读 diff算法

导语 最近碰到部分业务场景,代码逻辑需要了解"数组变更后,具体变更了哪一些元素,以及变更的位置.."。于是仔细研究并覆写了一遍针对数组变化的diff算法,在这里做下diff算法的逻辑分享&&源码解读一.介绍前的准备…

Linux驱动模块编译进内核中

BQ27501驱动编译进内核 一、 驱动程序编译进内核的步骤 在 linux 内核中增加程序需要完成以下三项工作: 1. 将编写的源代码复制到 Linux 内核源代码的相应目录; 2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项; 3. 在…

oracle 的进程

W000: Wnnn命名为W000,W001,W002.....,由smcO动态产生执行上述相关任务。 Pmon: Pmon后台进程负责一下的工作:进程异常终止,会话被杀掉,事务超过空闲时间,网络连接超时,将实例信息注册到监听器上,手工注册 altersystem register; Pmon进程的清…

请简述计算机硬件系统的运行过程,操作系统简述题

✔什么是操作系统?它的功能?操作系统是控制和管理计算机硬件和软件资源,合理地组织计算机工作流程以及方便用户使用计算机系统的程序的集合。功能:处理机管理,存储器管理,I/O设备管理和文件管理以及作为操作…

python闭环最短路径_最短路径算法的实现(dijskstra):Python

dijskstra最短路径算法步骤:输入:图G(V(G),E(G))有一个源顶点S和一个汇顶点t,以及对所有的边ij属于E(G)的非负边长出cij。输出:G从s到t的最短路径的长度。第0步:从对每个顶点做临时标记L开始,做法如下&…

黑群晖二合一安装不了套件_玩PT还是得安装transmission,星际蜗牛安装黑群晖制作家用NAS...

原文作者:pt老萌新To小白:黑群晖docker安装PT神器transmission——星际蜗牛安装黑群晖制作家用NAS的折腾日记写在前面:里面的技术方法不是我原创的,都是网上找的,侵删。折腾的过程记录是原创的(好像没啥原创的了)&…

Know more about Cache Buffer Handle

在之前的文章《latch free:cache buffer handles造成的SQL性能问题》中我介绍了cache buffer handle latch的一些知识,在这里我们复习一下: "当会话需要pin住buffer header时它首先要获去buffer handle,得到buffer handle的过程中首先要…