树莓派单双休闹钟

终于有单双休的闹钟了,关键是我要关闹钟的话,得用手机ssh连上树莓派把进程结束掉,打完命令我就真醒了,哈哈。脚本如下:

用树莓派DIY的一台PiPad平板电脑

树莓派不仅可以让爱折腾的人们创造出各种乐趣,还能够激发不少人闲的蛋痛的创造力——Castor就是其中一员。他在Makezine上写到:“几乎每一天,都有制造商会隆重推出一款全新的平板电脑。他们都说自己的产品更轻、更薄、更快了,但是(在我眼中)它们看起来 都是一个样,能够做的事情也都差不多。于是我打算做点不一样的东西——倒腾一台基于Raspberry Pi的平板电脑”。

“这台树莓派平板电脑不仅集所有实用功能于一身,还要足够便携、并且基于Linux”。

当然,对于Castor来说,树莓派平板(PiPad)所面临的最大问题,就是在拿出来用的时候,不至于吓坏TSA(美国运输安全管理局)的伙计们。

因此,Castor最终还是选用了桦木胶合板和碳纤维材料作为PiPad的基础框架。然后剩下的,就是找到合适的10.1英寸触摸屏(最好与Raspberry Pi一样都是工作于5V电压的)。

合体后的PiPad还塞进了一块10000mAh的电池,续航时间能够达到6小时,并且可以通过一个手机充电器进行充电。最终,整个项目一共耗费了制作者350美元的成本。

不过,用350美元都能够直接买一台现成的平板了,为何Castor还要自己折腾一台呢?对此,Castor解释到:”尽管我可以花更少的钱就买到iPad或Android平板,但那又能有什么乐趣呢?”(技术帝的世界,一般人不会懂。)

对比之前本博客介绍的2个DIY平板的案例:

树莓秀:用树莓派DIY平板电脑[5P]

Oracle推出基于Raspberry Pi tablet的DIY方案DukePad

本文步骤更详尽。

使用Markdown On Raspberry Pi 写博客

由于之前安装的lnmp环境跑php博客简直就是渣渣的水平

所以在网上参考了众多静博客,其中都有

Jekyll-Bootstrap

Gor

ruhoh

最后偶然找到了纯js的博客,直接调用md显示页面的源码,UI也很赞!

多多de棉花糖

下面说一下怎么在树莓派上搭建

1 – Create a New Repository

Go to your https://github.com and create a new repository named koy1619.github.com

注意koy1619为我的github的ID

2 – Install 多多de棉花糖

$ git clone https://github.com/hugcoday/hugcoday.github.com.git koy1619.github.com $ cd koy1619.github.com $ git remote set-url origin git@github.com:koy1619/koy1619.github.com.git $ git push origin master

3 – 其中还需要注意需要在 https://github.com/settings/emails 设置一个认证邮箱,不然会报404

4 – 根据README.md方法,用Markdown新建一篇文章,

Markdown编辑使用MarkdownPad这款软件,下载地址

由于MarkdownPad不是一个轻量级编辑器,而且还需要安装.NET~~

这里推荐一个很好用的Markdown在线编辑器 mahua

在编辑器写完文章之后,粘贴到2012-12-12-hello-world.md

cd /home/pi/koy1619.github.com/post/

vi 2012-12-12-hello-world.md

根据README.md方法,配置index.json

5 – 编写更新github脚本 upload.sh

cd /home/pi/koy1619.github.com/ git init git add -A git commit -m “add new blog” . git remote set-url origin git@github.com:koy1619/koy1619.github.com.git git push -u origin master

sudo chmod 777 upload.sh

sudo ./upload.sh

6 – 等待10分钟,就可以通过http://koy1619.github.com访问啦

7 – mysql和php-fpm可以停掉了,设置nginx域名和虚拟主机指向/home/pi/koy1619.github.com/ 重启nginx即可通过域名访问

附:关于git在树莓派的安装和使用参见github安装使用

via http://rpi.linux48.com/Markdown-on-rpi.html

