用树莓派改装的智能微博炉

如果微波炉连接到一个扫码器,可以识别烹饪指南上的指示并依照指示操作,这个想法是不是很好玩?有个Raspberry发烧友Nathan Broadbent 突发奇想:让树莓派来下厨。做什么?当然是烤树莓派!这个想法听起来很怪诞,实现起来却也不是不可以。原理是把一个微波炉接上一个树莓派和扫码器,扫描识别并执行烹饪指南上树莓派的作法。

这个灵感是来源于Reddit上面一个用户的提议:“要是每一种食品标签上都有一个二维码,微波炉识别之后可以依照二维码上的提示给食物‘高温加热两分钟,冷却一分钟,中低温1分钟’等等就好了。”Nathan用的是UPC(通用产品代码)扫码器,反正食品包装上已经有UPC条码,如果建立一个在线的数据库(采用结构化的、树莓派能识别的),扫码器就能从那些条码里获得所需要的烹饪指南了。

此外,Nathan的树莓派“厨师”有如下特性:

新设计的触控板

改进后的提示音

和互联网时间同步的钟

接受语音指令

连接到扫码器,可以扫描并获取在线的烹饪指南

微波炉还有一个网页,可以远程控制,还可以更改烹饪指南;

叮完东西后可以发推,比如“我是Nathan家的微波炉,我刚刚烤了一个树莓派,我为自己代言”,细节没交代,但内容应该是可以设定的

微波炉内部构造。

线上的食品烹饪方式数据库。

来,做个树莓派。

配完料之后,放进去就不用管了。

成品。

via madebynathan.com

在树莓派上搭建LAMP服务

之前介绍过树莓派上LNMP环境的搭建方法,本文将详细介绍如何在树莓派上配置LAMP服务。

为LAMP,是最流行的服务器配置之一,LAMP的含义是:

Linux - 操作系统

Apache - 网络服务器(HTTP)软件

Mysql - 数据库服务

PHP or Perl - 编程语言

这种配置对于大多数树莓派用户来说,可能过于重量级了,但是大多数用户能学到服务器的配置过程,是一种学习配置服务器的好方法。我可能会在以后写一篇轻量级服务器的配置文章。

所有的配置都在命令行下完成。这可能会比点鼠标难一些,但是也会有很多优势,例如可以远程管理、配置服务,CPU时间可以用在提供网页服务上,而不是用来渲染图形界面,毕竟网络服务器的唯一目的就是网页服务。

为什么要用树莓派?

除了极客式的回答“因为我能这么做”之外,我认为还有其他一些很好的理由。

可以学习Linux 本站的主要目的是传授Linux技巧。学Linux最好的方式是用Linux做些什么。搭建服务器是一个好的起点。

学习网络编程 树梅派基金会的目标是教孩子编程。网络编程是非常有用的技能。虽然对于先学桌面编程好,还是先学网络编程好,一直以来是有争议的,但是毫无疑问网络编程非常实用。

作为一个接口 树莓派适合从各种感应器中收集数据,可以搭建一个服务器,来访问这些数据。

专用网络设备 可以做成一个家中使用的专用网络设备,例如流媒体设备等。

当作测试或开发服务器 开发web应用的时候,有一个专用的测试用服务器比较好。理想状态下,测试服务器的软硬件应该和生产环境下一致,但如果不现实,可以用树莓派来代替,开销很低。

当作生产环境的服务器 最初我会说,把树莓派当作生产环境服务器是很傻的事。但我回忆了下, 我最初的个人博客 的服务器的配置也不比树莓派强多少,那是在2007年之前的事情。那台服务器的内存比树莓派多一点,就可以跑一个完整的 WordPress 站点,以及其它一些CGI脚本。现在的网站动态内容更多,站点上的文件也更大,但是如果是个人网站,用树莓派也够用了。

Debian Linux

服务器的配置基于 树莓派下载页 上的Debian树莓派镜像。

本文需要树莓派能连接到外网,下文假设树莓派是用网线连接到家用路由器上的。

安全性

首先要让树莓派的安全等级更高一些。这个镜像中的系统有默认的用户名和密码,连上外网后,任何人都可以登陆,然后随意使用这个树莓派。

要更改密码,在登陆后输入

passwd

然后在之后出现的提示符后输入新密码。

