Raspberry Pi 初体验

作者:Shawn Powers

我的 Raspberry Pi 收藏要归功于 Kyle Rankin。我从没觉得自己足够Geek,能用 Arduino 做些什么,而且出于某种原因,我 mentally 把 RPi 也归为同一类。我真是目光短浅!谢天谢地,Kyle 让我看到了光明,我设法抢购了一些新的 512MB 型号 B 的设备。您也会从 Kyle 那里听到关于 Raspberry Pi 的消息,但本月,我想向那些一直犹豫是否购买 RPi 的人介绍 RPi,因为他们认为自己不够 Geek。当我的 Raspberry Pi 到货时,我不得不问很多愚蠢的问题;希望我可以为您省去那些尴尬。

不含电池

老实说,“不含电池”是真的,但 Raspberry Pi 确实可以用四节 AA 电池和一个小小的电阻运行。如果您的目标是制作一个便携式项目,这可能对您来说是一个可行的选择。只需知道 RPi 需要 5 伏的稳定电源,并且会消耗大约 700mAh 的电流。如果您添加 USB 设备,它会更快地耗尽电池电量。因此,虽然电池可以使用,但很可能 Raspberry Pi 会在电池电量过低时无预警地失效。因此,建议使用 AC 适配器。

幸运的是,RPi 由一个 micro-USB 端口供电,这是手机和平板电脑最常见的电源适配器。您很可能在家里有一打潜在的 Raspberry Pi 电源。然而,与电池情况一样,重要的是找到一个可以提供至少 700mAh 电流的电源。请记住,在电流方面,越多越好,所以不要担心 1 安或 2 安的电源适配器会损坏设备。它只会按需汲取电流。但是,如果电源不能提供至少 700mAh 的电流,Raspberry Pi 将不可靠。RPi 的大多数问题往往与电源适配器弱或有故障有关。

不要把我关起来

一旦您将电源连接到 RPi,您很快就会发现它很难操作。我没有先谈论外壳,因为我们都知道,构建外壳不是任何人首先要做的事情。不过,如果您想让您的 Pi 保持良好状态,用某种外壳保护它是很重要的。幸运的是,外壳的选择比好莱坞的明星还多。

外壳选项:购买一个

您购买了 Raspberry Pi,它只花了 35 美元。再花 10-15 美元购买一个预制外壳来装它似乎是合乎逻辑的。有透明外壳、彩色外壳、昂贵外壳和廉价外壳。大多数市售外壳都是普通的方形盒子,但 RPi 也是一个小型的方形设备,所以这很合理。购买外壳还可以保证紧密贴合和合适的连接。如果您的 Pi 将经常被处理,那么装配式外壳是一个非常好的主意。

外壳选项:从育儿室偷

Raspberry Pi 很小,它真的很适合乐高城堡主题。说真的,当它刚问世时,基于乐高的 RPi 外壳比其他任何东西都多。如果您可以获得合适的乐高积木,那么当正确构建时,这些小家伙有多坚固会让人惊讶。此外,如果您用乐高积木构建一个定制外壳,您可以添加翅膀、火箭和坐在顶部的乐高小人。此外,谁不想要一个可以兼作玩具空间站的台式计算机系统呢?

外壳选项:3D 打印

如果您有 3D 打印机,我想不出还有什么比这更酷的方式来覆盖您的 Pi 了。互联网上有模板可用,但即使没有模板,也可以制作出您想要的紧密贴合或通风良好的外壳。现在有了 3D 打印机的不同颜色选择,天空才是真正的极限。

外壳选项:普通打印

我没有买外壳。我没有 3D 打印机。而且,我的孩子们也不再有乐高积木让我偷了。对我来说,我想要一个简单、便宜且能完成工作的外壳。谢天谢地,http://h2database.com/raspi 的人们提供了一个可打印的模板,可以折叠成 Raspberry Pi 外壳。最酷的打印材料是透明的聚酯薄膜。图 1 显示了可折叠透明外壳有多酷。

