资讯 政企安全
此为临时链接,仅用于文章预览,将在时失效

【硬创邦】跟hoowa学做智能路由(十二):网络音箱之声卡驱动

作者:孙冰
2014/06/11 23:26

题记:忽闻水上琵琶声,主人忘归客不发。转轴拨弦三两声,未成曲调先有情。

对于大多数年轻的女性来说,她们最关心的是生活和自己的男人。男人应该更多的关系自己身边的女人,人生是苦比乐多的,因此要乐观的面对自己好好的对家人。尤其是IT男们,不要因为只顾自娱自乐的这种自私而忽略了身边人。为什么不为你的女朋友准备一台网络音箱?在她繁忙工作下班回来,可以一边开心的听音乐一边给你烧菜呢?

从这章开始我们将花费一些时间介绍下使用路由器实现网络音箱的功能,这些功能都有一个特点"只需要软件包修改和配置",在不需要接触嵌入式编程的情况下即可实现。"网络音箱"一共有四章,其中包括安卓播放器,苹果播放器,DLNA媒体播放器。

与此相关的存储和电流

这章我们要介绍关于播放了,请调整好你的存储器,如果你只使用系统内部的FLASH作为存储器,那么作为媒体设备显然容量就太小了,所以建议开始启用外部存储器。

电流方面,我们采用的是USB外置设备方式实现的播放,这种情况下对电流要求会增大。在M150的开发板上,如果你接入了外置硬盘那一定要给硬盘提供独立的供电。否则建议使用TF卡。

存储与播放的关系:

存储器类型 优势 缺点 补救
内部SPI FLASH 不用外接设备 容量不够 接个设备
TF卡 供电要求低 写速度慢 凑合能用也可以
USB硬盘 写速度快 供电不足 外接电源

播放实现原理

在M150上实现播放音乐主要依靠这么几点实现的:

  1. 具备USB总线,可以驱动我们x86电脑常用的声卡。
  2. 一大部分普通声卡在Linux下都支持ALSA和OSS两个驱动框架,可以不用自己编译驱动,只需要在内核里启用即可。
  3. OpenWRT下具备了一大批关于音乐播放的软件库,即使本文也只介绍了其中一小部分而已。

声卡驱动产生/dev/下的设备,而播放软件将MP3音乐文件转换成为PCM码流送入驱动,驱动处理后导入声卡芯片中实现音乐播放。

选择声卡和音箱

跟设备首先连接的是声卡,支持标准驱动的声卡芯片非常繁多,而且有很多价格也很便宜。但是在购买的时候很难知道是否支持标准驱动,而卖声卡的也不知道什么芯片的他们也不懂,所以讲芯片没有用,所以hoowa给大家一个这么建议如何选择到可以用的。

而如果你的房间不大,或是并不追求HIFI音质,那么而市面上还有很多带声卡的音箱,便宜的10几块钱,好一点的要100左右也是可以选择的,不过要注意这些音箱的供电问题啊。

如果你是现场购买,那么将你的M150开发板带过去测试一下,这个是最靠谱的;如果你是在淘宝上购买的,那么就问下卖家声卡是否支持“Windows XP即插即用无需驱动”。

所以, 选择一个合适的声卡其实挺重要的。

安装声卡驱动

现在我们开始具体操作了,确保你的开发板连接外网正常。

第一步:首先安装驱动和软件包

root@SmartRouter:/# opkg update
root@SmartRouter:/# opkg install kmod-usb-audio
root@SmartRouter:/# opkg install alsa-utils

第二步:插入声卡。因为在工作状态下插入你的声卡如果供电有问题会导致USB HUB重启,这个时候可能外置磁盘就异常系统崩溃了。

关闭掉设备电源
插入声卡设备
再开启电源

第三步:测试声卡是否识别并且驱动

在没有插入任何外置USB设备的时候,lsusb看起来是这样:

root@SmartRouter:/# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 001 Device 005: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader

当插入USB设备的时候,会多出来一个设备,hoowa的这个声卡看起来是这样:

root@SmartRouter:/# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 001 Device 005: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Bus 001 Device 006: ID 19a8:2036 Biforst Technology Inc.

查看声卡的设备驱动符号是否创建,这个标准用来识别声卡是否被驱动:

root@SmartRouter:/# ls /dev/dsp
root@SmartRouter:/# ls /dev/audio
root@SmartRouter:/# ls /dev/mixer

如果以上信息都正确,那么恭喜你安装声卡成功了。

第四步:设置音量

默认音量比较大,可能首次播放会吓到我们。写个默认音量程序吧。

使用vi编辑器编辑/etc/rc.local文件。在exit 0的前面增加这句:amixer set PCM 35%

修改后的rc.local文件内容如下:

第五步:重启。设置全都完毕了现在要重启下让第四步的配置生效。

root@SmartRouter:/# reboot

测试播放音乐

第一步:安装一个madplay作为测试播放器

root@SmartRouter:/# update
root@SmartRouter:/# opkg install madplay

第二步:复制一个MP3过来

将你电脑里一个mp3文件更名为test.mp3并且复制到/mnt/extdisk下面。

第三步:测试播放

root@SmartRouter:/# madplay /mnt/extdisk/test.mp3

如果听到音乐说明测试成功,这个时候通过键盘组合键ctrl+c停止测试。

#测试播放
mkdir -p /mnt/extdisk/music
chmod -R 777 /mnt/extdisk/music
root@SmartRouter:/# amixer set PCM 35%

复制以个音乐文件到music下:

root@SmartRouter:/# madplay /mnt/extdisk/music/*.mp3

如果音箱能听到音乐说明测试成功,退出按键盘组合键Ctrl+c停止播放

章节结尾

到这里,声卡和驱动我们就完成了,并且已经测试成功了,下一章我们将介绍使用安卓系统下的一款MPDroid软件实现手机控制播放。到这里,大家还可以自己玩玩,用命令行播放下音乐看看。

 

长按图片保存图片,分享给好友或朋友圈

【硬创邦】跟hoowa学做智能路由(十二):网络音箱之声卡驱动

扫码查看文章

正在生成分享图...

取消
相关文章