你可能想要添加一个帐户。我在下文中用的账户名是user1,通常来说,账户名应该是个人名。如果你不想添加帐户,可以跳过这一部分,直接去看 性能/网络那一步。

下面的命令可以添加一个新帐户,并且设定密码。

sudo useradd -m user1 sudo passwd user1

这是本文中第一次用sudo命令,在余下的部分中还会用很多次。使用sudo命令,用户可以以管理员的身份来执行一个命令,就像上面的例子里一样。如果不使用sudo,命令就会运行失败,因为普通用户不可以创建其它帐户。这是一个防止系统被盗用的安全特性,也可以防止用户误用某些命令破坏系统(虽然说前面加上sudo就不能防止误用了)。

新帐户必须被加入到特定的用户组中,才能有pi帐户的某些权限。

你可以用usermod命令添加用户组,也可以直接更改配置文件。我在下面会直接改配置文件,这样你就能看一下配置文件了(一般来说,如果要做好几个改动,直接改配置文件会快一些)。请注意,如果在编辑配置文件的时候出错,有可能这个帐户会不能登陆。

有两个常用的命令行下的文本编辑器,对于新用户来说nano比较容易使用(所以我在下文用的是nano),因为它很有用,并且在所有linux上都是预装的。如果你会用vi,那么下面使用nano的地方,你都可以用vi。

sudo nano /etc/group

浏览整个文件,找到pi所在的那一行,然后把,user1加到行尾。

例如

adm:x:4:pi,user1

编辑完成后,CTRL-O保存文件,CTRL-X退出。

重要的地方在于,如果一个帐户不在admin那一行,这个帐户就不能使用sudo,从而不能进行任何系统管理 。当然,如果你想要添加一个帐户,然后不给管理权限,那么就不用改动/etc/group文件。

输入

exit

注销,然后用新建的帐户登陆,检查一下是否设置正确。

新帐户默认的 Shell 是bourne shell。bash是bourne shell的改进版,用户可以在命令行使用方向键自动补全。

为新帐户设置默认shell,输入:

chsh -s /bin/bash

如果以后不用pi这个帐户了,可以删掉它。

userdel pi

这只是提升Pi的安全级别的第一步。Linux安全还包含其它方面,例如当安全补丁发布后,安装这些补丁(例如用apt-get update)。

调节系统性能

通常来说,调整服务器性能是之后要做的事情。但是对于树莓派来说,做一个调整,就能提升系统的性能。我们在这里设置,保存重启后生效,之后可以省去一次重启。

树莓派有256MB(后来的版本是512MB)内存。但这个内存是图形和主系统共用的。默认情况下64MB分配给图形系统。对于不准备跑图形界面,或者很少跑图形界面的设备,例如服务器这种情况下,64MB内存太多了。将图形系统的内存减少到32MB,输入下面的命令。

sudo cp /boot/arm224_start.elf /boot/start.elf

或者用sudo raspi-config在配置目录中改动。(你可以用sudo cp /boot/arm192_start.elf /boot/start.elf 来恢复之前的设置)

这个改动需要重启后生效,我们稍晚时候再重启,所以现在不用重启。

设定网络

下一步要为树莓派分配一个静态IP地址。这一步稍微复杂一点,决定于你自己的配置和路由器种类。

默认情况下树莓派向路由器请求一个动态IP。这种IP可能会变动,不容易连上你的服务器。我们的办法是给它一个不会变的地址,例如192.168.1.4

注意,这个地址只能在局域网使用,不能在外网用——之后我们会介绍如何配置你的路由器和防火墙 ,让外网用户可以访问你的服务器。

首先用ifconfig查看DHCP分配给树莓派的地址——下面是输出内容的一部分

… eth0 Link encap:Ethernet HWaddr b8:27:eb:8a:71:a0 inet addr:192.168.1.110 Bcast:192.168.1.255 Mask:255.255.255.0 …

这是在说,以太网端口0,地址是192.168.1.110

你还需要知道路由器的地址,使用route命令

$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0

这是在说,路由器的IP地址(也就是网关)是192.168.1.1,所有的数据都会通过这个路由器接收和发送。

现在,查看路由器IP池的范围。这取决于你的路由器。下面的例子中用的是一个 Belkin无线路由器 ,在浏览器中输入192.168.1.1,可以看到路由器的管理界面。

