树莓派介绍与“食用”方法

树莓派 ( Raspberry Pi ) 是 Raspberry Pi Foundation 推出的迷你电脑,它只有信用卡大小,但可以完成一台普通 PC 能完成的大部分工作,并且价格很便宜,是电脑爱好者的不二选择,如果你是一名 Linuxer 更应该拥有一台这样的迷你电脑。

发展

Raspberry Pi 自 2012 年发布以来,依次发布了 Raspberry Pi 1 A , Raspberry Pi 1 B ,Raspberry Pi 1 B+ ,Raspberry Pi 1 A+ ,Raspberry 2 B 五个版本,这些版本硬件上有不少变化,具体可以查阅 Wikipedia Raspberry Pi ,另外 Raspberry Pi 2 B 将支持 Windows 10 iot ,这对非 Linux 用户来说也是一个福音,因为你可以完全把 Raspberry Pi 2 B 当成你的另一台 Windows PC ,详情可以查看 Raspberry Pi Windows 10 iot。

Raspberry Pi 的用途

Raspberry Pi 到底能拿来做什么呢?它的玩法多的数不清了,因为这取决于我们的创意,作为一块开发板,它给我们提供了很大的自由。

  • 树莓派构建的超级计算机
  • 作为家用服务器
  • 我拿树莓派来做什么
  • Raspberry Pi 五种有趣玩法
  • 微型个人电脑 (笔者也就只是当作个人微型电脑而已)

下面是几张引用文章内的图:

操作系统的选择

由于 Raspberry Pi 几乎是为 Linux 而生的,所以 Raspberry Pi 的操作系统也是多样的,为此以下介绍几个操作系统。

  • Raspbian 基于 debian 的 Raspberry Pi 官方操作系统,如果是当开发板使用,最建议使用此系统
  • Ubuntu Mate
  • Snappy Ubuntu Core
  • Windows 10 Iot Core
  • OPENELEC
  • PINET
  • RISC OS

以上操作系统都可以在 Raspberry Pi 主页 找到相关信息。

  • Arch Arm
  • Gentoo Arm

个人电脑

笔者只是将 Raspberry Pi 当成个人电脑使用而已,因此,未选择 Raspbian 而是选择了 Arch Arm。

下面是我选择的配件

  • Raspberry Pi 2 B
  • 8 G 闪迪内存卡
  • USB Wi-Fi 模块(可选)
  • 亚克力外壳(可选)
  • 散热铝片或铜片
  • 电源线
  • 键盘鼠标(可选)

安装系统

首先参照 Arch Arm Installation 安装系统。

为 SD 卡分区(用你 Linux 上的 sd 卡设备代替 sdX ):

fdisk /dev/sdX

第一步请先删除原来的分区并重新创建:

  • 输入 o 清除所有分区。
  • 输入 p 列出所有分区,此时应该没有分区。
  • 输入 n , 然后输入 p 选择主分区,1 是第一个分区 ,输入 ENTER 确定第一个扇区,然后输入 +100M 。
  • 输入 t , 然后输入 c 设置第一个分区类型为 W95 FAT32 (LBA)。
  • 输入 n , 然后输入 p 选择主分区, 2 是第二个分区, 直接输入 ENTER 确定默认的扇区和最后的扇区(剩下的所有容量作为第二个分区)
  • 输入 w 写入分区表并退出。

创建和挂载 vfat 文件系统(用你 Linux 上的 sd 卡设备代替 sdX ):

mkfs.vfat /dev/sdX1
mkdir boot
mount /dev/sdX1 boot

创建个挂载 ext4 文件系统(用你 Linux 上的 sd 卡设备代替 sdX ):

mkfs.ext4 /dev/sdX2
mkdir root
mount /dev/sdX2 root

使用 root 用户下载和解压 根文件系统:

wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C root
sync

移动启动文件到第一分区:

mv root/boot/* boot

卸载挂载点:

umount boot root

将 SD 卡插入 Raspberry Pi ,连接以太网和 5v 电源。

使用 SSH 登录

默认用户是 alarm 密码 alarm。(ssh 请先用此用户登录,再修改 ssh 配置允许 root 登录)

root 的默认密码是 root。

注意 :以下用到 sudo 命令的,若你未配置 sudo 请直接用 root 用户执行。

首次使用应该按如下格式 ssh 登录:

$ ssh -p 22 alarm@地址

进去后使用 su 切换到 root ,并修改密码:

$ sudo su -   
# password

为了能使 root 通过 ssh 登录,编辑 /etc/ssh/sshd_config

$ sudo nano /etc/ssh/sshd_config

#PermitRootLogin 这行去掉注释,并将值设置为 yes

PermitRootLogin yes

配置源与更新系统

编辑 /etc/pacman.d/mirrorlist

$ sudo nano /etc/pacman.d/mirrorlist

在顶部增加以下代码,这是中科大的源

## USTC
Server = http://mirrors.ustc.edu.cn/archlinuxarm/armv7h/$repo

编辑好后按 ctrl +x ,然后按 y 保存,然后升级整个系统:

$ sudo pacman -Syu

桌面化 Raspberry Pi

首先安装 xorg

$ sudo pacman -S xorg
$ sudo pacman -S xorg-xinit

然后安装 lxqt 桌面:

$ sudo pacman -S lxqt 

使用 vncviewer 访问 Raspberry Pi

首先配置 vncviewer,本机与 Raspberry Pi 都需要安装 tigervnc

$ sudo pacman -S tigervnc

在 Raspberry Pi 中执行 vncserver

$ vncserver 

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n

New 'ArchRaspi:1 (locez)' desktop is ArchRaspi:1

Creating default startup script /home/locez/.vnc/xstartup
Starting applications specified in /home/locez/.vnc/xstartup
Log file is /home/locez/.vnc/ArchRaspi:1.log

然后编辑 ~/.vnc/xstartup ,将原来的内容替换为以下内容,你也可以直接删除原文件,再新建一个同名文件:

#!/bin/sh

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startlxqt

然后杀掉 vnc 服务,并重启它:

$ vncserver -kill :1
Killing Xvnc process ID 400

$ vncserver 

New 'ArchRaspi:1 (locez)' desktop is ArchRaspi:1

Starting applications specified in /home/locez/.vnc/xstartup
Log file is /home/locez/.vnc/ArchRaspi:1.log

记住上面的 :1 可能根据实际情况不同,这个端口是你用 vncviewer 连接时用的端口。

然后本机中执行:

$ vncviewer address:port

然后输入密码就可以了

小屏幕显示

现在我们看见这个不是全屏的,但是可以在启动 vncserver 的时候增加参数,来指定分辨率:

$ vncserver -kill :1
$ vcnserver -geometry 1920x1000

这下就全屏了

全屏

其它用途

然后你可以在不另外配显示屏的情况下正常使用 Raspberry Pi ,将它配置成一个 samba 服务器,或者做成一个下载器,这仅仅取决于,你想将 Raspberry Pi 拿来干什么。

笔者还尝试将 Raspberry Pi 直接连入手机 Wi-Fi ,把手机当成路由器使用,获取手机内网 IP 后,直接在手机上 ssh 内网登录,从而实现 Raspberry Pi 使用手机流量上网,并且不用借助路由器就可以连接 Raspberry Pi。

这里笔者推荐的是 juiceSSH ,手机上简单实用的一款 ssh 工具。由于篇幅原因,此处不再详述如何使用手机直连 Raspberry Pi,动手能力强的同学可以参看上面我给的思路,自行折腾。

后来笔者,买了键盘以后,又利用 tmux 将手机纯粹当屏幕使用。

首先 手机先 ssh 登陆 Raspberry Pi,执行

tmux

然后在看不见屏幕的情况下,使用键盘盲打输入 用户名密码 进行登录,然后执行

tmux attach

此时键盘与手机屏幕的输入已经是同步的,一台个人作品就此完成!

成果展示

下面几张图,是笔者在学校折腾的时候拍的:

参考资料

  • Linux.中国
  • Wikipedia Raspberry Pi
  • RaspberryPi