NVIDIA发布移动超级计算机“Jetson TK1”性能超树莓派

据说,在分布式计算飞速发展的当下改进超级计算机已经没有意义,比如 HTC 的Power to Give计划就能让你的手机获得等同于超级计算机的运算能力。即便如此,将超级计算机小型化的尝试还是极具价值的,毕竟在很多场景下我们不能保证设备与云的连通。

据Engadget报道,昨天NVIDIA CEO黄仁勋在该公司的 GPU 技术大会上公布了一款微型版的超级电脑“Jetson TK1”。这块板子与 Arduino 和树莓派相似,但远比后两者强大,可以进行每秒 326 千兆的浮点运算。Jetson TK1 使用了 NVIDIA 最新发布的 Tegra K1 处理器,其架构与位于美国橡树岭国家实验室的超级计算机“Titan”相同,完全能够运行任何 Titan 可以运行的东西——当然速度更慢而已。

Jetson TK1 开发工具包为开发者提供了创建特定系统和应用所需的要素,包括全套基于 NVIDIA CUDA 架构的 C/C++ 工具。其使用场景可以是机器人、自动汽车、计算机视觉和图像处理等等。

现在开发者可以将一些超级计算机的功能在低功耗设备上实现,代价只有 192 美元。

树莓派之间的串口通信总结

树莓派的串口原来已被占用,配置释放之后才能使用它来进行串口通信。

配置串口

配置方法:

首先将 /boot/cmdline.txt 里面的

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

.改成

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

这样移除所有与ttyAMA0之间的关联

之后进入文件 /etc/inittab

注释掉最后一句

#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

此时,重启一遍则配置好了

安装 minicom

之后需要安装串口通信的调试工具 minicom

sudo apt-get install minicom

安装好之后,进入软件并配置。

sudo minicom -s

选择A 配置串口为 ttyAMA0 //也可以顺便配置波特率 校验位等等

之后可以保存下来 save as df1 以后则不用继续配置

之后Esc进入minicom提供的串口调试界面。

当硬件连接好之后 //两个派共地,TX、RX反接。

则你在minicom输入的信息会立即出现在另一个派的minicom窗口中。

使用 minicom

启动 minicom

minicom -b 9600 -o -D /dev/ttyAMA0

其中 -b 代表波特率,-D 代表端口。

minicom 发送内容

直接在控制台中输入内容即可,如果minicom打开了回显可在控制台中观察到输出内容,如果回显关闭则控制台中没人任何反应,千万不要以为minicom没有正常工作。

minicom 回显控制

先Ctrl+A,再E。可翻转回显状态(原来回显打开则此事回显关闭)

minicom 回显关闭

先Ctrl+A,再Q。

解决树莓派磁盘速度问题

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

树莓派的硬件随机数生成器

大部分计算机不能生成真正的随机数。他们使用生成很长伪随机数流的公式,但是真正的随机来自模拟元件的热噪音。Raspberry Pi有这样一个电子元件,它可以为安全传输提供种子数据(seed data)。直到最近才为这个电子元件提供了驱动。想要激活它(在Raspbian上):

确保你的系统是最新的

sudo apt-get update sudo apt-get -y dist-upgrade sudo rpi-update

and, if necessary, reboot.

安装模组:

sudo modprobe bcm2708-rng

想要确保它总是被加载,在/etc/modules中添加下述行(以root权限编辑):

bcm2708-rng

对于一些RNG相关工作,安装rng-tools:

sudo apt-get install rng-tools

现在/dev/hwrng设备就可用了,但是只能以root用户读取。

随机看起来是什么样子

随机数看起来相当枯燥。这是随机的RGB值:

sudo cat /dev/hwrng | rawtoppm -rgb 256 256 | pnmtopng > random$(date +%Y%m%d%H%M%S).png

(你需要安装netpbm工具包才能执行上述命令)

随机听起来是什么样子

两段简短的WAV噪音样本:

random20130603234239

random20130603234250

