早在這篇blog之前寫過,在虛擬機下調試sn9c291時,USB 數據傳輸出了問題。當時想後續是virtualbox在usb 上對usb 2.0的支持還沒有成熟致使的ios
因此當時也沒管了,就繼續在rt5350上調試sn9c291。(覺得最新版本號的virtualbox可以解決usb 2.0的問題,因而安裝最新版本號的virtualbox 4.3.16致使編程
虛擬機啓動不了,退回4.3.12 OK)ide
現在整個rtsp server能執行起來,但是奇怪得是VLC一旦退出了,server也跟着退出了,並且是悄無聲息。函數
在這個問題上我跟蹤了好幾天,懷疑是server工具
在處理退出terdown下存在不合理的地方。如exit(),退出。查遍代碼排除。查看是不是非法內存訪問致使的?或者釋放了不應釋放的資源?但是consolegoogle
上一丁點的信息都沒有一。甚至是凡人的segmentation fault也沒出現。也懷疑是某個信號致使的,整個進程退出。但是我註冊了N個信號了。仍未觸發相應的url
處理函數。真的搞不定了?spa
就這樣在rt5350上,源碼上折騰了整個國慶幾天。仍然無果!。.net
就在今天,回憶曾經的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影像作完後,居然啓動不了。
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下莫名其妙了。我總結了下有下面幾點不同:
一、編譯器不同
二、硬件平臺不同(cpu、內存大小。mips掛的內存不過32M。除了系統等程序有16M 空間使用)
三、軟件平臺也不同(內核版本號有點詫異,但是驅動是驅動起來了。一個是基於glib的。一個是基於uclibc的)
同樣的地方是,驅動是同一套。server是同一套,人是同一我的在調試!!!!