闻上科技 WISNUC Appifi 开源免费NAS系统交流社区

搜索
综合讨论区
收藏本版 |订阅

综合讨论区 今日: 10 |主题: 37|排名: 2 

发新帖

树莓派安装WISNUC Appifi NAS系统教程...

[复制链接]
admin 发布于: 2017-1-22 19:15 1448 次浏览 1 位用户参与讨论
跳转到指定楼层
感谢社区@Klwang 的无私分享,以下内容全部来自Klwang的撰写,非常他感谢抽出宝贵时间为大家奉献上教程。

最近换笔记本,空闲出了一块硬盘,再加上 N久之前买的一块树莓派板子,就想着搞个NAS放在家里方便上传照片什么的。

上网一搜,找到了 winsnuc 的系统(还是开源的,点个赞),下面记录折腾的步骤:

    1.  看看自己的树莓派板子的 cpu 类型(树莓派B+,是这个版本,后面下载node的时候,注意版本)
  1. pi@raspberrypi:~ $ uname -m
  2. armv6l
复制代码

    2. 下载 node,安装(下载最新的版本,不要 winsnuc 自带的旧版本 6.9.2,不然后面的 bcrypt 会有问题)
  1. wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-armv6l.tar.gz
复制代码

    3. 安装 docker
  1. sudo apt-get install docker.io
复制代码

    4. 安装一通软件包
  1. sudo apt-get install avahi-daemon avahi-utils build-essential python-minimal openssh-server btrfs-tools imagemagick samba udisks2 libav-tools xz-utils git aufs-tools apt-transport-https ca-certificates
复制代码

    5 建立 appifi 需要的目录,并把对应的软件下载下来弄好
  1. mkdir -p /wisnuc/appifi /wisnuc/appifi-tarballs /wisnuc/appifi-tmp /wisnuc/bootstrap
  2. wget https://raw.githubusercontent.com/wisnuc/appifi-bootstrap-update/release/appifi-bootstrap-update.packed.js
  3. mv appifi-bootstrap-update.packed.js /wisnuc/bootstrap
  4. wget https://raw.githubusercontent.com/wisnuc/appifi-bootstrap/release/appifi-bootstrap.js.sha1
  5. mv appifi-bootstrap.js.sha1 /wisnuc/bootstrap
复制代码

    6. 设置 appifi 相关的系统服务(以下全是root用户执行,使用  sudo -i 切换到root后再执行)
  1. # Appifi Bootstrap Service
  2. echo "[Unit]" > /lib/systemd/system/appifi-bootstrap.service
  3. echo "Description=Appifi Bootstrap Server" >> /lib/systemd/system/appifi-bootstrap.service
  4. echo "After=network.target" >> /lib/systemd/system/appifi-bootstrap.service
  5. echo "" >> /lib/systemd/system/appifi-bootstrap.service

  6. echo "[Service]" >> /lib/systemd/system/appifi-bootstrap.service
  7. echo "Type=idle" >> /lib/systemd/system/appifi-bootstrap.service
  8. echo "ExecStartPre=/bin/cp /wisnuc/bootstrap/appifi-bootstrap.js.sha1 /wisnuc/bootstrap/appifi-bootstrap.js" >> /lib/systemd/system/appifi-bootstrap.service
  9. echo "ExecStart=/usr/local/bin/node /wisnuc/bootstrap/appifi-bootstrap.js" >> /lib/systemd/system/appifi-bootstrap.service
  10. echo "TimeoutStartSec=3" >> /lib/systemd/system/appifi-bootstrap.service
  11. echo "Restart=always" >> /lib/systemd/system/appifi-bootstrap.service
  12. echo "" >> /lib/systemd/system/appifi-bootstrap.service

  13. echo "[Install]" >> /lib/systemd/system/appifi-bootstrap.service
  14. echo "WantedBy=multi-user.target" >> /lib/systemd/system/appifi-bootstrap.service

  15. # Appifi Bootstrap Update Service
  16. echo "[Unit]" > /lib/systemd/system/appifi-bootstrap-update.service
  17. echo "Description=Appifi Bootstrap Update" >> /lib/systemd/system/appifi-bootstrap-update.service
  18. echo "" >> /lib/systemd/system/appifi-bootstrap-update.service
  19. echo "[Service]" >> /lib/systemd/system/appifi-bootstrap-update.service
  20. echo "Type=simple" >> /lib/systemd/system/appifi-bootstrap-update.service
  21. echo "ExecStart=/usr/local/bin/node /wisnuc/bootstrap/appifi-bootstrap-update.packed.js" >> /lib/systemd/system/appifi-bootstrap-update.service

  22. # Appifi Bootstrap Update Service Timer
  23. echo "[Unit]" > /lib/systemd/system/appifi-bootstrap-update.timer
  24. echo "Description=Runs Appifi Bootstrap Update every 4 hour" >> /lib/systemd/system/appifi-bootstrap-update.timer
  25. echo "" >> /lib/systemd/system/appifi-bootstrap-update.timer
  26. echo "[Timer]" >> /lib/systemd/system/appifi-bootstrap-update.timer
  27. echo "OnBootSec=1min" >> /lib/systemd/system/appifi-bootstrap-update.timer
  28. echo "OnUnitActiveSec=4h" >> /lib/systemd/system/appifi-bootstrap-update.timer
  29. echo "Unit=appifi-bootstrap-update.service" >> /lib/systemd/system/appifi-bootstrap-update.timer
  30. echo "" >> /lib/systemd/system/appifi-bootstrap-update.timer
  31. echo "[Install]" >> /lib/systemd/system/appifi-bootstrap-update.timer
  32. echo "WantedBy=multi-user.target" >> /lib/systemd/system/appifi-bootstrap-update.timer

  33. # Create soft link
  34. ln -s /lib/systemd/system/appifi-bootstrap* /etc/systemd/system/multi-user.target.wants/

  35. # configure network
  36. echo "[Match]" > /etc/systemd/network/wired.network
  37. echo "Name=en*" >> /etc/systemd/network/wired.network
  38. echo "[Network]" >> /etc/systemd/network/wired.network
  39. echo "DHCP=ipv4" >> /etc/systemd/network/wired.network
