zoukankan      html  css  js  c++  java
  • RTSP server 在mips 上莫名其妙退出(PC上则无此问题)

    http://blog.csdn.net/lubing20044793/article/details/38523701

    早在这篇blog以前写过,在虚拟机下调试sn9c291时,USB 数据传输出了问题。当时想后续是virtualbox在usb 上对usb 2.0的支持尚未成熟导致的

    所以当时也没管了,就继续在rt5350上调试sn9c291。(以为最新版本号的virtualbox能够解决usb 2.0的问题,于是安装最新版本号的virtualbox  4.3.16导致

    虚拟机启动不了,退回4.3.12 OK)

    如今整个rtsp server能执行起来,可是奇怪得是VLC一旦退出了,server也跟着退出了,而且是悄无声息。

    在这个问题上我跟踪了好几天,怀疑是server

    在处理退出terdown下存在不合理的地方。如exit(),退出。查遍代码排除。查看是否是非法内存訪问导致的?或者释放了不该释放的资源?可是console

    上一丁点的信息都没有一。甚至是凡人的segmentation fault也没出现。也怀疑是某个信号导致的,整个进程退出。可是我注冊了N个信号了。仍未触发相应的

    处理函数。真的搞不定了?

    就这样在rt5350上,源码上折腾了整个国庆几天。仍然无果!。

    就在今天,回忆曾经的blog写的在pc调试方法,试试pc上是否走得通。于是便有了u盘安装fedora 13的经历。官网上我找了。没找到fedora 13的完整安装

    ios,竟然下了个live版本号的,才几百M。

    安装后显示器有花点飘动。预计是对本人这台机器支持不好。

    为啥选择fedora 13 ?这个和调试sn9c291的驱动有关,它所支持的内核须要匹配。关键是对V4L的版本号。

    原先机器上是安装的fedora 17的,正是因此才

    放弃它从新安装fedora 13.

     在支持usb 启动盘的时候,使用了live usb creator。

    下载的是官网最新版本号。但是坑爹的是在使用691MB的iso影像做完后,竟然启动不了。

    提示menu.c32 not a com32r image 

    google不了。于是百度了下。说是VESAMENU.C32版本号的问题。

    下了个别人的说是能够的版本号,将一些文件覆盖上就可以。

    安装发现显示器出现花点、一闪一闪的。

    随放弃。换成DVD正式发行版。

    相同的方式,将dvd的iso制作成usb启动盘,这下来了出现新的问题,提示missing iso 9660 image  

    奇了怪了,4G u 盘都装上了非常多东西了。

    竟然提示没有,于是百度下。说须要将iso一起放进u盘。可是我看了下里面的东西非常全了,当中的packes就狠多了,大约

    有2G多。难道这玩意在这就是无论用,可是U盘所剩空间不多。于是将其删除,拷贝上dvd的iso。

    再次上电,一步一步next下去。最终完毕安装。

    開始干正事了,为了安装这个玩意可费了我不少时间。将代码拷贝过来编译,发现编译驱动的时候,找不到内核源代码。原来安装fedora默认是不会安装内核源代码的

    于是将iso文件下的kernel安装包rpm拷贝过来、gcc 也一起了。

    编译驱动,顺利编程模块,insmod进去,插上usb camera后出现了三个video*设备节点。我的乖乖。不应该是两个吗?先无论了,改下代码。

    由于驱动上是会创建

    两个video设备节点的,一个作为mjpeg、一个作为h264使用。在源代码中该一下所open的video的设备节点。

    rtsp server也顺利编译过去了。ok。启动server,通过netstat查看,開始监听554port了。通过另外一个pc吧VLC打开。并将url填上后连接。

    我地乖乖,竟然连接不上

    使用wirsharke抓包看看,工具分析是对端拒绝了?我猜想必是该死的防火墙给我挡住了。

    于是乎,运行service iptables stop。果真封包開始动起来了。视频也来了。好咧,退出VLCclient,server竟然没死。也没退出。一切迹象表明它还活的好好的。

    再次开启vlc连接进去。视频还是来了了,多试了几次还是好好的。NND 这是为啥啊!

    pc是好好的,到了mips下莫名其妙了。我总结了下有下面几点不一样:

    1、编译器不一样

    2、硬件平台不一样(cpu、内存大小。mips挂的内存不过32M。除了系统等程序有16M 空间使用)

    3、软件平台也不一样(内核版本号有点诧异,可是驱动是驱动起来了。一个是基于glib的。一个是基于uclibc的)

    一样的地方是,驱动是同一套。server是同一套,人是同一个人在调试!!!!

      




  • 相关阅读:
    一些正则表达式
    iOS汉字中提取首字母
    flutter 按钮弹簧动画AnimationController
    In iOS 14+,debug mode Flutter apps can only be launched from Flutter tooling,IDEs with Flutter plugins or from Xcode.
    Failed to connect to raw.githubusercontent.com port 443: Connection refused
    iOS组件库创建(二)
    iOS组件库创建(一)
    同个电脑多个ssh key的配置
    网络相关总结
    flutter 热更新实现方案—UI资源化(二)
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5380006.html
Copyright © 2011-2022 走看看