raspberry pi新系统SSH连接被拒绝的解决方法

将全新的树莓派系统烧录,开机然后用SSH远程连接,结果SSH连接提示“connection refused”,导致连接树莓派失败。出现错误的原因是自2016-11-25官方发布的 Raspbian系统镜像,系统默认禁用了SSH服务。As of the November 2016 release, Raspbian has the SSH server disabled by default.

出错的详细信息为:

官方的解决方案是:

  • SSH disabled by default; can be enabled by creating a file with name "ssh" in boot partition

如果有显示器,开机后,在树莓派配置中将SSH开启即可。但在没有显示器,首次开机需要用SSH登陆的时候,就需要在系统烧录完毕后,进入到boot分区盘,新建一个名为ssh的空白文件就行了。

完成后再将SD卡插回树莓派,就可以正常使用SSH了。

也可以在树莓派系统上执行如下命令:

注意,最好在系统烧录完成后,立即执行上面的命令。重启过程中,会诱发磁盘检查,因此第一次重启会比较慢。另外,目前发现,如果后期安装了openssh-server再配置,会导致系统崩溃(2018-06-27-raspbian-stretch-lite)。

此文件会在重启完成后被自动删除。

默认的登录用户名pi 默认密码raspberry

参考链接


raspberry pi新系统SSH连接被拒绝的解决方法

树莓派系统升级Raspbian Wheezy到Raspbian Jessie(树莓派2B+)

树莓派官方已经放出了Raspbian 8 Jessie。这是Raspbian Wheezy 2015.5.5之后的一次比较大的版本更新。而老的Raspbian Wheezy版本也可以通过简单的步骤升级到Raspbian 8 Jessie且不用重新刷写镜像。下面将介绍如何升级,要知道,升级有可能会破坏现有系统,在此之前请一定注意备份好老的系统。如果你对之前的系统做的更改越小,升级将会越顺利。

1. 更新当前系统到最新

2. 更新软件下载源

3. 升级到Raspbian 8 Jessie

参考链接


树莓派系统升级 Wheezy 到 Raspbian Jessie

树莓派2 B+任务栏(LXPanel)不断闪烁消失(RASPBIAN STRETCH WITH DESKTOP)

长时间不用的一个树莓派2 B+,使用的系统为RASPBIAN STRETCH WITH DESKTOP。在重新加电后,任务栏(LXPanel)不断闪烁消失,貌似启动的时候发生了异常,然后崩溃,重启,循环往复(并不是一直消失不见,而是不断闪烁)。但是查看系统日志,却找不到相关的异常日志。

这种现象,可以通过如下方法解决:

参考链接


树莓派3 B+下次启动强制检查系统分区

树莓派使用的过程中,难免会由于突然断电等原因导致SD卡发生错误。这个时候我们就需要强制让树莓派在下次启动的时候进行磁盘检查。

如果是普通分区,可以卸载后执行fsck命令,但是如果是系统分区,由于一直被占用,因此是没有办法进行磁盘检查的。

网上找了一下,找到了解决办法,可以强制让树莓派在下次系统启动的时候,强制检查系统分区。具体的方式如下:

参考链接


Checking sdcard for errors, unmount problem

树莓派3 B+设置静态IP

最近需要为一台树莓派3 B+设置静态IP地址,结果尝试了半天总是不成功。

网上搜索了一下,找到解决方法。

修改/etc/dhcpcd.conf文件

在文件的尾部增加如下内容:

上面的配置文件中,eth0是有线的配置, wlan0是无线配置
ip_address就是静态IP, 后面要接/24
routers是网关
domain_name_serversDNS

参考链接


设置树莓派3 B+的静态IP

如何安装树莓派摄像头模块

树莓派摄像头模块(Pi Cam)发售于2013年5月。其第一个发布版本配备了500万像素的传感器,通过排线链接树莓派上的CSI接口。而Pi Cam的第二个发布版本——也被叫做Pi NoIR中,配备了相同的传感器,但没有红外线过滤装置。因此第二版的摄像头模块就像安全监控摄像机一样,可以观测到近红外线的波长(700 - 1000 nm),不过当然同时也就牺牲了一定的显色性。