LAN设置是下面这个样子的:

这个例子中,局域网有效的IP范围是从192.168.1.1到192.168.1.254.路由器的地址是192.168.1.1,DHCP分配的地址是从192.168.1.100到192.168.1.150(如果有必要,你可以更改这个范围)。我给服务器分配的地址是192.168.1.4.

配置静态IP地址

cd /etc/network sudo nano interfaces

把 iface eth0 inet dhcp 改成 iface eth0 inet static

address 192.168.1.4 netmask 255.255.255.0 gateway 192.168.1.1

你可以看一眼/etc/resolv.conf中的配置,其中有一条记录(很可能是指向你的默认网关的)

nameserver 192.168.1.1

你也可以把这一项直接指向网络服务商的DNS服务器地址。虽然可以不重启,重新连接网络接口,我建议在这一步重启,确保配置正确。

sudo reboot

登陆之后,用ifconfig确认服务器有一个静态ip地址

… eth0 Link encap:Ethernet HWaddr b8:27:eb:8a:71:a0 inet addr:192.168.1.4 Bcast:192.168.1.255 Mask:255.255.255.0 …

开启SSH

SSH(Secure Shell)是一种网络协议,你可以用命令行通过这种协议远程登陆,控制计算机。就像名称中所说的一样,这种远程控制是安全的,因为数据在网络上传输的时候是加密的(所以别人看不到你的密码之类的信息)。它还提供例如隧道之类的很棒的特性,我们在这里不去深入讨论。

ssh服务在默认的镜像上有,默认也是开启的。你可以用raspi-config打开或关闭ssh服务。

现在你可以用ssh远程访问树莓派(在同一个网络下)。如果你有另一台在同一个网络下,并装有linux的电脑,就可以在终端运行

ssh 192.168.1.4

然后会以同样的用户名登陆。如果想用用户名不同的帐户,在ip前输入用户名,并且用@来分隔。例如

ssh user1@192.168.1.4

MAC上也有ssh,你可以用同样的命令登陆。

如果你用Windows,那么有好几种选择,我推荐开源软件Putty。

让外网可以访问服务器

然后,我们来设置路由器,让ssh和网络数据可以通过防火墙连到树莓派。

你把pi帐户的默认密码改掉了吧?如果没改掉默认密码,任何人都可以登陆到你的树莓派上。

家庭网络中的ip地址是局域网的地址,局域网是个私有网段,外网是无法访问的。你的网络服务商会提供一个动态IP,这个IP是路由器在使用的。为了让外网可以访问你的树莓派,必须把树莓派的地址转换为一个外网地址。这个过程叫网络地址转换(NAT)。

需要开放的端口号是80(http默认端口),如果你想在外网的计算机上登陆,还需要开放22端口(ssh默认)。

这一步需要查阅路由器的说明书。这个例子中,我的Belkin路由器是在防火墙>虚拟服务器设定中(见下图),但是Netgear的路由器在高级>安全>IP转发中。

DNS

最后一步是给你路由器的IP绑定一个域名。从我个人的情况而言,宽带服务商是Virgin Media。虽然他们提供的是动态IP,但是地址通常是不会变的。我在一个域名服务商那里注册了一个静态的域名。这个域名大概一年只需要更新一次,或者当Virgin Media进行大规模网络维护的时候更新一次。

如果你的IP是动态的,而且经常变动,你就要注册一个动态域名服务。

安装Apache

Apache服务器可以从Debian的源中下载。可以用apt下载。

首先要更新apt的软件列表。如果不运行sudo apt-get updata的话,apt软件就不知道有没有新的软件包或者版本更新。

Apache可以用下面的命令来安装

sudo apt-get install apache2

安装mysql

mysql在Debian的源中也有,可以用这个命令来安装

sudo apt-get install mysql-server

安装过程中,会出现一个提示符让你输入一个密码。

这个密码是mysql root用户的密码。

安装PHP

Perl是系统预装的,所以我这里只写PHP的安装。

输入下面的命令,就可以安装PHP 5,以及PHP访问mysql数据库所需要的库。

sudo apt-get install php5 sudo apt-get install php5-mysql

配置完成

安装完成后,可以在浏览器中输入你路由器的IP或域名,就可以访问你的网站了。

