标签 树莓派 下的文章

有些时候我们想从 DQYDJ 网站的数据中分析点有用的东西出来,在过去,我们要用 R 语言提取固定宽度的数据,然后通过数学建模来分析美国的最低收入补贴,当然也包括其他优秀的方法。

今天我将向你展示对大数据的一点探索,不过有点变化,使用的是全世界最流行的微型电脑————树莓派,如果手头没有,那就看下一篇吧(可能是已经处理好的数据),对于其他用户,请继续阅读吧,今天我们要建立一个树莓派 Hadoop集群!

I. 为什么要建立一个树莓派的 Hadoop 集群?

由三个树莓派节点组成的 Hadoop 集群

我们对 DQYDJ 的数据做了大量的处理工作,但这些还不能称得上是大数据。

和许许多多有争议的话题一样,数据的大小之别被解释成这样一个笑话:

如果能被内存所存储,那么它就不是大数据。 ————佚名

似乎这儿有两种解决问题的方法:

  1. 我们可以找到一个足够大的数据集合,任何家用电脑的物理或虚拟内存都存不下。
  2. 我们可以买一些不用特别定制,我们现有数据就能淹没它的电脑:
    —— 上手树莓派 2B

这个由设计师和工程师制作出来的精致小玩意儿拥有 1GB 的内存, MicroSD 卡充当它的硬盘,此外,每一台的价格都低于 50 美元,这意味着你可以花不到 250 美元的价格搭建一个 Hadoop 集群。

或许天下没有比这更便宜的入场券来带你进入大数据的大门。

II. 制作一个树莓派集群

我最喜欢制作的原材料。

这里我将给出我原来为了制作树莓派集群购买原材料的链接,如果以后要在亚马逊购买的话你可先这些链接收藏起来,也是对本站的一点支持。(谢谢)

开始制作

  1. 首先,装好三个树莓派,每一个用螺丝钉固定在亚克力面板上。(看下图)
  2. 接下来,安装以太网交换机,用双面胶贴在其中一个在亚克力面板上。
  3. 用双面胶贴将 USB 转接器贴在一个在亚克力面板使之成为最顶层。
  4. 接着就是一层一层都拼好——这里我选择将树莓派放在交换机和USB转接器的底下(可以看看完整安装好的两张截图)

想办法把线路放在需要的地方——如果你和我一样购买力 USB 线和网线,我可以将它们卷起来放在亚克力板子的每一层

现在不要急着上电,需要将系统烧录到 SD 卡上才能继续。

烧录 Raspbian

按照这个教程将 Raspbian 烧录到三张 SD 卡上,我使用的是 Win7 下的 Win32DiskImager

将其中一张烧录好的 SD 卡插在你想作为主节点的树莓派上,连接 USB 线并启动它。

启动主节点

这里有一篇非常棒的“Because We Can Geek”的教程,讲如何安装 Hadoop 2.7.1,此处就不再熬述。

在启动过程中有一些要注意的地方,我将带着你一起设置直到最后一步,记住我现在使用的 IP 段为 192.168.1.50 – 192.168.1.52,主节点是 .50,从节点是 .51 和 .52,你的网络可能会有所不同,如果你想设置静态 IP 的话可以在评论区看看或讨论。

一旦你完成了这些步骤,接下来要做的就是启用交换文件,Spark on YARN 将分割出一块非常接近内存大小的交换文件,当你内存快用完时便会使用这个交换分区。

(如果你以前没有做过有关交换分区的操作的话,可以看看这篇教程,让 swappiness 保持较低水准,因为 MicroSD 卡的性能扛不住)

现在我准备介绍有关我的和“Because We Can Geek”关于启动设置一些微妙的区别。

对于初学者,确保你给你的树莓派起了一个正式的名字——在 /etc/hostname 设置,我的主节点设置为 ‘RaspberryPiHadoopMaster’ ,从节点设置为 ‘RaspberryPiHadoopSlave#’

主节点的 /etc/hosts 配置如下:

#/etc/hosts
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

192.168.1.50    RaspberryPiHadoopMaster
192.168.1.51    RaspberryPiHadoopSlave1
192.168.1.52    RaspberryPiHadoopSlave2

如果你想让 Hadoop、YARN 和 Spark 运行正常的话,你也需要修改这些配置文件(不妨现在就编辑)。

这是 hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>  
  <name>fs.default.name</name>
  <value>hdfs://RaspberryPiHadoopMaster:54310</value>
</property>  
<property>  
  <name>hadoop.tmp.dir</name>
  <value>/hdfs/tmp</value>
</property>  
</configuration>

这是 yarn-site.xml (注意内存方面的改变):

<?xml version="1.0"?>
<configuration>

<!-- Site specific YARN configuration properties -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>4</value>
  </property>
  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>1024</value>
  </property>
  <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>128</value>
  </property>
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>1024</value>
  </property>
  <property>
    <name>yarn.scheduler.minimum-allocation-vcores</name>
    <value>1</value>
  </property>
  <property>
    <name>yarn.scheduler.maximum-allocation-vcores</name>
    <value>4</value>
  </property>
<property>
   <name>yarn.nodemanager.vmem-check-enabled</name>
   <value>false</value>
   <description>Whether virtual memory limits will be enforced for containers</description>
</property>
<property>
   <name>yarn.nodemanager.vmem-pmem-ratio</name>
   <value>4</value>
   <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
