如何将一个应用程序添加到widora-openWRT源代码体系中

我想把mplayer加入到Widora-openwrt代码体系中,不知道放到哪个目录下?另外还要添加什么配置文件?请大神指点。

我现在只会独立交叉编译mplayer. 然后把编译好的文件复制到根目录下.

@sunzhguy 我用mplayer可以播放的,你这个mp3好像太短了,我把它接长一下就OK了: cp tts.mp3 1.mp3 ; cat 1.mp3 >> tts.mp3

@midas-zhou 1547518376296-baidu-tts.mp3 (4.01 KB)

1547514693952-baidu-tts.mp3 (4.01 KB)

@sunzhguy 上传个mp3文件我试一下。

@midas-zhou
我下载安装试过了,一些MP3音频文件OK,一些就不OK 报cannot sync MAD frame,并且这些不OK的文件 我通过madplay 播放是OK的。
!

!

不同MP3播放还不一样,一些MP3能播放
!

并且我试过通过madplay 是可以播放此文件的
!

@sunzhguy 试下这个,看看行不行。1547428892849-mplayer_1.0.ipk (1.11 MB)

@midas-zhou 有没有现成的mplayer二进制提供给他测试?

!1547089069021-76dcbc60-7d67-441c-832b-b04cc752c9a1-image.png
出现 cont sync MAD frame 的问题 如何解决呀

1 Like

@midas-zhou
!1546998378174-75c6f9f3-267c-4f78-8bcc-fba83a5d151a-image.png
您好,为何我播放 没声音 是哪里问题呢?

有人反映编译好的mplayer (ALSA)在widora上运行时会卡死或无声, 可能原因:

1. /etc 目录下缺少了alsa配置文件asound.conf, 可以直接写一个,内容如下

pcm.!default{
type plug
slave.pcm "dmix"
}

或者用下面这个,录放同时可用。

pcm.dmixer {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024
        buffer_size 8192
   rate 44100
    }
    bindings {
        0 0
        1 1
    }
}
pcm.asymed {
        type asym
        playback.pcm "dmixer"
        capture.pcm "hw:0,0"
}



pcm.dsp0 {
    type plug
    slave.pcm "asymed"
}

pcm.!default {
        type plug
        slave.pcm "asymed"
}

pcm.default {
   type plug
   slave.pcm "asymed"
}

ctl.mixer0 {
    type hw
    card 0
}

2 . /usr/lib 下缺少库文件 liblzo2.so

(应用OSS 的mplayer好像还有问题 )

完美mplayer-alsa 1488956558471-mplayer_1.0-rc2_ramips_24kec.bin (1.15 MB)

好吧,诀窍就是在configure顶部加一句: return 0

0_1485136509510_mplayer_ramips_24kec.ipk 应用wav输出格式,不然可能死机的。

干脆把alsa的也编译出来 0_1485328773058_mplayer_ALSA_1.0-rc2_ramips_24kec.ipk 。 alsa似乎可以了 mplayer mms://111.75.206.136/yinyue 播放mp3的时候,如果有咔咔声,按几下左右箭头就要好了!! 奇诡。

单独编译mplayer成功后,我想把它加入到openwrt_widora的源码体系。

  1. 我先把mplayer源文件全部复制到~/openwrt_widora/package/mplayer/src 目录下;
  2. 接着在mplayer文件夹下做个一个Makefile文件(参考了package/reg目录下的Makefile);
  3. 最后,我运行…/mplayer/src 目录下的脚本build-oss.sh配置configure自动在src目录下生成Makefile。
  4. 运行 make package/mplayer/compile V=99 时出现下面错误:
    0_1485048943828_upload-ca37438e-13f1-4600-8ace-a91928dffb18
    哪里出错了呢!!!
    ./configure已经在build-oss.sh里运行过了,为什么会再来一次呢!??
    build-oss.sh内容如下:
  #!/bin/sh
 ./configure --host-cc=gcc \\
--cc=mipsel-openwrt-linux-gcc \\
--target=mips-linux \\
--enable-static \\
--disable-win32waveout \\
--disable-dvdread \\
--enable-fbdev \\
--enable-libwma \\
--disable-mp3lib \\
--disable-mencoder \\
--disable-live \\
--enable-libavcodec_a \\
--disable-ivtv \\
--disable-tv \\
--disable-tga \\
--disable-pnm \\
--disable-md5sum \\
--disable-win32dll \\
--disable-qtx \\
--disable-xanim \\
--disable-libmpeg2

两个Makefile文件在这里:1_1485049592624_mplayer-Makefile 0_1485049592624_src-Makefile

模板式代码体系,非常方便!

@mango 好的,我在学习下。 网络上关于openwrt的介绍和教程都是零散的,没有一个完整的体系性的教程。

参考package下的reg包也行,就是一套源码+一个符合openwrt的makefile

@Cola 非常感谢! 我来试一下。

0_1481014627938_wifikey.rar
这个是我自己程序里面的一个应用程序,我放置的位置是在openwrt_widora/package/目录下面,/wifikey/Makefile这个是决定编译及在menuconfig里面的位置,我的文件里面是放在了Extra package目录里面。/wifikey/src/Makefile是编译wifikey.c产生相应的文件,wifikey.c放置你的应用程序。/wifikey/files/wifikey里面的内容会在/etc/rc.d/目录下产生S50wifikey和K10wifikey两个文件,初始化的时候会执行。