视频详解树莓派如何外接Kindle显示器

哇哦,我很高兴地宣布本文在Hacker monthly上发表了!
去年7月底,我们暂别了位于Kootenays的小工作室开始了欧洲之旅。这趟旅行意在发掘有关新兴媒体、精神家园、艺术、设计以及开源项目等方面的事物。我决定在随身携带的行头里尽量将电脑方面的需求减至最低,所以我只带了一台Kindle,一部照相机,一部Android手机以及我的树莓派!
20131010215308787-0
尽管树莓派是一个美妙的项目,也是电子产品中的一项壮举,可是如果要作为主要生产环境中使用的计算机,它还是有一些局限性。我成功说服了自己将树莓派当做我旅行途中的主要计算机来用。

我的计划就是用Kindle当显示屏,再加上树莓派的处理器运算能力,连一个外接键盘就能用的很爽了。虽然那时想给Kindle接一个外接键盘似乎是不大可能的,我需要用树莓派在中间起一个‘hub’的作用。我开始折腾起来,KindleBerry Pi很快就要诞生了。

虽然我最后还是在旅途中买了一部笔记本电脑(囧…),但我之前所有的设想和折腾最后终成现实,而且工作的很不错。我创建了一个便携式的开发平台。至少,它已经在概念上证实了可以用在其他类似的项目中。那么下面就来看看如何构建你自己的KindleBerry Pi吧。

折腾开始
要完成这项hack任务,你需要准备这些东西:
1.一部Kindle 3
2.一台树莓派
3.2根micro USB转USB的连接线(一根用于电源,另一根连接Kindle和树莓派)
4.一套键盘,连接到树莓派上
5.可选部件:一个Kindle支架(可以拿旧的磁带盒替代)
6.可选部件:一个USB集线器。因为当组装完成后KindleBerry Pi的USB端口都被占用了
20131010215308766-0

Hacking Kindle
免责声明:这么做可能会使你的Kindle变砖,下面这些只是提示,我本人不会对你们的Kindle负责,也不会对你们的人生负任何责任……

第一步相当简单,将Kindle连接到树莓派上就好。将Kindle越狱,安装一个终端模拟器程序,比如这个就可以,然后安装UsbNetwork。确保开启了usbNetwork,通过USB连接设备,然后快速配置一下ifconfig usb0 192.168.2.1,搞定!现在我可以登录到树莓派上了,使用Kindle的显示屏,但可惜的是现在还只能使用Kindle的键盘,局限性较大。

现在,主要的挑战就是用连接到树莓派上的外接键盘来替代Kindle自带的键盘。下面就是gnu screen大显神威的时候了!Screen是一个终端多路复用器,如果你不知道终端是什么,好吧,那我就不太懂为什么你要看这篇文章了。我们可以说“Screen就是打了激素的终端”。关于Screen,其中一个非常棒的功能就是你可以在同一个‘屏幕会话’中实现多用户的功能。比如说,你想监视通过ssh连接到你的计算机的用户在干些甚么,或者如果你想在终端环境下录制屏幕录像。无论如何,我不确定为什么会有一个多用户模式,但正是这种能力使得KindleBerry Pi成为了可能。

那么,这里的魔法就是:要使用外接到树莓派上的键盘,你要先用Kindle登录到树莓派上,然后共享相同的“屏幕会话”,这样你就可以用外接到树莓派上的键盘了。你还是需要用Kindle上的键盘来创建首个连接,一旦连接上之后,你就可以使用外接的键盘了。

尽管gnu screen拯救了世界,要自动化这整个过程那还需要更多的步骤才能完成。

在树莓派上设置USB网络
首先,我们需要在连接到Kindle时可以使用UsbNetworking服务。在Kindle中开启usbNetworking时,会给它的USB端口分配一个IP 192.168.2.2。然后,我们需要给树莓派的USB端口分配IP 192.168.2.1,而这一步必须要能够自动完成。要做到这一点,第一步是为你的/etc/network/interfaces文件添加如下的内容:
20131010215308642

自动登录到树莓派
现在,我们需要树莓派完成如下功能:
1.确保用户能自动登录
2.在树莓派启动期间开启一个支持多用户的screen会话
树莓派启动时登录的用户和登录到Kindle上的用户是相同的。

关于如何在启动期间自动登录,在基于debian的系统上(树莓派的主流系统),你需要用任意一款文本编辑器打开/etc/inittab文件:
20131010215308553
然后将这一行内容注释掉:
20131010215308901
接着添加这样一行内容:
20131010215308715
我的代码美化工具添加了一些“#038;”这样的代码,你可以忽略掉
注:有些读者表示,用下面这行内容替换掉上面的代码才能正常工作

20131010215308715
这样应该就能完成了,现在我们要确保当树莓派启动时,以及当你从Kindle登录时,screen会话能自动启动。

Bashrc脚本
现在我们要确保自动登录上的用户会开启一个screen会话,但是同时我们也要保证当你用Kindle登录时,不会开启另一个screen会话,而是加入到那个已经开启的screen会话中即可。

根据你的系统环境,得到的结果可能会有所不同。所以,需要对代码做一些实验。大部分代码都在.bash_profile文件中。也许还有许多其他方式来完成,但这里是我总结出来的一种方案。

下面就是我的.bash_profile文件:
20131010215308132
那么,一旦所有步骤都已完成,你应该就可以启动你的KindleBerry Pi了。一旦启动步骤完成,你就可以通过USB接口以UsbNetworking模式连接到Kindle,在树莓派上使用shell和ssh了。到这里你应该就可以使用外接到树莓派上的键盘了,而在Kindle上看到显示结果!基于某些原因,有时候我还需要摆弄一下screen会话,杀掉多余的会话进程然后连接到主会话上。

你也可以采用一些简单的无密码ssh身份验证密钥,为了节省时间也可以添加一些实用的脚本来简化这整个连接过程。一旦连接上了,你就可以开始使用树莓派的外接键盘了。这的确还有很大的改善空间,所以不用客气,如果你觉得有什么好的点子尽管提出来吧。

下面是个简短的视频,向大家展示一下刷新率:

https://v.youku.com/v_show/id_XNTkzNDk3MTQw.html