本文将会展示如何在树莓派上安装摄像头模块。 我们将使用第一版摄像头模块来演示。在安装完摄像头模块之后,你将会使用三个应用程序来访问这个模块:raspistill, raspiyuv 和raspivid。其中前两个应用用来捕捉图像,第三个应用来捕捉视频。raspistill 工具生成标准的图片文件,例如 .jpg 图像,而 raspiyuv 可以通过摄像头生成未处理的 raw 图像文件。

安装树莓派摄像头模块

按照以下步骤来将树莓派摄像头模块连接搭配树莓派:

  1. 找到 CSI 接口(CSI接口在以太网接口旁边),掀起深色胶带。
  2. 拉起 CSI 接口挡板。
  3. 拿起你的摄像头模块,将贴在镜头上的塑料保护膜撕掉。确保黄色部分的PCB(有字的一面)是安装完美的(可以轻轻按一下黄色的部分来保证安装完美)。
  4. 将排线插入CSI接口。记住,有蓝色胶带的一面应该面向以太网接口方向。同样,这时也确认一下排线安装好了之后,将挡板拉下。

130426pxvuxrqtnpppxx17

好了,现在你的 Pi Cam 已经准备就绪,可以拍摄照片或视频了。

在树莓派上启用摄像头模块

在安装完摄像头模块之后,首先要确认你已经升级了树莓派系统并应用了最新的固件。可以输入以下命令来操作:

运行树莓派配置工具来激活摄像头模块:

移动光标至菜单中的 "Enable Camera(启用摄像头)",将其设为Enable(启用状态)。完成之后重启树莓派。

130440dguwh6gwk1vk9jgv

130442rn19igalrfo1rmg5

130443uq0hldn4sfvc0nhs

安装完摄像头模块后的完成照:

130454br44z4dnp2c3zcyr

通过摄像头模块拍照

在重启完树莓派后,我们就可以使用Pi Cam了。要用它来拍摄照片的话,可以从命令行运行raspistill:

这句命令将在 2000ms 后拍摄一张照片,然后保存为 keychain.jpg。下面就是一张由 Pi Cam 拍摄的我的小熊公仔钥匙链。

130456h516ypyamyo5mst6

raspiyuv 工具用法差不多,只不过拍摄得到的是一张未处理过的raw图像。

通过摄像头模块拍视频

想要用摄像头模块拍一段视频的话,可以从命令行运行 raspivid 工具。下面这句命令会按照默认配置(长度5秒,分辨率1920x1080,比特率 17Mbps)拍摄一段视频。

如果你想改变拍摄时长,只要通过 "-t" 选项来设置你想要的长度就行了(单位是毫秒)。

使用 "-w" 和 "-h" 选项将分辨率降为 1280x720...

raspivid 的输出是一段未压缩的 H.264 视频流,而且这段视频不含声音。为了能被通常的视频播放器所播放,这个 raw 的 H.264 视频还需要转换。可以使用 gpac 包中所带有的 MP4Box 应用。

在 Raspbian 上安装 gpac,输入命令:

然后将这段 raw 的 H.264 格式的视频流转换为每秒30帧的 .mp4 格式视频:

视频长度为10秒,使用默认分辨率以及比特率。

如果想要获取 raspistill, raspiyuv 和 raspivid 的完整命令行选项,不加任何选项直接运行以上命令即可。

参考链接


如何安装树莓派摄像头模块

Ubuntu 16.04上使用crosstool-ng建立树莓派2B的编译环境

环境准备


编译crosstool-ng


然后加环境变量 export PATH=$PATH:/opt/crosstool-ng/bin

配置编译选项


如果想自己配置调整某些参数,则执行

最后执行

默认情况下,生成的编译工具在当前用户目录下的x-tools目录下,如果需要调整这个目录,可以参考
Mac OSX下执行crosstool-ng提示“Your file system ‘xxxx’ is *not* case-sensitive!”

编译树莓派源代码


Ubuntu 16.04 (x64)树莓派B+(Raspberry Pi  B+)源代码编译

参考链接


自己编译给树莓派的交叉编译工具