是的,听起来像静电干扰。这是使用rndsound.sh这个脚本做的。你需要安装sox才能执行它。

这不随机

如果听起来像静电干扰,即使有时候像静电干扰,那么它也有可能不是真正的随机噪音。伪随机数并不随机的一个声名狼藉的案例是RANDU,咋一看生成非常随机的结果,但是仔细研究发现结果是可预测的。

我写了(我认为是)一个C语言实现的RANDU:randu.c。虽然它可以生成听起来近似随机的音频数据(randu17.wav),但是如果你以图像的形式输出:

这些条纹泄露了真像;本来是不应该有规律的。测试随机数据是难的,然而——你确实需要大量的测试,即使其中某些测试对于真正的随机输出也可能会失败。谢天谢地,当你安装了rngtools,它包含rngtest,一个简单的随机数据检测器:

sudo cat /dev/hwrng | rngtest -c 1000 rngtest 2-unofficial-mt.14 Copyright (c) 2004 by Henrique de Moraes Holschuh This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. rngtest: starting FIPS tests… rngtest: bits received from input: 20000032 rngtest: FIPS 140-2 successes: 1000 rngtest: FIPS 140-2 failures: 0 rngtest: FIPS 140-2(2001-10-10) Monobit: 0 rngtest: FIPS 140-2(2001-10-10) Poker: 0 rngtest: FIPS 140-2(2001-10-10) Runs: 0 rngtest: FIPS 140-2(2001-10-10) Long run: 0 rngtest: FIPS 140-2(2001-10-10) Continuous run: 0 rngtest: input channel speed: (min=67.969; avg=921.967; max=1953125.000)Kibits/s rngtest: FIPS tests speed: (min=842.881; avg=3208.336; max=6407.890)Kibits/s rngtest: Program run time: 27658884 microseconds

很幸运对于这次运行没有测试失败;有时会有一些失败。但是对于RANDU,情况就很糟糕了:

./randu 17 | rngtest -c 1000 rngtest 2-unofficial-mt.14 Copyright (c) 2004 by Henrique de Moraes Holschuh This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. rngtest: starting FIPS tests… rngtest: bits received from input: 20000032 rngtest: FIPS 140-2 successes: 0 rngtest: FIPS 140-2 failures: 1000 rngtest: FIPS 140-2(2001-10-10) Monobit: 730 rngtest: FIPS 140-2(2001-10-10) Poker: 1000 rngtest: FIPS 140-2(2001-10-10) Runs: 289 rngtest: FIPS 140-2(2001-10-10) Long run: 0 rngtest: FIPS 140-2(2001-10-10) Continuous run: 0 rngtest: input channel speed: (min=45.630; avg=14255.221; max=19073.486)Mibits/s rngtest: FIPS tests speed: (min=23.694; avg=154.238; max=176.606)Mibits/s rngtest: Program run time: 141071 microseconds

看到了么?好多失败。它一点儿都不随机。如果你真的想要测试随机性,可以采用dieharder测试。虽然它需要执行很长时间。

用树莓派打造无线路由器

树莓派可以折腾的方法很多,我将会吧自己的折腾经验与大家分享。

作为无线路由器,需要提供dhcp的功能和无线ap的能力,我们分别通过isc-dhcp-server和hostapd这两个软件来实现,网卡间转发直接通过iptables定义nat规则来实现。

安装dhcp服务和ap热点服务

apt-get install isc-dhcp-server apt-get install hostapd

修改/etc/network/interfaces

在/etc/dhcp/dhcpd.conf添加

修改/etc/hostapd/hostapd.conf

打开内核的网卡转发能力,将/etc/sysctl.conf的

net.ipv4.ip_forward=1

的注释去掉。

修改iptables的nat规则

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

将规则添加成为自动启动方式

iptables-save > /root/nat.rule

新建/etc/network/if-pre-up.d/iptables