</property>
<property>  
<name>yarn.resourcemanager.resource-tracker.address</name>  
<value>RaspberryPiHadoopMaster:8025</value>  
</property>  
<property>  
<name>yarn.resourcemanager.scheduler.address</name>  
<value>RaspberryPiHadoopMaster:8030</value>  
</property>  
<property>  
<name>yarn.resourcemanager.address</name>  
<value>RaspberryPiHadoopMaster:8040</value>  
</property> 
</configuration>

slaves

RaspberryPiHadoopMaster
RaspberryPiHadoopSlave1
RaspberryPiHadoopSlave2

core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>  
  <name>fs.default.name</name>
  <value>hdfs://RaspberryPiHadoopMaster:54310</value>
</property>  
<property>  
  <name>hadoop.tmp.dir</name>
  <value>/hdfs/tmp</value>
</property>  
</configuration>

设置两个从节点:

接下来按照 “Because We Can Geek”上的教程,你需要对上面的文件作出小小的改动。 在 yarn-site.xml 中主节点没有改变,所以从节点中不必含有这个 slaves 文件。

III. 在我们的树莓派集群中测试 YARN

如果所有设备都正常工作,在主节点上你应该执行如下命令:

start-dfs.sh
start-yarn.sh

当设备启动后,以 Hadoop 用户执行,如果你遵循教程,用户应该是 hduser

接下来执行 hdfs dfsadmin -report 查看三个节点是否都正确启动,确认你看到一行粗体文字 ‘Live datanodes (3)’:

Configured Capacity: 93855559680 (87.41 GB)
Raspberry Pi Hadoop Cluster picture Straight On
Present Capacity: 65321992192 (60.84 GB)
DFS Remaining: 62206627840 (57.93 GB)
DFS Used: 3115364352 (2.90 GB)
DFS Used%: 4.77%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
————————————————-
Live datanodes (3):
Name: 192.168.1.51:50010 (RaspberryPiHadoopSlave1)
Hostname: RaspberryPiHadoopSlave1
Decommission Status : Normal

你现在可以做一些简单的诸如 ‘Hello, World!’ 的测试,或者直接进行下一步。

IV. 安装 SPARK ON YARN

YARN 的意思是另一种非常好用的资源调度器(Yet Another Resource Negotiator),已经作为一个易用的资源管理器集成在 Hadoop 基础安装包中。

Apache Spark 是 Hadoop 生态圈中的另一款软件包,它是一个毁誉参半的执行引擎和捆绑的 MapReduce。在一般情况下,相对于基于磁盘存储的 MapReduce,Spark 更适合基于内存的存储,某些运行任务能够得到 10-100 倍提升——安装完成集群后你可以试试 Spark 和 MapReduce 有什么不同。

我个人对 Spark 还是留下非常深刻的印象,因为它提供了两种数据工程师和科学家都比较擅长的语言—— Python 和 R。

安装 Apache Spark 非常简单,在你家目录下,wget "为 Hadoop 2.7 构建的 Apache Spark”来自这个页面),然后运行 tar -xzf “tgz 文件”,最后把解压出来的文件移动至 /opt,并清除刚才下载的文件,以上这些就是安装步骤。

我又创建了只有两行的文件 spark-env.sh,其中包含 Spark 的配置文件目录。

SPARK_MASTER_IP=192.168.1.50
SPARK_WORKER_MEMORY=512m

(在 YARN 跑起来之前我不确定这些是否有必要。)

V. 你好,世界! 为 Apache Spark 寻找有趣的数据集!

在 Hadoop 世界里面的 ‘Hello, World!’ 就是做单词计数。

我决定让我们的作品做一些内省式……为什么不统计本站最常用的单词呢?也许统计一些关于本站的大数据会更有用。

如果你有一个正在运行的 WordPress 博客,可以通过简单的两步来导出和净化。

  1. 我使用 Export to Text 插件导出文章的内容到纯文本文件中
  2. 我使用一些压缩库编写了一个 Python 脚本来剔除 HTML
import bleach

# Change this next line to your 'import' filename, whatever you would like to strip
# HTML tags from.
ascii_string = open('dqydj_with_tags.txt', 'r').read()


new_string = bleach.clean(ascii_string, tags=[], attributes={}, styles=[], strip=True)
new_string = new_string.encode('utf-8').strip()

# Change this next line to your 'export' filename
f = open('dqydj_stripped.txt', 'w')
f.write(new_string)
f.close()

现在我们有了一个更小的、适合复制到树莓派所搭建的 HDFS 集群上的文件。

如果你不能树莓派主节点上完成上面的操作,找个办法将它传输上去(scp、 rsync 等等),然后用下列命令行复制到 HDFS 上。

hdfs dfs -copyFromLocal dqydj_stripped.txt /dqydj_stripped.txt

现在准备进行最后一步 - 向 Apache Spark 写入一些代码。

VI. 点亮 Apache Spark

Cloudera 有个极棒的程序可以作为我们的超级单词计数程序的基础,你可以在这里找到。我们接下来为我们的内省式单词计数程序修改它。

在主节点上安装‘stop-words’这个 python 第三方包,虽然有趣(我在 DQYDJ 上使用了 23,295 次 the 这个单词),你可能不想看到这些语法单词占据着单词计数的前列,另外,在下列代码用你自己的数据集替换所有有关指向 dqydj 文件的地方。

