树莓派上安装配置Archlinux

安装Archlinux

安装Archlinux这部分在Linux系统中测试通过。sdX是SD卡盘符。

SD卡分区

  1. 使用fdisk工具 # fdisk /dev/sdX
  2. fdisk提示命令下删除旧分区并新建:
    •  按o 删除全部分区
    • p列出分区,此时应该没有任何分区。
    • n新建分区, 然后p选择为主分区, 输入1作为SD卡的第1个主分区; 按回车选择默认开始扇区,再输入+100M设置结束扇区.
    • t,然后按c设置刚才的主分区类型为W95 FAT32(LBA).
    • n新建分区,然后p选择为主分区,输入2作为SD卡的第2个主分区;按两次回车默认把SD卡剩下的空间都给第2主分区.
    • w写入保存分区, 退出fdisk.

格式化和挂载分区

把第1主分区格式化为FAT分区,并挂载到boot:

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

把第2分区格式化为ext4分区,并挂载到root:

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

下载树莓派Archlinux ARM版本, 安装到SD卡

wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-latest.tar.gz
tar -zxpf ArchLinuxARM-rpi-latest.tar.gz -C root
sync
mv root/boot/* boot

安装完成,卸载分区

unmount boot root

系统安装完成

Archlinux镜像已经安装成功,连上网线,插上电源,可以直接SSH到树莓派了。
默认用户名和密码为:alarm
管理员用户名和密码为:root
管理员帐号无法远程登录

配置Archlinux

添加国内源

编辑 /etc/pacman.d/mirrorlist

在文件头部添加:

  • 清华软件源:Server = http://mirrors.tuna.tsinghua.edu.cn/archlinuxarm/$arch/$repo
  • 中科大软件源:Server = http://mirrors.ustc.edu.cn/archlinuxarm/$arch/$repo

更新软件源:

pacman -Syyu

安装SUDO

安装sudo:

 pacman -S sudo

输入 visudo 去掉 #%wheel ALL=(ALL) ALL 此行注释,使wheel用户组可以临时使用sudo 提高权限.

visudo

参考资料

  1. http://archlinuxarm.org/platforms/armv6/raspberry-pi

转载自

http://www.jianshu.com/p/be4a44a54b65

树莓派 Ubuntu 64 位系统玩家体验版

 

前言

我对于 Linux 里的 Ubuntu 情有独钟,包括对树莓派3也不放过,树莓派3有一个64位的CPU,但一直使用的是32位的系统,太憋屈了,最近看见 barnami 大神移植了 Debian stretch arm64 到树莓派上(项目地址 https://github.com/bamarni/pi64),不过,我想说的,还是 Ubuntu。
Ubuntu 的 arm64 版本可不好找,不像 Debian 有一个健壮的 arm64 移植版,所以我找了很久,找到了一个15.10(没办法,只能这样了),对于 15.10 官方不给支持了(毕竟不是LTS)。

介绍

本系统由以下组成

  • boot: 原汁原味官方 Ubuntu 16.04 armhf for Raspiberry Pi 3
  • firmware: 由树莓派官方的 linux-rpi-4.9.y 编译的 aarch64
  • rootfs: Ubuntu15.10 (无力吐槽)

对于这次移植呢,有点小问题,就是开机在boot界面时会连接某服务器,但这服务器访问不了,会重试几次,但还不善罢甘休,请求 192.168.1.1 的相应地址(废话,更不行了),导致开机可能要花一点时间,不过不影响系统的正常使用,各项功能没有太大问题。

欢迎大家参与测试,优化,调试。

特点

  • 使用了 aarch64 内核,完美搭建arm64系统底层
  • 使用了 arm64 系统,性能更好
  • 完美释放出了树莓派3的性能
  • 驱动各方面迄今无太大问题
  • 稳定性有待提高

暂时没有升级到 16.04 或 17.04,可以借助官方帮助文档进行交叉升级。

传送门

Ubuntu 15.10 arm64
GitHub 地址: https://github.com/chainsx/ubuntu64-rpi
版本说明:
默认用户:ubuntu 密码:ubuntu;root 用户密码:root
默认开启 SSH,不想要的自己去关。
默认为命令行,想要图形界面的自己装。
第一次开机时不会拓展 rootfs 分区,意思是你需要自己拓展,用 fdisk 或 gparted 来拓展吧。

Ubuntu 17.04 for rpi3(64位内核,32位系统)
GitHub 地址: https://github.com/chainsx/ubuntu-17.04-for-RaspberryPi3
版本说明:
集成了raspi-config,你只需要在命令行里输入raspi-config就行了。
默认用户名:ubuntu 密码:chainsx007
支持安装gnome, apt install gnome 即可,unity 待测(不过,gnome卡出翔)。
默认为命令行,需要桌面的自行安装,推荐lxqt,:安装apt install lxqt。
因为是源自 rpi2 移植的,所以在 boot 分区有两个内核,一个是rpi3的(默认),另外一个是rpi2的(当然不支持64位内核),需要在config.txt里将kernel=kernel8.img改为kernel=uboot.bin。我觉得,你要在pi2上用的话还不如直接在官方下载。

关于我

本人喜欢玩 Linux,更多的是喜欢乐在其中,结交更多好友,学习更多技术。
小编按:本文作者 Github 中提供了联系方式 1396219808[a]qq.com,如有项目相关问题可尝试联系原作者。

虽然只是推荐,但我相信,树莓派3的64位除了 openSUSE 的系统(Debian、Ubuntu)是非常惊人的吧!
我也亲自测试过,这两种系统完全完全的把树莓派3的64位性能给释放出来了,十分惊人,不推荐一下完全对不起原作者的苦心和树莓派的 ARMv8 芯片。
原作者表示:原文无任何版权,我们只是乐在其中,以后还要定期更新,我其实想抽空一直维护这个系统,直到Ubuntu官方的系统正式发布为止。此系统无任何风险(因为我以前制作安卓第三方ROM时就被质疑过,但最后证明了的却无任何风险,这个也一样)。

作者:CX_Dandelion

本文来自

http://shumeipai.nxez.com/2017/09/10/raspberry-pi-ubuntu-64-bit-system-player-experience-version.html

 

 

裸板开发操作系统Baking-Pi教程 一

OK01这个教程会从零开始尝试把树莓派的RCA和USB口附近的那个’ACT’LED点亮,并搭建好环境为接下来的教程做好铺垫。

准备

在实际动手之前,需要你先看完前一篇教程,并下载安装了必要的GUN工具链以及代码的模版文件OS Template

文件结构

在模版文件夹里面你会看到这样的文件目录:

build/
    (empty)
source/
    main.s
kernel.ld
LICENSE
Makefile

找个编辑器打开main.s文件,我们就可以开始写汇编代码了,树莓派使用的汇编是ARMv6,我们要写的汇编也就是ARMv6。

把下面这些代码复制粘贴进去:

.section .init
.globl _start
_start:

这些代码对树莓派没有直接的作用,它们是写给汇编器看的,汇编器是一个把我们将要写的汇编代码转换成树莓派能直接运行的机器码的程序。在汇编代码中,每一行都是一条新的命令,这里的第一行告诉汇编器和链接器把我们的代码放到哪里去,.init这里的代码会和模版文件组合,最终被放到输出代码的最前面。这一点很重要,因为我们要保证哪部分代码首先运行,如果我们不这么做的话,代码会按照字母表的顺序运行。
.section命令只是告诉了汇编器从这一点到下一个.seciton是代码的链接后的位置,而后面的两行告诉了工具链程序的入口。

第一行代码

把下面的代码拷贝粘贴进去

ldr r0,=0x20200000

在汇编代码中,计算机会简单的从上往下运行代码,每一行都是一个指令,除非遇到某些指令发生跳转。 这第一行代码告诉处理器,把0x20200000这个数字存储到r0这个寄存器里面,0x20200000显然是个十六进制的数字,那么什么是寄存器?

寄存器是处理器内部的一些用来存数据的小部件,可以理解成一个个的抽屉,有些寄存器会有一些特定的功能,在树莓派上有13个通用寄存器,每一个可以存储一个32比特的数字(从0到4,294,967,295 ),从r0一直到r12,对于这13个寄存器,做任何操作和运算都没关系,在这一行代码中,换成其他寄存器也没关系。

这行代码把0x20200000存到r0,是为了接下来的控制GPIO,而GPIO控制器的位置恰好就是0x20200000,这一点可以通过参考中的数据手册来查到。

指令

ldr reg,=val  
把val存到对应的寄存器中

设置GPIO的输出模式

mov r1,#1
lsl r1,#18
str r1,[r0,#4]

要让这个ACT LED亮起来,首先和Arduino类似的要先设置这个引脚端口为输出模式,然后再让它输出高电平。
上面的代码就能让ACTLED这个GPIO16设置为输出模式,首先我们把1存到r1,然后通过lsl指令,得到二进制的1000000000000000000,其实也可以直接把这个数存到r1,但是为了后面的操作和代码,这样写更有意义。

在GPIO控制器中,有24个字节用来设置GPIO,前4个对应前10个GPIO,第二个4个对应第二个10个,总共有54个GPIO,所以我们需要6×4总共24个字节。
在4个一组里面,每三个比特对应一个GPIO,我们操作的是16号GPIO,所以我们需要操作第二个4字节中第六个3比特,也就是上面代码中18的由来。
其中的str指令,会把r1中的值,写到地址为r0的值加上4偏移的位置

指令

mov reg, #val  
把val存到对应的reg寄存器  
mov指令比ldr快,因为mov不牵涉到内存,而ldr是从内存把数存到寄存器,但是mov只能对某些数字做操作  

lsl reg, #val  
reg寄存器的值逻辑左移val位

str reg, [dest, #val]  
把reg寄存器重的值写到地址为dest寄存器的值+val

输出高电平

mov r1,#1
lsl r1,#16
str r1,[r0,#40]

 

现在GPIO已经准备好被点亮了,这意味着我们要让GPIO16输出低电平,没错是低电平,板子本身设计就是这样。
上面的指令都已经见过了,为了让GPIO16输出低电平,我们得让一个第十六位是1的数写到偏移GPIO控制器40的地址位置,这样就能输出低电平了。

死循环

需要的代码都写完了,应该结束了,但是假如就那样的话,只要有供电,处理器就会持续工作,如果不给他其他的任务,树莓派就会崩溃。

loop$:
b loop$

 

这里的第一行不是一个命令,是一个标签,或者说名字,这意味着我们可以通过loop$这个名字来找到这一行代码,代码编译完成之后标签都没有意义了会变成地址,对于写代码的我们则是又很重大的意义,b指令的作用是下一条执行的指令跳转到后面的标签所指代的代码块,在这里就会导致树莓派一直循环直到断电。

另外GNU工具链要求代码的最后有一个空行。

编译和运行

编译非常简单,用终端进入到代码的根目录,也就是Makefile的同级目录中,运行make,没什么问题的话,就会生成一个kernel.img的文件。

安装这个系统代码之前,首先需要一个已经装好了常规的Raspbian系统的树莓派SD卡,在SD卡的目录中很容易就能找到一个kernel.img的文件,把它替换成刚刚生成的新文件,然后插上电源,就能看到这个ACTLED亮起来了。

参考

数据手册

Raspbian 有多少个版本?

Raspbian究竟有多少个版本呢,答案是总共有6个版本,其中2个是公开版本,4个是非公开版本.

六个版本,依次增加功能:

1)最小化启动:这其实只是一个引导系统.树莓派专用的一些软件(闭源)会在这个包提供,但是这个系统并不能直接启动.

2)真正最小系统,这就是一个最小最小的系统,只有基础功能,没有任何额外添加.

3)(公开发布)轻量系统,也就是Raspbian-Lite,官方发布的Raspbian-Lite也就是这个系统.

4)基本桌面环境,只有桌面环境但是没有相对应的一些软件.适合于只要桌面但是不需要任何额外软件的用户.

5)用户友好的桌面环境,这个已经非常接近官方发布的系统了,他对用户友好,对新手来说也很方便.并且,这个系统限定在4G卡也可以使用.

6)(公开发布)完整系统,这个就是官方发布Raspbian,也是我们最常用的,他加入了Mathematica软件,其他跟第五个系统是一样的.

制作这些系统可以通过官方Git工具制作,至于公开发布的系统,直接下载就可以了.

https://github.com/RPi-Distro/pi-gen

当然,如果不知道怎么生成其他系统,可以持续关注树莓派中文站,我们将持续有新资料发布,包括这些系统哦.

如何确认自己的Pi版本和系统日期

很多小伙伴不知道自己的Pi的版本和系统日期,然后在使用我们的教程时候发现各种问题,下面我就教三招简单识别方法.

1)使用gpio readall命令,如图就是Pi 3版本了.此方法可以简单识别出自己板子型号.如果没有这个指令,那么你需要更新你的操作系统了.

2)使用cat /etc/rpi-issue命令,如图就是使用6月21日的镜像.此也是发稿为止最新的系统.

3)使用vcgencmd version命令,如图我使用的是7月3号的系统固件版本.

如何核对版本和板子型号,依然教程没有反应,那么就得检查下是否有输入错误,如果确认无误,就到QQ群里讨论讨论吧.

 

裸板开发操作系统Baking-Pi教程 零

这个系列的文章翻译改编自剑桥大学的关于树莓派操作系统开发的系列文章,课程制作人是Alex Chadwick,不是直译,和原文会有些比较大的区别
而且系列没有针对B+、A+和v2,v3进行更新,一些地方可能会无法工作,尤其是最开始的一些关于LED的课程
不过你可以在GitHub对它进行贡献和更新

这个课程是带你了解开发一个在树莓派上能运行的几乎最基本的操作系统(裸板开发),使用的是汇编语言,准确的说是ARM上的汇编,原作者尽可能的减少汇编带来的难度(其实本质的难度就在那里..),整个课程由11个小课和一个小的入门构成,每个小课都有一些理论知识和一个实际的操作(上机),不过作者都给出了参考答案。
作者在设计课程的时候更加注重于实现一些操作系统常有的功能任务,而不是把操作系统的方方面面都实现一遍,到最后,读者应该是有能力把学到的所有知识都整合到一起,做出一个自己的操作系统的。

课程列表

0 Introduction

这里面不包含任何的动手操作,就是讲了一些简单的基础先修知识而已,即使不看直接上手后面的教程也是没有关系的。

OK LED (入门)

1 OK01

这个教程包含了一个上手的解释,以及具体的如何控制树莓派板子上面的OKACT的LED。

2 OK02

以OK01为基础,控制板子上的LED循环闪烁,也就是反复的点亮和关闭。

3 OK03

在OK02的基础上,使用函数来使得汇编代码具有更大的可读性。

4 OK04

在OK03基础上,如何使用定时器来让LED的闪烁达到精确的时间间隔。

5 OK05

在OK04基础上,使用摩尔斯电码来发送SOS的信号。

显示 (进阶)

Screen01

这个教程会介绍一些基础的图形学知识,并把一个梯度变换的图案显示到显示器上。

Screen02

在上一个教程的基础上,介绍如何在显示器上画一条线和如何产生伪随机数。

Screen03

上一个教程基础上,介绍如何在显示器上画出文字,并对内核命令行的概念做一定的讲解。

Screen04

上一个教程为基础,介绍如何通过操作文本在显示器上显示一些计算量。

输入 (进阶)

Input01

介绍一些驱动的理论,以及代码的链接和键盘输入,通过这个教程就能把字符输入到显示器上了。

Input2

在Input2的基础上,介绍如何为操作系统做一个命令行的接口。

 

需要的材料

硬件

  • 一台计算机用来写代码
  • 树莓派和SD卡
  • 显示器
  • 键盘

软件

只需要一个ARMv6的GNU的编译器,准确的说是一堆工具或者说是交叉编译环境,这个交叉编译器可以把你的源代码转换成树莓派SD卡上可以运行的文件

Linux

有好几种安装方式,对于Ubuntu这种,直接用apt-get就行了

$ sudo apt-get install gcc-arm-none-eabi

操作系统

一个操作系统只是一个非常复杂的程序而已,它的任务就是组织它上面的各种程序怎么运行以及如何给这些程序分配计算机的时间、内存、硬件和其他的资源。常见的操作系统包括GNU/Linux,Mac OS X和Windows这些桌面系统,当然也有安卓和iOS这些手机操作系统。

由于操作系统必须要和实体的硬件有交互联系,所以它必须要对当前运行的硬件底层有一定的具体的了解。为了让操作系统在不同的硬件架构上都能使用,驱动的概念也被提出来了,驱动是操作系统上的一段可以添加也可以删掉的代码,通过它可以让操作系统调动硬件上的某个部分,在整个教程中,我们不会讲到如何创建可移除的驱动,但会重点介绍针对树莓派的驱动怎么来写。

操作系统的设计模式有很多很多种,这个教程只能讲到一些最表面的东西。

汇编代码

这个课程几乎全部都要用汇编来写,毕竟汇编是最接近机器代码的。
那么计算机是怎么工作的呢?假如你上过计算机组成原理课,那你就知道是处理器在不断的执行指令,进行一些数字的加减,然后有内存来存这些数字,同时要和连着的硬件部分相交互,汇编代码就是这些指令的人能相对读的文本格式了。

当我们正常编程写代码的时候,我们写的是C++,Java,C#和Basic等等,然后会有一个程序把这些代码转成汇编代码,然后汇编代码再转成二进制的机器码。二进制的机器码是计算机能读的代码,但对人类而言是几乎不可能读懂的一串0、1序列。

 

bakding-pi-0-1

和普通编程一样,汇编代码也有好几种,不同的种类针对不同的处理器,这也就意味着同一份代码,想用在不同的硬件架构上,我们就需要用不同汇编语言来重写一边,这是一件让人很头大的事情,好在后来有了C语言,我们可以写一份C代码,然后让编译器转换成不同种类的汇编代码,这样就能在各种不同的硬件上都能顺利的跑起来了。

参考

NetBSD 7.1正式发布:支持树莓派Zero以及更好的Linux兼容性

基于BSD的NetBSD研发团队今天非常高兴的宣布NetBSD 7.1正式发布。自首个候选版本发布,NetBSD 7.1研发历时两个月时间,带来了大量BUG修复和后台性能改善。在今天的更新日志中写道:“NetBSD项目团队非常高兴的宣布NetBSD 7.1,是NetBSD 7分支的首个功能更新。出于安全和稳定的原因我们认为这些修复是非常重要的,而且我们还带来了一些新的功能和改善。”

NetBSD 7.1中最突出的功能就是引入了对树莓派Zero单板计算机的支持,更好的兼容Linux安装包从而让你使用各种应用和插件,为ODROID-C1 SBCs提供更好的网络支持,为Google Compute Engine磁盘部署vioscsi驱动。

NetBSD 7.1同时使用Nouveau开源显卡驱动为Nvidia显卡提供了DRM/KMS原生支持,但是默认情况下处于关闭状态。如果想要激活这项功能,需要在内核设置的同时取消nouveaufb和nouveau注释。

转载自http://digi.163.com/17/0316/12/CFL9S8M1001687H3.html

树莓派基金会发布桌面操作系统 PIXEL OS

基于 Debian 衍生的 PIXEL 将把树莓派体验带到 x86 上,正如树莓派基金会所宣称的,“我们不只是要为树莓派创造最好的桌面环境,而是要创造最好的桌面环境,如是。”

树莓派基金会将其今年九月份发布的 PIXEL OS 移植到了 PC 和 Mac 上。

PIXEL 的意思是“Pi Improved Xwindows Environment, Lightweight”,即“树莓派改进的轻量级 Xwindows 环境”,树莓派的创始人 Eben Upton 说,“我们觉得大多数用户都希望要这样的一个桌面环境:干净整洁而现代化的用户界面;提升工作效率的生产力软件和编程工具,包括自由软件和专有软件。”

挖掘这个操作系统的其它用途的想法在这几个月来一直浮现在 Upton 的脑海中,正如他写的“在夏天时,我们就问自己一个简单的问题:如果我们这么喜欢 PIXEL,为什么我们非要人们买树莓派才能运行它呢?”

Upton 说他和其他的伙伴们注意到“有大量可以用来安装的 PC 和 Mac 机器丢在那里,它们可以很好的运行 x86 Debian”,并且问他们,“我们可以为这些机器做些什么吗?”

现在答案就是“YES”,树莓派基金会发布了该操作系统的 x86 体验版。2

这个操作系统对硬件的需求很低,Upton 说 PIXEL “将运行在像我的 ThinkPad X40 这样的老机器上,它只要 512MB 内存就行。”Upton 认为这样的硬件需求很符合还在使用老式 PC 的学校,这就意味着学生们可以在学校的 x86 上使用和家里的树莓派上一样的 PIXEL 环境。

PIXEL 可以从 DVD 或 USB 盘启动,或者你也可以将它安装到计算机上。你可以下载这个 1.3GB 的 ISO 镜像试试,不过,有些型号的 Mac 可能不能用这个引导镜像启动。Upton 也表示,这还是一个早期发布版本,还在继续改进。

本文来自:Linux中国首发

由 LCTT 原创翻译,遵照 CC-BY-NC-SA 协议规定转载

SUSE首次发布树莓派3版本操作系统

我们推出的第一个64位产品是搭载4核ARM Cortex-A53处理器的树莓派3,它支持ARM的A64指令集和ARMv8-A架构。但是我们还没有机会在它上面去运行一个64位的操作系统:因为我们的Raspbian系统在一开始的时候,就被设计成一个能运行在所有的树莓派主板上的操作系统,包括32位ARMv6的树莓派1、树莓派Zero和32位ARMv7的树莓派2。

在我们开发树莓派3的同时,我们的社区里,已经有了一些很棒的成果,比如论坛用户Electron752的一些作品,多亏了他,我们现在有了一个可以工作的64位内核了,而且UbuntuFedora用户都已经能在这个内核上成功运行了。

上周还有一个重大的发布,那就是SUSE发布了一个支持树莓派3的Linux企业版服务器版本。

susecon_raspberry_pi_case-450x261

为什么这个很重要呢?因为这是我们第一次有了一个来自主要供应商的64位操作系统官方发布,而且这个操作系统完全支持板上的WiFi和蓝牙。SUSE慷慨地上传了他们在开发过程中使用到的各种补丁和文件,因此我们有理由相信,来自其他供应商的64位操作系统也马上就要来了。

现在可以从这里下载到这个版本的系统镜像,试试看,然后说说你的看法吧。