#!/bin/bash /sbin/iptables-restore < /root/nat.rule 或者直接在文件里写入规则语句 如果你的hostapd没有办法正常工作,应该是hostapd不支持你的网卡芯片,下载:https://github.com/cnsworder/RTL8188-hostapd/archive/master.zip 在raspberrypi上直接编译就可以了(编译速度确实很慢的) cd hostapd make;make install 重新修改hostapd的配置文件就可以了。 看到了树梅派的热点

Oracle推出基于Raspberry Pi tablet的DIY方案DukePad

Oracle是软件业巨头,几乎很少涉及硬件。为了推广其Java Fx,Oracle推出一款DukePad方案,它基于Raspberry Pi 和Java Fx,只提供了一个基本能够运行的tablet方案,不过它最大的优势就是一切都是可以定制的。

尽管和目前价格更加低廉的Android平板比起来,它确实有些不堪,但凭借风靡一时的树莓派和其软件实力,加上开源的东风,或许会引起平板DIY的流行。

延长树莓派上SD卡的使用寿命

最近我写了一篇为何我认为树梅派是最好的小型服务器的文章。其中提到了一个问题是SD卡存储。据说SD卡的写入次数是有限的,那么这是否意味着用树莓派当作服务器会存在一些问题呢?也许吧,目前只是个别文章报告了SD卡会报废,但并没有完全的定论。于是我开始寻找一些方法把SD卡的写入次数降到最低,理论上有助于延长它的使用寿命。

在一个SD卡上运行GNU/Linux的最佳实践

一张容量更大的卡 假设写操作在卡上的各个地方都有可能进行,这样越大的卡在同一区域多次书写的概率越小。对于大多数的树梅派GNU/Linux发行版来说,一张4GB的卡够用了,但8GB或者16GB从这个角度来看更合适。让我们把4GB提高到8GB,那么在同一区域进行写操作的概率会减少一半。 坚持选个好牌子 已经有许多文章都提到要坚持选择顶级品牌的SD卡。我没有整理出一份品牌列表也没有特别支持哪个品牌,但幸运的是已经有很多文章显示了顶级品牌和它们的报废率。 调整GNU/Linux写入到内存而不是SD卡上 这使用了一个叫“tmpfs”的功能,它是GNU/Linux提供的一个非常酷的玩意。Tmpfs能够像写入一个正常的文件系统一样让写操作写入内存中。它快捷,高效并且易于使用。下面会详细介绍。 SD卡设置为只读模式 这实际上把GNU/Linux变成了一个只读模式,类似于你从Live CD启动的GNU/Linux。这样阻止了任何的写操作从理论上来讲延长了SD卡的寿命。但这也有许多缺陷。首先,你得在配置上花点功夫,这已经超出了本文的范围。其次,所有的改动会在系统重启后消失因为它们没有写入SD卡里。对于我来说,GNU/Linux运行在只读模式实在是要命所以我不推荐这么极端的做法。

使用Tmpfs

如我前面所说,tmpfs会写入到内存中而不是本地磁盘(树梅派上实际是SD卡)。使用它非常简单。你要做的只是增加一个到/etc/fstab文件的入口(挂载你想写入到内存的文件夹到内存里)并且重启(这样每次服务开始写文件之前都会把这些文件夹先挂载到内存里)。

剩下的事情系统内核会替你搞定,把写操作写入到内存里的虚拟文件系统。这还有个巧妙之处,系统内核只会使用写操作所需数量的内存而不是整个挂载的大小。让我们举个例子,我想要把下面这一行加入到/etc/fstab文件中:

tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0

系统内核将会把/var/log挂载到内存中,然而在文件真正被写入到/var/log之前不会使用任何内存。当文件被写入到/var/log时,系统内核将会把它保存在内存里并且只占用用于保存文件的内存空间。当文件从/var/log中删除时,相对应的内存空间将被释放。

这意味着它只占用用于保存文件的内存空间,这是非常高效的。

