好吧,不得不说自己还是手贱,经常刷坏东西= = 这次的悲剧主角是Tp-link WR720N V3无线路由。这是一款11N,150Mbps的便携路由,2个网口,自带电源模块,带USB接口。下图就是主角未拆开前相貌:

wr720n拆开前 为什么变砖了呢,其实我自己也没搞清楚= =本来是刷了Openwrt的14.07 rc2的,想升级为rc3,使用mtd对fireware区域进行了openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-factory.bin的刷写,结果。。。就砖了。。

表现为开机蓝灯亮一秒,结着就毫无响应了。两个网口也无任何发包,好吧,没辙,淘宝了个USB-TTL以及一堆杜邦线,吐糟开始。

吐糟一: 我艹,这货拆开太费劲了。基本拆完就毁容了。

首先,这个得从颜色不同的那面开始拆,本想用吸盘吸出来。使了吃奶的力也拉不开= =。螺丝刀上阵,从USB口那面开始撬,使用暴力= =花了2小时,终于拆开外壳= =。好吧,我不理解TP-LINK这么设计,维修怎么办。还有居然这个壳是用胶粘着的。拆完后螺丝刀上全是胶!!! wr720n拆开后 本以为这下好弄了,好吧。噩梦才风开始= =。

一,左边那个灯什么情况,挡在那怎么拆啊!!!

二、我艹,这灯居然是把塑料熔了固定在那的。。。

三、卧槽,变压器那一坨坨屎黄屎黄的是什么?

四、你们芯片上画个XX是什么意思,质检通过了么。。

五、最上面那个贴着黄胶布的铁片是干嘛的,还是歪的。这做工,看得真是心寒啊。

吐糟完,说说怎么拆吧。先把电源那一块活动的塑料块取下来(简单)。暴力把灯的那个塑料扯下来(超简单!!)。拿个螺丝刀,从电源那边,慢慢把板子往上撬,稍微用点力。另外电路板中间是有条缝的,控件好力度,这边很容易折断了。电源那个角松动后,换开头附近那个角,暴力吧= =撬开后,整个电路板慢慢斜着从开头这边拉出来。好吧,说得很简单,拆起来很困难,搞了大概1小时。 wr720n主板正面 wr720n主板背面 背面那个TP_IN,TP_OUT就是TTL需要的口了。

吐糟二: 网购了个USB转TTL的小板子,3块钱= =好便宜。。

GND随便接到路由主板USB口铁皮上,TX接TP_IN,RX接TP_OUT,卧槽,怎么没反应。百度了半天,尼玛,TP_IN居然是输出。。。TP_OUT是输入。这这这。。无力吐糟。

至于怎么接,你们自己看着办吧。。电铭铁用了半天焊不上,索性拿手了,一手扭着两根导线,按在那两个触点上,一手操作键盘。勉强可以。。

接下去就可以刷了,本文重点来了: 先把WAN口插到电脑网口上,电脑上设置一静态IP,我的是IP192.168.1.2,掩码255.255.255.0。打开随便一终端,SecureCRT或者XShell都可以,选串口,速度115200,data bits:8,stop bits:1 加电,应该有类似如下提示:

U-Boot 1.1.4 (Sep 13 2012 - 16:50:29)

AP121 (ar9330) U-boot

DRAM: 32 MB
led turning on for 1s...
id read 0x100000ff
flash size 4194304, sector count = 64
Flash: 4 MB
Using default environment

In: serial
Out: serial
Err: serial
Net: ag7240_enet_initialize...
No valid address in Flash. Using fixed address
No valid address in Flash. Using fixed address
: cfg1 0x5 cfg2 0x7114
eth0: 00:03:7f:09:0b:ad
ag7240_phy_setup
eth0 up
: cfg1 0xf cfg2 0x7214
eth1: 00:03:7f:09:0b:ad
athrs26_reg_init_lan
ATHRS26: resetting s26
ATHRS26: s26 reset done
ag7240_phy_setup
eth1 up
eth0, eth1
Autobooting in 1 seconds

待提示最后一行时,1秒内按顺序按下tpl三键,回车,会提示hornet>,就可以交互了。 自己本机架个tftp,找个固件丢上去,我用的是官方的120610版本的(9月那个版本貌似网上有传言有问题),命名是b.bin,输入如下命令:

setenv ipaddr 192.168.1.1  //设置路由IP
setenv serverip 192.168.1.2  //设置TFTP服务器IP
tftpboot 0×80000000 b.bin  //下载固件到内存中
erase 0x9f020000 +0x3c0000  //抹掉固件区域内容
cp.b 0×80000000 0x9f020000 0x3c0000  //刷写固件区域,4MB大小
bootm 0x9f020000  //从该地址引导启动

