imx6ul之OpenWRT中的移动存储设备挂载与结项

来源:互联网 发布:tensorflow 量化流程 编辑:程序博客网 时间:2024/06/01 18:25
前面的几篇Post中已经完成了立项时候的要求, 从OpenWRT的移植,到各个子功能项的构建测试, 基本完成了基本的路由器功能, 同时在加入了MPD后实现了多媒体音乐播放器功能. 但是还剩下一个外部存储设备的自动mount.

内核修改
因为外部的移动设备可能是FAT32文件系统, 也可能是NTFS等, 因此需要注意在内核中添加VFAT与NTFS的支持.

如何完成自动mount
自动mount, 在linux下, 我们都是使用udev的rules来完成,  当然在busybox的小系统中可能使用的mdev. 如果都是类似的. 
在现代的Linux Desktop Distribution中,系统启动后, 一般都是根据fstab文件来mount 对应的设备.
在OpenWRT中, 也是借用的fstab另外自动mount设备. 对于像U盘和移动硬盘这样的Hotplug设备, OpenWRT中的fstab中有一个特别的section来完成. 
参考: https://wiki.openwrt.org/doc/uci/fstab
根据上面的OpenWRT的文档, 我们可以知道要自动挂载, 可以在fstab的global的section中添加下面这些内容:
  1. config 'global' 'automount'
  2.         option 'from_fstab' '1'
  3.         option 'anon_mount' '1'

这个表示自动挂载fstab中所有mount section表示的设备, 假设我们的的U盘只有一个目录, 那么在插入之后就会生成/dev/sda1节点, 而且其文件系统为ext4, mount 到 /mnt目录下, 那么我们可以在fstab中添加下面这个mount section , 从而让系统可以自动mount我们的移动设备:
  1. config 'mount'
  2.         option 'target'   '/mnt'
  3.         option 'device'   '/dev/sda1'
  4.         option 'fstype'   'ext4'
  5.         option 'options'  'rw,sync'
  6.         option 'enabled'  '0'
  7.         option 'enabled_fsck' '0'

添加完成后我们保存测试即可.
插入U盘, 使用df命令查看:
  1. Filesystem      Size  Used Avail Use% Mounted on
  2. /dev/sda1        15G   11G  3.7G  75% /mnt

然后我们就可以通过这个U盘来作为Music的存储目录了. 


至此, 我们就完成了所有的功能. 

以下是结项说明.
项目概述
根据最初申请的说明:
项目名称:智能多媒体路由器

试用计划:项目计划完成的功能与试用实施步骤
1. 开箱, Linux Qt系统的构建, 包括kernel uboot
2. 移植OpenWRT或者LEDE到此板卡中, 从而让其具有路由器功能
3. 移植并驱动USB无线网卡,使得其可以有中转路由器的功能
4. 配置USB无线网卡使其具备AP功能, 成为一个路由器
5. 配置U盘或者移动硬盘,以此作为媒介, 用于存放Music
6. MPD与MPD Client从而让路由器有音乐播放功能
一步一步, 从最开始的开箱, OpenWRT的移植, 然后构建路由器需要的无线网络设备, 然后再到路由器的中转, AP功能, 另外还添加了MPD Server用来完成音乐的流媒体中心, 最后添加了对外部设备的自动挂载功能. 任务均完成.
这个路由器可以通过使用有线网络登陆来控制, 进入到luci web管理页面, 同时可以作为中继器使用. 而对于多媒体服务器, 我们可以使用移动设备, 或者scp网络功能拷贝mp3等格式的音频到板子的固定目录, 然后通过mpd client来连接播放, 完成流媒体功能.

硬件设计
这个多媒体路由器需要的硬件除了收到的板子, 还需要另外两个无线网卡, 我分别使用的一个TP-Link的WN821N的USB无线网卡, 另外的一个是基于Realtek的USB无线网卡.
试用IMX6UL开发板有两个USB口, 因为我们在后面还需要使用移动存储设备拷贝音频, 因此还需要一个USB HUB, 总结起来就是, 除此之外并不需要任何的硬件更改, imx6UL板子已经具备其他所有我们需要的, 包括两个有线网卡.

软件调试
我们采用的是分块根据功能一点点完成, 所以调试过程以及遇到的问题和注意事项都在对应的文章有说明.
从最开始的OpenWRT的移植, 因为使用LEDE遇到的问题, 到支持USB无线网卡,再到使用Wpa_supplicant.
要完成热点功能的Hostapd. 后面用到了mpd作为多媒体的服务, 以及最后用于自动挂载的mound, 中间还因为流量的中转用到了iptables.以上就是我们用到了的软件模块.