在/etc/fstab中,你也可以为每个挂载指定内存配额。在上面的例子里,我们设置的是”size=100m”所以/var/log最多使用100m的内存空间。这是为了防止一个文件系统占用了全部内存以至于系统速度变慢甚至崩溃。通过运行”mount”命令,我们可以看到在上面的例子里/var/log被挂载为一个tmpfs在内存里的卷,大小是100MB。

Filesystem Size Used Avail Use% Mounted on tmpfs 100M 596K 100M 1% /var/log

在GNU/Linux里有许多可能会频繁写入到地方。下面是一个我初步整理的应该可以适用于大多数发行版的列表。

tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0 tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0 tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0 tmpfs /var/run tmpfs defaults,noatime,nosuid,mode=0755,size=2m 0 0 tmpfs /var/spool/mqueue tmpfs defaults,noatime,nosuid,mode=0700,gid=12,size=30m 0 0

你看我使用了”size=”参数来避免试图保存大量的数据时占用大量内存的问题。出于安全和性能方面的考虑,”noatime”和”nosuid”参数也推荐设置,”mode=”和”gid=”对应的权限和用户组要与原来存在于SD卡上的文件系统保持一致。

恩,tmpfs也可以进行权限控制。通常情况下,所有在/etc/fstab下挂载的文件和标准的Unix/Linux文件没什么区别。所以即使因为一些原因挂载失效了,写操作也会成功写入到SD卡上。

需要记住的一点是所有挂载到tmpfs的文件将会在重启时丢失。所以上面的例子里/var/log文件会在关机时或重启时清空。所以不要把tmpfs用于那些你需要在重启后依然存在的文件。

我正在积极的使用这些设置,到目前为止结果还不错。时间会告诉我们这对于树莓派和/或者SD卡的寿命延续有何作用,但是现在已经有很多文章说能够正常运行很久,因为我们知道GNU/Linux不像其他操作系统一样需要频繁重启。上面的方法希望可以延长使用寿命,特别是你打算一年365天,每周7×24小时的开着树莓派。

基于树莓派和Tor搭建匿名代理

本例使用安装了Debian的树莓派和Tor的SOCKS5代理端口实现。目标:让树莓派作为SOCKS 5代理端口的中转以实现匿名浏览上网。我不希望写一篇枯燥无比的教程,所以我觉得一般用户应该都能看得懂这篇教程。同时作为福利,我会教你们如何在iPhone或者iPad上使用Tor的socks代理端口实现匿名浏览,不需要越狱哦。有问题的话请随时留言告诉我!

简介

可能有时候你希望能匿名上网,或者你总是偏执的认为你被人盯上了。不管怎样,使用代理端口来实现匿名是一种不错的方法。如果你的需求仅仅是匿名浏览网页的话,那么可以下载Tor的完整包,其中内含了一个叫做Tor浏览器的精简版火狐。该浏览器支持Linux, OS X和Windows。也许你不想在设备上安装东西,或者想在iPhone或者安卓设备上也能匿名上网,那你就来对地方了。

Tor是怎么工作的?

Tor通过在多个服务器上转发你的连接来实现匿名。举个栗子,在浏览facebook的时候,服务器会在建立连接时记录你的IP。使用代理端口登陆的话,被记录下的就是代理服务器的IP了,而你的真实IP会隐藏起来。

经由Tor的连接会在到达目标服务器前经过3次中转,当目标服务器想回溯的话,需要经过3次不同的服务器中转。

Tor内置强大的socks 5代理端口,无需polipo或proxychains等外部工具便可完成安装设置。

在树莓派上安装Tor

本文默认你已经有了一部安装了最新版本debian的,能联网的树莓派。最新版本的debian代号为Wheezy(Version 7.1),在此之前的版本为Squeeze(Version 6.xxx)。

编译了一个树莓派版本的Tor,接下来就是一般的安装步骤:

$ sudo dpkg -i tor_*.deb

然后在 /etc/apt/sources.list 这个文件中加上这几行:(可以用nano编辑器,比vi要好用点)

Deb http://deb.torproject.org/torproject.org main deb-src http://deb.torproject.org/torproject.org main deb-src http://deb.torproject.org/torproject.org tor-experimental-0.2.5.x- main