你应该能看到一个页面显示“It works”,但是没有其它内容。

删掉/var/www/index.html,创建一个/var/www/index.php,可以测试服务器和PHP工作是否正常。

树莓派+一根网线直连笔记本电脑

用网线直连电脑,不经过路由器。这个方法最大的特点用最少的工具玩树莓派。

一、材料:树莓派一部、网线一根,笔记本电脑一台。

1、树莓派:带供电系统和烧好Raspbian系统的SD卡;

2、网线:交叉或直连;

3、笔记本电脑:双网卡,现在应该都是这个配置的。

二、操作步骤。

1、连线。

树莓派接好供电线;

将网线一端接到树莓派,另一端接到笔记本。

2、共享互联网。

如果现在笔记本已经通过WIFI连接到互联网,可以将无线网卡的互联网资源共享给本地连接。以win7系统为例,开始——控制面板——网络和Internet——网络和共享中心——查看网络状态和任务——更改适配器设置,找到无线网络连接右键“属性”,在共享选项卡上选中“允许其他网络用户通过此计算机的Internet连接来连接(N)”选项,点确定。

3、查找树莓派的IP地址。

运行DOS窗口,输入arp -a,在接口192.168.137.1下的为动态类型的IP地址就是树莓派的地址

为什么是接口192.168.137.1的呢?因为上部共享互联网的时候已把“本地连接”的IP地址自动设置成静态IP192.168.137.1了,当然这个IP地址也可以自己设置成其他自己常用的静态IP地址。因为此时树莓派的IP地址是动态的,只能用此方法查找。也可以通过修改SD卡中的cmdline.txt文件(在里面加入语句ip=***.***.***.***),将树莓派设置成静态IP地址,但此时只有将电脑的“本地连接”的静态IP地址设置成与树莓派静态IP地址同一号段才能成功连接。

4、利用PuTTY软件连接树莓派。

此时输入上述查找的动态IP地址或设置好的静态IP地址就能连接上树莓派了,因为是初次连接要进行一下初始化设置和其他操作。

5、图形化界面连接。

再按照VNC远程登录树莓派的图形界面一文就能通过VNC软件连接上树莓派进行图形化界面操作了,也可以通过windows自带的“远程桌面连接”功能进行图形化操作,具体设置可在网上查找相关教程。

就这么多了,有什么问题可以交流交流。

via

树莓派使用MJPG-Streamer实现网络监控

一、所需设备

1、树莓派(B版)

2、实现 UVC 协议的摄像头,支持列表可查看:http://linux-uvc.berlios.de/ (本文采用淘宝购买的32元天敏N82)

二、mjpg-streamer下载

官网:http://sourceforge.net/projects/mjpg-streamer/

http://sourceforge.net/apps/mediawiki/mjpg-streamer/index.php?title=Main_Page

推荐版本:

http://mjpg-streamer.svn.sourceforge.net/viewvc/mjpg-streamer/

下载SVN的mjpg-streamer的172版。

三、可能出现的安装错误

1、mjpg-streamer-r63.tar.gz

RasPi B版使用此版本包,编译时会报如下错误:

error: linux/videodev.h: No such file or directory

这是因为内核版本太高的原因,videodev.h这个接口不支持了。

解决办法:

安装:libv4l-dev

sudo apt-get -f install libv4l-dev

然后还需把这装包中,所有.c和.h文件中的头替换掉:

#include

代码,改为下面这行

#include

但很不幸,笔者还是没能成功通过编译,虽然不报这个错误了,但是报出其它错误。

2、报jpg不支持,需安装

sudo apt-get install libjpeg62-dev

3、i: init_VideoIn failed错误

错误原因:市面上大部分摄像头都是支持YUV的,而不是JPEG的。mjpg-stream支持JPEG和YUV两种格式。

解决方法:

1、打开以下文件:

sudo nano mjpg-streamer/plugins/input_uvc/input_uvc.c

2、翻到大概第三页

将一行中的:

int width = 640, height = 480, fps = -1, format = V4L2_PIX_FMT_MJPEG, i;

改成:

V4L2_PIX_FMT_YUYV

需要重新编译才会有效。

四、安装

推荐使用第二步下载的安装包(172版),或才用SVN进行下载。

svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer

以上操作,前提是需要安装SVN,如果你没有安装,也可以通过

