用Beaglebone Black搭建低功耗家用简易NAS下载机(1)——环境搭建篇

  一直以来都有想做个家用私有云,来让家里的各个设备(手机、机顶盒、iPad等)能够直接做数据交换和流媒体播放。作为一个要7×24开启的设备,尽量想把功耗控制一下,设想过用现成的NAS或者HTPC,但不是价格超出心里预期就是其他方面配置不合适,迟迟没有下手买。前段时间机缘巧合以非常低廉的价格得到一块二手的Beaglebone Black开发板,Beaglebone Black作为单板机在GEEK圈里不如树莓派那么出名,但是它的硬件性能还是高出树莓派不少的。于是决定用Beaglebone Black来自己搭建一个简易的NAS,平常拿来做做下载机什么的,也能充分利用一下家里的宽带。

[01]

  首先,主角就是这货——Beaglebone Black,下面简称BBB。它采用AM3359芯片,1Ghz主频,内置512M的DDR3内存和2G的eMMC。其他的USB-Host、miniUSB、TF卡槽、microHDMI、网卡等接口一应俱全,而且板子本身只要210~460mA的5V供电就足以运行,是挺适合用的。

  刚拿到手的时候它用的是官方原配的Angstrom系统,为了更好的扩展和使用,我给它刷了 Debian 7.9 的系统,同时考虑到节省系统资源,刷的是不带桌面环境的纯命令行版本。

一、挂载储存设备

  作为实验我暂时先用U盘来作为储存设备,后续可以替换成外接电源的移动硬盘。首先插入U盘……

[02]

  插入U盘之后先看看是否能够被检测到,用fdisk命令看看。

1
sudo fdisk -l

  运行结果如下

1
2
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 15794175 7896064 7 HPFS/NTFS/exFAT

  说明成功读到U盘,U盘位置是 /dev/sda1 。我这里U盘用的是NTFS格式的,因为估摸着以后接硬盘也是用这个格式,而原生的Linux系统并不直接支持NTFS,所以先给它安装支持环境。

1
sudo apt-get install ntfs-3g

  安装完成后通过ntfs-3g来挂载U盘,过程跟用系统自带的mount命令一样的。先建立一个挂载用的文件夹,然后挂载上去。

1
2
3
4
#创建挂载位置
sudo mkdir /mnt/usb
#挂载U盘
sudo ntfs-3g /dev/sda1 /mnt/usb

  挂载完成后进入挂载点用“ls”命令看看能否列出U盘下的文件,可以的话说明挂载成功!

  * 对于有需求的可以考虑把挂载添加到系统启动运行,不过我自己暂时没这样配置。

1
2
3
4
#编辑fstab
sudo nano /etc/fstab
#在最后一行添加挂载命令
/dev/sda1 /mnt/usb ntfs-3g defaults,noexec,umask=0000 0 0

二、配置Samba服务器

  挂载完成后,需要让内网的其他机子能够访问,一般选择用Samba或者MiniDLNA。对于是配置Samba好还是配置MiniDLNA好网上有不同的意见,我的感觉是播放流媒体时MiniDLNA比Samba速度还是快一些,所以对于作为家庭媒体中心来用的话可以选择使用MiniDLNA,但是我主要是做下载机,下载后就移到其他地方做整理,所以对我而言用Samba比较方便,就选择配置Samba服务器。对于有需求的来说两个环境同时配置上去也不要紧。

  先安装Samba组件

1
sudo apt-get install samba samba-common-bin

  然后配置共享挂载的那个文件夹

1
2
3
4
#备份配置文件
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_bak
#编辑配置文件
sudo nano /etc/samba/smb.conf

  找到[public]模块按如下配置(允许GUEST读写),没有就直接写。

1
2
3
4
5
6
7
[public]
comment = Public Files
path = /mnt/usb
browseable = yes
writeable = yes
guest ok = yes
read only = no

  配置完成之后重启一下Samba服务

1
sudo service samba restart

  这样Samba服务就配置好了,在Windows下进入“\192.168.1.88”(Beaglebone的内网IP),找到public文件夹,里面能看到挂载Beaglebone上的U盘内容就成功了。

三、配置远程下载环境

