【硬创邦】跟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软件实现手机控制播放。到这里,大家还可以自己玩玩,用命令行播放下音乐看看。

  
  
 
  本文作者: 孙冰

本文转自雷锋网禁止二次转载, 原文链接
目录
相关文章
|
19天前
|
网络协议 算法 Go
在go内置网络库中的路由和多路复用
【7月更文挑战第6天】本文介绍Go的`net/http`库提供基础的HTTP服务,`ListenAndServe`管理TCP连接,处理请求。处理程序默认使用`DefaultServeMux`。也可以选择多路复用模式ServeMux。它们的示例代码展示了自定义`ServeHTTP`结构体处理不同路由 。
35 2
|
22天前
|
人工智能 安全 网络安全
瑞数信息:智能防护新时代,看AI如何筑起网络防线
在AI时代,网络安全面临新挑战与机遇。瑞数信息在2024中国科技方案资讯日上探讨如何利用AI强化安全防护。随着AI技术普及,网络攻击变得更复杂,传统安全手段捉襟见肘。瑞数信息通过动态安全与AI融合,打造动态防御系统,应对自动化攻击和勒索软件。其DDR解决方案利用AI进行深度文件内容检测和智能行为识别,提升数据安全。AI已成为网络安全革命的关键,瑞数信息等企业正通过技术创新塑造未来安全格局。
瑞数信息:智能防护新时代,看AI如何筑起网络防线
|
1月前
|
缓存 算法
基于机会网络编码(COPE)的卫星网络路由算法matlab仿真
**摘要:** 该程序实现了一个基于机会网络编码(COPE)的卫星网络路由算法,旨在提升无线网络的传输效率和吞吐量。在MATLAB2022a中测试,结果显示了不同数据流个数下的网络吞吐量。算法通过Dijkstra函数寻找路径,计算编码机会(Nab和Nx),并根据编码机会减少传输次数。当有编码机会时,中间节点执行编码和解码操作,优化传输路径。结果以图表形式展示,显示数据流与吞吐量的关系,并保存为`R0.mat`。COPE算法预测和利用编码机会,适应卫星网络的动态特性,提高数据传输的可靠性和效率。
|
12天前
|
存储 传感器 算法
基于ACO蚁群优化算法的WSN网络路由优化matlab仿真
摘要(Markdown格式): - 📈 ACO算法应用于WSN路由优化,MATLAB2022a中实现,动态显示迭代过程,输出最短路径。 - 🐜 算法模拟蚂蚁寻找食物,信息素更新与蚂蚁选择策略确定路径。信息素增量Δτ += α*τ*η,节点吸引力P ∝ τ / d^α。 - 🔁 算法流程:初始化→蚂蚁路径选择→信息素更新→判断结束条件→输出最优路由。优化WSN能量消耗,降低传输成本。
|
20天前
|
传感器 算法
基于LEACH路由协议的网络性能matlab仿真,包括数据量,能耗,存活节点
- **LEACH协议**在WSN中通过分簇减少能耗,普通节点向最近簇头发送数据,簇头融合后发送给基站。本项目研究LEACH在不同初始能量、数据包及控制包长度条件下的网络性能,如剩余节点、能量、接收数据量和累计接收量。
|
23天前
|
Windows
Win10或Win11更新补丁后导致360随身wifi提示USB设备驱动异常,创建Wifi网络失败
Win10或Win11更新补丁后导致360随身wifi提示USB设备驱动异常,创建Wifi网络失败
27 0
|
28天前
|
运维 网络协议 Linux
Linux与Windows下追踪网络路由:traceroute、tracepath与tracert命令详解
Linux与Windows下追踪网络路由:traceroute、tracepath与tracert命令详解
50 0
|
1月前
|
边缘计算 自动驾驶 物联网
边缘计算与5G网络:未来智能生活的双重引擎
**边缘计算与5G携手驱动智能生活:**随着物联网爆发,边缘计算将处理带至设备边缘,提升效率,降低延迟,如智能交通系统的实时数据分析。5G网络以其高速、低延迟特性,支持高清流媒体及自动驾驶等应用。两者结合,为智能家居等场景提供无缝连接与即时响应,构建更高效、智能的未来生活。关注我们,洞见更多科技前沿!
|
2天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【7月更文挑战第23天】在数字化时代,网络安全和信息安全已成为全球关注的焦点。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性。我们将了解不同类型的网络攻击和漏洞,并讨论如何通过加密技术和提高安全意识来保护个人和组织的数据。文章还将介绍一些实用的工具和策略,以帮助读者更好地保护自己的网络安全。
|
1天前
|
存储 弹性计算 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的深度探讨
【7月更文挑战第24天】本文旨在深入探讨云计算与网络安全之间的关系,包括云服务、网络安全、信息安全等技术领域。我们将从云计算的基本概念出发,分析其对网络安全的影响,以及如何通过技术手段保障云计算环境下的网络安全。同时,我们还将探讨网络安全在云计算环境下的重要性,以及如何通过信息安全技术保护用户数据和隐私。最后,我们将展望云计算与网络安全领域的未来发展趋势,为读者提供一些启示和建议。