import sys

from stop_words import get_stop_words
from pyspark import SparkContext, SparkConf

if __name__ == "__main__":

  # create Spark context with Spark configuration
  conf = SparkConf().setAppName("Spark Count")
  sc = SparkContext(conf=conf)

  # get threshold
  try:
    threshold = int(sys.argv[2])
  except:
    threshold = 5

  # read in text file and split each document into words
  tokenized = sc.textFile(sys.argv[1]).flatMap(lambda line: line.split(" "))

  # count the occurrence of each word
  wordCounts = tokenized.map(lambda word: (word.lower().strip(), 1)).reduceByKey(lambda v1,v2:v1 +v2)

  # filter out words with fewer than threshold occurrences
  filtered = wordCounts.filter(lambda pair:pair[1] >= threshold)

  print "*" * 80
  print "Printing top words used"
  print "-" * 80
  filtered_sorted = sorted(filtered.collect(), key=lambda x: x[1], reverse = True)
  for (word, count) in filtered_sorted: print "%s : %d" % (word.encode('utf-8').strip(), count)


  # Remove stop words
  print "\n\n"
  print "*" * 80
  print "Printing top non-stop words used"
  print "-" * 80
  # Change this to your language code (see the stop-words documentation)
  stop_words = set(get_stop_words('en'))
  no_stop_words = filter(lambda x: x[0] not in stop_words, filtered_sorted)
  for (word, count) in no_stop_words: print "%s : %d" % (word.encode('utf-8').strip(), count)

保存好 wordCount.py,确保上面的路径都是正确无误的。

现在,准备念出咒语,让运行在 YARN 上的 Spark 跑起来,你可以看到我在 DQYDJ 使用最多的单词是哪一个。

/opt/spark-2.0.0-bin-hadoop2.7/bin/spark-submit –master yarn –executor-memory 512m –name wordcount –executor-cores 8 wordCount.py /dqydj_stripped.txt

VII. 我在 DQYDJ 使用最多的单词

可能入列的单词有哪一些呢?“can, will, it’s, one, even, like, people, money, don’t, also“.

嘿,不错,“money”悄悄挤进了前十。在一个致力于金融、投资和经济的网站上谈论这似乎是件好事,对吧?

下面是的前 50 个最常用的词汇,请用它们刻画出有关我的文章的水平的结论。

我希望你能喜欢这篇关于 Hadoop、YARN 和 Apache Spark 的教程,现在你可以在 Spark 运行和编写其他的应用了。

你的下一步是任务是开始阅读 pyspark 文档(以及用于其他语言的该库),去学习一些可用的功能。根据你的兴趣和你实际存储的数据,你将会深入学习到更多——有流数据、SQL,甚至机器学习的软件包!

你怎么看?你要建立一个树莓派 Hadoop 集群吗?想要在其中挖掘一些什么吗?你在上面看到最令你惊奇的单词是什么?为什么 'S&P' 也能上榜?

(题图:Pixabay,CC0)


via: https://dqydj.com/raspberry-pi-hadoop-cluster-apache-spark-yarn/

作者:PK 译者:popy32 校对:wxy

本文由 LCTT 组织编译,Linux中国 荣誉推出

你是否在为小型企业或家庭办公室寻找电话系统?

你是否在为小型企业或家庭办公室寻找电话系统?我一直对可扩展 VoIP(Voice over IP)解决方案感兴趣,后来我在树莓派上找到 Asterisk 的一个实现。

我的好奇心被激起了,我决心尝试一下,所以我从 Asterisk 官网下载了它(RasPBX),然后使用我的树莓派 3 构建服务器。

准备开始

首先,我将下载的镜像刻录到 MicroSD 卡上。建议的最小值是 4 GB。将镜像传输到 MicroSD 卡并插到树莓派上的相应插槽中后,我将网线连接到树莓派和家庭路由器上的以太网端口中。

更多关于树莓派的内容:

接下来,我在 Linux 上打开一个终端,并输入 ssh [email protected],这是我的服务器的 IP 地址。我被提示以 root 用户身份登录到 RasPBX 上。默认密码是 raspberry。 (出于安全考虑,如果你打算再多试试,请务必更改默认密码。)

当我登录到了 RasPBX 上的 shell 后,接下来我需要准备配置了。根据网站上提供的文档,我在 shell 下输入 regen-hostkeys 来创建新的主机密钥。然后输入 configure-timezone 来配置服务器的时区。我通过在提示符下输入 dpkg-reconfigure locales 来配置区域设置。我也安装了 Fail2Ban 来保障服务器的安全性。

现在我准备测试我的配置。

测试

我从 RasPBX 的 shell 中登出,然后打开浏览器并输入我的服务器的 IP 地址。将服务器 IP 地址加载到浏览器中,我看到了一个可爱的登录页面。

FreePBX 提供了一个非常好的基于 Web 的开源图形用户界面,我用它来控制和配置 Asterisk(可在 GitHub 上找到)。(FreePBX 是 GPL 许可的)。我用它来完成其余的配置。FreePBX 的默认登录账号为用户名:admin; 密码:admin

 title=