可换成你系统发行版的代号名。

比如你用的是Wheezy的话,那就像这样:

Deb http://deb.torproject.org/torproject.org wheezy main Deb http://deb.torproject.org/torproject.org tor-experimental-0.2.5.x-wheezy main deb-src http://deb.torproject.org/torproject.org wheezy main deb-src http://deb.torproject.org/torproject.org tor-experimental-0.2.5.x-wheezy main

升级并安装依赖关系:

# apt-get update # sudo apt-get install build-essential fakeroot devscripts # sudo apt-get build-dep tor

然后从源代码开始构建Tor,编译的时候泡杯茶休息下吧:

$ mkdir ~/debian-packages; cd ~/debian-packages $ apt-get source tor $ cd tor-* $ debuild -rfakeroot -uc -us $ cd ..

如果出现了依赖关系缺失错误,试着安装以下的包依赖然后重试上一步:

$ sudo apt-get install quilt libssl-dev libevent-dev asciidoc docbook-xml docbook-xsl xmlto dh-apparmor

没错误的话就可以继续安装了:

$ sudo dpkg -i tor_*.deb

配置Tor

这步可能会有点麻烦,跟随教程的话应该问题不大,所以不用怕。用你喜欢的编辑器打开 /etc/tor/torrc。

把这行的注释去掉:

SocksPort 9050

加上这行:

SocksListenAddress 192.168.1.10:9050

此处的192.168.1.10是你的树莓派的内网IP地址,9050指定了sock需要监听的端口。接着编辑SocksPolicy指定哪些客户端可以连接到树莓派的端口,由于是从上往下读取的,所以在hosts的上方指定哪些可以连接,其他的则不能连接。假设你的地址在 192.168.1.1 – 192.168.1.254内,那么就加上:

SocksPolicy accept 192.168.1.0/24

有其他的VPN需要连接的话,也可以在这加上。一定记得,如果写在最后一行的话将被拒绝连接(这是默认设置)。Tor将会使你安装了它的设备作为一个转发节点。这样是没有安全问题的,同时你可以自行分配带宽给它。Tor是依赖大家贡献的带宽的。分配带宽太少的话体验就会不好。把这些去掉注释:

ORPort 9001 ORPort 443 NoListen ORPort 127.0.0.1:9090 NoAdvertise

设置好贡献给Tor的带宽参数即可。如果设置的太高的话可能会影响其他程序的正常带宽使用。自行斟酌吧,总带宽的20%左右是较为合适的。

谨记Tor是为了匿名访问的存在的,所以别过分追求速度。

RelayBandwidthRate 500 KB RelayBandwidthBurst 700 KB

这里参数的单位是千字节每秒,但一般运营商标注的是千比特每秒。比如你的是12M的网络的话,那么换算过来就是12000/8约等于1500KBps。上例中,则是贡献出500KB/s的带宽,瞬发不超过700KB/s的带宽出来。设置文件的其他部分你可以设置类似流量限制啦,或者只能在午夜连接啦等等参数,这个文件写的很清楚。

把下面的去掉注释:

ExitPolicy reject *:*

最后加上:

NSPort 53 DNSListenAddress 192.168.1.10 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit,.onion

搞定了!

ExitPolicy参数会拒绝他人访问你的节点,这样会安全一点。最后一段将会监听标准端口53和树莓派的内网IP地址的DNS请求,使你可以解析现实网络并不存在而Tor网络独有的 .exit 和 .onion 为后缀的域名。重启下服务(sudo /etc/init.d/tor),来试试吧。

测试

测试前首先需要将你的浏览器端口为刚刚我们弄好的。大部分浏览器基本都是到 设置=>高级=>网络=>连接设置。这是火狐的设置截图。

当然你也可以设置成系统全局代理,这样的话所有程序都能匿名访问网络了。点这里查看如何在Windows7, ubuntu和OS X上设置。其他系统的话谷歌下应该就能找到。

