惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
G
Google Developers Blog
小众软件
小众软件
V
V2EX
月光博客
月光博客
腾讯CDC
aimingoo的专栏
aimingoo的专栏
J
Java Code Geeks
Y
Y Combinator Blog
人人都是产品经理
人人都是产品经理
B
Blog RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 【当耐特】
D
Docker
M
MIT News - Artificial intelligence
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
MongoDB | Blog
MongoDB | Blog
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
用 Raspberry Pi 搭建下载服务器 - 少数派
2016-08-22 · via 少数派

!本文需要 Linux 基础 !

本教程在
-Raspberry Pi M3b
-RASPBIAN-2016-05-27-Jessie
测试通过

参考资料 极客学院Wiki

我的树莓派配件:触摸显示屏(触摸坏掉了),sd卡2GB(Class4),U盘16GB(USB3.0并没有什么卵用,Pi 只支持2.0)。

因为手头没有大容量,高Class的SD卡,我只好用U盘引导。但是这样也有好处,就是卡不太容易损坏。

1.启动准备

本文使用的刷写工具 Etcher
屏幕快照 2016-08-22 下午6.17.17.png

在SD卡中刷入 RASPBIAN JESSIE LITE
在U盘中刷入 RASPBIAN JESSIE
镜像自己去官方找

修改启动选项使其从U盘引导。
打开SD卡中的 cmdline.txt 将其中 root= 后面的路径改为 /dev/sda2。结果如下:

dwc_otg.lpm_enable=0 console=tty1 console=ttyAMA0,115200 root=/dev/sda2 rootfstype=ext4 elevator=deadline rootwait fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo

然后扔进微波炉(划掉)

2.首次启动

接入有线网络,最好还能接一个 HDMI 显示器。

通电开机,等待首次启动完成,首次启动需要生成 swap 分区。在生成完所有需要生成的文件之前,部分服务的启动可能会出现问题,可能需要强制重启几次。如果没有显示器,那可能就需要等5分钟就去重启一次了。。。。
(我没有用过纯SD卡开机,这个情况仅限于像我一样要用U盘开机的少年,只有SD卡的话,好像挺顺畅的。)

从路由器的管理页面找到树莓派的IP地址。

从另一台电脑使用ssh登录:

ssh pi@192.168.0.xxx

密码是:raspberry

3.基本配置

成功登录之后进入树莓派的设置向导:
sudo raspi-config

屏幕快照 2016-08-22 下午7.42.19.png

先选择第二项修改用户 pi 的密码。[Change User Password]

之后选择第三项启动选项,为了启动速度,我这里选择启动到文本界面并自动登录。[Boot Options]
屏幕快照 2016-08-22 下午7.44.40.png
如果你不需要这样,也可以不改,其实也慢不了多少。

最后进入第五项修改键盘布局,语言和时区,树莓派默认为英式键盘,需要自己改成美式键盘。

接下来连接 wifi。

参考资料:Embbnux

扫描 wifi 列表:
iwlist scan

编辑 wifi 配置文件:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

在列表末尾加上自己 wifi 的信息:

network={
  ssid="WIFINAME"
  psk="password"
}

重启
sudo reboot

4.软件安装

首先修改软件源:
sudo nano /etc/apt/sources.list

将默认的注释掉(#号加在开头),在前面加入一行:

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi

或者用以下地址代替上面的地址栏

中山大学 Raspbian http://mirror.sysu.edu.cn/raspbian/raspbian/
中国科学技术大学 Raspbian http://mirrors.ustc.edu.cn/raspbian/raspbian/
清华大学 Raspbian http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/
华中科技大学 Raspbian http://mirrors.hustunique.com/raspbian/raspbian/
Arch Linux ARM http://mirrors.hustunique.com/archlinuxarm/
大连东软信息学院源 Raspbian http://mirrors.neusoft.edu.cn/raspbian/raspbian/

更新:
sudo apt-get update

接下来装 vim ,你要是不用也可以不装:
sudo apt-get install vim

安装中文字体:
sudo apt-get -y install ttf-wqy-zenhei
sudo fc-cache

配置字体:
sudo dpkg-reconfigure locales 

在伪图形界面用上下键和空格选中一下五项

en-GB.UTF-8 UTF-8
zh_CN.GB2312
zh.CN.GB18030 GB18030
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8

然后 OK,在接下来的选项中选择 en_US.UTF8 默认仍然以英文显示

安装远程桌面 VNC:
sudo apt-get install tightvncserver

启动服务器:
vncserver :1

之后会提示创建密码,先是控制密码,然后是仅查看密码。
然后就可以从别的电脑的 VNC Viewer 访问了,连接时候会提示连接不安全,忽略就好。
屏幕快照 2016-08-22 下午7.57.42.png

然后我们给 VNC 建立启动服务:
sudo nano /etc/init.d/tightvncserver

输入以下脚本:

#!/bin/sh
### BEGIN INIT INFO
# Provides: tightvncserver
# Required-Start: $syslog $remote_fs $network
# Required-Stop: $syslog $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts VNC Server on system start.
# Description: Starts tight VNC Server. Script written by James Swineson.
### END INIT INFO

# /etc/init.d/tightvncserver
VNCUSER='pi'
case "$1" in
 start)
 su $VNCUSER -c '/usr/bin/tightvncserver :1 -geometry 1920x1080'
 echo "Starting TightVNC Server for $VNCUSER"
 ;;
 stop)
 pkill Xtightvnc
 echo "TightVNC Server stopped"
 ;;
 *)
 echo "Usage: /etc/init.d/tightvncserver {start|stop}"
 exit 1
 ;;