登录之后,我进入位于显示屏左上方的 应用菜单 Application Menu 。点击菜单链接并选择了第二个选项,即 “应用” Applications ,接着选择了第四个选项, “分机” Extensions 。从那里我选择创建一个 New Chan\_Sip 分机。

我使用密码配置了一个 sip 分机用户。密码是自动生成的,也可以选择创建自己的密码。

现在我有了一个完整的分机,我急于尝试我的新的 VoIP 服务器。我下载并安装了 Yate 客户端,这是在构建服务器的过程中发现的。安装 Yate) 之后,我想测试与服务器的连接。我发现我可以使用 Yate 连接到服务器并输入 *43 进行回声测试。当我听到客户端指示时,我感到很激动。

我决定创建另外一个 sip 分机,这样我就可以测试系统的语音信箱功能。 在完成后,我使用 Yate 客户端来呼叫这个分机,并留下了简短的语音留言。然后再次使用 Yate 呼叫该分机并输入 *97 来检索语音留言。然后我想看看我是否可以使用我的新服务器来呼叫外线。返回到菜单,选择 “连接” Connectivity 选项,并添加了 Google Voice 号码。

 title=

接着我返回到 “连接” 菜单,并将 Google Voice 添加到出站路由中。

 title=

完成一个呼叫

回到 Yate 客户端,我呼叫了一个外线并成功完成了这个呼叫。

我相信这个特定的 VoIP 解决方案可以轻松地为一个小型办公室工作。根据 RasPBX 网站的常见问题部分,典型的树莓派系统可以在树莓派 1 上支持多达 10 个并发呼叫。

Asterisk 有很多细微差别的功能,FreePBX 则可以很容易地利用它们。

关于树莓派上的 Asterisk 的更多信息,请参考他们的博客。你可以在他们的网站上找到有关 FreePBX 源代码的其他信息。

(题图:Pixabay,CC0)


作者简介:

Don Watkins - 教育家、教育技术专家、企业家、开源倡导者。教育心理学硕士、教育领导硕士、Linux 系统管理员、CCNA、使用 Virtual Box 虚拟化。关注我 @Don\_Watkins。


via: https://opensource.com/article/17/4/asterisk-raspberry-pi-3

作者:Don Watkins 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

 title=

在过去四年中,树莓派基金会非常努力地针对树莓派的硬件优化了 Debian 的移植版 Raspbian,包括创建新的教育软件、编程工具和更美观的桌面。

在(去年) 9 月份,我们发布了一个更新,介绍了树莓派新的桌面环境 PIXEL(Pi Improved Xwindows Environment,轻量级)。在圣诞节之前,我们发布了一个在 x86 PC 上运行的操作系统版本,所以现在可以将它安装在 PC、Mac 或笔记本电脑上。

 title=

当然,像许多支持良好的 Linux 发行版一样,操作系统在旧的硬件上也能正常运行。 Raspbian 是让你几年前就丢弃的旧式 Windows 机器焕发新生的好方法。

PIXEL ISO 可从树莓派网站上下载,在 “MagPi” 杂志封面上也有赠送可启动的 Live DVD 。

 title=

为了消除想要学习计算机的人们的入门障碍,我们发布了树莓派的个人电脑操作系统。它比购买一块树莓派更便宜,因为它是免费的,你可以在现有的计算机上使用它。PIXEL 是我们一直想要的 Linux 桌面,我们希望它可供所有人使用。

由 Debian 提供支持

不构建在 Debian 之上的话,Raspbian 或 x86 PIXEL 发行版就都不会存在。 Debian 拥有庞大的可以从一个 apt 仓库中获得的免费开源软件、程序、游戏和其他工具。在树莓派中,你仅限运行为 ARM 芯片编译的软件包。然而,在 PC 镜像中,你可以在机器上运行的软件包的范围更广,因为 PC 中的 Intel 芯片有更多的支持。

 title= repository")

PIXEL 包含什么

带有 PIXEL 的 Raspbian 和带有 PIXEL 的 Debian 都捆绑了大量的软件。Raspbian 自带:

  • Python、Java、Scratch、Sonic Pi、Mathematica*、Node-RED 和 Sense HAT 仿真器的编程环境
  • LibreOffice 办公套件
  • Chromium(包含 Flash)和 Epiphany 网络浏览器
  • Minecraft:树莓派版(包括 Python API)*
  • 各种工具和实用程序

*由于许可证限制,本列表中唯一没有包含在 x86 版本中的程序是 Mathematica 和 Minecraft。

 title=

创建一个 PIXEL Live 盘

你可以下载 PIXEL ISO 并将其写入空白 DVD 或 USB 记忆棒中。 然后,你就可以从盘中启动你的电脑,这样你可以立刻看到 PIXEL 桌面。你可以浏览网页、打开编程环境或使用办公套件,而无需在计算机上安装任何内容。完成后,只需拿出 DVD 或 USB 驱动器,关闭计算机,再次重新启动计算机时,将会像以前一样重新启动到你平常的操作系统。

在虚拟机中运行 PIXEL

另外一种尝试 PIXEL 的方法是在像 VirtualBox 这样的虚拟机中安装它。

 title=

这允许你体验镜像而不用安装它,也可以在主操作系统里面的窗口中运行它,并访问 PIXEL 中的软件和工具。这也意味着你的会话会一直存在,而不是每次重新启动时从头开始,就像使用 Live 盘一样。

在 PC 中安装 PIXEL