1、安装Aria2

  最为一个主要拿来当下载机的建议NAS来说,配置好内网访问只是基础,更重要的是配置远程下载的环境,一般用Aria2,也是用apt-get就很容易安装上了。

1
sudo apt-get install aria2

  安装完成后我们先创建一个空白的会话控制(session)文件和ARIA2配置文件并编辑它。

1
2
3
4
5
sudo mkdir ~/.aria2
sudo touch ~/.aria2/aria2.session
sudo touch ~/.aria2/aria2.conf
#打开配置文件进行编辑
sudo nano ~/.aria2/aria2.conf

  通过编辑配置文件来对Aria2做相应设置,比如把下载路径放到挂载点等等,其他高级配置选项可以参看aria2的官网。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#配置下载目录
dir=/mnt/usb/DOWNLOAD/
#关闭IPv6
disable-ipv6=true
#打开rpc管理,方便后续使用客户端
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
#默认端口6800不用改
#rpc-listen-port=6800
#开启断点续传
continue=true
#会话管理控制文件
input-file=/home/debian/.aria2/aria2.session
save-session=/home/debian/.aria2/aria2.session
#最大同时下载任务数
max-concurrent-downloads=5

  为了方便管理,我们把Aria2配置成服务,服务名称这里改用另外一个名字“aria2c”

1
2
sudo touch /etc/init.d/aria2c
sudo chmod 755 /etc/init.d/aria2c

  然后编辑一下那个配置文件(/etc/init.d/aria2c)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/sh
### BEGIN INIT INFO
# Provides: aria2
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Aria2 Downloader
### END INIT INFO
case "$1" in
start)
echo -n "Starting aria2c"
sudo -u debian aria2c --conf-path=/home/debian/.aria2/aria2.conf -D
;;
stop)
echo -n "Shutting down aria2c"
killall aria2c
;;
restart)
killall aria2c
sudo -u debian aria2c --conf-path=/home/debian/.aria2/aria2.conf -D
;;
esac
exit

  对了,这里面用到了“killall”命令来结束进程,而我刷入这个版本的debian默认没有带“killall”命令,所以要重新用apt-get来安装一下它。

  配置完成后,我们就可以通过服务的方式来启动Aria2了。

1
2
3
4
#运行aria2c服务
sudo service aria2c start
#如果需要设置为开机自动运行
sudo update-rc.d aria2c defaults

2、搭建Aria2网页客户端

  Aria2原本是可以用命令行的方式来控制它做下载的,但是这样太麻烦了,于是我们考虑安装一个用于管理Aria2 的网页客户端。网页服务器环境可以选择Nginx或者lighttpd,不太推荐用Apache,毕竟Beaglebone的硬件性能一般,能省一点算一点。

  我在这里选用Nginx,直接用“sudo apt-get install nginx”就安装上了,具体配置过程参见网络,我这里采用默认配置就好。另外需要说明的是,这样安装完成的Nginx默认网站目录是“/usr/share/nginx/www”,而不是常用的“/var/www”,有需求的自己用“ln -s”建立软连接就行,我这里就直接用默认目录了。

  Aria2的网页客户端有YAAW和webui-aria2,前者简单,后者设置选项多一些,我在这里选用前者。yaaw在github上面的地址是 https://github.com/wzhy90/yaaw ,我用的是国内的汉化版本(http://git.oschina.net/maoxuner/yaaw-chs )。如果有Git的可以直接使用Git方式安装,这样比较快捷。

1
2
3
4
sudo chmod a+w -R /usr/share/nginx/www
cd /usr/share/nginx/www
#使用Git克隆客户端
git clone http://github.com/wzhy90/yaaw

  如果没有的也可以登录网站把打包好的ZIP文件下下来,解压到板子上之前用Samba共享出来的文件夹上,再拷贝到网站目录去。

  做好之后访问 http://192.168.1.88/yaaw 就能看到网页客户端了(中间的IP地址换成Beaglebone的IP地址就行)
[03]

  然后在其他机子上就可以通过访问这个客户端来添加任务远程下载了。

  至此,整个环境搭建的过程就完成了。

文章目录
  1. 1. 一、挂载储存设备
  2. 2. 二、配置Samba服务器
  3. 3. 三、配置远程下载环境
    1. 3.1. 1、安装Aria2
    2. 3.2. 2、搭建Aria2网页客户端
|