esac
exit 0

调整权限:

sudo chmod 755 /etc/init.d/tightvncserver

建立软链接:

sudo update-rc.d tightvncserver defaults

安装文件共享服务:

sudo apt-get install samba samba-common-bin

修改配置文件:
sudo nano /etc/samba/smb.conf

下面的配置是让用户可以访问自己的 home 目录。
-开启用户认证,找到##### Authentication #####,在后面添加一行security = user。
-配置用户可以读写自己的 home 目录,在[homes]节中,把 read only = yes 改为read only = no 。

重启 samba 服务:
sudo /etc/init.d/samba restart

添加账户到共享文件夹,设置一个密码:
sudo smbpasswd -a pi

安装显示屏驱动,你要是有显示屏你就装:微雪

需要注意的是,启用显示屏后 HDMI 依然可以使用,虽然不会同时显示图形界面,但是可以通过Crtl+Alt+F2来切换到 HDMI 负责显示的第二控制台。

安装web服务器:
sudo apt-get install nginx
sudo /etc/init.d/nginx start
sudo apt-get install php5-fpm php5-sqlite

修改 nginx 的配置文件:
sudo nano /etc/nginx/sites-available/default

找到 php 的定义段,将这些行的注释去掉 ,修改后内容如下:

location ~ .php$ {
 fastcgi_pass unix:/var/run/php5-fpm.sock;
 fastcgi_index index.php;
 include fastcgi_params;
}

重新加载配置:
sudo /etc/init.d/nginx reload

安装 aria2c:
sudo apt-get install aria2

按照这里的说明建好配置文件:少数派
不要忘了把下载目录改为 dir=/home/pi/Downloads 这样可以下载到树莓派的启动盘中,如果想下载到开机后插入的其他U盘或移动硬盘(如果使用移动硬盘请购买一个有源的 USB Hub,保证供电),请参阅文章后面的自动挂载说明,并将目录改为 dir=/mnt/udisk 。

因为一些我也不懂的原因,aria2 如果作为服务启动,就无法被 WebUI 以 RPC 方式连接,所以我只能提供大家手动启动的方法,希望有大神能解决一下。

每次开机之后都要这样做:

要插其他U盘的话先插U盘。
如果使用挂载的其它U盘,需要先给挂载文件夹设置权限,如果下载到启动盘里,那就不用这步了:
chmod 777 /mnt/udisk

然后启动 aria2c:
aria2c --conf-path="/home/pi/.aria2/aria2.conf" -D

5.其他配置

安装 WebUI
下载 https://github.com/mayswind/AriaNg

把下载的文件夹共享文件夹扔到 /home/pi/Documents :
sudo rm -r /usr/share/nginx/www/html
sudo mv /home/pi/Documents/AriaNg /usr/share/nginx/www/html

设置权限:
chmod -R a+r /usr/share/nginx/www/html

确认可以从浏览器访问 192.168.0.xxx(你的 PI IP)
屏幕快照 2016-08-22 下午10.07.34.png

设置自动挂载
新建一个文件:sudo nano /etc/udev/rules.d/10-usbstorage.rules 

存入以下内容:

KERNEL!="sd*", GOTO="media_by_label_auto_mount_end"

SUBSYSTEM!="block",GOTO="media_by_label_auto_mount_end"

IMPORT{program}="/sbin/blkid -o udev -p %N"

ENV{ID_FS_TYPE}"", GOTO="media_by_label_auto_mount_end"

ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"

ENV{ID_FS_LABEL}"", ENV{dir_name}="Untitled-%k"

ACTION"add", ENV{mount_options}="relatime,sync"

ACTION"add", ENV{ID_FS_TYPE}"vfat", ENV{mount_options}="iocharset=utf8,umaskk

=000"

ACTION"add", ENV{ID_FS_TYPE}"ntfs", ENV{mount_options}="iocharset=utf8,umaskk

=000"

ACTION"add", RUN+="/bin/mkdir -p /mnt/udisk/", RUN+="/bin/mount -o $env{mount__

options} /dev/%k /mnt/udisk/" 

ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /mnt/udisk/}", RUN+="//

bin/rmdir /mnt/udisk/"

LABEL="media_by_label_auto_mount_end" 

好了,到此为止,你的树莓派已经可以拿来下载了。
有不会的自己 Google。