由于种(gu)种(ji)原(cuo)因(wu)新买的Pi并没有用于任何项目上,看着它一天一天的封尘,于心不忍终于让它也做了点事。恰好这几天家里网络晚上有点卡,于是拿Pi做了个NAS的流播放器+ARIA下载器,白天下资源晚上看。
前期准备
首先将硬盘都放在磁盘盒里面,插上树莓派之后格式化磁盘。挂载的方法和格式化这里就不说了以前也说过了。
如上图所示,其中一个是147G的挂载在/mnt/harddisk节点上,另一个是1T的挂载在/mnt/dlnadisk。
看到路径dlnadisk估计就知道用的是什么技术实现的了,没错就是通过dlna来局域网分享。
安装samba
# 先更新一下源
sudo apt-get update
# 使用apt-get安装samba
sudo apt-get install samba samba-common-bin
安装完成后配置/etc/samba/smb.conf文件
smb.conf文件其他部分都不需要改,只需要在末尾的地方加上以上配置。
[dlna]/[share]: 共享文件名称,之后在网络上就是看到这个名称
path: 共享文件的路径
valid users: 可访问用户
browseable: 是否可以浏览器访问
public: 是否公开
writable: 是否可写入
之所以分两个写是因为管理的时候会好管理一些,特别是文件移动的时候又不想写命令。这个时候通过samba访问就可以用windows的可视化操作移动文件了。
最后通过smbpasswd添加用户名和修改密码
sudo smbpasswd –a pi
接着就可以重启samba服务使配置文件生效
/etc/init.d/samba restart
要验证是否配置成功,最直接的办法就是通过网络映射磁盘来访问。
连接成功之后会提示填写用户名/密码就填回刚刚用smbpasswd设置的那个就可以了。
之后就会出现dlna的网络驱动器了
安装dlna
首先通过apt-get安装dlna
sudo apt-get install minidlna
同理,安装后就配置/etc/minidlna.conf文件:
其中A代表音乐、P代表图片、V代表视频(这些都是软件规定的参数不能随便改),当然了还有db文件(不知是什么)和log文件(记录使用日志)
配置完毕后重启minidlna
sudo /etc/init.d/minidlna restart
查看minidlna的运行情况
sudo /etc/init.d/minidlna status
接下来尝试使用电脑播放,但是抛出了下面的问题:
inotify.c:198: warn: WARNING: Inotify max_user_watches [8192] is low or close to the number of used watches [6] and I do not have permission to increase this limit. Please do so manually by writing a higher value into /proc/sys/fs/inotify/max_user_watches
说是要修改max_user_watches文件,等到需要打开修改这个文件的时候系统就又会说这个文件是受保护的不能修改。甚至使用root账号给chmod也不能解决,所以这个时候就感到有点蹊跷,有一种“肯定不是修改这个文件”的感觉。
上网又搜了很久,就发现一个解决办法
1. 修改/etc/sysctl.conf文件
说是要找到fs.inotify.max_user_watches并将内容改变成65536
fs.inotify.max_user_watches=65536
但是我在sysctl.conf文件里面找不到这个fs.inotify.max_user_watches项,因此我就只好自己加上去了。
2. 在/etc/minidlna.conf文件中将inotify和notify_interval重新设定
inotify=yes
notify_interval=300
sudo service minidlna restart
居然就成功地将minidlna启动了(怎么知道启动成功呢,可以找到上面说的log_dir文件夹中的log文件来看启动输出,正常启动的话是没有错误信息输出的)。之后在windows上验证一下:
选中后鼠标右键点击“打开媒体播放机”Windowns Media Player就会启动。左下角有xxx:minidlna的选项:
配置开启自动启动
sudo vim /etc/rc.local
sudo /etc/init.d/minidlna start
samba和dlna都已经搞定了之后,就是如何下载的问题。如果下载是从另外的机器下载下来的再拷过去Pi那就没有意义了。网上关于Pi的下载有很多种方式,其中令网友又爱又恨的就是aria2(在使用了之后就觉得,其实优点还是多于缺点,而且最最重要的还是它能够突破某些软件的下载限制)。
安装aria2
# 先更新一下源
sudo apt-get update
# 使用apt-get安装aria2
sudo apt-get install aria2
安装aria2之后在本地用户创建一个.aria2的文件夹并新建aria2.conf和aria2.session文件
sudo mkdir .aria2
sudo chmod 777 .aria2
cd .aria2
sudo vim aria2.conf
修改aria2.conf内容如下图所示
dir: 保存路径
disable-ipv6: 关闭ipv6
enable-rpc: 为了之后部署的图形界面开启rpc服务
rpc-allow-origin-all: 允许所有组织
rpc-listen-all: 监听所有rpc服务
continue: 支持续传
input-file: 来源记录
save-session: 保存回话
max-concurrent-downloads: 最多同时下载个数
保存后退出。由于配置文件用到aria2.session文件所以在跟conf统一目录下新建一个aria2.session文件
sudo touch aria2.session
为了让aria2能够简单实用,于是编写了一个shell脚本指定了aria2的start、stop和restart操作,并将其命名为aria2c,路径为/etc/init.d/aria2c:
保存后退出。
# 设置aria2c文件的操作权限
sudo chmod 755 /etc/init.d/aria2c
# 将aria2c添加到服务自动运行
sudo update-rc.d aria2c defaults
这样就ok了。有了aria2的下载核心了,但是没有一个ui操作很麻烦的,于是又在万能的网友推荐下使用了yaaw。yaaw是一个web项目,要启动这个项目还需要一个apache的httpd服务,所以接下来就是安装apache服务了。
sudo apt-get install apache2
apache httpd安装完毕之后在/var新建一个www的目录。yaaw将会部署在这个目录中,但是在部署之前需要删除www原有的html页面,并且在www目录里面新建一个html的目录。
在https://github.com/binux/yaaw里面下载yaaw的zip包
下载后解压,将解压后的所有文件放入/var/www/html目录中即可,打开内网ip使用80端口即可访问。
点击refresh后面的“扳手”按钮会弹出一个设置窗口
若刚刚aria2的配置已经生效并启动的话,这里面的配置将自动加载。在这里我们先记住JSON-RPC Path这一项内容。我们打开迅雷的离线下载页面
登录后可以看到自己的离线下载内容。看到右上角的齿轮了么,点击进入设置页面
在最下面Thunder Lixian Exporter里面填入Aria2的JSON-RPC Path项(对应本机的JSON-RPC Path内容)即可完成。让我们来尝试一下:
选择取回本地方式YAAW
对应的Yaaw就已经立刻下载了,速度还不错。
至此整个NAS系统就搭建完成了。大家上班的时候先down下来(不要浪费网费),晚上回家钻被窝的时候就可以拿手机看,特别是天气特别冷的时候这个绝对可以一天都不起床的了。另外补充一下的是,Bluetooth的音箱连接也已经成功了。到目前为止已经可以组建一个小型的家庭影院,可能是我在音质上没有什么追求,当前使用得还算比较满意。如果是追求音质音效的享受的话跟Bluetooth和有线的肯定是无法比的。