树莓派第三代 B 型

发布于 2016-05-20  344 次阅读


树莓派,英文名:Raspberry Pi(简写为 RPi,或者 RasPi / RPI)是为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑,其系统基于 Linux。随着 Windows 10 IoT 的发布,我们也将可以用上运行 Windows 的树莓派。

现在的树莓派已经发展到第三代,拥有 4 核 1.2GHz 的处理器及 1GB 的 RAM,配备 4 个 USB 接口,一个 HDMI 接口,板载蓝牙和 WIFI 芯片,使用 MicroSD 卡作为存储媒介,拥有一个 40pin 的 GPIO 接口用于连接外设传感器。目前支持 Raspbian,Ubuntu 等 Linux 系统及 Windows 10 IoT 系统。

入门

买的树莓派到了,银行卡大小的卡片电脑如下图:

准备工作

  • 硬件

电源:实测用电脑的 USB 接口就能启动,我用的是 iPad 的电源
8G 以上的 MicroSD 卡
显示器(可选)

  • 软件

Putty(SecureCRT 也可以,用 XShell 无法 SSH 登录,原因未知)
SD Formatter 4.0(可选)
系统镜像CentOS 7 ARM
Win32DiskImager(sourceforge.net)

安装系统

  • 格式化 TF 卡
  • 运行 Win32DiskImager 将镜像写入 TF 卡

设置系统

  • 将写好系统镜像的 SD 卡插入树莓派,接好网线、电源,启动;
  • 进路由器查看 DHCP 信息,找到对应的 IP;
  • 打开 putty,输入 IP 进行 SSH 链接,账户为:pi,初始密码:raspberry;
Putty 登陆提示 - Network error:Connection refused
断电取出 TF 卡,用读卡器在盘符为 boot 的移动盘里建立一个无后缀名字为 SSH 的空白文件即可 
  • 为了方便折腾,建议第一时间启用 ROOT 账号吧~
    这个也很简单的,只需要执行一下两句命令即可:
# 设置 root 账号的密码,会让你输入两次新密码
sudo passwd root
# 启用 root 账号登录
sudo passwd --unlock root

执行之后,提示:“passwd: password expiry information changed.”,原因是:新版本 ssh 默认关闭 root 登陆,修改一下 ssh 的配置文件即可:

输入 sudo nano /etc/ssh/sshd_config
Ctrl + W,搜索 PermitRootLogin without-password
将其修改为 PermitRootLogin yes(如果没有直接另起一行输入内容);
Ctrl + O,保存;
Ctrl + X,退出;

执行完之后,用 sudo reboot 命令重启,然后用 root 账户登录。

  • 输入 raspi-config
    依次选择 Advanced Options -> Expand Filesystem 扩展 SD 卡上可用的空间,使系统资源利用率更高,运行更流畅(其他的按自己喜好设置)。

安装中文

树莓派默认是采用英文字库的,而且系统里没有预装中文字库,所以即使你在 locale 中改成中文,也不会显示中文,只会显示一堆方块。因此需要我们手动来安装中文字体(还有 ttf-wqy-zenhei)。
apt-get install ttf-wqy-microhei
安装过程中如果碰到(Y/n),都选择 y
中文字库安装完成之后,还需要安装一个中文输入法。

  • 先装 fcitx:apt-get install fcitx
  • 然后装五笔拼音:apt-get install fcitx-table-wbpy
  • 安装完毕进行配置
输入 raspi-config
依次选择“Internationalisation Options”->“change_locale”;
在弹出的界面中按空格键勾选 “zh_CN.UTF-8 UTF-8”,OK;
再在 Default locale for the system environment:中选择 zh_CN.UTF-8;
配置完成之后,输入 `reboot` 重启

完成后就可以在 VNC 连接上去后使用中文显示和中文输入法了,切换中文输入法的热键是 Ctrl+Space。

  • 更改软件源
    输入 nano /etc/apt/sources.list 编辑文件,删除原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie main non-free contrib

编辑此文件后,使用 apt-get update 命令,更新软件列表。
其他源见:http://wiki.yuwei.cc/software/mirror

进阶

远程登录

精简版可忽略此步骤

  • 输入apt-get install tightvncserver 安装 VNC 服务;
  • vncpasswd 设置 VNC 服务密码,询问是否设置一个 view-only 密码(自定);
  • vncserver :1 -geometry 1024x768 启动图形界面的服务,后面跟的是分辨率;
  • 打开 PC 端的 VNC Viewer(target="_blank">),输入 IP:1 及设置好的密码,即可远程登录树莓派的图形界面。

开机启动

  • 输入nano /etc/init.d/tightvncserver,创建 tightvncserver 文件;
  • 写入以下内容:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          tightvncserver
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop tightvncserver
### END INIT INFO
# More details see:
# http://www.penguintutor.com/linux/tightvnc
### Customize this entry
# Set the USER variable to the name of the user to start tightvncserver under
export USER='pi'
### End customization required
eval cd ~$USER
case "$1" in
  start)