Mac OSX EI Capitan(10.11.5)上使用crosstool-ng 1.22.0 建立树莓派2B的编译环境

背景介绍


树莓派自带的编译工具是基于Linux的,在Mac OSX上是无法正常使用的,因此比较简单的方法就是使用crosstool-ng来建立交叉编译环境。

配置编译环境


1.安装HomeBrew,方便各种工具的安装

参考让Mac也能拥有apt-get类似的功能——Brew

2.使用HomeBrew安装crosstool-ng

3.链接Mac OSX上的installginstallMac OSX上没有ginstall

如果不执行命令,则会报错

4.使用HomeBrew安装expat

不执行此命令,我的电脑会出现crosstool-ng在配置expat的时候失败,但是两者使用的版本并不相同,另外貌似出错后,重试即可,不需要安装expat,但是稳妥起见,还是安装好了。
5.创建大小写区分的磁盘分区文件,并挂载(如果你系统创建的时候,系统分区以及区分大小写,则不必此项操作)

参考Mac OSX下执行crosstool-ng提示“Your file system ‘xxxx’  is *not* case-sensitive!”

6.在刚刚创建并挂载的大小写区分的磁盘上执行配置命令

7.修改刚刚命令生成在当前目录下的配置文件

找到

禁止使用静态链接(Mac OSX下,无法提供对于libc的静态链接,只能动态链接)

8.执行构建命令

构建中遇到的问题


如果构建出错,可以使用

后面的数字代表几个并行的任务,单个任务可以更方便的查看出错的信息,多任务并发会导致日志打印的非常混乱。

在构建(ct-ng build)的时候遇到任何问题,都应该查看当前构建目录下的build.log文件,这个文件中详细记录了构建的过程信息,详细的出错信息等。
由于crosstool-ng在构建过程中需要去服务器上下载源代码,难免出现文件下载不完整的情况,这种情况下,可以从build.log文件中看到如下的内容:

则说明下载的源代码出现了问题。最容易出现这个问题的是gcc.以gcc-5.2.0为例子,修正的方法如下:

简单解释一下代码,tarballs存储了从服务器上下载的全部源代码的压缩包,解压缩出现问题,因此必须删除,让crosstool-ng去重新下载,扩展名为.extracting文件为crosstool-ng的标记文件,用来标识这个包是不是已经被解压缩过,一旦这个文件存在crosstool-ng就认为对应的工具已经就绪了,就不会处理这个工具了,最后删除的是工具源代码的目录。

如果提示安装binutils的时候失败,如下所示:

查看build.log可以看到如下的内容:

这个BUG的原因是由于GCC的版本问题导致的,低于4.7版本的GCC无法理解这个语法,尽管Mac Osx已经使用最新的LLVM,但是遗憾的是,最新的LLVM并没有支持这个语法。解决方法如下:

找到如下代码

修改为:

如果出现了"fatal error: bracket nesting level exceeded maximum of 256",如下所示:

则修改方法如下:

在出现的界面中选择"Paths and misc options"项目
Crosstool-NG-PathAndMiscOptions

在第二级界面中不断下拉,找到"Extra host compiler flags",增加"-fbracket-depth=512",这个选项。

Crosstool-NG-PathAndMiscOptions-ExtraHostCompilerFlags

然后重新执行

如果出现错误:

这个是由于LLVM目前的版本还无法正确的理解部分GCC的汇编部分的写法,导致编译失败,而这部分的语法一般都是用在优化的时候出现错误,因此我们需要禁用这部分的优化,使用"Paths and misc options"->"Extra host compiler flags"增加 "-fno-unroll-loops"。如下图:
Crosstool-NG-PathAndMiscOptions-ExtraHostCompilerFlags-NoUnrollloops
如果出现如下错误:

这个问题是由于编译的时候,同时打开的文件数量超过了256导致的,修复方式为在shell中增大同时打开的文件数量限制到1024

然后在同一个shell中继续执行

如果出现如下错误,则直接忽略即可:

至于其他问题,貌似重试一下就可以解决了。

编译树莓派源代码


Ubuntu 16.04 (x64)树莓派B+(Raspberry Pi  B+)源代码编译

参考链接