复制代码

    7. 设置服务开机自启
  1. # Set some softwares' initial value
  2. systemctl enable systemd-networkd
  3. systemctl enable systemd-resolved
  4. systemctl enable avahi-daemon
  5. systemctl enable appifi-bootstrap
  6. systemctl enable appifi-bootstrap-update.timer
复制代码

    8. 把 samba 服务关了
  1. # disable samba
  2. systemctl stop smbd nmbd
  3. systemctl disable smbd nmbd
复制代码

    9. 下载最新版本的 appifi 程序(这里拿的 0.2.16)
  1. # just for test
  2. wget https://github.com/JiangWeiGitHub/appifi-system/raw/master/wisnuc-215i/ubuntu-16-04-1-amd64/appifi-0.2.16-4895487-3a2df4d1-pre.tar.gz
  3. mv appifi-0.2.16-4895487-3a2df4d1-pre.tar.gz /wisnuc/appifi-tarballs
复制代码

    10. 开始埋坑(wisnuc 的 appifi 包里自带了 node_modules,有一些modules里边存在二进制文件,并且是x86平台的,需要换成 arm 版本)
  1. npm install --save fs-xattr
  2. cd node_modules/fs-xattr/build/Release/
  3. cp -a * /wisnuc/appifi/node_modules/fs-xattr/build/Release/
  4. cd -
  5. npm install --save xxhash
  6. cd node_modules/xxhash/build/Release/
  7. cp -a * /wisnuc/appifi/node_modules/xxhash/build/Release/
  8. cd
  9. npm install --save bcrypt
  10. cd node_modules/bcrypt/build/Release/
  11. cp -a * /wisnuc/appifi/node_modules/bcrypt/build/Release
复制代码

    11. 还有一个坑,树莓派默认是用 sd 卡作为硬盘跑的,appifi 只识别普通硬盘,这里需要改一行代码
  1. sudo vim +75 /wisnuc/appifi/build/system/storage.js
复制代码

          把第 75 行改成这样
  1. return _async.child.execAsync('find /sys/class/mmc_host -type l');
复制代码

    12. 万事大吉,重启 appifi 服务,完了就可以用 PC 端开始登陆了
  1. sudo systemctl restart appifi-bootstrap.service
复制代码


未完待续(硬盘上有资料, winsnuc 没有提供 ext4 文件系统直接使用的方式,只能等我找个 U 盘先体验体验,还有坑的话会追加这个帖子)



回复

使用道具 举报

已有1人评论

嘉文 发表于 2017-4-26 23:41:25
这个不是树莓派的系统吧,是archlinux吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则