sudo apt-get install subversion

安装:

tar -xvzf mjpg-streamer.tar.gz cd mjpg-streamer/mjpg-streamer #以下操原因,见错误3 sudo nano plugins/input_uvc/input_uvc.c #将V4L2_PIX_FMT_MJPEG改成V4L2_PIX_FMT_YUYV后保存退出 make ./start.sh

五、web访问

http://你的IP:8080/stream.html(如:http://192.168.1.106:8080/stream.html)

树莓派内核模块开发HelloWord

有时候为了方便与硬件更好交互,可能会需要为它专门写个驱动。这就涉及到了内核模块的开发。

其实内核模块的开发没有想象的那么复杂,也就是准备工作有点繁琐,开源的东西都这样,一切都得自己来。

安装kernel header源码

首先查看当前使用的内核版本

$ uname -r 3.6.11+

我的系统是2013-02-09-wheezy-raspbian,所以显示出来的内核版本是3.6.11+

首先看看apt源里面有没有,有的话直接安装

$ apt-cache search linux-headers

没有找到3.6.11+相关的,其中的3.6的一些down下来也没法用。

下面就手动把3.6.11+的header-src搞下来。

下载3.6.11+的内核源码

$ wget https://github.com/raspberrypi/linux/archive/rpi-3.6.y.tar.gz 解压 $ tar xvfz rpi-3.6.y.tar.gz 取得root权限 $ su 将源码移至/usr/src目录 # mv linux-rpi-3.6.y /usr/src 建立内核模块库目录的链接 # ln -s /usr/src/linux-rpi-3.6.y /lib/modules/3.6.11+/build # cd /lib/modules/3.6.11+/build make mrproper可以看作更加强劲的make clean命令,用来清除环境变量,即清除配置文件,一般编译内核前都要运行 # make mrproper 将当前正在使用的系统的内核配置生成内核配置信息 # gzip -dc /proc/config.gz > .config 生成编译内核所需要的东西 # make modules_prepare 获取内核编译时生成的内核模块导出符号文件,因为不是从头编译内核,所以没有,但是编译内核模块需要这个 # wget https://github.com/raspberrypi/firmware/raw/master/extra/Module.symvers 退出root # exit

编写hello world 内核模块

写一个最简单的内核模块 hello.c, 这个内核只会在加载的时候输出 helo,word,移除时输出goodbye

在树梅派上找个地方新建一个目录,创建文件hello.c:

#include #include MODULE_LICENSE(“Dual BSD/GPL”); static int hello_init(void) { printk(KERN_ALERT “Hello, world”); return 0; } static void hello_exit(void) { printk(KERN_ALERT “Goodbye, cruel world”); } module_init(hello_init); module_exit(hello_exit);

创建Makefile文件:

ifneq ($(KERNELRELEASE),) obj-m := hello.o else KDIR := /home/hcx/work/boards/RPi/kernel/linux-rpi-3.6.y all: make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=/home/hcx/work/boards/RPi/kernel/RpiTools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- clean: rm -f *.ko *.o *.mod.o *.mod.c *.symvers modul* endif

准备工作做好了,现在开始编译

$ make

会生成以下文件:

$ ls hello.c hello.mod.c hello.o modules.order hello.ko hello.mod.o Makefile Module.symvers

查看这个内核模块的信息:

$ modinfo hello.ko filename: /home/pi/sensors/kernel-model/hello.ko license: Dual BSD/GPL srcversion: 9AE281A251509460F68E55F depends: vermagic: 3.6.11 preempt mod_unload modversions ARMv6

加载内核:

$ sudo sudo insmod hello.ko

命令行没有输出,别急,继续移除它:

$ sudo rmmod hello

现在查看输出:

$ dmesg | tail -5 [ 7175.039569] Hello, world [ 7199.989110] Goodbye, cruel world

可以看到,这个hello内核模块工作的很正常。

配置树莓派支持中文

如果你把Locale改成了中文的话,系统是不会自动安装中文字体的,直接的效果是系统的很多信息都用中文显示,但是由于没有安装字体,所以全部变成了方块,所以完全不知道信息的内容是什么,这个作为系统安装工具我认为是有问题的,因为这样会直接造成系统不可用,基于Debian的Raspbian也有同样的问题。