# 启动命令行。此处自定义分辨率、控制台号码或其它参数。
    su $USER -c '/usr/bin/tightvncserver -depth 16 -geometry 1024x768 :1'
    echo "Starting TightVNC server for $USER "
    ;;
  stop)
# 终止命令行。此处控制台号码与启动一致。
    su $USER -c '/usr/bin/tightvncserver -kill :1'
    echo "Tightvncserver stopped"
    ;;
  *)
    echo "Usage: /etc/init.d/tightvncserver {start|stop}"
    exit 1
    ;;
esac
exit 0

Ctrl+O 保存,Ctrl+X 退出

  • 给 tightvncserver 文件进行提权
chmod 755 /etc/init.d/tightvncserver
update-rc.d tightvncserver defaults
  • 重启,即可开机启动了。

Web 服务器

推荐组合为: nginx(轻量级的 Web 服务器) + php(Web 脚本语言) + sqlite(最轻量级的数据库)

  • 检查是否安装
# 查看 nginx 是否存在
which nginx
# 查看 php 是否存在
which php
# 查看 sqlite 是否存在
which sqlite
  • 安装相应服务
# 安装 nginx Web 服务器
apt-get install nginx
# 启动 nginx
/etc/init.d/nginx start
# nginx 的默认根目录为“/usr/share/nginx/html”
# 安装 php 和 sqlite
apt-get install php5-fpm php5-sqlite php-apc
# 修改 nginx 的配置文件:
nano /etc/nginx/sites-available/default

将以下内容复制到文档最后活着直接覆盖文档:

sserver {
        listen 80;
        root /media/www/html;
        index index.html index.htm index.php index.nginx-debian.html;

        if (!-e $request_filename) {
                rewrite ^(.*)$ /index.php$1 last;
        }

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

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

媒体

挂载硬盘

  • 挂载 FAT32 格式的硬盘
# 创建挂载点
mkdir /mnt/myusbdrive
# 编辑 fstab 让移动硬盘开机自动挂载
nano /etc/fstab
# 在最后一行添加如下内容
/dev/sda1 /mnt/myusbdrive auto defaults,noexec,umask=0000 0 0
# 保存重启,即可生效

说明:

sda1 是取决于你的实际情况,a表示第一个硬盘,1表示第一个分区。
umask=0000 0 0
前面四个0就是对所有人,可读可写可执行,
后面两个0,第一个代表dump,0是不备份
第二个代表fsck检查的顺序,0表示不检查
卸载:sudo umount /mnt/myusbdrive
  • 挂载 NTFS 格式的硬盘(读写方式挂载)
    默认挂载 NTFS 格式的硬盘只有只读权限,需要借助其它工具实现。
# 安装所需软件包
apt-get install fuse-utils ntfs-3g
# 加载内核模块
modprobe fuse
# 编辑 fstab 让移动硬盘开机自动挂载
nano /etc/fstab
# 在最后一行添加如下内容
/dev/sda1 /mnt/myusbdrive ntfs-3g defaults,noexec,umask=0000 0 0
# 保存重启,即可生效
  • 测试硬盘挂载是否成功:cd /mnt/myusbdrive

MiniDLNA

  • 安装、卸载 MiniDLNA
# 安装
apt-get install minidlna
# 卸载
atp-get remove –purge minidlna
  • 修改配置
# 打开配置文件
nano /etc/minidlna.conf
# 可参考修改的项有:
# 媒体文件目录:
media_dir=/mnt/myusbdrive/
# 数据库目录,MiniDLNA 用的是 SQLite 数据库来索引文件
db_dir=/var/lib/minidlna
# 服务器 IP
listening_ip=192.168.1.106
# 端口
port=8200
# 网络名称,用于其它设备发现当前设备
friendly_name=DLNA
  • 其他命令
# 让 MiniDLNA 随机启动
update-rc.d minidlna defaults
# 启动 MinDLNA 服务
service minidlna start
# 当你修改配置文件及媒体资源更新时,需要强制刷新,以便 MiniDLNA 将最新的媒体文件进行索引
service minidlna force-reload
# 查看资源个数
http://192.168.1.106:8200/
# 取消 MiniDLNA 的开机自动启动
update-rc.d -f minidlna remove
# 停止 MiniDLNA 服务
service minidlna stop
# 停止 MiniDLNA 所有进程
killall minidlna

其他

改主机名

临时修改:hostname 主机名
永久修改:
主机名存储在两个地方,两个地方都要修改
nano /etc/hostname
nano /etc/hosts
保存后,重启

系统精简

# 删除 python_games 目录服务器
rm -rf python_games
# 删除 opt 目录下的示范代码
sudo rm -rf opt
# 执行清洁
apt-get autoremove
apt-get clean
# 删除所有日志
cd /var/log/
rm `find .-type f`

二十多岁的年纪,希冀着时光别走…