概述
最近入手了树莓派3代,从树莓派出世到现在(2016.04),总共买了共4片各型号的树莓派,算不上狂热的爱好者,但也算是个比较热心的用户了吧。
在此记录一些树莓派3代的使用笔记。
『1』ARMv8的Arch Linux系统?
树莓派3代的CPU是ARMv8的64位CPU,但是在Arch Linux ARM的官方网站上,并没有for Raspberry Pi 3的ARMv8版本的OS下载,现在只能下载ARMv7 Raspberry Pi 2的OS来用。不用担心,以后面包会有的。
2017.2.24更新:再次到Arch Linux ARM官网看时,发现已经有了,开源社区实在太棒。
文章来源:http://www.codelast.com/
『1』切换到 root 用户
OpenSSH7默认已经禁止了root用户登录,因此,刚安装好的Arch Linux ARM是用alarm用户登录的。
然而登录后,一堆操作(例如用pacman安装软件)都是需要root权限的,因此,需要切换到root再操作:
输入默认密码 root 即可。
文章来源:http://www.codelast.com/
『2』添加中科大的源
按照这个页面的说明,在文件 /etc/pacman.d/mirrorlist 最上方添加一句:
Server = https://mirrors.ustc.edu.cn/archlinuxarm/$arch/$repo
即可。
然后用 pacman -Syu 升级系统,你就会发现快了许多。
文章来源:http://www.codelast.com/
『3』使用树莓派3代的板载的WiFi
注:在本小节的最后有更新说明,请注意看。
在Raspbian上把WiFi用起来实在是太轻松了(当然也有可能是我运气太好),只要用dd命令把Raspbian系统写到TF卡上,再插到树莓派3的卡槽里,上电,进Raspbian系统,WiFi就自然而然地可用了,完全不需要做任何配置!但是在Arch Linux ARM系统下,就没有那么爽了——
我以前在树莓派Model B+的Arch Linux系统里配置过USB WiFi,记录在这篇文章里。如果在树莓派3代上刚装好Arch Linux,就使用同样的方法去配置,会发现不能work。
为了让它work,我们先要使用rpi-update这个第三方工具来更新树莓派的firmwre。
以root用户执行:
可能会提示:
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
*** Performing self-update
*** Relaunching after update
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
!!! This tool requires you have readelf installed, please install it first
In Debian, try: sudo apt-get install binutils
In Arch, try: pacman -S binutils
文章来源:http://www.codelast.com/
所以我们按它说的,先安装另一个package:
安装完之后,重新执行 rpi-update,遇到问你yes or no的地方都输入y即可,就会输出下面的一堆信息:
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
*** Performing self-update
*** Relaunching after update
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
*** We're running for the first time
*** Backing up files (this will take a few minutes)
*** Backing up firmware
*** Backing up modules 4.1.20-3-ARCH
#############################################################
WARNING: This update bumps to rpi-4.4.y linux tree
Be aware there could be compatibility issues with some drivers
Discussion here:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=144087
##############################################################
Would you like to proceed? (y/N)
*** Downloading specific firmware revision (this will take a few minutes)
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 168 0 168 0 0 111 0 --:--:-- 0:00:01 --:--:-- 111
100 50.2M 100 50.2M 0 0 45414 0 0:19:20 0:19:20 --:--:-- 73368
*** Updating firmware
*** Updating kernel modules
*** depmod 4.4.7+
*** depmod 4.4.7-v7+
*** Updating VideoCore libraries
*** Using HardFP libraries
*** Updating SDK
*** Running ldconfig
*** Storing current firmware revision
*** Deleting downloaded files
*** Syncing changes to disk
*** If no errors appeared, your firmware was successfully updated to 1e84c2891c1853a3628aed59c06de0315d13c4f1
*** A reboot is needed to activate the new firmware
按它的提示,我们重启系统。
可能是我运气不好,重启没用,板载的WiFi依然起不来。甚至于,我用 iwconfig 命令都看不到 wlan0 设备。
于是用dmesg命令来查看一下问题(dmesg用于显示和控制内核环缓冲,可帮助用户了解系统的启动信息),打印出的信息可谓是非常多,和WiFi模块相关的错误大概有下面几条(不是连在一起的):
brcmfmac: brcmf_sdio_drivestrengthinit: No SDIO Drive strength init done for chip 43430 rev 1 pmurev 24
brcmfmac_sdio mmc1:0001:1: Direct firmware load for brcm/brcmfmac43430-sdio.bin failed with error -2
brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
所以这里打印出来的brcmfmac又是个什么鬼?它是用于支持基于Broadcom 802.11n芯片的WiFi设备的驱动程序的名字。
因此,我们从上面的信息,是不是能这样说:WiFi模块的驱动程序没找到?
事实上,我们并不能这样推断,因为有人在树莓派的论坛里反馈说,他们的WiFi可以完全正常使用,但dmesg还是打印出了上述信息。而我个人的实验也证实了这样的说法。
文章来源:http://www.codelast.com/
那么怎么办呢?树莓派论坛里有人给出了这样一种方案:
到这个Github链接下载brcmfmac43430-sdio.bin 和 brcmfmac43430-sdio.txt这两个文件,放到系统的 /lib/firmware/brcm/ 目录下——事实上,我在下载之前查看了一下这个目录,里面确实没有这两个文件,这也是为什么我的Arch Linux ARM连iwconfig都找不到wlan0的原因了。
按上面的方法做好之后,重启Arch,再安装命令行的类图形化工具dialog:
启用wlan0:
再使用wifi-menu程序来连接WiFi:
这里假设在交互式设置的过程,你将WiFi的名字设置成了wlan0-NG,则下一步,就是将其设置成开机启动:
这将创建并启用一个随计算机启动而自动运行的 systemd 服务。
文章来源:http://www.codelast.com/
再重启Arch试试?执行ifconfig,你会惊喜地发现WiFi连上了。
另外,如果发现WiFi不稳定,可以试试把WiFi的电源管理关闭:
然后把这行命令添加到启动执行。等驱动更新到更稳定的版本或许能解决WiFi稳定性问题。
2016-09更新:
在一次Arch Linux ARM的系统更新中,提示错误“/usr/lib/firmware/brcm/brcmfmac43430-sdio.bin exists in filesystem”并失败,这个提示已经存在的文件恰恰就是我放到 /usr/lib/firmware/brcm 目录下的,因此,这似乎说明了Arch官方的更新已经支持了树莓派3上的WiFi模块,所以我立即把 /usr/lib/firmware/brcm/brcmfmac43430-sdio.bin 文件mv到其他备份目录下,再用pacman -Syu继续更新系统,但是更新完之后WiFi就不能用了,使用wifi-menu-o命令扫描不到我的路由器的WiFi网络。我相信这个问题是可以通过一些配置解决的,只不过我暂时还没有时间折腾。
(接上)后来我发现,用我的手机创建的WiFi热点(WPA加密模式)可以让树莓派扫描到,并且可以连上,所以,我现在判断是树莓派3的WiFi模块与我的路由器的WiFi加密方式不兼容——但这不应该啊,百思不得其解。
文章来源:http://www.codelast.com/
『4』解决系统更新后无法使用tmux的问题
用 pacman -Syu 更新系统后,重启,再执行tmux,提示错误:
tmux: need UTF-8 locale (LC_CTYPE) but have ANSI_X3.4-1968
查了一下,找到这个Arch Linux的Wiki页面,解决方法就是:
编辑 /etc/locale.gen 文件,取消这一行的注释:
en_US.UTF-8 UTF-8
执行以下命令生成Locale:
执行以下命令设置整个系统的Locale:
之后再执行tmux命令,不再出错。
文章来源:http://www.codelast.com/
『5』用pacman -Syu升级时出现“ca-certificates-utils: /etc/ssl/certs/ca-certificates.crt exists in filesystem”错误的解决办法
如果升级时出现以下错误:
error: failed to commit transaction (conflicting files)
ca-certificates-utils: /etc/ssl/certs/ca-certificates.crt exists in filesystem
Errors occurred, no packages were upgraded.
可以按这个链接的说法,用如下方法解决:
pacman -Syuw
rm /etc/ssl/certs/ca-certificates.crt
pacman -Su
其中第1条命令是只下载package,但不安装。
文章来源:http://www.codelast.com/
『6』Raspbian系统默认禁用ssh连接,如何启用
有一个最最简单的办法,你用了之后一定不想去试其他的方法,那就是:把树莓派安装Rabpbian系统的TF卡拔下来,用USB适配器插到一台Ubuntu台式机上,打开其boot分区,在里面创建一个名为“ssh”的文件(不含引号,文件内容为空即可),然后再把TF卡插回树莓派,就会发现ssh已经神奇地启用了。
这个原理是:Raspbian启动时会在boot分区里找名为ssh的文件,如果找到了,就会启用ssh,并把该文件删除。
文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤
转载需注明出处:
最后
以上就是粗暴黑米为你收集整理的树莓派3代linux,[原创] 树莓派3代Model B上手的全部内容,希望文章能够帮你解决树莓派3代linux,[原创] 树莓派3代Model B上手所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复