所以如果你在初始设置时,不小心把系统的Locale设置成了zh_CN.UTF-8,当你进入Raspbian的图像界面时,会马上傻眼了,不知道图标、菜单的内容是什么,因为全部是方块。所以建议初始设置时,locale尽量用en_US.UTF-8或者en_GB.UTF-8。

启动后,双击桌面那个计算机显示器图标,出现提示符时打入:

sudo apt-get install ttf-wqy-zenhei

将安装文泉驿的开源中文字体,在这里向文泉驿表示致敬,貌似它是唯一一个开源的中文字体库。郭嘉有钱建孔子学院,但是从来不会有钱搞一套比较完整的开源中文字库出来的。

中文是可以显示啦,输入呢?Linux下早就有啦,叫SCIM(Smart Common Input Method ),所以只要输入:

sudo apt-get install scim-pinyin

就会安装拼音输入法,安装完成后,可以直接打入scim激活,下次启动是会自动启动的。快捷键也是Ctrl+空格。或者直接点击右下角图标选择。

接着运行:

sudo raspi-config

然后选择change_locale,在Default locale for the system environment:中选择zh_CN.UTF-8。然后重启机器,就发现整个环境变成中文的了。

键盘定义

选择configure_keyboard前面的屏幕选默认值:Generic 105-key (Intl) PC,但在Keyboard layout:时,显示出来的都是English(UK)的,要选择Other,然后在里面选择English(US),否则会出现键盘的一些符号不对或者对调,比如引号”和@符号对调,#号变成英镑符号等等。之后的两个屏幕都选择默认值就可以了,到了:Use Control+Alt+Backspace to terminate the X server? 时,选择Yes,表示用这个可以终止X Server,当整个X-Window死掉的时候可以用。

这个LXDE就是中文的了。

命令行改回英文方法:修改/etc/profile 添加 LANG=en_US.UTF-8

在树莓派上创建内存盘

MCC 172是一个两通道DAQ HAT,用于通过IEPE传感器(如加速度计和麦克风)进行声音和振动测量。它的每个通道具有24位A/D,最大采样率为51.2 kS/s/Ch。

给树莓派安装看门狗的两种方法

树莓派的CPU是保护有硬件看门狗的,可以通过安装模块和值守程序来实现看门狗防止树莓派死机。

安装方法一:

watchdog.sh的源码:

#!/usr/bin/env bash echo “[+] Activating Temperature Sensor” modprobe bcm2708_wdog echo “bcm2708_wdog” >> /etc/modules echo “[+]Installing Watchdog” apt-get -y install watchdog chkconfig echo “[+]Setting Up Watchdog” chkconfig watchdog on sed -i ‘s/#max-load-1[^5]/max-load-1\ /g’ /etc/watchdog.conf sed -i ‘s/#\(watchdog-device\t[\ ]*\)\=/\1\t\=/g’ /etc/watchdog.conf sed -i ‘s/#\(temperature-device[\ ]*\)\=/\1\ \= \/sys\/class\/thermal\/thermal\_zone0\/temp/g’ /etc/watchdog.conf sed -i ‘s/#\(max-temperature[\ ]*\)\=\ 120/\1\ \=\ 75000/g’ /etc/watchdog.conf sed -i ‘s/#\(interval[\ ]*\)\=\ 1/\1\ \=\ 10 /g’ /etc/watchdog.conf /etc/init.d/watchdog start

运行:

sudo sh watchdog.sh

安装方法二:

1.加载看门狗模块,编辑/etc/modules文件,添加一行“bcm2708_wdog”

sudo modprobe bcm2708_wdog sudo nano /etc/modules

添加一行”bcm2708_wdog”

2.安装系统配置软件和看门狗程序

sudo apt-get install chkconfig watchdog

3.配置看门狗程序,编辑“/etc/watchdog.conf”文件

sudo nano /etc/watchdog.conf

去掉 watchdog-device = /dev/watchdog 前的#号,让看门狗设备对应树莓派的硬件看门狗

去掉 max-load-1 = 24 前的#号,当1分钟load进程超过24个的时候就会重启

还可以设置高温复位:

去掉

temperature-device =

max-temperature = 120

前的#号,改为

temperature-device = /sys/class/thermal/thermal_zone0/temp

max-temperature = 80000

