<?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>lark&#039;s cloud &#187; wr941n</title>
	<atom:link href="http://www.lark.net.cn/tag/wr941n/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lark.net.cn</link>
	<description></description>
	<lastBuildDate>Mon, 05 Jul 2010 04:54:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>OpenWrt 增加 TL-WR941N 的支持</title>
		<link>http://www.lark.net.cn/2009/03/openwrt-on-tl-wr941n/</link>
		<comments>http://www.lark.net.cn/2009/03/openwrt-on-tl-wr941n/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 14:20:49 +0000</pubDate>
		<dc:creator>lark</dc:creator>
				<category><![CDATA[硬件]]></category>
		<category><![CDATA[OpenWrt]]></category>
		<category><![CDATA[wr941n]]></category>

		<guid isPermaLink="false">http://www.lark.net.cn/?p=109</guid>
		<description><![CDATA[在我通过读带有符号的反汇编代码，写了TL-WR941N 固件 fixsum 工具后，通过TL-WR941N的管理页面上传修改后的固件或者第三方固件成为可能。我最初的目的是想让 dd-wrt 开发者给 dd-wrt 增加对 TL-WR941N 的支持，但是 dd-wrt 的开发者对 TL-WR941N 的兴趣并不大，在 dd-wrt 上迟迟没有动作。 2月19日，TP-Link 发布了新的 GPL 源代码，其中包括了 u-boot 源代码。OpenWrt 的开发者 jusohg 之后就利用 fixsum 和TP-Link 发布出来的源代码完成了对 WR941N 的支持。今天我测试了 dev snapshot build，局域网、无线都能正常工作了（我使用的是 WPA2 EAP-TLS）。相信不久以后，正式版本就能出来了。 TL-WR941N 使用了一个修改过的 u-boot，在最初发布的源代码中并不包括 u-boot 源代码。虽然我的 fixsum 能对头部做必要的处理，但使用其他的内核启动时，总是会跳出内核启动步骤，返回到 u-boot 提示符，没有任何有用的提示。我一直以为是 u-boot 对内核做了 checksum 检查（因为在头部还有另外一个没有用到的 checksum），但在 u-boot 的二进制映像中，并没有找到相关的痕迹。今天 jusohg 告诉我是因为 kernel entry [...]]]></description>
			<content:encoded><![CDATA[<p>在我通过读带有符号的反汇编代码，写了TL-WR941N 固件 <a href="http://download.lark.net.cn/wr941n/hack/" onclick="pageTracker._trackPageview('/outgoing/download.lark.net.cn/wr941n/hack/?referer=');">fixsum</a> 工具后，通过TL-WR941N的管理页面上传修改后的固件或者第三方固件成为可能。我最初的目的是想让 dd-wrt 开发者给 dd-wrt 增加对 TL-WR941N 的支持，但是 dd-wrt 的开发者对 TL-WR941N 的兴趣并不大，在 dd-wrt 上迟迟没有动作。</p>
<p>2月19日，TP-Link 发布了新的 <a href="http://www.tplink.com/GPL/11N_GPL.tgz" onclick="pageTracker._trackPageview('/outgoing/www.tplink.com/GPL/11N_GPL.tgz?referer=');">GPL 源代码</a>，其中包括了 u-boot 源代码。OpenWrt 的开发者 jusohg 之后就利用 fixsum 和TP-Link 发布出来的源代码完成了对 WR941N 的支持。今天我测试了 dev snapshot build，局域网、无线都能正常工作了（我使用的是 WPA2 EAP-TLS）。相信不久以后，正式版本就能出来了。</p>
<p>TL-WR941N 使用了一个修改过的 u-boot，在最初发布的源代码中并不包括 u-boot 源代码。虽然我的 fixsum 能对头部做必要的处理，但使用其他的内核启动时，总是会跳出内核启动步骤，返回到 u-boot 提示符，没有任何有用的提示。我一直以为是 u-boot 对内核做了 checksum 检查（因为在头部还有另外一个没有用到的 checksum），但在 u-boot 的二进制映像中，并没有找到相关的痕迹。今天 jusohg 告诉我是因为 kernel entry point  需要修改，真是够简单的问题。头部中另外一个 checksum 是干什么用的，还是一个未解的谜。</p>
<p>OpenWrt 的 Web 界面 LuCI 没有中文翻译，我有空的话（做梦）会去翻译一下。</p>
<p>更新：目前的 ath9k 驱动有问题，我测试的时候，在没有 rx 的情况下，tx 丢包，所以还不能算正常工作。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lark.net.cn/2009/03/openwrt-on-tl-wr941n/feed/</wfw:commentRss>
		<slash:comments>60</slash:comments>
		</item>
		<item>
		<title>修改WR941N的硬件和固件</title>
		<link>http://www.lark.net.cn/2008/12/mod-wr941n-hardware-firmware/</link>
		<comments>http://www.lark.net.cn/2008/12/mod-wr941n-hardware-firmware/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 16:11:58 +0000</pubDate>
		<dc:creator>lark</dc:creator>
				<category><![CDATA[硬件]]></category>
		<category><![CDATA[dd-wrt]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[wr941n]]></category>
		<category><![CDATA[固件]]></category>

		<guid isPermaLink="false">http://www.lark.net.cn/?p=38</guid>
		<description><![CDATA[从入手 wr941n 到现在，已经一月有余，修改硬件和固件的进展还算不错。 第一台 wr941n 焊上了 JTAG/Serial/USB 接口。其中，JTAG 到目前为止还没用上，USB接口的 5v 供电电路被阉割，所以无法正常使用。由于我的疏忽，导致 Serial （TTL）部分的 RX 被烧，无法向路由器输入字符，但可以获得路由器的输出。路由器的 bootloader 是 u-boot，波特率设置是 9600，linux kernel 波特率是 115200，busybox 设置是 115200。 买了第二台继续改，这次只焊了 JTAG 和 Serial。从官方固件中提取出 rootfs，用 john 计算出 root 帐号的密码，成功登录到路由器里面。翻了个遍以后，着手替换 rootfs 中的 busybox。u-boot 的 tftp 和 cp 命令都能正常工作，这一步比较顺利。能够通过 telnet 登录到路由器上进行各种操作了。 wr941n 所使用的 linux kernel 能下载到源代码；其使用的 wifi stack 是 madwifi。从厂商提供的源代码能编译出可用的 scsi module 和 [...]]]></description>
			<content:encoded><![CDATA[<p>从入手 wr941n 到现在，已经一月有余，修改硬件和固件的进展还算不错。</p>
<p>第一台 wr941n 焊上了 JTAG/Serial/USB 接口。其中，JTAG 到目前为止还没用上，USB接口的 5v 供电电路被阉割，所以无法正常使用。由于我的疏忽，导致 Serial （TTL）部分的 RX 被烧，无法向路由器输入字符，但可以获得路由器的输出。路由器的 bootloader 是 u-boot，波特率设置是 9600，linux kernel 波特率是 115200，busybox 设置是 115200。</p>
<p>买了第二台继续改，这次只焊了 JTAG 和 Serial。从官方固件中提取出 rootfs，用 john 计算出 root 帐号的密码，成功登录到路由器里面。翻了个遍以后，着手替换 rootfs 中的 busybox。u-boot 的 tftp 和 cp 命令都能正常工作，这一步比较顺利。能够通过 telnet 登录到路由器上进行各种操作了。</p>
<p>wr941n 所使用的 linux kernel 能下载到源代码；其使用的 wifi stack 是 madwifi。从厂商提供的源代码能编译出可用的 scsi module 和 usb module。</p>
<p>然后是找到如何从网页更新固件的办法。wr941n 用了和一般的厂商不太相同的固件校验方法，所以我开始寻求从 TP-Link 直接获取相关信息。和 TP-Link 的技术支持进行联系后，最终和他们负责 11N 产品系列的产品经理进行了邮件往来。他暂时拒绝了我的要求。我反汇编了原厂固件中的 httpd （总控程序），找到验证方法，编写了固件校验程序。到此能成功从网页升级到我修改的固件了。</p>
<p>wr941n 使用了一个修改过的 u-boot （其源代码还未公开），对启动的 kernel 也进行检验检查，目前检验和计算方法还没有找到，所以还不能更换 kernel。因为能通过 kernel module 来扩展内核功能，更换 kernel 的意义并不大，暂时我不准备花时间破解它的 u-boot 校验了。</p>
<p>这中间的进展我都<a href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=40041" onclick="pageTracker._trackPageview('/outgoing/www.dd-wrt.com/phpBB2/viewtopic.php?t=40041&amp;referer=');">记录在DD-WRT论坛</a>上。</p>
<p>下一步就是把 DD-WRT 的 router 程序 port 到这个路由器上。主要的工作是写一个 nvram 库来使用 wr941n 的 mtd 分区保存配置；DD-WRT 支持 madwifi，所以其它部分有工作量，但难度不大。另外很重要的一件事是，如果配置分区不正确，原厂固件能否重置配置分区，这个关系到从第三方固件刷回到原厂固件如何实现。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lark.net.cn/2008/12/mod-wr941n-hardware-firmware/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>