正常的话= =路由器应该就复活了。 顺便把整个LOG都截下来吧,请无视里面的部分乱码吧,那是手没按紧,接触不良引起的:

U-Boot 1.1.4 (Sep 13 2012 - 16:50:29)

AP121 (ar9330) U-boot

DRAM:  32 MB
led turning on for 1s...
id read 0x100000ff
flash size 4194304, sector count = 64
Flash:  4 MB
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   ag7240_enet_initialize...
No valid address in Flash. Using fixed address
No valid address in Flash. Using fixed address
: cfg1 0x5 cfg2 0x7114
eth0: 00:03:7f:22:22:22
ag7240_phy_setup 
eth0 up
: cfg1 0xf cfg2 0x7214
eth1: 00:03:7f:22:22:23
athrs26_reg_init_lan
ATHRS26: resetting s26
ATHRS26: s26 reset done
ag7240_phy_setup 
eth1 up
eth0, eth1
Autobooting in 1 seconds
hornet> 
hornet> setenv ipaddr 192.168.1.77
hornet> setenv serverip 192.168.1.2
hornet> tftpboot 0x80000000 b.bin
eth1 link down
dup 1 speed 100
Using eth0 device
TFTP from server 192.168.1.2; our IP address is 192.168.1.77
Filename 'b.bin'.
Load address: 0x80000000
Loading: #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 ######################################################
done
Bytes transferred = 3932160 (3c0000 hex)
hornet> erase 0x9f020000 +0x3c0000

First 0x2 last 0x3d sector size 0x10000                                                              61
Erased 60 sectors
hornet> cp.b 0x80000000 0x9f020000 0x3c0000
Copy to Flash... write addr: 9f020000
done
hornet> bootm 0x9f020000
## Booting image at 9f020000 ...
   Uncompressing Kernel Image ... OK

Starting kernel ...

Booting AR9330(Hornet)...
Linux version 2.6.31--LSDK-9.2.0.312 (root@localhost.localdomain) (gcc version 4.3.3 (GCC) ) #26 Wed Jun 20 17:03:54 CST 2012
flash_size passed from bootloader = 4
CPU revision is: 00019374 (MIPS 24Kc)
Determined physical RAM map:
 memory: 02000000 @ 00000000 (usable)
User-defined physical RAM map:
 memory: 02000000 @ 00000000 (usable)