如果你真的准备开始,你可以擦除旧的操作系统并将 PIXEL 安装在硬盘上。如果你想使用旧的闲置的笔记本电脑,这可能是个好主意。

用于教育的 PIXEL

许多学校在所有电脑上使用 Windows,并且对它们可以安装的软件进行严格的控制。这使得教师难以使用必要的软件工具和 IDE(集成开发环境)来教授编程技能。即使在线编程计划(如 Scratch 2)也可能被过于谨慎的网络过滤器阻止。在某些情况下,安装像 Python 这样的东西根本是不可能的。树莓派硬件通过提供包含教育软件的 SD 卡引导的小型廉价计算机来解决这个问题,学生可以连接到现有 PC 的显示器、鼠标和键盘上。

然而,PIXEL Live 光盘允许教师引导到装有能立即使用的编程语言和工具的系统中,所有这些都不需要安装权限。在课程结束时,他们可以安全关闭,使计算机恢复原状。这也是 Code Clubs、CoderDojos、青年俱乐部、Raspberry Jams 等等的一个方便的解决方案。

远程 GPIO

树莓派与传统台式 PC 区别的功能之一是 GPIO 引脚(通用输入/输出)引脚的存在,它允许你将现实世界中的电子元件和附加板连接设备上,这将开放一个新的世界,如业余项目、家庭自动化、连接的设备和物联网。

GPIO Zero Python 库的一个很棒的功能是通过在 PC 上写入一些简单的代码,然后在网络上控制树莓派的 GPIO 引脚。

远程 GPIO 可以从一台树莓派连接到另一台树莓派,或者从运行任何系统的 OS 的 PC 连接到树莓派上,但是,使用 PIXEL x86 的话所有需要的软件都是开箱即用的。参见 Josh 的博文,并参考我的 gist 了解更多信息。

更多指南

MagPi 的第 53 期提供了一些试用和安装 PIXEL 的指南,包括使用带持久驱动的 Live 光盘来维护你的文件和应用程序。你可以购买一份,或免费下载 PDF 来了解更多。

(图片版权:树莓派基金会, CC BY-SA)


作者简介:

Ben Nuttall - Ben Nuttall 是一名树莓派社区管理员。他除了为树莓派基金会工作外,他还对自由软件、数学、皮划艇、GitHub、Adventure Time 和 Futurama 等感兴趣。在 Twitter @ben\_nuttall 上关注 Ben。


via: https://opensource.com/article/17/1/try-raspberry-pis-pixel-os-your-pc

作者:Ben Nuttall 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

了解 Fedora 第一个官方支持树莓派的版本

 title=

2016 年 10 月,Fedora 25 Beta 发布了,随之而来的还有对 树莓派 2 和 3 的初步支持。Fedora 25 的最终“通用”版在一个月后发布,从那时起,我一直在树莓派上尝试不同的 Fedora spins。

这篇文章不仅是一篇 树莓派 Raspberry Pi 3 上的 Fedora 25 的点评,还集合了技巧、截图以及我对 Fedora 第一个官方支持 Pi 的这个版本的一些个人看法。

在我开始之前,需要说一下的是,为写这篇文章所做的所有工作都是在我的运行 Fedora 25 的个人笔记本电脑上完成的。我使用一张 microSD 插到 SD 适配器中,复制和编辑所有的 Fedora 镜像到 32GB 的 microSD 卡中,然后用它在一台三星电视上启动了树莓派 3。 因为 Fedora 25 尚不支持内置 Wi-Fi,所以树莓派 3 使用了以太网线缆进行网络连接。最后,我使用了 Logitech K410 无线键盘和触摸板进行输入。

如果你没有条件使用以太网线连接在你的树莓派上玩 Fedora 25,我曾经用过一个 Edimax Wi-Fi USB 适配器,它也可以在 Fedora 25 上工作,但在本文中,我只使用了以太网连接。

在树莓派上安装 Fedora 25 之前

阅读 Fedora 项目 wiki 上的树莓派支持文档。你可以从 wiki 下载 Fedora 25 安装所需的镜像,那里还列出了所有支持和不支持的内容。

此外,请注意,这是初始支持版本,还有许多新的工作和支持将随着 Fedora 26 的发布而出现,所以请随时报告 bug,并通过 Bugzilla、Fedora 的 ARM 邮件列表、或者 Freenode IRC 频道#fedora-arm,分享你在树莓派上使用 Fedora 25 的体验反馈。

安装

我下载并安装了五个不同的 Fedora 25 spin:GNOME(默认工作站)、KDE、Minimal、LXDE 和 Xfce。在多数情况下,它们都有一致和易于遵循的步骤,以确保我的树莓派 3 上启动正常。有的 spin 有已知 bug 的正在解决之中,而有的按照 Fedora wik 遵循标准操作程序即可。

 title=

树莓派 3 上的 Fedora 25 workstation、 GNOME 版本

安装步骤

1、 在你的笔记本上,从支持文档页面的链接下载一个树莓派的 Fedora 25 镜像。

2、 在笔记本上,使用 fedora-arm-installer 或下述命令行将镜像复制到 microSD:

xzcat Fedora-Workstation-armhfp-25-1.3-sda.raw.xz | dd bs=4M status=progress of=/dev/mmcblk0