温度超过80度就会引起重启,保护CPU。

配置完后,保存(Ctrl+O),退出(ctrl+x)。

4.配置看门狗程序,开机自动运行

chkconfig watchdog on

5.启动看门狗

sudo /etc/init.d/watchdog start

用Windows远程桌面连接树莓派的方法

树莓派DIY笔记之前有介绍过用VNC连接到树莓派的方法。在Windows下,当然还是自带的远程桌面更便捷。如果不想用VNC,利用远程桌面(mstsc.exe)连接树莓派,如何实现?

只需要在raspbian下面安装一个服务xdrp即可。输入如下命令安装:

sudo apt-get install xrdp

然后就Ok了。

2018.1.22 更新:

如果出现报错 error – problem connecting,问题根源在于tightvnc,出现问题的版本跟X字体有冲突,导致连接Xserver出错。

解决方法:

sudo apt-get purge tightvnc xrdp sudo apt-get install tightvncserver xrdp

最后启动 xrdp 服务,sudo /etc/init.d/xrdp restart,此时会启用相应端口,配置方面默认即可。

通过命令:netstat -tnl

查看 3350 3389 5910 这三个端口处于LISTEN,一般就没问题了。

dpkg -L + 软件包的名字,可以知道这个软件包包含了哪些文件。

via http://rpi.linux48.com/remote-rpi.html

http://www.linuxidc.com/Linux/2015-05/117835.htm

视频演示如何给树莓派安装摄像头模块

树莓派官方出品摄像头模块已经有一段时间了。完整的规格可以在树莓派官方摄像头模块页面找到。该页面旨在向您展示如何将摄像头模块连接到树莓派上以及如何使用。根据你当前SD卡的状态,这需要2到20分钟的时间不等。

第一步: 将摄像头连接到树莓派上

摄像头的带状线缆需要连接到树莓派的特殊连接头上,就在紧靠以太网口的位置。想知道如何连接线缆,最简单的方式就是看看下面这个视频。其实都很简单,只是需要小心不要把带状线缆弄褶就行。

第二步:升级系统

要使用摄像头模块,你必须使用一个较新的操作系统,它能识别出摄像头模块已连接上。最简单的方法就是直接从树莓派官网去下载一个Raspbian的系统镜像然后安装到一个全新的SD卡上。

不管你用的Raspbian系统版本是什么,都强烈推荐你用如下的命令来更新一下系统:

sudo apt-get update sudo apt-get upgrade

根据你的SD卡的新旧程度,升级系统所花费的时间会有所不同。

第三步:在raspi-config中使能摄像头

升级完成后重启系统。如果你使用的是最新版的系统,raspi-config组件应该会自动加载。如果不是,那么你可以通过命令来手动运行:

sudo raspi-config

移动到“Camera”选项,按下回车键。

选择“Enable”然后回车。

再选择“Yes”,回车后树莓派会重新启动。

通过raspi-config工具更新了操作并使能摄像头之后,它会告诉树莓派摄像头已经连接成功,并增加了两个命令行工具以供用户使用摄像头。

raspistill raspivid

这两个命令可分别让你拍摄静帧照片和HD视频了!

最小最快的媒体中心OpenELEC树莓派版发布

OpenELEC 是 Open Embedded Linux Entertainment Center 的缩写,从字面上很好理解“开源嵌入式 Linux 娱乐中心”。OpenELEC 使用基于 XBMC 的软件。提供包括家庭影院 PC 所需的各类软件,包括 DVD 播放器、远程控制等。

树莓派官网已于近期发布了 OpenELEC 的树莓派版并提供下线。你可以在这里下载到最新的版本。

OpenELEC 目前在国内听说过的朋友不太多,百度百科也查不到。其实OpenELEC也不是新的系统,简单的来说 OpenELEC 是 XBMC 精简加强版,体积是 XMBC 的1/5,功能一点不少,而启动时间却比 XBMC 大幅缩短。

举一个例子:在我的E-350 平台 启动SD卡内的 OpenELEC v1.02 Fusion 版本 104M 大约需要15s~20s。而在相同的平台下启动U盘内的 XBMC 11.0 Eden beta1 500M 大约需要35s~40s。从上面的例子大家不难看出,OpenELEC 有着小巧快速的特点,其根源还是归根于 OpenELEC 是一款专门为 HTPC 定制的小型嵌入式 Linux 系统,而不像 XBMC 是基于Ubuntu,需要启动先启动 Ubuntu 在进入XBMC 媒体中心。