Zone PFN ranges:
  Normal   0x00000000 -> 0x00002000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0: 0x00000000 -> 0x00002000
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
Kernel command line: console=ttyS0,115200 root=31:02 rootfstype=squashfs init=/sbin/init mtdparts=ar7240-nor0:128k(u-boot),1024k(kernel),2816(rootfs),64k(config),64k(ART) mem=32M
PID hash table entries: 128 (order: 7, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
Writing ErrCtl register=00000000
Readback ErrCtl register=00000000
Memory: 29876k/32768k available (1883k kernel code, 2892k reserved, 521k data, 116k init, 0k highmem)
Hierarchical RCU implementation.
NR_IRQS:128
plat_time_init: plat time init done
Calibrating delay loop... 266.24 BogoMIPS (lpj=532480)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
===== ar7240_platform_init: 0


Whoops! This kernel is for product wr703 v1.0!

bio: create slab  at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
NET: Registered protocol family 1
AR7240 GPIOC major 0
squashfs: version 4.0 (2009/01/31) Phillip Lougher
NTFS driver 2.1.29 [Flags: R/O].
msgmni has been set to 58
alg: No test for lzma (lzma-generic)
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
ttyS0: detected caps 00000000 should be 00000100
serial8250.0: ttyS0 at MMIO 0xb8020000 (irq = 19) is a 16550A
console [ttyS0] enabled
PPP generic driver version 2.4.2
NET: Registered protocol family 24
cmdlinepart partition parsing not available
set partition boot 
set partition kernel 
set partition rootfs 
set partition config 
set partition art 
set partition ÿ 
Searching for RedBoot partition table
5 RedBoot partitions found on MTD device ar7240-nor0
Creating 5 MTD partitions on "ar7240-nor0":
0x000000000000-0x000000020000 : "boot"
0x000000020000-0x000000120000 : "kernel"
0x000000120000-0x0000003e0000 : "rootfs"
0x0000003e0000-0x0000003f0000 : "config"
0x0000003f0000-0x000000400000 : "art"
->Oops: flash id 0x10215 . 
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
Port Status 1c000004 
ar7240-ehci ar7240-ehci.0: ATH EHCI
ar7240-ehci ar7240-ehci.0: new USB bus registered, assigned bus number 1
ehci_reset Intialize USB CONTROLLER in host mode: 3
ehci_reset Port Status 1c000000 
ar7240-ehci ar7240-ehci.0: irq 3, io mem 0x1b000000
ehci_reset Intialize USB CONTROLLER in host mode: 3
ehci_reset Port Status 1c000000 
ar7240-ehci ar7240-ehci.0: USB 2.0 started, EHCI 1.00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
TCP cubic registered
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
ar7240wdt_init: Registering WDT success
VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
Freeing unused kernel memory: 116k freed
init started:  BusyBox v1.01 (2012.06.05-01:09+0000) multi-call binary
This Board use 2.6.31
xt_time: kernel timezone is -0000
nf_conntrack version 0.5.0 (512 buckets, 5120 max)
ip_tables: (C) 2000-2006 Netfilter Core Team
insmod: cannot open module `/lib/modules/2.6.31/kernel/iptable_raw.ko': No such file or directory
insmod: cannot open module `/lib/modules/2.6.31/kernel/flashid.ko': No such file or directory
PPPoL2TP kernel driver, V1.0
PPTP driver version 0.8.3
insmod: cannot open module `/lib/modules/2.6.31/kernel/harmony.ko': No such file or directory

(none) mips #26 Wed Jun 20 17:03:54 CST 2012 (none)
(none) login: Now flash open!
Now flash open!
Now flash open!
Now flash open!
Now flash open!
Erase from 0X3E0000 to 0X3E8984:.
Program from 0X3E0000 to 0X3E8984:
write successfully
……

完结了吧。。还没,装回去一样困难,按拆开的顺序,网口那端先挪进去,另一边再慢慢往下放。注意一下开关的位置,还有电源触片不要断了。然后那个灯。。没辙,我是拿电铭铁,直接把塑料熔了,粘上去。搞定= =

主板确定下面的几个支撑的塑料住的位置都对,用力往下压就好了。最后盖上盖子,搞定。

吐糟三: 等等,那日志上是什么!!!!

Whoops! This kernel is for product wr703 v1.0!

已亮瞎!!!!!!睡觉。无力吐糟。

 

2013年12月21日凌晨,我的第一个开源项目release第一个版本啦!值得纪念的一刻。

OurACM v0.1.0-beta.1

优雅简洁的ACM-ICPC队伍风采展示系统,基于Bootstrap和ThinkPHP!

*简洁优雅的界面
*支持WF、Regional等类型的ACM-ICPC比赛展示
*酷炫版与表单版两种展示模式
*支持教练团队展示
*支持OnlineJudge展示
*操作简易、功能强大的后台管理功能
*用户系统OnlineJudge关联模式
*支持邀请码机制,快速添加新队员

111111

 

欢迎前往项目主页:https://github.com/ekszz/OurAcm

演示地址:http://acm.fzu.edu.cn/ouracm/

下载地址:https://github.com/ekszz/OurAcm/releases

有什么另外的需求或者BUG等地方,欢迎随时联系我~

 

三生三世十里桃花

我本以为自己是个不爱读书的人,原来只是没有遇到爱读的书罢了。

三生三世,十里桃花。与它结缘,只因封面那唯美的标题及洒脱的字体。

唐七公子文字的唯美,着实让人倾叹。

青丘白浅,太子夜华,纠缠无尽的爱情,让我看到了些许仙剑的影子。

好书推荐,值得一看。

最近看到一篇文章《美国四年本科后对中国教育的感悟-写给刚入大学的你们》,是有关选专业以及教育方面的话题,感觉很有启发,就顺便转了过来。人生,何尝不是要做自己喜欢的事呢?

今天接到一个妹妹的电话,她刚查到了高考成绩,问我明天填志愿该填什么专业,她爸爸说金融工程好,以后去银行就业,收入稳定,要不要报金融工程?

我要怎么告诉她呢?我自己为了选择我的专业花了一两年的时间思考,到现在还没有给我自己的职业生涯下一个定论,我怎么样告诉她在一个晚上的时间里快速地判断学什么专业好呢?

中国的教育就是这样,中学时代的孩子什么都不懂,不知道各个专业到底是什么意思、社会上各种职业到底意味着怎样的工作状态、他们到底擅长什么、对什 么感兴趣、终生的追求是什么,统统不知道… 于是就在高考分数出来之后的某一晚在饭桌上和家长合计了一下,就胡乱报个金融、报个计算机、报个会计… 可是这么重要的事情,怎么可以在饭桌上花一两个小时决定呢?

Continue reading