在SOCKS5的文本框里面填上你的树莓派的内网地址,并设置为9050端口。

最后访问https://check.torproject.org,应该能看到一个设置成功的界面。

福利:其他设备上实现代理上网

iPhone讨厌之处就在于只能设置HTTP代理而非SOCKS代理。这里我就不赘述了,仅仅给出基本步骤。

1> 安装类似LigHTTPd等类似的网页服务,然后在树莓派上放上一个测试页面。

sudo apt-get install lighttpd

2>如果都完成的话,创建一个端口自动设置文档。弄一个奇怪而秘密的名字,保存到 /var/www下。比如我的就是mysupersecretproxy.pac。

nano /var/www/mysupersecretproxy.pac

3>把下面的内容放到刚才的文档里。

function FindProxyForURL(url, host) { return “SOCKS 192.168.1.10:9050”; }

4>在你的iPhone中如下设置

设置>Wifi,点你网络旁边的箭头(iOS 7是小感叹号),滚到底端,在http代理那里选自动,然后填上刚才的PAC文件地址(如 http://192.168.1.10/mysupersecretproxy.pac)。

福利2:通过VPN匿名上网

如果你有一台VPN能使你通过外网连接你的树莓派的话,那你就可以随时随地实现匿名上网了。

这次同样不会详细描述每一步,只要你有VPN下面的步骤应该都不是问题。假设你的树莓派地址为192.168.1.10,你的VPN地址在192.168.2.x段内,编辑/etc/tor/torrc 加上这一行:

SocksPolicy accept 192.168.2.0/24

用 sudo /etc/init.d/tor restart 重启一下,就大功告成了。

现在你的VPN可以连接你的树莓派,并作为其转发节点了。

轻松搞定omxplayer操作界面安装

很多不熟悉linux的童鞋,对命令行式的播放器是头疼得不行,一直到处找寻图形播放界面。可惜的是树莓派目前能够硬解1080p的播放器就是omxplayer,而omxplayer本身就是命令行的播放器,所以今天给大家介绍一个用python写的omxplayer图形播放界面,虽然很简单,但对那些不习惯命令行的人来说,也算是个帮助吧!

废话不说,步骤:(首先必须安装omxplayer)

1.安装依赖软件

wget http://pexpect.sourceforge.net/pexpect-2.3.tar.gz tar xzf pexpect-2.3.tar.gz cd pexpect-2.3 sudo python ./setup.py install cd ..

2.安装图形软件

git clone https://github.com/KenT2/tboplayer.git cd tboplayer

3.运行软件

python tboplayer.py

用树莓派实现创意广告:地铁吹起你的秀发

广告就是要做得吸引人眼球,但这也分真创意和三俗,前者当然是更值得提倡了。护发用品品牌 Apolosophy 日前在瑞典首都斯德哥尔摩的地铁站里竖立起了广告牌,这个就叫真创意。

说到护发品广告的王道,那当然是女模特秀发飞扬的场景了。不过 Apolosophy 并不打算流俗,厂商在广告牌里安装了 Raspberry Pi 微型电脑,当列车停在站台前时,电脑就会侦测到,然后让女模特的头发扬起,好像是被地铁的风给吹起似的。

除了很有创意之外,这个广告的成本也并不贵。Raspberry Pi 电脑的价钱大致也就 100 美元左右,可谓两全其美。

广告的最大目的就是要让人记住这个产品,Apolosophy 就做到了这一点,而且还让人感到有趣。这个创意其实很简单,但收效最佳。

专为树莓派设计的Wolfson音频卡问世

对于热衷DIY的用户而言,Raspberry Pi开发板显然已经成为最热门的开发设备了,只要用户想得到的工程,Raspberry Pi几乎都能帮你实现。 网络销售平台Element 14今天宣布为Raspberry Pi推出一款全新的配件:Wolfson(欧胜微电子)音频卡。 这款音频卡专为采用P5接口(P5 pads)的Raspberry Pi设计,P5接口仅在Revision 2及更新版本的Raspberry Pi中出现。所以如果你购买的是较早版本的Raspberry Pi的话,恐怕需要先行升级了。

Wolfson音频卡基于来自智能手机、平板和其他移动设备的WM5102低功耗音频系统,具备了高性能的电话语音处理性能和高性能的音频CODEC,其中还包含了可编程的DSP(数字信号处理器)。这款声卡的其他特性方面还包括双立体声耳机驱动,立体声2W D级扬声器输出等。Wolfson音频卡的售价为33美元(约合人民币203元)。

让树莓派自动上报IP地址到邮箱

由于我使用树莓派的场景大多数是在没有显示器、只用terminal连接它的情况下,所以,它的IP地址有时会在重启之后变掉(DHCP的),导致我无法通过terminal连接上它。然后我又要很麻烦地登录路由器的管理界面里,去看它被分配到的新IP是什么,然后用terminal重连,太麻烦了,不是么?作为一个树莓派玩家,这种麻烦简直是无法接受的!

为了解决这个问题,我让Pi开机的时候,自动向我指定的Email发送一封邮件,告诉我它此次开机时的IP地址。

步骤: 开机时执行一个脚本,检测网络可用性→网络通畅后获取自己的IP地址→发送邮件到指定的邮箱。

下面一一道来。

『1』 开机启动项

开机执行一个脚本是怎么做到的?

只需要向 /etc/rc.local 文件中添加一句话,即可开机执行一个脚本了:

# send a mail to notify the IP address of Pi /root/data/source/send-ip-mail.sh >> /root/data/source/send-ip-mail.log 2>&1

『2』 上报IP地址的脚本实现

send-ip-mail.sh脚本的内容如下:

#!/bin/bash # check network availability while true do TIMEOUT=5 SITE_TO_CHECK=”www.126.com” RET_CODE=`curl -I -s –connect-timeout $TIMEOUT $SITE_TO_CHECK -w %{http_code} | tail -n1` if [ “x$RET_CODE” = “x200” ]; then echo “Network OK, will send mail…” break else echo “Network not ready, wait…” sleep 1s fi done # get the IP address of eth0, e.g. “192.168.16.5” ETH0_IP_ADDR=`ifconfig eth0 | sed -n “2,2p” | awk ‘{print substr($2,1)}’` # send the Email echo “Current time: `date ‘+%F %T’`. Enjoy it” | mutt -s “IP Address of Raspberry Pi: $ETH0_IP_ADDR” xxx@gmail.com

脚本很简单,分为3部分:第一部分检测网络可用性;第二部分取树莓派的eth0网卡的IP地址;第三部分发送邮件到指定的Email。

其中,第一部分是必须要有的,因为经过我试验,在本脚本执行时,树莓派的网络还没有初始化好,此时你直接发邮件是发不出去的。在这里我通过访问www.126.com来确定网络可用性。

第三部分需要你预先配置好mutt和msmtp。

『3』 安装配置mutt和msmtp

配置好mutt和msmtp后,就可以像上面一样,通过一句代码将邮件发送出去。

首先要在Pi上安装mutt和msmtp:

pacman -S msmtp pacman -S mutt

安装后,先配置msmtp。在你用户的根目录下创建文件 .msmtprc,内容如下:

account default host smtp.126.com from xxx@126.com auth plain user xxx@126.com password your_password logfile /var/log/msmtp.log

其中,smtp.126.com是我使用的邮箱的SMTP服务器地址,xxx@126.com是我用于发送邮件的邮箱,your_password是邮箱密码,你要根据你的情况修改。

然后配置mutt。在你用户的根目录下创建文件 .muttrc,内容如下:

set sendmail=”/usr/bin/msmtp” set use_from=yes set realname=”Alarm” set editor=”vim”

其中,realname是发件人的名字,接收到的邮件中会显示出来。

『4』 至此全部搞定,以后每次Pi开机的时候,就会“自报家门”,我们再也不愁找不到Pi啦!