豪翔天下

Change My World by Program

0%

玩转树莓派2

想在家里做NAS、DNS等私有云服务,但是无奈家里淘汰下来的电脑已无力承担如此重任。没办法了,就只能试试树莓派。不试不知道,一试吓一跳,完全就是一手掌大小的电脑,听说desktop版本还能使用word等软件,虽然只有1GB内存,但是200多块(淘宝店)就能买到这个东西,那是非常值了。当然,作为一个技术爱好者,别人是完全无法体会这种快乐的。要是其功耗再低点或者能采用其它的供电方式(比如无线供电、电池供电),感觉完全能颠覆智能市场。

系统安装

制作启动镜像

镜像下载:https://www.raspberrypi.org/downloads/,我下载的是RASPBIAN分支,因为其是官方提供且基于Debian,和Ubuntu操作一样.官方镜像raspbian的各个版本地址以及release_notes参见: downloads,更新系统以及重装系统前,一定要先看看release_notes,比如从2016年11月那一版本开始,默认的ssh就没有开启了。。。对于没有显示器的我来说,只能重装。
Mac环境

1
2
3
4
5
6
df  # 查看当前已经挂载的卷,一般sd卡在最后,Filesystem是/dev/disk2s1,Mounted on /Volumes/No Name,可以在Finder里面将sd卡的名字改为Pi(我那个默认是No Name)
diskutil unmount /dev/disk2s1 #将sd卡卸载
>> Volume Pi on disk2s1 unmounted
diskutil list # 查看是否有sd卡设备
dd bs=4m if=pi.img of=/dev/rdisk2 #将镜像文件pi.img写入sd卡,需要注意这条命令使用的是rdisk2,这是原始字符设备
diskutil unmountDisk /dev/disk2 # 再卸载sd卡,此时可以拔出来插入树莓派的sd卡槽了

启动操作系统

收到货的那天,发现其有一个DC接口,还以为是通过DC接口供电,出门走了一圈都没发现有卖这货的,于是回家,自习已看,发现可以用Android的电源为期供电的,那接口名字忘了。和网上建议的一样,我采用的是5V 2A的供电设备(其实是直接插到小米插线板上的)

然后,我又发现,我家里没多的网线,那怎么办,我装的不是desktop版本,没有网线就不能SSH进去。不过还好,它支持HDMI,于是我把它功过HDMI连接上了家里40英寸的电视,(HDMI高清显示,真他妈爽)就像这样,还通过USB插了外置键盘。

默认是通电自动启动的,所以插上电就会进入系统了,默认用户名pi,默认密码是raspberry。

配置

初始化配置

通过sudo raspi-config来运行设置工具:

  • 第一项将sd卡的剩余空间全部用来使用

  • 然后修改Internationalisaton Options里面的时区及默认字符编码zh_CN GB2312/zh_CN.UTF-8 UTF-8

  • 接着修改源,这个国度没办法的事

    1
    2
    3
    4
    5
    6
    # sudo nano /etc/apt/sources.list.d/raspi.list,修改如下
    deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ jessie main

    # sudo nano /etc/apt/sources.list,修改为如下:
    deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib
    deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib
  • 最后,安装必要的软件
    1
    2
    3
    sudo apt-get update && sudo apt-get upgrade -y
    sudo apt-get install vim tree ttf-wqy-microhei git
    sudo rpi-update # 如果想要升级固件,可以这样升级,如果提示命令找不到可以先install rpi-update

WIFI设置

1
2
3
4
5
6
7
8
9
10
11
# 当然,我不可能一直用电视作显示器吧,这时候我买的无线设备就有用场了,直接通过USB插到树莓派上,然后设置wifi  
$ ifconfig # 可以看到wlan0,表示已经识别无线网卡
$ sudo vim /etc/network/interfaces添加或修改关于wlan0的配置
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid WIFI名称
wpa-psk WIFI密码

# 然后通过如下命令重启网卡
sudo ifdown wlan0 && sudo ifup wlan0

ownCloud私有云搭建(现在不大推荐,内存占用太高)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
作为私有云方案,我选择的ownCloud,而不是Samba,因为Samba功能仅仅算是ftp的共享,而不是一个私有云方案,当然ownCloud也有为人诟病的地方,比如内存占用高(树莓派2上占用100多MB),另一个是因为它本身是基于Apache的,树莓派内存总共就1G,我可不想既有Apache又有Nginx,所以直接用的是Nginx+php5-fpm的方案,不过这样子,配置过程就有点麻烦了。  
# 首先,安装基本服务
sudo apt-get install php5-common php5-cli php5-fpm
sudo apt-get install nginx
sudo apt-get install mysql-server mysql-client

# 配置MySQL,ownCloud需要提前创建用户、数据库和分配权限
> create database 库名 character set utf8 collate utf8_general_ci;
> grant ALL on 库名.* 用户名@localhost identified by "密码" # 注意,ownCloud是不允许root用户的,因为权限太多

# 配置文件权限
chmod 775 -R owncloud/ # 不要分配777,分配了也不能用
chown -R www-data:www-data owncloud/

# 配置php5-fpm
$ printenv PATH 获取系统环境变量
vim /etc/php5/fpm/pool.d/www.conf,将下面几行前面的注释去掉
;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin # 这里还要修改为刚才获取到的环境变量
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp

# 配置nginx,按照官网的教程配置Nginx conf:https://doc.owncloud.org/server/7.0/admin_manual/installation/nginx_configuration.html

对于官网的配置,我做了如下几项修改:
location ~ .php(?:$|/)$这里面修改为:
location ~ ^(.+?.php)(/.*)?$ \{
  fastcgi_split_path_info ^(.+.php)(/.+)$;
  include fastcgi_params;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_param PATH_INFO $fastcgi_path_info;
  fastcgi_pass unix:/var/run/php5-fpm.sock;
  fastcgi_index index.php;
  include fastcgi_params;
  fastcgi_param PHP_VALUE "post_max_size=10G \n upload_max_filesize=10G"; # 上传默认居然为513MB,这里可以修改大,不然在owncloud无法调整到更大
}
检查配置文件是否正确用# nginx -t nginx.conf

TeamViewer For Raspberry安装

deb包下载地址,然后执行如下命令进行安装和配置:

1
2
3
4
sudo dpkg -i ....deb	# 安装该deb包
sudo apt-get -f install # 安装依赖
sudo dpkg -i ....deb # 重新安装,如果出现错误,可以参见TroubleShooting
sudo setup # 进行配置,输入teamveiwer的用户名和密码即可在外部网络进行访问了,会自动出现在你的Teamviewr联系人中

TroubleShooting

  • apt出现错误xdg-desktop-menu: No writable system menu directory found.
    执行命令sudo mkdir /usr/share/desktop-directories/
坚持原创技术分享,谢谢支持

欢迎关注我的其它发布渠道