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

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

对于大多数年轻的女性来说,她们最关心的是生活和自己的男人。男人应该更多的关系自己身边的女人,人生是苦比乐多的,因此要乐观的面对自己好好的对家人。尤其是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软件实现手机控制播放。到这里,大家还可以自己玩玩,用命令行播放下音乐看看。

  
  
 
  本文作者: 孙冰

本文转自雷锋网禁止二次转载, 原文链接
目录
相关文章
|
2月前
|
运维 网络协议 网络架构
网络技术基础(6)——IP路由基础
【2月更文挑战第10天】网络基础笔记(加班了几天,中途耽搁了,预计推迟6天)
|
3月前
|
缓存 网络协议 安全
【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
【1月更文挑战第27天】【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
|
3月前
|
安全
Emerson艾默生 DeltaV 网络智能交换机
Emerson艾默生 DeltaV 网络智能交换机
|
4月前
|
网络协议
【网络层】BGP协议详解、三种路由协议总结
【网络层】BGP协议详解、三种路由协议总结
40 0
|
4月前
|
网络协议 安全 定位技术
深入解析路由与网络:网络的脉络
路由 路由是指在计算机网络中,将数据包从源地址传递到目标地址的过程。在一个复杂的网络中,数据包需要经过多个中间节点(例如路由器、交换机等)才能到达目标。路由的主要目标是确定最佳路径,以确保数据包能够高效地到达目标地址。 路由就是在计算机网络中为数据包找到正确的路径,确保它们能够从源地址到目的地址安全、快速地传送,就像你在现实生活中使用地图找到正确的道路一样。
47 0
|
2月前
|
运维 安全 容灾
简单易用的智能云网,阿里云网络持续演进之路
2023年10月31日,杭州·云栖大会,在阿里云网络技术分论坛,阿里云网络产品线负责人祝顺民《Leadership:简单易用的智能云网络——阿里云网络持续演进之路》的主题演讲,全面阐释阿里云飞天洛神云网络的产品思考和能力升级。
394 0
|
2月前
|
运维 负载均衡 安全
回归网络本质需求,提供普惠连接价值 持续打造简单易用的智能云网络
2023年11月25日,北京,在第六届SD-WAN&SASE大会暨云网络大会上,阿里云资深产品总监、阿里云网络产品管理负责人孙成浩受邀做了《打造简单易用的智能云网络——云网络持续演进之路》的主题分享,回顾云网络产业发展,阐释云网络未来演进方向,以及阿里云网络产品服务今年的能力演进。
229 2
|
2月前
|
网络协议 Linux 网络架构
【Cisco Packet Tracer】验证聚合了不存在的网络导致的路由环路问题
【Cisco Packet Tracer】验证聚合了不存在的网络导致的路由环路问题
33 0
|
3月前
|
网络协议 网络安全 网络架构
网络路由之静态路由学习资料整理
静态路由是由网络管理员手动配置的固定路由表项,不受动态路由协议的影响,用于指定网络目标及其下一跳,提供网络控制和管理的手动路由选择。
42 0
|
4月前
|
缓存 算法 网络架构
【网络层】IP组播(多播)、硬件组播、IGMP、组播路由选择协议、移动IP、路由器详解、路由表和路由转发
【网络层】IP组播(多播)、硬件组播、IGMP、组播路由选择协议、移动IP、路由器详解、路由表和路由转发
57 0