注意:/dev/mmclk0 是我的 microSD 插到 SD 适配器后,在我的笔记本电脑上挂载的设备名。虽然我在笔记本上使用 Fedora,可以使用 fedora-arm-installer,但我还是喜欢命令行。

3、 复制完镜像后,先不要启动你的系统。我知道你很想这么做,但你仍然需要进行几个调整。

4、 为了使镜像文件尽可能小以便下载,镜像上的根文件系统是很小的,因此你必须增加根文件系统的大小。如果你不这么做,你仍然可以启动你的派,但如果你一旦运行 dnf update 来升级你的系统,它就会填满文件系统,导致糟糕的事情发生,所以趁着 microSD 还在你的笔记本上进行分区:

growpart /dev/mmcblk0 4
resize2fs /dev/mmcblk0p4

注意:在 Fedora 中,growpart 命令由 cloud-utils-growpart.noarch 这个 RPM 提供的。

5、文件系统更新后,您需要将 vc4 模块列入黑名单。更多有关此 bug 的信息在此。

我建议在启动树莓派之前这样做,因为不同的 spin 有不同表现方式。例如,(至少对我来说)在没有黑名单 vc4 的情况下,GNOME 在我启动后首先出现,但在系统更新后,它不再出现。 KDE spin 则在第一次启动时根本不会出现 KDE。因此我们可能需要在我们的第一次启动之前将 vc4 加入黑名单,直到这个错误以后解决了。

黑名单应该出现在两个不同的地方。首先,在你的 microSD 根分区上,在 etc/modprode.d/ 下创建一个 vc4.conf,内容是:blacklist vc4。第二,在你的 microSD 启动分区,添加 rd.driver.blacklist=vc4extlinux/extlinux.conf 文件的末尾。

6、 现在,你可以启动你的树莓派了。

启动

你要有耐心,特别是对于 GNOME 和 KDE 发行版来说。在 SSD(固态驱动器)几乎即时启动的时代,你很容易就对派的启动速度感到不耐烦,特别是第一次启动时。在第一次启动 Window Manager 之前,会先弹出一个初始配置页面,可以配置 root 密码、常规用户、时区和网络。配置完毕后,你就应该能够 SSH 到你的树莓派上,方便地调试显示问题了。

系统更新

在树莓派上运行 Fedora 25 后,你最终(或立即)会想要更新系统。

首先,进行内核升级时,先熟悉你的 /boot/extlinux/extlinux.conf 文件。如果升级内核,下次启动时,除非手动选择正确的内核,否则很可能会启动进入救援( Rescue )模式。避免这种情况发生最好的方法是,在你的 extlinux.conf 中将定义 Rescue 镜像的那五行移动到文件的底部,这样最新的内核将在下次自动启动。你可以直接在派上或通过在笔记本挂载来编辑 /boot/extlinux/extlinux.conf

label Fedora 25 Rescue fdcb76d0032447209f782a184f35eebc (4.9.9-200.fc25.armv7hl)
            kernel /vmlinuz-0-rescue-fdcb76d0032447209f782a184f35eebc
            append ro root=UUID=c19816a7-cbb8-4cbb-8608-7fec6d4994d0 rd.driver.blacklist=vc4
            fdtdir /dtb-4.9.9-200.fc25.armv7hl/
            initrd /initramfs-0-rescue-fdcb76d0032447209f782a184f35eebc.img

第二点,如果无论什么原因,如果你的显示器在升级后再次变暗,并且你确定已经将 vc4 加入黑名单,请运行 lsmod | grep vc4。你可以先启动到多用户模式而不是图形模式,并从命令行中运行 startx。 请阅读 /etc/inittab 中的内容,了解如何切换 target 的说明。

 title=

树莓派 3 上的 Fedora 25 workstation、 KDE 版本

Fedora Spin

在我尝试过的所有 Fedora Spin 中,唯一有问题的是 XFCE spin,我相信这是由于这个已知的 bug 导致的。

按照我在这里分享的步骤操作,GNOME、KDE、LXDE 和 minimal 都运行得很好。考虑到 KDE 和 GNOME 会占用更多资源,我会推荐想要在树莓派上使用 Fedora 25 的人使用 LXDE 和 Minimal。如果你是一位系统管理员,想要一台廉价的 SELinux 支持的服务器来满足你的安全考虑,而且只是想要使用树莓派作为你的服务器,开放 22 端口以及 vi 可用,那就用 Minimal 版本。对于开发人员或刚开始学习 Linux 的人来说,LXDE 可能是更好的方式,因为它可以快速方便地访问所有基于 GUI 的工具,如浏览器、IDE 和你可能需要的客户端。

 title=

树莓派 3 上的 Fedora 25 workstation、LXDE。

看到越来越多的 Linux 发行版在基于 ARM 的树莓派上可用,那真是太棒了。对于其第一个支持的版本,Fedora 团队为日常 Linux 用户提供了更好的体验。我很期待 Fedora 26 的改进和 bug 修复。

(题图: opensource.com)


作者简介:

Anderson Silva - Anderson 于 1996 年开始使用 Linux。更精确地说是 Red Hat Linux。 2007 年,他作为 IT 部门的发布工程师时加入红帽,他的职业梦想成为了现实。此后,他在红帽担任过多个不同角色,从发布工程师到系统管理员、高级经理和信息系统工程师。他是一名 RHCE 和 RHCA 以及一名活跃的 Fedora 包维护者。


