!本文需要 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。