OpenELEC 官网:www.openelec.tv

如何用树莓派打造一个家庭影院

本篇介绍利用树莓派做一个流媒体或家庭影院系统。

传统的报刊杂志正在说,仅售22英镑的智能电视即将来临,树莓派当然可以把普通的纯平LCD或等离子电视变成智能电视,感谢有人移植XBMC这个流行的软件,为我们带来了Raspbmc。

准备Raspbmc

你应该已经遵照之前的一篇文章,为树莓派安装好了Debian,而且已经能正常运行了。

为了安装Raspbmc,需要准备几件东西。第一件是一张新的SD卡——之前的那张要用在普通环境下;SD卡事实上就是树莓派的硬盘,所以如果过度写入,就只能重新刷镜像才能修复了,大概就等同于重装系统。没必要用一张新的SD卡,但是推荐用新的。一张microSD再加上一个SD卡套也是可以的。

无论你选择哪种方案,卡都要先格式化,于是在进行下一步前,把卡插到读卡器中,连接到你的PC上。

然后,下载Raspbmc安装器。下载完成后,解压缩并运行installer.exe文件。

你的SD卡应该会在安装窗口中显示出来,选中SD卡那一项前面的小方格,然后点击安装,软件就会把Raspbmc安装到SD卡上面。当“恭喜”信息出现的时候,就可以把卡拔下来,插到你的树莓派上面去了。

设置Raspbmc

把安装有Raspbmc的SD装到树莓派里,打开设备,确保设备和外网是连通的,因为在安装过程中,还有一部分数据要从网上下载,所以说连网是必须的。

在此过程中你什么都不用做——除非网络连接断开了,网线传输出错了或者SD卡坏了——所以现在可以坐下来,在等待的时候喝杯咖啡(Raspbmc的安装说明上就是这么说的!)。

你可以用树莓派上的XBMC干什么

Raspbmc是流行的媒体中心软件XBMC移植到树莓派上的产物。所以用户界面喝功能大体上是相同的。

图片,视频以及音乐都有各自的菜单,有小软件可以收到三个地方的天气情况。媒体源需要手动添加,可以用插件管理器安装插件,有很多插件可供选择。

XBMC/Raspbmc最好的地方是使用简单,而且界面清爽,视觉效果也不错。

更多Raspbmc的使用说明,请前往XBMC wiki。

改进Raspbmc

在树莓派上搭建这种媒体中心是相对简单的事情,不用再去进一步折腾,就可以连接一个媒体,享受你的(不那么繁重的)劳动成果。

但是这个系统并不完美,它不支持某些文件的编码格式。MPEG-2和VC-1的解码器必须花钱买。幸运的是这些解码器相对来说不贵,可以在树莓派的网站找到。

就算不去做这些改进,你的树莓派也已经是一个便携式家庭影院了。

甲骨文为树莓派版(ARM)Java提供支持

Raspberry Pi 吸引了软硬件巨头的目光,现在Oracle官方也为了支持这样一个先锋设备,投入了他们的开发力量。

Oracle官方的Oracle Java 7 JDK (硬件浮点)终于被加入了Raspbian的官方软件源,并将随着以后的Raspbian镜像直接提供,即刷即用。

这弥补了树莓派长期以来,需要通过Soft-float Debian这个系统,才能以低性能支持Java的一个旷日持久的大缺憾。

(不知道有没有人记得,树莓派官网的页面中,曾长期有这样一个系统,并且这个系统的描述中特别注明了Oracle JVM字样?)

同样,Oracle的Java实现,比开源替代项目OpenJDK有性能上的明显优势。(https://blogs.oracle.com/jtc/entry/comparing_jvms_on_arm_linux)

目前的Raspbian不自带,用以下命令手动安装:

sudo apt-get update && sudo apt-get install oracle-java7-jdk

当然,对于以后自带Java的Raspbian镜像,应该也可以逆向此命令删除之。

https://blogs.oracle.com/jtc/entry/a_raspberry_pi_javafx_electronic

https://blogs.oracle.com/jtc/entry/raspberry_pi_and_java_se

via