via: https://opensource.com/article/17/3/how-install-fedora-on-raspberry-pi

作者:Anderson Silva 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

 title=

随着开源驱动的硬件越来越成为主流,比如 ArduinoRaspberry Pi,这些开源硬件的成本不断下降,给那些全新且具有创新性的物联网STEM(LCTT译注:STEM 代表 科学 Science 技术 Technology 工程 Engineering 数学 Mathematics )类软件打开了大门。我对两者都比较感兴趣,始终保持关注,以便能找到一些可以应用到教育产业的创新点,比如课堂教育和我女儿的机器人小组。当听说 Orange Pi 比 Raspberry Pi 更优秀时,我便开始关注 Orange Pi了。

尽管 Orange Pi 是个略带酸味儿的名字,但是我仍然被 Orange Pi Zero 迷住了。我最近刚购买了一个 Orange Pi Zero 并将在本文中分享我的第一体验。真情提示:我是真的着迷了。

为什么是 Orange Pi?

Orange Pi 是由 Linux 驱动的单板计算机家族的一员,由深圳迅龙软件有限公司生产并在 全球速卖通 AliExpress 上售卖。在 全球速卖通 AliExpress 上买东西需要有耐心,提前计划预留出 2 到 4 周的运输时间,因为这些产品都是从中国大陆直接发往全世界其它地方的。

与 Raspberry Pi 不同,Raspberry Pi 家族型号比较少,不过在逐步增加,为单板计算机家族添加了几个具有不同价位及功能特色的型号,但是相对而言 Orange Pi 的型号更丰富。好消息是可以在巨大的软件库中选择你需要的东西,但是坏消息就是选择范围实在太大了。以我的经验来看,使用 Orange Pi Zero 的 512 MB 版本足矣,因为该版本很好的平衡了功能与价格,适合中学及学术环境使用。

可以到 Orange Pi Zero 网站 ,查看高清图及所有规格。

很明确的问题是,我希望这种设备的价格越便宜越好,但是要能做到开箱即用,并且能够直接联网以便 SSH 及物联网应用能正常使用。Orange Pi Zero 拥有板载的10/100 M 以太网及 802.11 b/g/n Wi-Fi 模块可以连接网络以满足需求。它还有 26 个与 Raspberry Pi 兼容的 GPIO 端口,用于连接物联网应用传感器。我使用的是 512 MB 版本的 Orange Pi Zero 而不是 256MB 版本,因为内存大带来的好处很多,并且这两个版本只相差了 2 美元。除此之外,运费还需要 $12.30,这笔花费对于那些鼓励积极实验及创造魔法烟雾的课堂特别划算。(LCTT 译注:“创造魔法烟雾”是幽默的说法,意即因未知原因设备停止工作,原多用于电气工程师和技术员,最近常被程序员们采用)。

与 $5 的 Raspberry Pi Zero 相比,Orange Pi Zero 只贵了几元钱,但是这个开箱后更容易上手使用,因为它拥有板载的 Internet 连接模块及 4 核 CPU,而不是单核。这个板载网口使得 Orange Pi Zero 比 Raspberry Pi Zero 更容易使用,因为 Raspberry Pi Zero 还需要一个 Micro-USB 转 USB 的转换器及一个 USB Wi-Fi 才能连上网。当赠送别人一个物联网设备作为礼物时,你当然希望对方能够尽快且容易的使用该产品,而不是送一个不完整的产品,那么这个礼物就只能躺在阁楼吃灰了。

开箱经验

起初对于 Orange Pi,我比较担心的问题是供应商及社区支持没有 Raspberry Pi 基金会和 Raspberry Pi 社区的好,用户不得不自己花费额外的精力把设备跑起来。如果这样的话,我是不会推荐 Orange Pi 作为课堂使用及礼物赠送的。然而好消息是 Orange Pi Zero 工作得非常好,且比 Raspberry 更容易跑起来。

订购两周后,Orange Pi 终于邮寄到家了。我拆开后在几分钟内就把设备运行起来了。其实这大部分时间都是在下载操作系统。Orange Pi 能够运行多种操作系统,从Android 到 Debian 系列都可以。我使用了 Orange Pi 粉丝推崇的 Armbian。由于 Armbian 支持多种基于 ARM 的单板计算机,你需要选择适合 Orange Pi Zero 的 Armbian 版本。按照 Armbian 用户指南开始部分操作即可以很容易做一个 microSD 镜像,然后插入 microSD 卡并接上网线,将我在 Raspberry Pi 中用的 3A Micro-USB 电源适配器插上供电,最后 SSH 登录上去即可使用了。

 title=

SSH 登录进 Orange Pi Zero

通过以太网 SSH 连上后,我可以使用 nmtui-connect 轻松连上我的无线接入点。然后执行 apt-get update && apt-get upgrade 命令,这个命令执行速度比 Raspberry Pi Zero 快,基本接近 Raspberry Pi 3 的表现了,其他人也观察到类似的结果。虽然 Orange Pi Zero 执行速度可能比不过Raspberry Pi 3,但是我也没有打算用它来计算基因排序或者挖比特币矿。Armbian 会自动调整 root 分区来使用整个 microSD 卡空间,而使用 Raspbian 的时候这是手动且很容易忘记的步骤。最后,和价值 $35 的 Raspberry Pi 3 相比,购买 $12 的 Orange Pi Zero 可以使得三倍多的学生有自己的学习工具,也可以将 Orange Pi Zero 作为礼物分享给三倍数量的朋友。

 title=

