<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Soul Of Free Loop &#187; 树莓派</title>
	<atom:link href="https://zohead.com/archives/tag/raspberry-pi/feed" rel="self" type="application/rss+xml" />
	<link>https://zohead.com</link>
	<description>Uranus Zhou&#039;s Blog</description>
	<lastBuildDate>Sat, 19 Jul 2025 15:42:46 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.8</generator>
	<item>
		<title>树莓派上使用htpdate同步时间</title>
		<link>https://zohead.com/archives/htpdate-raspberry/</link>
		<comments>https://zohead.com/archives/htpdate-raspberry/#comments</comments>
		<pubDate>Mon, 13 Oct 2014 16:12:25 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[NTP]]></category>
		<category><![CDATA[ntpdate]]></category>
		<category><![CDATA[时间同步]]></category>
		<category><![CDATA[树莓派]]></category>

		<guid isPermaLink="false">http://zohead.com/?p=809</guid>
		<description><![CDATA[最近住处的网络由电信换为移动宽带之后，之前一直使用的 Raspberry Pi 树莓派板子上出现系统时间不正确的问题（显示为 1970 年 1 月 1 日），由于树莓派板子上没有 RTC 硬件和电池，因此树莓派上的系统时间重启是保存不了的。 之前设置的是每次开机自动使用 ntpdate 命令从 NTP 服务器上同步时间，但现在每次运行时都提示： 同时公司里电信网络环境下这个命令又是完全正常的，移动宽带环境下直接 ping 这个 NTP 服务器也是通的，因此估计就是移动宽带直接把 NTP 给封了。 在谴责移动的同时只能另想办法，还好网上已经有人想到这种应对 NTP 被防火墙封掉类似的需求了，开源 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>最近住处的网络由电信换为移动宽带之后，之前一直使用的 Raspberry Pi 树莓派板子上出现系统时间不正确的问题（显示为 1970 年 1 月 1 日），由于树莓派板子上没有 RTC 硬件和电池，因此树莓派上的系统时间重启是保存不了的。</p>
<p>之前设置的是每次开机自动使用 ntpdate 命令从 NTP 服务器上同步时间，但现在每次运行时都提示：</p>
<p><pre class="brush: bash; title: ; notranslate">
root@XBian:~# ntpdate ntp.sjtu.edu.cn
13 Oct 23:49:01 ntpdate[1484]: no server suitable for synchronization found
</pre>
</p>
<p><span id="more-809"></span></p>
<p>同时公司里电信网络环境下这个命令又是完全正常的，移动宽带环境下直接 ping 这个 NTP 服务器也是通的，因此估计就是移动宽带直接把 NTP 给封了。</p>
<p>在谴责移动的同时只能另想办法，还好网上已经有人想到这种应对 NTP 被防火墙封掉类似的需求了，开源的 htpdate 命令直接使用 HTTP 协议（这个是不可能封的了）来进行系统时间同步，项目主页在这里：</p>
<p><a href="https://github.com/iridium77/htpdate" target="_blank">https://github.com/iridium77/htpdate</a></p>
<p>htpdate 的原理也非常简单，直接解析 HTTP 协议头中的服务器时间信息，然后设置本地时间，我们来看百度返回的 HTTP 头：</p>
<p><pre class="brush: plain; title: ; notranslate">
HTTP/1.1 200 OK
Date Mon, 13 Oct 2014 16:05:18 GMT
Content-Type text/html
Transfer-Encoding chunked
Connection Keep-Alive
Cache-Control private
Expires Mon, 13 Oct 2014 16:05:18 GMT
Server BWS/1.1
BDPAGETYPE 2
BDQID 0x8b40c1f700000bd4
BDUSERID 13923551
Set-Cookie BDSVRTM=133; path=/
Set-Cookie BD_HOME=1; path=/
</pre>
</p>
<p>上面的 Date Mon, 13 Oct 2014 16:05:18 GMT 就是百度的 Web 服务器上的系统时间了。</p>
<p>htpdate 命令做时间同步会有 0.5 秒左右的误差（看看 HTTP 头就知道里面很多时间都是以秒为单位哈），对于我的树莓派来说就完全没有关系，如果对这个比较在意的话只能尽量用 NTP 时间同步了。</p>
<p>htpdate 使用上也很简单，简单编译安装之后把这条命令加到 Raspberry Pi Raspbian 系统的 /etc/rc.local 文件中（不加 -t 参数基本不能同步成功哦）：</p>
<p><strong>htpdate -t -s ntp.neu.edu.cn</strong></p>
<p>然后重启树莓派就可以正常同步系统时间了。</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/htpdate-raspberry/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Raspberry Pi上观看Sopcast视频</title>
		<link>https://zohead.com/archives/raspberry-pi-sopcast/</link>
		<comments>https://zohead.com/archives/raspberry-pi-sopcast/#comments</comments>
		<pubDate>Thu, 02 Jan 2014 07:58:03 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[XBMC]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[树莓派]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[Sopcast]]></category>
		<category><![CDATA[sp-sc-auth]]></category>
		<category><![CDATA[XSopcast]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[虚拟机]]></category>
		<category><![CDATA[视频]]></category>

		<guid isPermaLink="false">http://zohead.com/?p=652</guid>
		<description><![CDATA[本文同步自（最佳显示效果请点击）：https://zohead.com/archives/raspberry-pi-sopcast/ Sopcast 是一种国外比较受欢迎的 P2P 流媒体直播软件，可以运行在 Windows、Linux、Android 等平台，近日想在 Raspberry Pi 树莓派板子上看 Sopcast 直播视频看球赛，经过搜索之后终于找到一种曲线解决的办法。 目前树莓派上的 Android 还基本处于不能用的阶段，Raspberry Pi 由于是 ARM 架构的嵌入式板子，也无法运行 x86 版本的 Sopcast Linux 客户端程序，因此只能另想办法。 这里就要 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>本文同步自（最佳显示效果请点击）：<a href="https://zohead.com/archives/raspberry-pi-sopcast/" target="_blank">https://zohead.com/archives/raspberry-pi-sopcast/</a></p>
<p>Sopcast 是一种国外比较受欢迎的 P2P 流媒体直播软件，可以运行在 Windows、Linux、Android 等平台，近日想在 Raspberry Pi 树莓派板子上看 Sopcast 直播视频看球赛，经过搜索之后终于找到一种曲线解决的办法。</p>
<p>目前树莓派上的 Android 还基本处于不能用的阶段，Raspberry Pi 由于是 ARM 架构的嵌入式板子，也无法运行 x86 版本的 Sopcast Linux 客户端程序，因此只能另想办法。</p>
<p>这里就要用到 QEMU 这个著名的虚拟机的 user mode 用户模式了，而通常使用的虚拟机都是 system mode 系统模式。通过使用 QEMU 的用户模式，可以在当前的系统环境下直接模拟运行其它架构下的程序，因此想到在 Raspberry Pi 当前的 armhf 环境下使用 qemu-i386 在用户模式下运行 x86 架构下的 Sopcast Linux 客户端程序。</p>
<p>有关 QEMU 用户模式的介绍请参考这里：</p>
<p><a href="http://wiki.debian.org/QemuUserEmulation" target="_blank">http://wiki.debian.org/QemuUserEmulation</a></p>
<p>你如果有兴趣的话可以自己下载 QEMU 的源代码并在 Raspberry Pi 下编译，这里为了省事我就直接用网上已经编译好的了，可以从我共享的微云网盘里下载：</p>
<p><a href="http://share.weiyun.com/cfeea0d9b415d625309d1bb420a4150b" target="_blank">http://share.weiyun.com/cfeea0d9b415d625309d1bb420a4150b</a></p>
<p>解压拷贝到 Raspberry Pi 系统中，假设为 <strong>/home/sopcast</strong> 目录中，其中有 sp-sc-auth 这个 x86 系统下的 Sopcast Linux 客户端程序，然后在 /usr/bin 目录下产生一个名为 sp-sc-auth 的脚本文件，内容如下（路径请自行修改）：</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/sh
cd /home/sopcast
exec ./qemu-i386 lib/ld-linux.so.2 --library-path lib ./sp-sc-auth $@
</pre>
<p>此脚本中使用 exec 的目的是方便后面的 Xsopcast XBMC 插件在停止播放节目时可以正常结束掉 sp-sc-auth 进程（保持进程 PID 不变这样 XBMC 系统可以跟踪）。</p>
<p>然后在 Raspberry Pi 系统中运行 sp-sc-auth 命令测试是否可以正常连接 Sopcast 服务器并打开节目，这里以 CCTV-13 频道地址为例：</p>
<p><strong>sp-sc-auth sop://124.232.150.188:3912/9767 9000 9001</strong></p>
<p>稍微片刻，如果连接正常的话就会不断产生数据输出。</p>
<p>下面就是使用的问题了，你如果想在 Raspberry Pi 的 X 界面下使用的话，可以安装 Linux 下的 Sopcast Player 软件来播放，这是一个 X 环境下的 Sopcast 的前端 GUI 界面：</p>
<p><a href="http://code.google.com/p/sopcast-player/" target="_blank">http://code.google.com/p/sopcast-player/</a></p>
<p>如果你是和我一样用的 XBian 之类的 XBMC 多媒体系统，那可以直接安装 XSopcast 这一 XBMC 插件，让这个插件自动来运行 sp-sc-auth 客户端程序，有关此插件的介绍请参考这里：</p>
<p><a href="http://forum.xbmc.org/showthread.php?tid=129996" target="_blank">http://forum.xbmc.org/showthread.php?tid=129996</a></p>
<p>安装好此插件之后，首先安装上面的步骤将 <strong>sp-sc-auth</strong> 脚本放到 /usr/bin 目录下，然后再进入 XBMC 系统的 视频 - 扩展插件 - XSopcast，就可以看到 SopCast 节目列表了，点击一个节目就可以观看了。如果没有做 sp-sc-auth 脚本操作，第一次启动 XSopCast 插件的时候，插件会自动从网络下载 sp-sc-auth 程序，但下载的 Linux 客户端程序是 x86 版本不能运行的。</p>
<p>细心的朋友如果在播放的时候在 Raspberry Pi Linux 后台运行 ps ax 命令就可以看到 qemu-i386 启动的 sp-sc-auth 进程了，停止播放直播视频时此进程就会自动被结束掉。</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/raspberry-pi-sopcast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>framebuffer VNC客户端 fbvnc-v1.0.2</title>
		<link>https://zohead.com/archives/fbvnc-v1-0-2/</link>
		<comments>https://zohead.com/archives/fbvnc-v1-0-2/#comments</comments>
		<pubDate>Tue, 20 Nov 2012 16:01:30 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[树莓派]]></category>
		<category><![CDATA[fbvnc]]></category>
		<category><![CDATA[framebuffer]]></category>
		<category><![CDATA[RealVNC]]></category>
		<category><![CDATA[RFB]]></category>
		<category><![CDATA[VNC]]></category>

		<guid isPermaLink="false">http://zohead.com/?p=344</guid>
		<description><![CDATA[本文同步自（最佳显示效果请点击）：https://zohead.com/archives/fbvnc-v1-0-2/ 由于在 Raspberry Pi 上习惯使用 framebuffer 进行普通使用的关系，在需要用 VNC 连接其它机器上，一下想到还是用 framebuffer 下的程序来实现。网上也有别人写的 framebuffer VNC 客户端程序，但普遍有些问题，有些则没有考虑在类似 Raspberry Pi 这种 ARM linux 环境下使用的情况，为此我基于已有的 fbvnc 项目重新弄了个 framebuffer 下 VNC 客户端的程序。 原有 fbvnc 项目地址：htt [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>本文同步自（最佳显示效果请点击）：<a href="https://zohead.com/archives/fbvnc-v1-0-2/" target="_blank">https://zohead.com/archives/fbvnc-v1-0-2/</a></p>
<p>由于在 Raspberry Pi 上习惯使用 framebuffer 进行普通使用的关系，在需要用 VNC 连接其它机器上，一下想到还是用 framebuffer 下的程序来实现。网上也有别人写的 framebuffer VNC 客户端程序，但普遍有些问题，有些则没有考虑在类似 Raspberry Pi 这种 ARM linux 环境下使用的情况，为此我基于已有的 fbvnc 项目重新弄了个 framebuffer 下 VNC 客户端的程序。</p>
<p>原有 fbvnc 项目地址：<a href="http://repo.or.cz/w/fbvnc.git" target="_blank">http://repo.or.cz/w/fbvnc.git</a></p>
<p>我的 fbvnc 新项目的 github 地址：<a href="https://github.com/zohead/fbvnc" target="_blank">https://github.com/zohead/fbvnc</a></p>
<p>现在已经更新到 1.0.2 版本，相对原始的 fbvnc 的主要改进为：</p>
<ul>
<li>解决在 16 位及 32 位 framebuffer 下显示不正确的问题；</li>
<li>增加帮助信息和参数选项（fbvnc -h 查看帮助信息）；</li>
<li>支持简单的 VNC 用户名密码验证（基于 RFB 协议的 3.3 版本）；</li>
<li>支持将 VNC 密码加密保存到密码文件；</li>
<li>支持以命令行参数的形式从密码文件中读取密码，方便自动运行方式；</li>
<li>连接远程 VNC 主机时增加远程 VNC 服务器信息输出，方便调试；</li>
<li>从 VNC 服务器获取版本信息前先发送客户端版本号（3.3 版本），解决某些非常严格的 VNC 服务器（例如：droid VNC server）出现拒绝访问的问题；</li>
<li>连接远程 VNC 主机时检查 VNC 版本是否确定以 “RFB ” 开头，如果版本不符合要求则出错退出；</li>
<li>解决在 ARM linux 系统（例如：Raspberry Pi）中鼠标无法正确移动的问题；</li>
<li>连接和断开 VNC 服务器时增加清屏和显示/隐藏光标的处理，防止终端界面紊乱。</li>
</ul>
<p>此程序已在 Windows/Linux/Android 等不同系统的 VNC 服务器环境下测试过，需要注意的是此 fbvnc 客户端只支持 RFB 3.3 版本的 VNC 服务器，如果使用的是比较新的 RealVNC 服务器（我测试的是最新的 RealVNC 4.6.3 版本），请在服务器设置中修改 VNC 协议版本为 3.3。</p>
<p>请自行到上面的 github 项目地址中检出代码进行编译安装，Raspberry Pi 系统则提供了已经编译好的版本 ^_^。</p>
<p>使用方式很简单，运行：</p>
<p><strong>fbvnc 192.168.1.xxx</strong></p>
<p>如果需要密码会提示你输入，完成后就可以看到远程 VNC 主机的画面，其中 192.168.1.xxx 为 VNC 服务器的主机地址，另外也可以增加参数指定 VNC 服务器的端口号（如果不是默认的 5900 端口），运行 <strong>fbvnc -h</strong> 可以查看帮助信息。</p>
<p>连接上 VNC 服务器之后的操作：</p>
<table style="background-color: #858585;" width="400" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr>
<td style="color: #ffffff; font-weight: bold;" width="120">快捷键</td>
<td style="color: #ffffff; font-weight: bold;">操作</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">Ctrl + 空格</td>
<td style="background-color: #e7e7e7;">暂停/恢复 图像更新绘制</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">Ctrl + Alt + C</td>
<td style="background-color: #e7e7e7;">断开连接并退出</td>
</tr>
</tbody>
</table>
<p>适用于 Raspberry Pi Debian Whezzy 系统的 fbvnc 程序下载链接：</p>
<p><a href="http://github.com/downloads/zohead/fbvnc/fbvnc-raspberry-pi-v1.0.2.7z" target="_blank">http://github.com/downloads/zohead/fbvnc/fbvnc-raspberry-pi-v1.0.2.7z</a></p>
<p>此程序纯粹为我基于其它项目做个人修改使用的，其中有任何问题请提出指正哦 ^_^</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/fbvnc-v1-0-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>发布PPTV XBMC视频插件v1.0</title>
		<link>https://zohead.com/archives/pptv-xbmc-plugin/</link>
		<comments>https://zohead.com/archives/pptv-xbmc-plugin/#comments</comments>
		<pubDate>Tue, 23 Oct 2012 15:05:36 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[XBMC]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[树莓派]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Beautiful Soup]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[m3u]]></category>
		<category><![CDATA[m3u8]]></category>
		<category><![CDATA[Parsedom]]></category>
		<category><![CDATA[PPTV]]></category>
		<category><![CDATA[扩展]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[视频]]></category>
		<category><![CDATA[跨平台]]></category>

		<guid isPermaLink="false">http://zohead.com/?p=325</guid>
		<description><![CDATA[本文同步自（最佳显示效果请点击）：https://zohead.com/archives/pptv-xbmc-plugin/ 最近认识一位朋友想要在 XBMC 多媒体中心软件（http://www.xbmc.org/）上观看 PPTV（http://www.pptv.com/） 视频网站上的视频，看到有 Windows 上的 XBMC PPTV 插件，但都没法在我的 Raspberry Pi 微型电脑板上（板子虽小也支持播放 1080p 高清视频哦）运行，于是想着自己写个能够跨平台的 PPTV 视频的 XBMC 插件，顺便也拿这个练练 Python，HOHO。 既然要跨平台，那首先考虑必须全部 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>本文同步自（最佳显示效果请点击）：<a href="https://zohead.com/archives/pptv-xbmc-plugin/" target="_blank">https://zohead.com/archives/pptv-xbmc-plugin/</a></p>
<p>最近认识一位朋友想要在 XBMC 多媒体中心软件（<a href="http://www.xbmc.org/" target="_blank">http://www.xbmc.org/</a>）上观看 PPTV（<a href="http://www.pptv.com/" target="_blank">http://www.pptv.com/</a>） 视频网站上的视频，看到有 Windows 上的 XBMC PPTV 插件，但都没法在我的 Raspberry Pi 微型电脑板上（板子虽小也支持播放 1080p 高清视频哦）运行，于是想着自己写个能够跨平台的 PPTV 视频的 XBMC 插件，顺便也拿这个练练 Python，HOHO。</p>
<p>既然要跨平台，那首先考虑必须全部用 XBMC 自带的 Python 脚本实现，不能调用 Windows 上 DLL 之类的鬼玩意，而且 Raspberry Pi 的 armhf 系统上也几乎不可能有 PPTV 的动态库可以用的。</p>
<p><strong>基本原理：</strong></p>
<p>通过 Python 插件发送 HTTP 请求时伪装成 iPad 客户端从 PPTV 网站上获取频道列表、视频列表、查询视频，并得到视频的实际 m3u 和 m3u8 地址。后来发现此方法得到的 m3u 和 m3u8 视频地址在 Raspberry Pi 系统中播放有问题，而且不太好直接解决。没办法，咱拿起 Wireshark 抓包神器，终于发现了 PPTV 未公开的 API 方法（其实 PPTV 一直从未公开，哈哈）得到网页 Flash 方式播放的视频地址。不过其中有个视频 key 的问题，没什么太好办法在 Python 中直接得到。最终想到通过 [<a href="http://www.flvcd.com/" target="_blank">硕鼠</a>] 网站解决，硕鼠网站得到的 PPTV 视频地址明显有问题，但有个可用之处就是他能通过 Flash 得到 PPTV 的视频 key，那就省点事从硕鼠得到视频 key，从 PPTV 未公开 API 构造视频链接和分段信息（用过 Python 自带的 json 库），最终得到真实的视频地址。</p>
<p>有关 XBMC 的插件编写详细请参考这些链接：</p>
<p><a href="http://wiki.xbmc.org/index.php?title=HOW-TO:Write_plugins_for_XBMC" target="_blank">http://wiki.xbmc.org/index.php?title=HOW-TO:Write_plugins_for_XBMC</a><br />
<a href="http://wiki.xbmc.org/index.php?title=Python_development" target="_blank">http://wiki.xbmc.org/index.php?title=Python_development</a><br />
<a href="http://wiki.xbmc.org/index.php?title=Add-on_development" target="_blank">http://wiki.xbmc.org/index.php?title=Add-on_development</a></p>
<p>其中遇到的一个问题就是 HTML 的解析问题，刚开始使用的是比较成熟好用的一个 Python 插件：<a href="http://www.crummy.com/software/BeautifulSoup/" target="_blank">Beautiful Soup</a>。这个插件的最大优势就是对不标准的 HTML 的容错性做的非常好，而且各种查找 HTML DOM 结构的函数也很强大。那就按照 Beautiful Soup 的要求解析 PPTV 的 HTML DOM，结果顺利取得，不久就发现一个问题，在 Raspberry Pi 这种比较弱的嵌入式板子上，下载 HTML 倒挺快，通过 Beautiful Soup 解析查找 HTML DOM 竟然要用去 15 秒左右的时间，这完全无法忍受，可以寻找替代品。</p>
<p>最终在 XBMC 的论坛里发现了比较好的 HTML parser 替代品：<a href="http://wiki.xbmc.org/index.php?title=Add-on:Parsedom_for_xbmc_plugins" target="_blank">Parsedom XBMC Add-on</a>。这是直接包含在 XBMC 库中的一个简单的 HTML DOM 解析扩展，import 之，下载 HTML 然后按照 class、按照 id 解析 HTML 的速度都在 1-2 秒之间，非常满意。后来使用中又发现 Parsedom 中存在的一些问题，查找原因并修正之后无伤大雅，想到干脆去掉 Parsedom 中一些我用不到的代码，直接集成到我的 py 文件中使用 ^_^。</p>
<p>略加奋战，终于在 XBMC 界面上能正常显示了，能显示频道列表了，也能进入频道显示视频列表，结果播放时发现悲剧了，iPad 的 m3u 被 XBMC 自己给分段解析然后尝试播放了，造成文件路径不对无法播放。后来使用手工修改路径的方式，尽管能播放，但造成的“效果”就是每 5-6 秒钟就需要切换一下视频，这对于 Raspberry Pi 这种暂时无法调用外部播放器的系统来说简直没法用。</p>
<p><strong>PPTV 视频 XBMC 插件 1.0 版本功能：</strong></p>
<ol>
<li>支持 www.pptv.com 上基本所有直播和点播视频；</li>
<li>支持在插件设置中选择视频质量（与实际 PPTV 视频片源对应），暂时支持：标清、高清、超清、蓝光、iPad 超清；</li>
<li>支持按影片类型、时间、更新时间、热度等条件选择过滤视频，并且所有过滤条件全部实时从 PPTV 网站获取，插件中不保存分类；</li>
<li>视频列表支持翻页处理（具体每个连续剧的集数列表没有翻页，默认全部列出来，主要感觉 1-40 集这种列表还弄分页没什么必要）；</li>
<li>不依赖任何 PPTV 的 Windows 程序和库，理论上可以在任何 XBMC 系统上使用</li>
</ol>
<p>由于 XBMC 不能原生支持中文输入等原因，暂时未支持视频搜索功能，后续将会改进。</p>
<p><strong>备注：</strong></p>
<p>本插件默认的视频质量为高清格式，需要超清或蓝光格式的在插件设置界面中进行修改即可。iPad 超清视频和直播视频分别是特殊的 m3u 和 m3u8 格式（指向 mp4 视频），需要XBMC 系统能正常播放 PPTV m3u 和 m3u8 视频（Windows 下的 XBMC 系统应该可以配置使用外部播放器来支持，不过偶懒得安装木有测试过）。</p>
<p><strong>声明：</strong></p>
<p>此插件只是从 PPTV 网站获取视频内容，所有视频版权均与此网站有关，本插件一概不负责。另外由于 PPTV 网站将来会有变化，我不保证能马上修复并解决可能出现的问题，因为说不定 PPTV 就完全把未公开的 API 给禁用了。</p>
<p>插件介绍的截图：</p>
<p><a href="http://zohead.com/wp-content/uploads/pptv-xbmc-intro.jpg" target="_blank"><img class="alignnone" title="PPTV视频XBMC插件-介绍" src="http://zohead.com/wp-content/uploads/pptv-xbmc-intro.jpg" alt="PPTV视频XBMC插件-介绍" width="683" height="384" /></a></p>
<p>插件设置界面：</p>
<p><a href="http://zohead.com/wp-content/uploads/pptv-xbmc-settings.jpg" target="_blank"><img class="alignnone" title="PPTV视频XBMC插件-设置" src="http://zohead.com/wp-content/uploads/pptv-xbmc-settings.jpg" alt="PPTV视频XBMC插件-设置" width="683" height="384" /></a></p>
<p>视频列表界面：</p>
<p><a href="http://zohead.com/wp-content/uploads/pptv-xbmc-video-list.jpg" target="_blank"><img class="alignnone" title="PPTV视频XBMC插件-视频列表" src="http://zohead.com/wp-content/uploads/pptv-xbmc-video-list.jpg" alt="PPTV视频XBMC插件-视频列表" width="683" height="384" /></a></p>
<p>具体视频播放界面（放的正是 《麦兜》 哈 ^_^）：</p>
<p><a href="http://zohead.com/wp-content/uploads/pptv-xbmc-video-play.jpg" target="_blank"><img class="alignnone" title="PPTV视频XBMC插件-播放界面" src="http://zohead.com/wp-content/uploads/pptv-xbmc-video-play.jpg" alt="PPTV视频XBMC插件-播放界面" width="683" height="384" /></a></p>
<p>本 XBMC 插件的 github 源代码库地址：</p>
<p><a href="https://github.com/zohead/pptv4xbmc" target="_blank">https://github.com/zohead/pptv4xbmc</a></p>
<p>下载 PPTV 视频 XBMC 插件：</p>
<p><a href="http://github.com/downloads/zohead/pptv4xbmc/plugin.video.pptv-v1.0.zip" target="_blank">http://github.com/downloads/zohead/pptv4xbmc/plugin.video.pptv-v1.0.zip</a></p>
<p>下载之后拷贝到 XBMC 系统，然后到 XBMC 系统设置中选择压缩包安装即可。我正在申请将此款插件加入 XBMC 的中文插件库，顺利的话安装此插件将会更加简单，并且在以后修改时可以直接在线更新。</p>
<p>各位在使用 PPTV 视频 XBMC 插件中如果发现任何问题，欢迎提出指正哦，另外有问题时最好能描述清楚，能附上看的是哪个视频或者哪个频道下面的话更好。 ^_^</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/pptv-xbmc-plugin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>有关Raspberry Pi 32位framebuffer的问题</title>
		<link>https://zohead.com/archives/raspberry-pi-32bit-fb-color/</link>
		<comments>https://zohead.com/archives/raspberry-pi-32bit-fb-color/#comments</comments>
		<pubDate>Wed, 17 Oct 2012 14:55:03 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[树莓派]]></category>
		<category><![CDATA[16位]]></category>
		<category><![CDATA[32位]]></category>
		<category><![CDATA[fbpdf]]></category>
		<category><![CDATA[framebuffer]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[XBMC]]></category>
		<category><![CDATA[颜色]]></category>

		<guid isPermaLink="false">http://zohead.com/?p=321</guid>
		<description><![CDATA[本文同步自（最佳显示效果请点击）：https://zohead.com/archives/raspberry-pi-32bit-fb-color/ 之前写过一篇 Raspberry Pi（以下简称 RPI） 下使用 fbpdf 即 framebuffer 模式下的 PDF 阅读器的文章（详情请点击 [这里]），文中提到需要修改 config.txt 开启 RPI 的 32 位 framebuffer 支持，但需要注意的是 RPI 的 32 位 framebuffer 并不是真正的 32 位的，其实只有 20120615 种颜色，而且实际上还需要忽略 alpha 位，这在使用 fbpdf 软件看 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>本文同步自（最佳显示效果请点击）：<a href="https://zohead.com/archives/raspberry-pi-32bit-fb-color/" target="_blank">https://zohead.com/archives/raspberry-pi-32bit-fb-color/</a></p>
<p>之前写过一篇 Raspberry Pi（以下简称 RPI） 下使用 fbpdf 即 framebuffer 模式下的 PDF 阅读器的文章（详情请点击 [<a href="https://zohead.com/archives/raspberry-pi-fbpdf/" target="_blank">这里</a>]），文中提到需要修改 config.txt 开启 RPI 的 32 位 framebuffer 支持，但需要注意的是 RPI 的 32 位 framebuffer 并不是真正的 32 位的，其实只有 20120615 种颜色，而且实际上还需要忽略 alpha 位，这在使用 fbpdf 软件看 PDF 时似乎没有太大的问题。</p>
<p>但今天用看图的软件看一张 32 位的桌面截图时，有点傻眼了，效果如下：</p>
<p><a href="http://zohead.com/wp-content/uploads/raspberry-pi-32bit-fb-color-error.jpg" target="_blank"><img class="alignnone" title="Raspberry Pi 32位framebuffer颜色错误" src="http://zohead.com/wp-content/uploads/raspberry-pi-32bit-fb-color-error.jpg" alt="Raspberry Pi 32位framebuffer颜色错误" width="492" height="276" /></a></p>
<p>大家也能看出来，其实这就是 Windows 7 默认的浅蓝色桌面壁纸图片，但实际的显示颜色完全不对了，而去掉 config.txt 中的 32 位 framebuffer 支持则没问题。</p>
<p>另外据 RPI 上 XBMC 媒体中心软件 Raspbmc 的开发人员介绍，32 位的 framebuffer 下 XBMC 软件也会存在问题，由此看来 RPI 默认将 framebuffer 的颜色深度设置为 16 位是有其道理的。</p>
<p>上面的 fbpdf 文章中的 fbpdf 程序已经更新为 16 位 framebuffer 的版本，如果对此有不同见解的欢迎提出指正哦。 ^_^</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/raspberry-pi-32bit-fb-color/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Raspberry Pi framebuffer PDF阅读器 - fbpdf</title>
		<link>https://zohead.com/archives/raspberry-pi-fbpdf/</link>
		<comments>https://zohead.com/archives/raspberry-pi-fbpdf/#comments</comments>
		<pubDate>Tue, 09 Oct 2012 17:24:07 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[树莓派]]></category>
		<category><![CDATA[fbpdf]]></category>
		<category><![CDATA[framebuffer]]></category>
		<category><![CDATA[mupdf]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[Raspbian]]></category>
		<category><![CDATA[Wheezy]]></category>
		<category><![CDATA[X11]]></category>
		<category><![CDATA[编译]]></category>

		<guid isPermaLink="false">http://zohead.com/?p=307</guid>
		<description><![CDATA[本文同步自（最佳显示效果请点击）：https://zohead.com/archives/raspberry-pi-fbpdf/ 最近拷了几个 PDF 电子书到 Raspberry Pi 树莓派小主板系统上，准备小充下电，结果在 Debian Wheezy Raspbian 的 Linux X11 系统下用以前用的 xpdf 软件看 PDF 的不爽：由于 Raspberry Pi 的 CPU 是 ARMv6 700MHz 的，性能一般，而且内存只有 256MB，所以跑 Linux X11 虽然没什么问题，但老感觉看大一点的 PDF 有点拖顿。 后来装了比较小巧的 mupdf 软件（Raspbi [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>本文同步自（最佳显示效果请点击）：<a href="https://zohead.com/archives/raspberry-pi-fbpdf/" target="_blank">https://zohead.com/archives/raspberry-pi-fbpdf/</a></p>
<p>最近拷了几个 PDF 电子书到 Raspberry Pi 树莓派小主板系统上，准备小充下电，结果在 Debian Wheezy Raspbian 的 Linux X11 系统下用以前用的 xpdf 软件看 PDF 的不爽：由于 Raspberry Pi 的 CPU 是 ARMv6 700MHz 的，性能一般，而且内存只有 256MB，所以跑 Linux X11 虽然没什么问题，但老感觉看大一点的 PDF 有点拖顿。</p>
<p>后来装了比较小巧的 mupdf 软件（Raspbian 系统的话直接用 <strong>apt-get install mupdf</strong> 命令就可以安装）之后在 X11 环境下看 PDF 电子书似乎情况好了很多，mupdf 功能很简单，甚至都没有独立的启动方式，直接双击 PDF 文件运行，或者通过命令行方式运行，主界面也没有工具栏之类的多余东西，操作全部键盘来完成，浏览 PDF 的速度也很快，对中文支持也很好。关于 mupdf 的介绍请参考其官网：<a href="http://www.mupdf.com/" target="_blank">http://www.mupdf.com/</a>。</p>
<p>后来想到平时用 Raspberry Pi 主要还是用命令行模式，我对 Linux X11 一向比较反感 ^_^，感觉是不是可以直接用 framebuffer 的形式看 PDF，结果还真找到一个 fbpdf 软件。</p>
<p>fbpdf 是基于 mupdf 的代码基础上实现的纯 framebuffer 下的 PDF 阅读器，和 mupdf 的功能基本相当，用这个可以省去 X11 和 GTK+ 等一堆臃肿的玩意，在 framebuffer 上看不仅速度快而且占用内存也小，并且可以充分利用 Raspberry Pi 上 framebuffer 的硬件加速。但不幸的是 Raspberry Pi 的 Raspbian 源中没有 fbpdf 包，看来只能自己编译了。</p>
<p>fbpdf 的 Git 版本库地址（可以直接用 git clone 命令弄下来哦）：</p>
<p><a href="http://repo.or.cz/w/fbpdf.git" target="_blank">http://repo.or.cz/w/fbpdf.git</a></p>
<p>首先到 mupdf 官网下载 mupdf 源代码和 mupdf-thirdparty 第三方程序的源代码：</p>
<p><a href="http://www.mupdf.com/download/mupdf-1.1-source.tar.gz" target="_blank">http://www.mupdf.com/download/mupdf-1.1-source.tar.gz</a><br />
<a href="http://www.mupdf.com/download/mupdf-thirdparty.zip" target="_blank">http://www.mupdf.com/download/mupdf-thirdparty.zip</a></p>
<p>需要说明的是我的编译环境是 armhf 的 Raspbian 默认开发环境。编译 mupdf 之前需要先安装 libfreetype6-dev、libjbig2dec0-dev、libjpeg8-dev 等开发软件包。mupdf 编译安装好之后会产生 fitz 库的头文件和静态库文件 libfitz.a，libfitz.a 在编译 fbpdf 时需要用到。</p>
<p>特别需要注意的是 mupdf 和 fbpdf 使用的是修改过的 openjpeg-1.5.0 版本的 openjpeg 库，不能直接使用 Raspbian 系统中的 libopenjpeg2 库，因此需要先编译 mupdf-thirdparty 中的 openjpeg-1.5.0 库，为了防止和 Raspbian 默认的 openjpeg 库冲突，建议将 openjpeg-1.5.0 库安装到自定义的目录（非 /usr/lib、/usr/local/lib 等系统默认使用的目录），然后编译 fbpdf 时直接使用 openjpeg-1.5.0 产生的静态库文件 libopenjpeg.a。</p>
<p>在 Raspberry Pi 编译 fbpdf 时会有一些小报错，需要修改下代码和 Makefile，编译 fbpdf 时由于要使用 libfitz.a 静态库，因此生成的 fbpdf 可执行文件也会比较大（我编译产生的将近 6MB）。</p>
<p>在 Raspbian 系统的默认 framebuffer 文本终端下运行 <strong>fbpdf /home/xxx.pdf</strong> （/home/xxx.pdf 为 PDF 文件的路径）就可以查看 PDF 文件了，你的 Raspberry Pi 在用 fbpdf 打开 PDF 时很可能会遇到这个错误直接退出：<span style="color: #0000ff;">fbpdf: fbval_t doesn't match fb depth</span>。</p>
<p><strong><span style="text-decoration: underline;">简单说明下这个错误的原因：</span></strong></p>
<p>fbpdf 程序中默认使用的 framebuffer 颜色数（BPP）是 32 位的，但 Raspberry Pi 默认的 framebuffer 只使用 16 位颜色（也就是下面的 framebuffer_depth 默认为 16），这样 fbpdf 程序运行时检查 framebuffer 参数发现不匹配就会报上面的错误，我尝试过跳过这项检查可以不报错，但 PDF 文件的显示渲染效果相当差。</p>
<p><strong><span style="text-decoration: underline;">解决方法也是必须要有的：</span></strong></p>
<p>注意：不建议使用此方法，建议直接使用最下面的 16 位 framebuffer 版本。</p>
<p><del>打开启动分区下的 config.txt 配置文件（路径为：<strong>/boot/config.txt</strong>），加入下面两行然后重启系统就可以解决：</del></p>
<p><del><em><span style="color: #008000;">framebuffer_depth=32</span></em><br />
<em><span style="color: #008000;">framebuffer_ignore_alpha=1</span></em></p>
<p></del></p>
<p><del>第一行 framebuffer_depth=32 指定 Raspberry Pi 的 framebuffer 使用 32 位颜色，第二行 framebuffer_ignore_alpha=1 是在使用 32 位颜色时才需要指定的，表示忽略 ARGB 颜色中的 alpha 通道。需要说明的是即使 config.txt 配置文件中指定了使用 32 位实际上也只有 20120615 种颜色的哦，不过对使用上没有影响的。</del></p>
<p>有关 Raspberry Pi 的 config.txt 配置文件的详细说明请参考这里：<a href="http://elinux.org/RPi_config.txt" target="_blank">http://elinux.org/RPi_config.txt</a>。</p>
<p>把上面的配置文件修改好重启之后，下面是用我编译好的 fbpdf 程序查看一个 5MB 的 PDF 电子书的截图，在 Raspberry Pi 这样的微型板上速度是相当之快的：</p>
<p><a href="http://zohead.com/wp-content/uploads/fbpdf-raspberry-pi.jpg"><img class="alignnone" title="fbpdf on Raspberry Pi" src="http://zohead.com/wp-content/uploads/fbpdf-raspberry-pi.jpg" alt="fbpdf on Raspberry Pi" width="546" height="307" /></a></p>
<p>从截图中可以看到图片和中文都是可以正常显示的哦。</p>
<p>framebuffer 模式下的 fbpdf 也是全部通过键盘操作，不过快捷键和 mupdf 是不同的，将常用的快捷键简单介绍如下（注意是 J、K 等单按键是区分大小写的哦），大多数快捷键都可以在前面加数字指定次数之类的（深得 VI 的精髓啊，哈哈）。具体请参考 fbpdf 代码中的 README 说明文档：</p>
<table style="background-color: #858585;" width="400" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr>
<td style="color: #ffffff; font-weight: bold;" width="120">快捷键</td>
<td style="color: #ffffff; font-weight: bold;">操作</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">Ctrl + F 或 J</td>
<td style="background-color: #e7e7e7;">下一页（5J 跳至下面第 5 页，6J 类推）</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">Ctrl + B 或 K</td>
<td style="background-color: #e7e7e7;">上一页</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">G</td>
<td style="background-color: #e7e7e7;">跳到具体某页，G 前面没有数字则跳到最后一页</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">z</td>
<td style="background-color: #e7e7e7;">按 10% 的倍数放大（15z 为放大到 150%）</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">i</td>
<td style="background-color: #e7e7e7;">显示 PDF 文件信息</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">q</td>
<td style="background-color: #e7e7e7;">退出 fbpdf</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">j</td>
<td style="background-color: #e7e7e7;">向下滚动（不自动翻页）</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">k</td>
<td style="background-color: #e7e7e7;">向上滚动（不自动翻页）</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">h</td>
<td style="background-color: #e7e7e7;">向左滚动（不自动翻页）</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">l</td>
<td style="background-color: #e7e7e7;">向右滚动（不自动翻页）</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">Ctrl + L</td>
<td style="background-color: #e7e7e7;">重新绘制</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">e</td>
<td style="background-color: #e7e7e7;">重新加载当前 PDF 文件</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">f</td>
<td style="background-color: #e7e7e7;">适合高度</td>
</tr>
<tr>
<td style="background-color: #e7e7e7;">w</td>
<td style="background-color: #e7e7e7;">适合宽度</td>
</tr>
</tbody>
</table>
<p>不想自己费劲去修改编译的朋友欢迎下载我已经编译好的 fbpdf 单文件程序：</p>
<p><del>http://miseal.googlecode.com/files/fbpdf-raspberry-pi-v20121009.7z</del></p>
<p><strong><span style="text-decoration: underline; color: #ff0000;">2012.10.17 更新：</span></strong></p>
<p>将近发现 Raspberry Pi 的 32 位 framebuffer 存在颜色显示不完全的问题，建议使用下面的使用 16 位 framebuffer 的 fbpdf 程序，运行也非常好（上面的不建议使用，config.txt 中也不需要改成 32 位了）：</p>
<p><a href="http://miseal.googlecode.com/files/fbpdf-raspberry-pi-v20121016.7z" target="_blank">http://miseal.googlecode.com/files/fbpdf-raspberry-pi-v20121016.7z</a></p>
<p>运行此 fbpdf 程序需要先安装 libfreetype6、libjbig2dec0、libjpeg8 等软件包（apt-get install 直接安装就行的）。</p>
<p>此 fbpdf 程序是我自己修改编译的，我编译时网上尚无其它人在 Raspberry Pi framebuffer 下使用过 fbpdf 软件，使用中有任何问题欢迎提出指正哦，玩的开心 ^_^</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/raspberry-pi-fbpdf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Raspberry Pi十六进制编辑器wxHexEditor</title>
		<link>https://zohead.com/archives/raspberry-pi-wxhexeditor/</link>
		<comments>https://zohead.com/archives/raspberry-pi-wxhexeditor/#comments</comments>
		<pubDate>Tue, 25 Sep 2012 16:07:34 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[工具]]></category>
		<category><![CDATA[树莓派]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wheezy]]></category>
		<category><![CDATA[wxHexEditor]]></category>
		<category><![CDATA[wxWidgets]]></category>
		<category><![CDATA[十六进制]]></category>
		<category><![CDATA[编辑器]]></category>

		<guid isPermaLink="false">http://zohead.com/?p=303</guid>
		<description><![CDATA[本文同步自（最佳显示效果请点击）：https://zohead.com/archives/raspberry-pi-wxhexeditor/ 最近在 Raspberry Pi 编程时需要对文件进行十六进制编辑，原来一直用的 vim 配合 xxd 来实现的，但用起来还是各种不方便，在切换到 X11 界面时，想着能不能直接装个图形的编辑器来方便操作。 简单搜索之后发现 Linux 环境下好用的十六进制编辑器确实太少了，原来用的 Ghex 软件由于必须要 GNOME 环境支持果断放弃，UltraEdit 软件已经移植到 Linux 下，但由于是闭源的只有 X86 下的版本。装了这个 Bless He [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>本文同步自（最佳显示效果请点击）：<a href="https://zohead.com/archives/raspberry-pi-wxhexeditor/" target="_blank">https://zohead.com/archives/raspberry-pi-wxhexeditor/</a></p>
<p>最近在 Raspberry Pi 编程时需要对文件进行十六进制编辑，原来一直用的 vim 配合 xxd 来实现的，但用起来还是各种不方便，在切换到 X11 界面时，想着能不能直接装个图形的编辑器来方便操作。</p>
<p>简单搜索之后发现 Linux 环境下好用的十六进制编辑器确实太少了，原来用的 Ghex 软件由于必须要 GNOME 环境支持果断放弃，UltraEdit 软件已经移植到 Linux 下，但由于是闭源的只有 X86 下的版本。装了这个 <a href="http://home.gna.org/bless/" target="_blank">Bless Hex Editor</a> 软件，是基于 Mono 实现的，但发现有一些非正常退出的 bug，还是弃用之。</p>
<p>最后发现的 wxHexEditor 看起来很不错，基于 wxWidgets 实现，因此实现了 Windows、Linux、Mac OS X 跨平台，而且速度也挺好，不会一下装载整个文件，这对编辑大文件非常有用，填补了 Linux 上缺少好的十六进制编辑器的空白，看看 Linux 上的运行截图：</p>
<p><a href="http://www.wxhexeditor.org/images/screenshot.png" target="_blank"><img class="alignnone" title="wxHexEditor截图" src="http://www.wxhexeditor.org/images/screenshot.png" alt="wxHexEditor截图" width="608" height="441" /></a></p>
<p>想直接在线安装 wxHexEditor 发现有问题了，Raspberry Pi 的默认 Debian Wheezy 发行版中没有这个软件，需要自己来编译了，首先到其官网下载源代码包：<a href="http://www.wxhexeditor.org/" target="_blank">http://www.wxhexeditor.org/</a>。</p>
<p>首先 Raspberry Pi 需要相对完整点的开发环境，gcc、make、g++、autoconf、libtool 等一些开发工具包都是需要安装的。准备好之后使用 <strong><span style="color: #0000ff;">apt-get install libwxgtk2.8-dev</span></strong> 命令先在 Raspberry Pi 系统中安装 wxWidgets 的最新版本的库文件（自动依赖并安装）和开发包。然后进入解压缩出来的 wxHexEditor 源代码目录，运行 <strong><span style="color: #0000ff;">make OPTFLAGS="-fopenmp"</span></strong> 命令就可以进行编译，粗略估计编译需耗时 15 分钟左右（有点汗...）。</p>
<p>不想自己的编译的童鞋欢迎使用我编译好的版本哦，解压缩把 wxHexEditor 文件拷到 /usr/bin 之类的路径即可，要运行此程序最少要安装 wxWidgets 运行库哦（apt-get install libwxgtk2.8-0），需要注意此文件只在 Raspberry Pi 的 Debian Wheezy hardhf 版本系统中可用：</p>
<p><a href="http://miseal.googlecode.com/files/wxHexEditor-v0.20.7z" target="_blank">http://miseal.googlecode.com/files/wxHexEditor-v0.20.7z</a></p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/raspberry-pi-wxhexeditor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>修改XBMC LiveStreams Python插件以支持中文</title>
		<link>https://zohead.com/archives/xbmc-livestreams-cn-patch/</link>
		<comments>https://zohead.com/archives/xbmc-livestreams-cn-patch/#comments</comments>
		<pubDate>Mon, 03 Sep 2012 18:49:07 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[树莓派]]></category>
		<category><![CDATA[HTPC]]></category>
		<category><![CDATA[LiveStreams]]></category>
		<category><![CDATA[Openelec]]></category>
		<category><![CDATA[Raspbmc]]></category>
		<category><![CDATA[XBian]]></category>
		<category><![CDATA[XBMC]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://zohead.com/?p=299</guid>
		<description><![CDATA[本文同步自（最佳显示效果请点击）：https://zohead.com/archives/xbmc-livestreams-cn-patch/ 最近在闲时捣鼓下 Raspberry Pi 微型电脑板上的开源 XBMC 应用准备看看 HTPC 媒体中心的效果，发现 Raspberry Pi 在安装了 XBian 系统之后可以比较好的实现 XBMC 的基本功能，虽然由于 Raspberry Pi 没有购买一些视频格式的软件解码授权而导致 WMV 或者 MMS 之类的格式无法播放，但对于常用的一些 H264 的高清视频已经足以应付，接上网线之后看高清在线视频点播和直播的效果都还可以。 有关 Rasp [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>本文同步自（最佳显示效果请点击）：<a href="https://zohead.com/archives/xbmc-livestreams-cn-patch/" target="_blank">https://zohead.com/archives/xbmc-livestreams-cn-patch/</a></p>
<p>最近在闲时捣鼓下 Raspberry Pi 微型电脑板上的开源 XBMC 应用准备看看 HTPC 媒体中心的效果，发现 Raspberry Pi 在安装了 XBian 系统之后可以比较好的实现 XBMC 的基本功能，虽然由于 Raspberry Pi 没有购买一些视频格式的软件解码授权而导致 WMV 或者 MMS 之类的格式无法播放，但对于常用的一些 H264 的高清视频已经足以应付，接上网线之后看高清在线视频点播和直播的效果都还可以。</p>
<p>有关 Raspberry Pi 请参考 [<a href="https://zohead.com/archives/raspberry-pi-start/" target="_blank">之前</a>] 的文章，有关 XBian 之一专门为 Raspberry Pi 优化的 XBMC 系统可以访问其官网：<a href="http://xbian.org/" target="_blank">http://xbian.org/</a>。</p>
<p>注：Raspberry Pi 上除了 XBian 之外，还有 <a href="http://www.raspbmc.com/" target="_blank">Raspbmc</a>、<a href="http://openelec.tv/" target="_blank">Openelec</a> 等其它合适的 XBMC 系统可供选择的。而且这些都是基于标准 XBMC 程序修改的，标准插件之类的基本可以通用。</p>
<p>前两天找到一个不错的在线电视直播的 XBMC 插件：LiveStreams，此插件可以由用户自己修改 XML 配置文件增加在线直播的地址，根据实际硬件配置不同，可支持 MMS、RTSP、RTMP 等各种不同的流媒体协议。有关 LiveStreams 的介绍和配置请参考这些链接（特别第二个链接中有详细的截图介绍）：</p>
<p><a href="http://forum.xbmc.org/showthread.php?tid=97116" target="_blank">http://forum.xbmc.org/showthread.php?tid=97116</a><br />
<a href="http://www.xbmchub.com/blog/2012/04/26/adding-custom-xml-files-to-the-live-streams-addon/" target="_blank">http://www.xbmchub.com/blog/2012/04/26/adding-custom-xml-files-to-the-live-streams-addon/</a></p>
<p>最新版本的 LiveStreams 插件可以到这里下载：<a href="http://code.google.com/p/divingmules-repo/" target="_blank">http://code.google.com/p/divingmules-repo/</a>。</p>
<p>在实际使用过程中发现由于 LiveStreams 由于是老外写的，不由自主的就碰到对中文的支持问题，如果添加的 XML 配置文件中节目名称或者节目目录名称包含中文，XBMC 系统中LiveStreams 插件将不能正常工作，直接会出现脚本错误。</p>
<p>简单看了下 LiveStreams 插件的代码，是用 Python 写的，凭着一些简单的 Python 基础，然后集合 Python 的 logging 模块来调试，终于发现 LiveStreams 插件对中文支持不佳的原因，作者在使用 BeautifulSoup（参考 [<a href="http://www.crummy.com/software/BeautifulSoup/" target="_blank">这里</a>]） 这一个非常知名的 HTML/XML 等解析的库时未考虑非英文环境下的问题，简单做了下修改之后，中文的直播节目和目录名称都可以正常显示了。</p>
<p>顺便再简单说明一下 LiveStreams XML 配置文件嵌套节目目录的方式，这是一个实例 XML 节目配置文件：</p>
<pre class="brush: xml; title: channels.xml; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?&gt;
&lt;channels&gt;
	&lt;channel&gt;
		&lt;name&gt;Channel 1&lt;/name&gt;
		&lt;thumbnail&gt;http://xxx/chn1.png&lt;/thumbnail&gt;
		&lt;items&gt;
			&lt;item&gt;
				&lt;title&gt;TV1&lt;/title&gt;
				&lt;link&gt;mms://xxx.xxx.xxx.xxx/cctv1&lt;/link&gt;
				&lt;thumbnail&gt;http://xxx/cctv1.jpg&lt;/thumbnail&gt;
			&lt;/item&gt;
			&lt;item&gt;
				&lt;title&gt;TV2&lt;/title&gt;
				&lt;link&gt;mms://xxx.xxx.xxx.xxx/cctv2&lt;/link&gt;
				&lt;thumbnail&gt;http://xxx/cctv2.jpg&lt;/thumbnail&gt;
			&lt;/item&gt;
		&lt;/items&gt;
	&lt;/channel&gt;

	&lt;channel&gt;
		&lt;name&gt;Channel 2&lt;/name&gt;
		&lt;thumbnail&gt;http://xxx/chn2.png&lt;/thumbnail&gt;
		&lt;subchannels&gt;
			&lt;subchannel&gt;
				&lt;name&gt;Sub 1&lt;/name&gt;
				&lt;thumbnail&gt;http://xxx/sub1.png&lt;/thumbnail&gt;
				&lt;subitems&gt;
					&lt;subitem&gt;
						&lt;title&gt;Sub TV1&lt;/title&gt;
						&lt;link&gt;mms://xxx.xxx.xxx.xxx/subtv1&lt;/link&gt;
						&lt;thumbnail&gt;http://xxx/subtv1.jpg&lt;/thumbnail&gt;
					&lt;/subitem&gt;
					&lt;subitem&gt;
						&lt;title&gt;Sub TV2&lt;/title&gt;
						&lt;link&gt;mms://xxx.xxx.xxx.xxx/subtv2&lt;/link&gt;
						&lt;thumbnail&gt;http://xxx/subtv2.jpg&lt;/thumbnail&gt;
					&lt;/subitem&gt;
				&lt;/subitems&gt;
			&lt;/subchannel&gt;
		&lt;/subchannels&gt;
	&lt;/channel&gt;
&lt;/channels&gt;
</pre>
<p>第一个节目目录 Channel 1 下面没有子目录，只有 TV1 和 TV2 这两个节目，因此 XML 层次是 <strong>channel/items/item</strong>。第二个节目目录 Channel 2 下有名为 Sub1 的子目录，Sub1 下又有 Sub TV1 和 Sub TV2 两个节目，这种的 XML 层次则是：<strong>channel/subchannels/subchannel/subitems/subitem</strong>。</p>
<p>需要注意的是 LiveStreams 的 XML 配置文件必须以 UTF-8 编码格式保存，否则非英文字符将无法正常显示。另外由于 XML 本身格式的原因，XML 内容中的这些字符需要转换（全部为纯英文字符，包括结束的分号）：</p>
<p><strong><span style="color: #ff0000;">&amp;</span></strong> 转换为 <strong><span style="color: #ff0000;">&amp;amp;</span></strong><br />
<strong><span style="color: #ff0000;">&lt;</span></strong> 转换为 <strong><span style="color: #ff0000;">&amp;lt;</span></strong><br />
<strong><span style="color: #ff0000;">&gt;</span></strong> 转换为 <strong><span style="color: #ff0000;">&amp;gt;</span></strong><br />
<strong><span style="color: #ff0000;">'</span></strong> 转换为 <strong><span style="color: #ff0000;">&amp;apos;</span></strong><br />
<strong><span style="color: #ff0000;">"</span></strong> 转换为 <strong><span style="color: #ff0000;">&amp;quot;</span></strong></p>
<p>最后附上我修改过的最新 LiveStreams 1.0.6 版本 XBMC 插件的下载地址：</p>
<p><a href="http://miseal.googlecode.com/files/plugin.video.live.streams-1.0.6.zip" target="_blank">http://miseal.googlecode.com/files/plugin.video.live.streams-1.0.6.zip</a></p>
<p>由于这插件只是随便修改的，有任何问题欢迎指正哦。 ^_^</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/xbmc-livestreams-cn-patch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Raspberry Pi初步上手</title>
		<link>https://zohead.com/archives/raspberry-pi-start/</link>
		<comments>https://zohead.com/archives/raspberry-pi-start/#comments</comments>
		<pubDate>Fri, 10 Aug 2012 18:03:04 +0000</pubDate>
		<dc:creator><![CDATA[Uranus Zhou]]></dc:creator>
				<category><![CDATA[树莓派]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[Broadcom]]></category>
		<category><![CDATA[HDMI]]></category>
		<category><![CDATA[Raspbian]]></category>
		<category><![CDATA[VGA]]></category>
		<category><![CDATA[电脑]]></category>
		<category><![CDATA[高清]]></category>

		<guid isPermaLink="false">http://zohead.com/?p=288</guid>
		<description><![CDATA[本文同步自（如浏览不正常请点击跳转）：https://zohead.com/archives/raspberry-pi-start/ 前段时间听到 Raspberry Pi 微型电脑板（中文名称：树莓派）出来的消息，这是一个只有信用卡大小的售价 35 美元的 ARM 板，运行 Linux 系统，支持高清输出和高清视频播放，适合做各种省电的小应用方案，国外现在研究这个的人也很多，不过当时都需要直接从英国订购，发货时间长而且还要扣掉有点“可观”的税费，故没有很快买。 有关 Raspberry Pi 的详细介绍参考这里： http://en.wikipedia.org/wiki/Raspberry_ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>本文同步自（如浏览不正常请点击跳转）：<a href="https://zohead.com/archives/raspberry-pi-start/" target="_blank">https://zohead.com/archives/raspberry-pi-start/</a></p>
<p>前段时间听到 Raspberry Pi 微型电脑板（中文名称：树莓派）出来的消息，这是一个只有信用卡大小的售价 35 美元的 ARM 板，运行 Linux 系统，支持高清输出和高清视频播放，适合做各种省电的小应用方案，国外现在研究这个的人也很多，不过当时都需要直接从英国订购，发货时间长而且还要扣掉有点“可观”的税费，故没有很快买。</p>
<p>有关 Raspberry Pi 的详细介绍参考这里：</p>
<p><a href="http://en.wikipedia.org/wiki/Raspberry_pi" target="_blank">http://en.wikipedia.org/wiki/Raspberry_pi</a></p>
<p>前两天看到 e络盟 网站上已经有了中国区的 Raspberry Pi 直接网上订购服务，在 e络盟 网站上注册账户并忍受其相当不人性化的支付和下订单方式之后，昨天终于收到寄过来的 Raspberry Pi B型板（售价 + 增值税 + 运费一共 300 天朝币多一点）。包装非常简单，只有裸板。</p>
<p><a href="http://zohead.com/wp-content/uploads/raspberry-pi-board.jpg" target="_blank"><img class="alignnone" title="Raspberry Pi 裸板" src="http://zohead.com/wp-content/uploads/raspberry-pi-board.jpg" alt="Raspberry Pi 裸板" width="514" height="279" /></a></p>
<p>e络盟 上的 Raspberry Pi 订购链接在此，有兴趣的朋友也可以买来折腾试试：<a href="http://cn.element14.com/raspberry-pi/raspbrry-pcba/sbc-raspberry-pi-model-b/dp/2081185" target="_blank">http://cn.element14.com/raspberry-pi/raspbrry-pcba/sbc-raspberry-pi-model-b/dp/2081185</a></p>
<p>从图上也可以看到 Raspberry Pi 算是麻雀虽小五脏俱全滴，板子中间有树莓派的 LOGO。整板使用 Broadcom BCM2835 SoC（集成 CPU、GPU、DSP、SDRAM），处理器为 ARM1176JZF-S 700 MHz，内存 256 MB，有 HDMI 输出（标准接口）、两个 USB 2.0 接口（支持 USB HUB）、一个 SD 卡插槽、一个百兆以太网卡、音频输出、GPIO 调试接口等，而且整个板子的功率只有 3.5W，可通过 MicroUSB 或者 GPIO 供电，一般的 5V 700mA 或以上的充电器就可以给 Raspberry Pi 供电。</p>
<p>由于 Raspberry Pi 只提供裸板，不提供其它一切配件，这些都要自己来弄了。我这没有支持 HDMI 或者 DVI 的高清显示器，只有老式 VGA，故先在网上淘了一个 HDMI 转 VGA 的转接头（需要注意的是 HDMI 转 DVI 再转 VGA 的方式是行不通的哦）。HDMI 转 VGA 是由数字信号转为模拟型号，必须使用数模转换芯片，因此这种转接头经常会有兼容性问题，购买时需要注意是否兼容。我买的是淘宝上的 鑫魔王 HDMI 转 VGA 线，并且特别买了支持音频输出的转接线（免广告之嫌，不给出链接 ^_^）。</p>
<p>Raspberry Pi 只支持从 SD 卡启动，不支持从 USB 启动，但可以启动好之后将 rootfs 放到 U盘上，为最好地兼容和优化考虑，建议使用 Raspberry Pi 官方网站上的 Raspbian “wheezy” 系统（点击 [<a href="http://www.raspberrypi.org/downloads" target="_blank">这里</a>] 进入下载），为此需要 SD 卡最小得有 2G。从官方网站下载系统后可以直接拷贝到 SD 卡中（dd 或直接对拷，不需要分区）。</p>
<p>由于我使用了 HDMI 转 VGA 装置，为了能正确完美的显示，需要先修改 SD 卡启动分区（FAT16 格式）中的 config.txt 配置文件：</p>
<p><em><span style="color: #008000;">hdmi_force_hotplug=1</span></em><br />
<em><span style="color: #008000;">hdmi_drive=2</span></em><br />
<em><span style="color: #008000;">hdmi_group=2</span></em><br />
<em><span style="color: #008000;">hdmi_mode=47</span></em><br />
<em><span style="color: #008000;">disable_overscan=1</span></em></p>
<p>hdmi_force_hotplug、hdmi_drive、hdmi_group 都是为了使 HDMI 转 VGA 能正常工作，hdmi_mode 设置显示输出的分辨率（47 为我的显示器用的 1440 x 900 的分辨率，具体请参考 Raspberry Pi 上的帮助），disable_overscan 则是为了去掉显示画面四周的黑色边框。</p>
<p>有关 Raspberry Pi 配置文件的介绍请参考这里：<a href="http://elinux.org/RPi_config.txt" target="_blank">http://elinux.org/RPi_config.txt</a></p>
<p>把 Raspberry Pi 的 HDMI 通过转接线接到 VGA 显示器，接上 USB 鼠标和键盘，插上网线，安装 SD 卡，然后供电（我实际使用的就是 5V 700mA 的手机充电器，完全没有压力 ^_^），正常的话就可以看到显示器上的启动输出画面咯：</p>
<p><a href="http://zohead.com/wp-content/uploads/raspberry-pi-boot.jpg" target="_blank"><img class="alignnone" title="Raspberry Pi 启动界面" src="http://zohead.com/wp-content/uploads/raspberry-pi-boot.jpg" alt="Raspberry Pi 启动界面" width="588" height="441" /></a></p>
<p>具体的接线方式见下图（比较凌乱，哈哈）：</p>
<p><a href="http://zohead.com/wp-content/uploads/raspberry-pi-cable.jpg" target="_blank"><img class="alignnone" title="Raspberry Pi 接线" src="http://zohead.com/wp-content/uploads/raspberry-pi-cable.jpg" alt="Raspberry Pi 接线" width="588" height="441" /></a></p>
<p>稍等片刻，就会出现终端的登录界面。</p>
<p>直接敲回车登录，默认就是 raspi-config 配置界面，建议先做基本的配置，特别是语言、时区、键盘布局之类的，这些比较重要，而且从 Raspberry Pi 官方下的系统里的配置全都是适合英国的配置，我分别将语言设置和时区为中文、键盘改为美式键盘。</p>
<p>Raspbian “wheezy” 系统是基于 Debian 系统修改的，默认使用的是 DHCP 方式获得 IP，如果没有获得 IP 请手工配置。系统中的 apt 源也已经默认设置为 Raspbian 网站上的源，直接运行 apt-get 命令就可以安装需要的软件包。</p>
<p>在开启图形界面前，建议先使用 apt-get 命令在线安装下面的这些软件包，这对中文显示和输出比较重要：</p>
<p><em><span style="color: #008000;">sudo apt-get install ttf-wqy-zenhei</span></em><br />
<em><span style="color: #008000;">sudo apt-get install ttf-wqy-microhei</span></em><br />
<em><span style="color: #008000;">sudo apt-get install fcitx</span></em></p>
<p>前两个是安装中文字体（不建议安装 simsun 字体），第三个安装中文输入法。</p>
<p>全部配置好之后就可以运行 startx 命令进入图形界面（图中即为 1440 x 900 的分辨率）：</p>
<p><a href="http://zohead.com/wp-content/uploads/raspberry-pi-desktop.jpg" target="_blank"><img class="alignnone" title="Raspberry Pi 桌面" src="http://zohead.com/wp-content/uploads/raspberry-pi-desktop.jpg" alt="Raspberry Pi 桌面" width="588" height="441" /></a></p>
<p>桌面中间又是大大的树莓派 LOGO。Raspbian “wheezy” 系统没有使用 GNOME 或者 KDE 之类的桌面环境，而是使用的 LXDE 轻量级桌面，这样也比较适合 Raspberry Pi 这种小的系统环境。</p>
<p>Raspbian “wheezy” 系统默认也自带了一些编程环境、网络浏览器之类的。下面是浏览中文网页的效果，看起来还是比较完美的（不支持 Flash 之类的就无所谓了 ^_^）：</p>
<p><a href="http://zohead.com/wp-content/uploads/raspberry-pi-network.jpg" target="_blank"><img class="alignnone" title="Raspberry Pi 网络浏览器" src="http://zohead.com/wp-content/uploads/raspberry-pi-network.jpg" alt="Raspberry Pi 网络浏览器" width="588" height="441" /></a></p>
<p>从初步上手使用的效果来看，Raspberry Pi 还是比较令人满意，高清视频播放还没机会测试。下面有机会再来继续折腾了，网上用 Raspberry Pi 做的比较多的是下载机之类的，还有另类的牛人加上了温度传感器之类的东东。</p>
<p>PS：Raspberry Pi 由于只有 256 MB 的内存，因此运行大的程序还是有点卡，而且系统整体的响应速度也和使用的 SD 卡有些关系，未避免影响系统系统，建议使用 class 4 或更高速度的存储卡。</p>
]]></content:encoded>
			<wfw:commentRss>https://zohead.com/archives/raspberry-pi-start/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