图 1. 这种可折叠外壳简单、便宜且外观漂亮(图片来自 http://h2database.com)。

外壳选项:疯狂一点

您有一台名字很傻的电脑,那么为什么不用一个傻乎乎的外壳来衬托它呢?Raspberry Pi 足够小,可以放进 Pop-Tart 盒子、旧鞋、DVD 盒、空心书或雕刻过的万圣节南瓜里。当然,任何潮湿的外壳都可能损坏或毁坏您的 Pi,但制作一个“Raspberry Pumpkin Pi”是很诱人的,不是吗?RPi 外壳改装的可能性是无限的,所以让您的创造力引领方向吧。

图 2. 我可能是在街区里唯一一个用 Pop-Tarts 盒子启动电脑的孩子。

启动

首先,Raspberry Pi 不会 PXE 启动。它也不会直接从 USB 设备启动。这两件事真的让我很失望,但尽管如此,RPi 确实可以从附带的 SD 卡槽中很好地启动。因为它不会从 USB 启动,所以从第二台计算机安装操作系统是最容易的。有几个 Linux 发行版是为基于 ARM 的 RPi 编译的,但迄今为止最流行的是基于 Debian 的 Raspbian OS。

为了获得最佳性能,建议使用 10 类 SD 卡。一旦您获得 SD 卡,复制 Raspbian OS 的说明可在 http://www.raspberrypi.org 上找到。好消息是,即使您的 SD 卡又小又慢,一旦设备启动,也没有理由操作系统不能主要存在于 USB 驱动器上。如果您想尝试将大部分操作系统移出 SD 卡,Raspberry Pi 网站上有一些很棒的教程。

分割您的大脑

Raspberry Pi 配备了一个共享系统,用于系统 RAM 和 GPU RAM。由于 GPU 是一种功能强大的设备,能够驱动高分辨率显示器和硬件渲染多种类型的视频,如果您在多媒体环境中使用 RPi,您需要确保 GPU 获得充足的 RAM。如果您在无头服务器模式下运行 Pi,您可能希望尽可能少地使用 RAM 用于 GPU,而将大部分 RAM 留给系统。

GPU 需要的绝对最小值是 16MB。这看起来不多,但由于系统最大容量为 256MB 或 512MB,即使是 16MB 也可能很重要。由于 Raspberry Pi 没有 BIOS,因此分配 RAM 的唯一方法是将名为 start.elf 的二进制文件放入 /boot 目录。由于 GPU 的专有性质,这些不同的 .elf 文件是从 http://www.raspberrypi.org 下载的。如果您以无头模式运行,您需要抓取仅为 GPU 专用 16MB 的 .elf 二进制文件。否则,您将必须决定您的应用程序需要多少 GPU RAM。试错可能是找出最佳分割的唯一方法。好消息是,新型号 B 设备配备了 512MB RAM 而不是 256MB,因此它在内存分割方面提供了更大的灵活性。

是否使用交换空间

在磨损均衡和写入周期方面,SD 卡每年都在变得更好。总是担心过度使用 SD 卡会使其磨损,并使其变为只读。由于 RPi 也受到有限且不可扩展的 RAM 的限制,因此交换空间的问题备受争议。

Raspbian 默认安装时启用了交换文件——不是交换分区,而是交换文件。此交换文件是否会磨损您的 SD 卡仍在争论中。我倾向于对这类事情感到偏执,所以我寻找替代方案。因为我有 512MB 的设备,所以我有更多的 RAM 可用,所以我决定使用 zRam 来压缩一些系统 RAM 并将其用作交换空间。它是如何工作的?基本上,zRam 允许系统使用 RAM 作为交换空间,但以压缩模式使用,使其看起来比系统实际包含的 RAM+交换空间更多。

zRam 已经编译到 Raspbian 内核中,因此如果您想尝试我的方法,只需少量脚本即可。我非常喜欢我在 eXtremeSHOK.com 网站上找到的脚本。该网站在撰写本文时已离线,因此我在下面包含了该脚本。创建一个名为 /etc/init.d/zram 的文件,其中包含以下内容


#!/bin/bash
### BEGIN INIT INFO
#Provides: zram
#Required-Start:
#Required-Stop:
#Default-Start: 2 3 4 5
#Default-Stop: 0 1 6
#Short-Description: Increased Performance In Linux With zRam 
#(Virtual Swap Compressed in RAM)
#Description: Adapted for Raspbian (Rasberry pi) by eXtremeSHOK.com 
#using https://raw.github.com/gionn/etc/master/init.d/zram
### END INIT INFO

start() {
    mem_total_kb=$(grep MemTotal /proc/meminfo | grep -E --only-matching '[[:digit:]]+')

    modprobe zram

    sleep 1
    #only using 50% of system memory, comment the line 
    #below to use 100% of system memory
    mem_total_kb=$((mem_total_kb/2))

    echo $((mem_total_kb * 1024)) > /sys/block/zram0/disksize


    mkswap /dev/zram0

    swapon -p 100 /dev/zram0
}

stop() {
    swapoff /dev/zram0
    sleep 1
    rmmod zram
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 3
        start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        RETVAL=1
esac

然后您需要使 init 脚本可执行并强制其自动启动。以下命令可以完成该操作


sudo chmod +x /etc/init.d/zram
sudo update-rc.d zram defaults

基本上,正如编写的那样,该脚本将使用一半的可用 RAM 作为压缩交换空间。再次强调,所有功劳都归功于 eXtremeSHOK.com 的人们创建了 init 脚本。我对性能非常满意,它使我能够完全摆脱交换文件。

下一步是什么?

希望这篇 Raspberry Pi 简介能让像我这样犹豫不决的人觉得这个设备不那么令人生畏。凭借其运行 XBMC 的能力,充当完整的桌面系统,但几乎不耗电,RPi 是无数项目的绝佳设备。而且 35 美元的价格绝对是白菜价。

我们希望在 Linux Journal 办公室看到很多很多的 Raspberry Pi 项目。希望您也能在您的地方看到一些。如果您有任何特别酷的项目或外壳改装,请将照片发送至 ljeditor@linuxjournal.com。我们很乐意看到大家都在做什么。

Shawn 是 Linux Journal 的副编辑,并且从一开始就接触 Linux。他对开源充满热情,并且喜欢教学。他还喝太多咖啡,这经常在他的写作中体现出来。

加载 Disqus 评论