Orange Pi Zero与 Raspberry Pi 3 尺寸外形的比较

最后的想法

Orange Pi 无疑是解决问题的很好解决方案。鉴于它的低成本、能够更快上手且运行迅速、相对更快速的表现及 GPIO 针脚兼容 Raspberry Pi 的特性,Orange Pi,特别是 Orange Pi Zero,绝对应该列在你工作室、教室或者机器人组的实验器材清单里面。

当然如果你已经厌烦了使用 Orange Pi,希望能够将你不喜欢的原因分享在下面。


作者简介:

David Egts - David Egts | 红帽公司北美公共部门首席技术专家。 喜欢玩打鼓,骑摩托车,电脑极客,是一名丈夫,父亲,传授教义者。关注我的推特 @davidegts并查看我正在主持的播客。


via: https://opensource.com/article/17/1/how-to-orange-pi

作者:David Egts 译者:beyondworld 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

本文由 SUSE 文档团队的技术作者 Dmitri Popov 撰写。

树莓派 3上部署 openSUSE 系统不是很复杂,不过这儿有一些小技巧教你更好地完成这个过程。

首先,你将会有一些版本可供选择。如果你打算使用树莓派 3 作为一个普通主机,那么带有图形界面的 openSUSE 将是你最好的选择。有几种不同的图形环境可供选择:X11EnlightenmentXfce 或是 LXQT。openSUSE 还有一个 JeOS 版本能够提供最基础的系统,可以把树莓派 3 作为一个无显示器的服务器使用。更好的选择还有 openSUSE 的 LeapTumbleweed 版本。

首先你需要从 https://en.opensuse.org/HCL:Raspberry_Pi3 下载所需的 openSUSE 镜像,然后制作一张可启动的 microSD 卡。虽然可以使用命令行工具将下载好的镜像写入 microSD 卡,但 Etcher 可以使这个过程更轻松安全。从该项目网站上获取该程序,解压下载的 .zip 文件,并使用以下命令把得到的 .AppImage 文件设置为可执行:

chmod +x Etcher-x.x.x-linux-x64.AppImage 

将 microSD 卡插入电脑,双击运行 Etcher 软件,选择下载好的 .raw.xz 镜像文件,点击 Flash! 按钮。然后将显示器和键盘连接到树莓派 3,插入 microSD 卡,启动树莓派。第一次启动时,openSUSE 会自动扩展文件系统以充分利用 microSD 卡上的剩余空间。这时你将看到以下信息:

GPT data structures destroyed! You may now partition the disk using fdisk or other utilities
GPT 数据结构被破坏!您需要使用 fdisk 或其它工具对磁盘分区。

不用担心,稍等两分钟,openSUSE 将继续正常启动。当看到提示时,输入默认用户名 root 和默认密码 linux 登录系统。

如果你选择在树莓派 3 上部署 JeOS 版本,第一次启动时你不会看到屏幕上有任何输出。也就是说,屏幕会一直保持空白,直到系统完成对文件系统的扩展。你可以通过配置内核参数来显示输出,不过没有必要做这麻烦事。只需稍等片刻,你就能看到命令行提示。

由于 openSUSE 已经启用并且配置了 SSH 服务,所以启动树莓派时你可以不用显示器。这样的话,你就需要使用网卡接口将树莓派连接到网络中。给树莓派足够的时间来启动和扩展系统后,你就能够从同一网络中的其他主机,使用 ssh [email protected] 命令,通过 SSH 服务连接树莓派。

默认情况下你将以 root 用户登录系统,所以创建一个普通用户是个不错的主意。你可以使用 YaST 配置工具轻松完成这件事。运行 yast2 命令,选择 安全与用户 Security and Users -> 用户与用户组管理 User and Group Management 选项,就可以创建新用户了。你还可以选择 系统 System -> 在线升级 Online Update 选项来更新系统。完成之后,退出 YaST ,重启树莓派,然后使用新创建的用户登录系统。

一切搞定,不过还有一个重要的系统组件不能正常工作,那就是无线接口。当然,这个问题也可以轻松解决。首先使用以下命令安装 nano 文本编辑器:

sudo zypper in nano

然后运行以下命令修改 raspberrypi_modules.conf 文件:

sudo nano/etc/dracut.conf.d/raspberrypi_modules.conf

删除文件第一行的 sdhci_iproc ,再取消最后一行的注释。运行以下命令保存修改:

mkinitrd -f

最后,重启树莓派。

再次运行 YaST ,在 系统 System -> 网络设置 Network Settings 区域,你应该能在网络接口列表中看到 BCM43430 WLAN Card 项。选择这一项,点击 编辑 Edit 按钮。开启 动态地址分配 Dynamic Address DHCP 选项,点击下一步,选择你想要连接的无线网络,配置所需的连接设置。点击下一步确定保存设置。重启树莓派,它应该就能连接上特定的 Wi-Fi 网络了。

至此,你就完成了树莓派上的系统部署。


via: https://www.suse.com/communities/blog/opensuse-raspberry-pi-3-zero-functional-system-easy-steps/

作者:chabowski 译者:Cathon 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出