分类 转载 下的文章

M5Stack ATOM Lite 上手笔记

前言:

立创商城连续搞了好几个月海外购51-50包邮活动,11月笔者用券购买了M5Stack ATOM Lite (SKU:C008),减50券后仅需约7元。这是一款带有外壳的超小型开发板,尺寸只有24 24 10 mm。主控为ESP32-PICO-D4@240MHz,提供了2.4GWIFI、BLE无线通信技术,供电接口采用TypeC接口,板载1枚SK6812 RGB LED、一枚红外发射管、复位键和一个用户按键,对外提供了6个GPIO和一个GROVE接口。除了IO口较少外其他也算是很不错了。官方提供了Arduino和UI-FLOW两种开发方式,Arduino众所周知用的是C++,而UI-FLOW是基于MicroPython并提供了积木编程,综合看来这个产品对于创客和少儿编程是很不错的产品。笔者算是简单学习一下相关流程,本文算是做笔记,以备日后查阅。

安装驱动:

众所周知,使用单片机开发板首先要安装驱动。有网友表示,ATOM Lite固件下载使用的USB转串口是用沁恒CH552模拟的FTDI,正常情况下Windows系统能够自动安装驱动。查看设备管理器,如果没有自动安装,可去FTDI官网 下载驱动安装,然后在设备管理器中手动安装。这里需要顺便记住串口编号。

Arduino上手:

配置IDE

首先需要下载 Arduino IDE 并安装。

打开 Arduino IDE,点击 文件->首选项->设置 ,复制下方的 M5Stack 板管理网址到 附加开发板管理器: 中并保存。

https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json

点击 工具->开发板:->开发板管理器...,搜索 M5Stack,点击安装 。完成后点击 工具->开发板:->M5Stack Arduino, 选择M5Stack-ATOM。点击 工具->端口: ,选择之前记下的端口号。

点击 项目->加载库->库管理... ,搜索 M5Atom 并安装,安装时需根据弹窗选择安装相关依赖库。

点灯

下面是官方提供的点灯程序,复制到Arduino IDE中。点击菜单栏中的上传 ,程序将自动完成编译上传,至此便完成了配置。库函数资料可查看M5Atom-Lib系统函数

#include "M5Atom.h"
void setup(){
    M5.begin(true, false, true); 
    delay(50);
    M5.dis.fillpix(0xff0000); // 十六进制 GRB 颜色
}

void loop(){

}

UIFLOW上手:

笔者尝试发现,UIFLOW相关应用无法在Win7下运行,官网针对Windows的支持只有Win10。所以,学习UIFLOW需要准备运行Win10系统的电脑。

使用UIFLOW有两种方式,一种是使用在线IDE开发并在线下发程序,另一种方式是使用离线的UIFLOW Desktop IDE进行本地开发,通过串口本地上传程序。两种方法都要先利用M5Burner烧录配置工具烧录基础固件、配置网络。

烧录配置UIFLOW固件:

首先需要下载M5Burner,下载后解压到合适的位置。双击主程序M5Burner.exe运行,如果电脑没有。net3.5运行库,系统会提示安装Windows功能,根据提示联网自动安装即可。

在M5Burner的主界面左侧点击 ATOM 图标,然后在主窗口找到UIFlow_Lite,选择版本后点击下方的Download按钮下载相关文件。将上方的 COM 口设为装驱动时看到的端口号,Baudrate保持默认。

点击UIFlow_Lite中的 Burn图标进行烧录,开始前会弹出窗口提示输入要连接的WIFI名称和密码,此处可以直接设置或留空后续设置。点击Start后弹出Log界面开始烧录固件,此处能看到百分比,等待输出 Burn Successfully 后即表示烧录完成。

点击UIFlow_Lite中的 Configuration图标进入配置窗口,此处可以设置启动后进入的模式、使用的在线IDE服务器以及联网的WIFI信息。这里复制其中的ApiKey下一步使用。

配置在线开发环境:

配网方式:如果烧录前没有设置WIFI信息,可通过 Configuration 页面设置或再次烧录。除此之外,可在上电或复位的同时按住中间按键,直到亮黄灯后松开,此时黄灯常亮表示处于配网状态。尝试使用电脑或手机连接WIFI热点 M5-XXXXXXXX ,连接后浏览器打开 192.168.4.1 ,在此页面设置WIFI的SSID和密码,点击Configure 。亮红灯,待连接WIFI后亮蓝灯,与服务器建立连接后亮绿灯。此时表示与UIFlow服务器连接正常,可以在线编程了。

打开 flow.m5stack.com ,将刚才复制的ApiKey粘贴到第一个文本框中,语言选择简体中文,点击选定AtomLite的图标,然后按确定等待完成连接。完成连接后出现主界面,网页左下角会显示已连接标识。

Tips:开发板上电或复位时按住中间键不放,等不同颜色灯亮起时松手会进入不同模式。除配网模式外,开发板会记忆上次进入的模式。

  • 绿灯:UIFlow在线编程
  • 蓝灯:UIFlow离线编程
  • 黄灯:配网模式
  • 紫灯:运行最后一次下载的程序

配置本地开发环境:

下载 UIFLOW Desktop IDE 并解压到很合适的位置,双击运行 UIFlow-Desktop-IDE.exe ,如果用过了在线IDE,你会发现界面几乎一样。

开发板按住中间键不放上电,等待亮蓝色灯时松手,确保蓝灯常亮,此时进入离线编程模式。设置COM口为安装驱动时记住的端口号,设置语言简体中文,点击选择AtomLite设备图标,最后点击OK键连接。

点灯:

积木编程界面所见即所得,从硬件--》RGB灯中拖拽一个设置全部RGB灯颜色为X的积木拼接在Setup积木后面,然后点击右上图标区的三角形RUN标志即可运行,若需要将程序下载到开发板,可找到下载按钮点击即可。如果需要查看或编写MicroPython代码,在上方标题栏中间点击Python标志切换即可。具体代码编写笔者暂时不会,就不写了。详细参阅官方文档:[Atom UIFlow上手指南](m5-docs (m5stack.com)) 的其他章节。

参考:

腾讯云函数自动领取EPIC每周免费游戏

前言:

EPIC自20年某个时候开始,就每周赠送一两个免费游戏,大多送的都是些比较便宜的货,但有时也会送出一些像GTA5这样的大作。基本每周四的晚上差不多就可以领取,以往我都是每周五晚上领。最近笔者的主力PC坏了,暂时没有像样的机器用了,喜加一获得的免费游戏也没有电脑可以玩了。但是喜加一不能遗漏,为了贯彻 我可以不用,但不能没有 这个宗旨,游戏还是要领取的,有没有更省事的办法呢?

本着坚信 我遇到的问题,很多人也应该会遇到 的观点,我直接在GitHub上以 EPIC免费游戏 关键词进行搜索,果然找到了几个项目。其中 epicgames-claimer 项目有300+ Star且最近有更新。于是便参考作者给出的文档将其部署到了免费的腾讯云函数上。笔者测试的结果是游戏领到了,但是配置的Server酱推送结果没有起作用。函数运行了十几分钟,打印了巨量的日志,使用了80GB·s的资源,这与其他的签到类云函数相比,已经是非常高的资源消耗了。但索性一周只领一次,其消耗的资源还在免费范围内。感觉这个项目挺有趣,可能会有其他人也需要,所以笔者将其记录下来。

大佬的GitHub仓库已经翻车了,我把文件传到了IPFS网络,需要的朋友可以试试能否部署成功。

部署过程:

  1. 将文件 epicgames_claimer.pyrequirements.txt 从Github下载到本地并打成Zip包

  2. 打开腾讯云控制台,有账号直接登录,没账号注册再登录。找到并进入云函数界面。

  3. 切换函数服务的区域,比如我选择的香港。然后点击 新建 ,打开新建页面。

  4. 选择 自定义创建事件函数 、 填一个自己能认出来的函数名称、 部署方式选择 代码部署 、运行环境选择 Python3.6

  5. 函数代码中的提交方法选择本地上传zip包,执行方法填 epicgames_claimer.main_handler ,并上传之前打包的ZIP压缩包。

  6. 展开高级配置,将内存改为1024MB,执行超时间改为900,添加EMAIL变量值为EPIC的登陆邮箱、PASSWORD变量值为EPIC登录密码,再添加一个推送变量,比如笔者使用的Server酱变量名为PUSH_SERVERCHAN_SENDKEY,其值为Server酱的SendKey。

  7. 其他保持默认,点击完成等待完成创建。

  8. 打开此函数的配置页面,打开函数管理,点击函数代码。在网页的代码编辑器中左侧导航栏的src目录右击,选择在集成终端中打开。运行以下命令:

    pip3 install -r requirements.txt -t .
    mv bin/pyppeteer-install .
    ./pyppeteer-install
    cp -r /root/.local/share/pyppeteer/local-chromium/*/chrome-linux .
  9. 完成后点击部署,并运行此云函数,观察是否能正常使用。

  10. 若可以正常使用,则点击 触发管理创建触发器 。触发方式选择 定时触发 ,名称按需设置,周期选择 自定义出发周期 ,按照文档填写Cron表达式,比如 0 10 15 * * FRI * 是每周五15点10分触发一次任务。勾选立即启用,点击提交完成定时触发的配置。

注意:

使用此方法需要关闭EPIC账号的双重验证,这个可以在EPIC官网的安全设置中找到。

据说EPIC限制了单个IP领取免费游戏的数量,所以使用云函数可能领取不成功,使用此函数还需多关注EPIC邮件通知,因为游戏领取成功后官方会发送订单邮件。

这个项目使用了浏览器,所以占用资源较大,内存务必配1024MB。如果配置了多个领取函数,请注意资源消耗。

有条件建议在本地搭建相关服务,而不是云函数。

参考:

[译]Cisco Meraki Z1刷入LEDE固件教程

前言:

本文内容主要是对OpenWrt论坛的一个帖子的翻译,原帖地址:https://forum.openwrt.org/t/build-for-cisco-meraki-z1/7939
原文:LEDE firmware for Cisco Meraki Z1
原文作者:vuhuy
(如有出入请以原帖内容为准,若能看懂英文,建议先看原帖;本文仅供参考,刷机风险自担,本人概不负责)

读懂并实践本文,你可能需要在技能树中点亮以下技能:

1:基本的Windows系统与Linux系统操作;
2:基本的路由器组网知识;
3:至少拥有一个USB转TTL工具,并且会使用它;
4:必要的情况下,可能需要科学上网技能

为Cisco Meraki Z1刷入LEDE固件

操作警告:

使用和刷入自定义固件是一个细活。您可能会因此损坏您的设备,所以请务必小心操作!使用本指南和固件需要您自担风险。LEDE和我都不对您路由器可能发生的损坏负责。

关于本编译:

LEDE已经支持Cisco Meraki Z1。但是,我需要编译一个额外的initramfs映像,以用于第一次为路由器刷机。此外,此设备在OpenWRT的TOH条目不完整且具有无效链接。我就把它放在这里以防有人需要它。

软件和硬件准备:

以下列出了所需的软件和硬件及其示例
串行终端(Serial terminal):使用minicom(Linux系统),PuTTY 3 (Windows系统)或其他自己熟悉的软件。
SCP客户端(SCP client):使用scp(Linux),WinSCP 1 (Windows)或其他自己熟悉的软件。
USB TTL转换器(USB TTL converter):基于FTDI FT232RL的主板是优质廉价的USB TTL转换器(在您最喜欢的中国网店上1.5欧元)。
(译者注:USB TTL转换器,俗称USB转串行口,我用的模块用的CP2102方案,软件使用的SecureCRT)

步骤

1:下载固件映像
2:建立root访问权限
3:备份原始固件
4:刷入 initramfs 映像
5:删除存储分区
6:刷入 sysupgrade 映像
7:更新LEDE

下载固件映像

访问我的 [OneDrive][1] 以下载预编译的二进制文件。提供了基于 LEDE 17.01.4 使用默认配置编译的initramfs和sysupgrade映像。
Meraki Z1的initramfs映像LEDE网站上是没有提供下载的,您需要在这下载以能够完成LEDE固件的第一次刷入(译者注:因为要先刷initramfs才能再刷sysupgrade)

LEDE网站会自动编译Sysupgrade映像,并可在LEDE网站上获取。从[LEDE网站][2] (目录/ ar71xx / nand / z1-squashfs-sysupgrade.tar)下载(较新的)sysupgrade映像,或使用我的 [OneDrive][3] 上的映像 。

建议使用LEDE网站提供的sysupgrade映像。Opkg可能会针对(任何)自定义sysupgrade映像上的内核依赖性失败。如果您使用的是自定义编译映像,请使用--force-depends标志忽略此项。

建立root访问权限

为了开始刷入固件,我们需要获取路由器的root访问权限。

1:关闭设备电源并拔下所有以太网电缆。
2:拆开设备。注意拆掉橡胶垫下方的四个螺钉。
3:将USB TTL转换器连接到JP1的串行UART接口。
J1 = GND(连接到USB TTL转换器的GND)
J2 = RxD(连接到USB TTL转换器的TxD )
J3 = TxD(连接到USB TTL转换器的RxD)
J4 = Vcc(不要连接,这是最靠近USB端口的跳线)
4:打开设备电源并打开USB TTL转换器的终端软件。波特率(速度)为115200。
5:按住重置按钮10-15秒,直到设备上的LED熄灭。
6:让设备启动,几分钟后在串行终端界面输入回车。它应该输出
7:检查您是否可以使用该odm help命令:

odm help *(译注:以上内容假设您已点亮“USB TTL转换器使用”技能,并有一定电子技术常识,否则您可能难以看懂,那就不要继续了)*
8:如果路由器输出帮助文本,请跳至步骤14.否则,重复步骤5-7几次,如果路由器继续输出UNRECOGNIZED COMMAND LOGGED TO CLOUD SERVERS消息,则继续执行下一步。 9:将Z1的WAN端口连接到另一台路由器的LAN端口。此路由器还必须与Internet断开连接(拔下WAN以太网电缆)。 10:按住重置按钮10-15秒,直到设备上的LED熄灭。 11:让设备启动,几分钟后在串行终端输入回车。它应该输出。 12:通过键入odm help命令来检查是否可以使用ODM命令。 13:如果路由器输出帮助文本,请跳至步骤14.否则,如果路由器继续输出UNRECOGNIZED COMMAND LOGGED TO CLOUD SERVERS信息,请多次尝试重复步骤10-12。在这一步,odm help命令对我有用。如果您继续看到此信息,那么很遗憾,您当前版本的固件不能使用此方法获取root权限。 14:首先我们要更改设备的序列号为Q2XX-XXXX-XXXV以准备获取root权限,这是漏洞利用的一部分。如果您不知道您原来的序列号,请写下您的原始序列号。它通常印在Z1底部的标签上(或使用步骤15中的命令直接读取)。*(译者注:意思可以先用步骤15的方式读出原来的序列号,自己找个地方记下来。因为待会儿完事要重新把原来的序列号写回去,现在我们为了利用漏洞,临时先改一下序列号)* odm serial_num write Q2XX-XXXX-XXXV 15:检查序列号是否更改为Q2XX-XXXX-XXXV。 odm serial_num read 16:如果序列号已经正确更改,请关闭设备电源并在重新打开设备电源时在电脑串行终端中按住“s”键,直到出现Busybox提示符。 Got magic key s BusyBox v1.20.2 (2014-09-19 12:42:33 PDT) built-in shell (ash) Enter 'help' for a list of built-in commands. / # 17:请依次运行以下命令获取固件的root权限。这些命令将删除路由器中一些配置文件和日志文件。如果你想保留这些文件,请复制一份!*(译者注:文中没有提供配置文件备份方式)* / # cd /storage/ / # rm ./config* / # rm ./odm_test.log / # echo "serial_allow_odm true" > ./config / # echo "serial_access_enabled true" >> ./config / # echo "serial_access_check false" >> ./config / # echo "valid_config true" >> ./config / # cp ./config ./config.local / # exit 18:输入exit命令后,设备将继续引导。 19:将序列号更改回原始序列号。 m001122334455:/# odm serial_num write 20:您现在已经拥有root访问权限。请注意,如果您将路由器连接到互联网,您可能会再次失去root权限。 ###备份原始固件 通过root权限,我们现在可以创建原始固件的备份。如果出现问题,或者您想恢复原厂固件时,可以使用它。 1:如果您使用其他路由器来获取root权限,现在请断开所有网线。 2:通过网线将电脑连接到路由器Z1上的LAN1网口。 3:重新获取路由器IP地址(提示:它是网关地址)。 4:使用串行终端设置root密码。 m001122334455:/# passwd 5:输入cat /proc/mtd命令以列出所有分区。您的分区方案可能不同,但对于mtd0到mtd4(包括mtd4)应该是相同的。 m001122334455:/# cat /proc/mtd mtd0: 00020000 00020000 "loader1" mtd1: 007e0000 00020000 "bootkernel1" mtd2: 00020000 00020000 "loader2" mtd3: 007e0000 00020000 "bootkernel2" mtd4: 06fe0000 00020000 "ubi" mtd5: 00020000 00020000 "origcaldata" mtd6: 0001f800 0001f800 "board-config" mtd7: 0087d800 0001f800 "rootfs-wired-9-144173-1-2" mtd8: 0086a000 0001f800 "rootfs-wired-9-144173-1-1" mtd9: 0501a800 0001f800 "storage" mtd10: 0003f000 0001f800 "caldata" 6:为loader1通过使用cat命令来创建备份并将其存储在/storage/文件夹上。 m001122334455:/# cat /dev/mtd0 > /storage/mtd0 //译注:mtd0就是loader1分区,后面的bootkernel1对应使用mtd1,以此类推 7:使用SCP客户端检索备份。使用SCP协议建立连接,用户名为root,密码为步骤4中设置的密码。 8:当你在本地PC上检索并存储备份后,从路由器中删除备份。使用SCP客户端功能或在串行终端中使用rm命令来删除它。 m001122334455:/# rm /storage/mtd0 *(译注:作者没有给出SCP软件使用方法,因为您可以使用带GUI的软件,否则您的技能树可能不支持您学习本文内容)*
9:为bootkernel1,loader2,bootkernel2,board-config和caldata分区重复步骤6-8的操作。如果一次执行此操作,您可能会因此耗尽内存。*(译注:所以请一个一个来,避免在删除上一个备份前创建下一个备份)* 10:另外,需要备份storage分区。这是一个很大的分区,所以只需使用 SCP 将/storage/文件夹中的所有文件传输到本地PC即可。*(译注:没法用前面步骤6-8办法)* 11:要验证备份数据是否正确,请再次重复步骤6-9,并比较(例如运行checksum软件或在Linux系统中使用cmp命令)两次获取的文件结果是否相同。(译注:作者没有提供具体操作,只提供了个方法) ###刷入initramfs映像 重刷该路由器固件由两部分操作组成:刷入initramfs映像和刷入sysupgrade映像。 1:将PC连接到Z1上的LAN1端口。它应该之前已经连上了,你刚才确实已经做了备份,不是吗? 2:在本地计算机上搭建HTTP服务器以提供initramfs映像。 *(译注:作者没有给出具体操作过程,如果您之前给别的路由器刷过第三方固件,应该是会这个操作的,否则可以考虑先通过搜索引擎学习一下,或参考下一条译注。)* 3:检查您的计算机本地IP地址(提示:它的IP地址是由Z1的DHCP分配的) 4:串行终端中使用wget命令将initramfs映像下载到路由器中的/storage/文件夹中。 m00180A167ED0:/# wget http:/// -O /storage/initramfs.bin *(译注:译者本人不是通过这种方式将映像下载到/storage/文件夹的,其实可以使用SCP软件直接上传的方式,取代上面2-4的操作。另外,您没看错,我也没翻译错,下面又出现了一个步骤4,原文中就是写了两个步骤4。这个是教您校验映像文件,您可以使用SCP软件再上传一个initramfs映像文件,改名为:initramfs2.bin,取代下面条目4中第一条命令)*
4:您可能想验证下载的 initramfs 映像。下载第二个并比较是否存在任何差异(它不应该存在差异,而cmp命令也不应该返回任何输出)。 m001122334455:/# wget http:/// -O /storage/initramfs2.bin m001122334455:/# cmp /storage/initramfs.bin /storage/initramfs2.bin m001122334455:/# rm /storage/initramfs2.bin 5:使用 dd 命令将下载的 initramfs 映像写入 bootkernel1 分区。 m001122334455:/storage# dd if=/storage/initramfs.bin of=/dev/mtdblock1 6:使用rm命令删除下载的initramfs映像。 m001122334455:/# rm /storage/initramfs.bin 7:使用reboot命令重新启动路由器。 m001122334455:/# reboot now 8:如果一切都正确完成,LEDE现在应该启动。检索您的计算机新的本地IP地址。**如果LEDE无法启动,请不要继续!** *(译注:LEDE是否成功启动,是能够在串行终端中看到的回显信息的,如果您看不懂,可能您不太适合阅读本教程)* 9:串行终端中使用wget命令将initramfs映像下载到路由器中的/tmp/文件夹中。 root@LEDE:/# wget http:/// -O /tmp/initramfs.bin 10:您可能想验证下载的initramfs映像。下载第二个并比较是否存在任何差异(它不应该存在差异,而cmp命令也不应该返回任何输出)。 root@LEDE:/# wget http:/// -O /tmp/initramfs2.bin root@LEDE:/# cmp /tmp/initramfs.bin /tmp/initramfs2.bin root@LEDE:/# rm /tmp/initramfs2.bin 11:使用dd命令将下载的initramfs映像写入bootkernel3分区(recovery)。 root@LEDE:/# dd if=/tmp/initramfs.bin of=/dev/mtdblock3 12:使用rm命令删除下载的initramfs映像。 root@LEDE:/# rm /tmp/initramfs.bin 13:使用reboot命令重新启动路由器。 root@LEDE:/# reboot now ###删除存储分区 存储器中还有一些LEDE不使用的存储分区。我们可以在刷入sysupgrade映像之前删除它们,以释放一些空间(大约100MB)。
1:使用ubinfo命令列出所有的UBI卷。 root@LEDE:/# ubinfo -a 2:使用ubirmvol命令删除列出的UBI卷,**但board-config卷除外**。对每个UBI卷重复该命令。**永远不要删除**board-config**卷!** root@LEDE:/# ubirmvol /dev/ubi0 -N 3:使用ubimkvol命令创建新的calibration data卷。 root@LEDE:/# ubimkvol /dev/ubi0 -N caldata -s 252KiB 4:使用ubinfo命令验证您的UBI卷。它应该显示有两个卷:board-config卷和新创建的caldata卷。 root@LEDE:/# ubinfo -a ###刷入 sysupgrade映像 接下来将为路由器刷入sysupgrade映像。刷入sysupgrade映像将重新填充calibration data卷,创建rootfs并自动展开rootfs_data到剩余的UBI可用空间。 1:将PC连接到Z1上的LAN1端口。它应该之前已经连上了,你刚才确实已经做了备份,不是吗? 2:在本地计算机上设置HTTP服务器以提供sysupgrade映像。 3:串行终端中使用wget命令将sysupgrade映像下载到路由器中的/tmp/文件夹中。 root@LEDE:/# wget http:/// -O /tmp/sysupgrade.tar 4:您可能需要验证下载的sysupgrade映像。下载第二个并比较是否存在任何差异(它不应该存在差异,而cmp命令也不应该返回任何输出)。 root@LEDE:/# wget http:/// -O /tmp/sysupgrade2.tar root@LEDE:/# cmp /tmp/sysupgrade.tar /tmp/sysupgrade2.tar root@LEDE:/# rm /tmp/sysupgrade2.tar 5:使用sysupgrade命令执行sysupgrade 。 root@LEDE:/# sysupgrade -v /tmp/sysupgrade.tar 6:恭喜您,您在Meraki Z1上运行LEDE!您现在可以拆除USB TTL转换器并将路由器装回外壳。 ###更新LEDE 您现在可以通过执行sysupgrade命令将LEDE更新为任何更新的版本。不再需要initramfs 映像了!您可以在[LEDE网站][4]上下载Meraki Z1的新sysupgrade映像。 使用SSH访问路由器并使用wget和sysupgrade两条命令执行升级。 root@LEDE:/# wget http:/// -O /tmp/sysupgrade.tar root@LEDE:/# sysupgrade -v /tmp/sysupgrade.tar 不要忘记调整/etc/sysupgrade.conf 告诉LEDE在升级过程中应该保留哪些设置。 ###参考 https://servernetworktech.com/2016/02/pwning-the-meraki-mr18/ https://servernetworktech.com/2017/06/pwning-the-meraki-mr18-again/ https://wiki.openwrt.org/toh/meraki/z1 [1]: https://1drv.ms/f/s!As4WUgFdj-yOjKt74-epe0XbTIm8Sg [2]: https://downloads.lede-project.org/releases/ [3]: https://1drv.ms/f/s!As4WUgFdj-yOjKt74-epe0XbTIm8Sg [4]: https://downloads.lede-project.org/releases/

感谢方滨兴,让我们学会了翻墙!

VOA 记者

07.07.2013

6月27号,北京邮电大学校长方滨兴,在该校2013届本科生毕业典礼上发表演讲时披露,由于身体原因,他已提出辞职请求。

方滨兴说:“我曾经有一个很好的身体,轻易就能连续自由泳两千米。但由于过度透支身体,一场大病让我失去了能够熬夜奋战的资本,不能再像过去一样双肩同时挑起学术、管理两副重担。这也是我向主管部门提出不再连任北邮校长职务的原因。”

这条消息很快就在网上引起轰动,众多网民听说方校长辞职的消息后欢呼雀跃。这究竟是怎么回事呢?原来,方滨兴是中国网络审查体系防火长城(GFW)关键部分的首要设计师,被称为“中国防火墙之父”。

火墙内外:方滨兴辞职网民庆贺 防火墙之父任人评说

网络作家王小山调侃说:“好多人不知道方滨兴校长的事迹哦。简单地说,他发明了万里长城烽火台,Great fire wall,缩写GFW,虽阻挡不了匈奴人进来,但能阻挡汉民出去,为我国建设事业填补了多项空白。”

可想而知,对于大多数希望能够在网上自由冲浪的中国网民来说,方滨兴自然不会赢得他们的爱戴。

网民“海妖快跑”说:“方滨兴作为臭名昭著的‘长城防火墙’的总设计师,人们应该感谢你设计了这个网络‘柏林墙’,使得千千万万个中国网民学会了‘翻墙’技能,也让大家看透了你们的虚弱本质。总有一天,这座网络‘柏林墙’将会倒塌,你也必定会被钉在历史的耻辱柱上!”

一位网民是这样评价方滨兴的:“他让中国互联网变成了局域网,让中国人变成见识短浅的井底之蛙。‘中国信息柏林墙之父’方滨兴因病辞去校长一职,激起网民欢呼,纷纷对方校长表示了祝贺,‘祝贺病魔早日战胜方校长’,还有网民关切地问候方校长‘癌细胞扩散了没有’,以及‘丧事日期确定了没有’。”

另一位网民评论说:“方滨兴因病退休,可是他为中国建造的那堵墙何时能拆除呢?当你想上facebook、twitter、YouTube的时候,看到满屏的404、not found!你就应该问候一声,希望病魔早日战胜方校长!”

尽管有人认为对一位因病退休的学者进行诅咒缺乏宽容和厚道,但这的确是许多网民想要宣泄的一种不满情绪。网民“南京屎壳郎”就说:“今天见得最多的一句话是#祝病魔早日战胜方校长”。

不过,网上还是有少数为方滨兴鸣不平的人。例如,新浪认证用户张岩说:“人家方滨兴病辞北邮校长,据说很多人都祝福病魔能战胜方老师,我说你们也太不厚道了吧。”

网民“我爱牙牙”表示:“不就是一个GFW么,他不做也会有人做的,犯得着这么人身攻击么……”

事实上,这已经不是方滨兴第一次遭到大批网民的冷嘲热讽了。他对网民的不满做出的回应是:“我将这些辱骂当做为国家作出的牺牲。”

在2010年谷歌退出中国的事件中,方滨兴多次出面为中国的网络审查等制度辩护。

2011年5月,方滨兴在武汉大学准备演讲之前遭到学生扔鞋子和鸡蛋。同年11月,北邮互联网治理与法律中心网站遭到黑客攻击,网站主页出现了一个恶搞版的[愤怒的小鸟游戏]。游戏中的打击目标“绿猪”被换成方滨兴的头像,武器“小鸟”则变成一双双鞋子,寓意深长。

在薄熙来、王立军事件爆发后,有些网民翻出中国媒体早先的报道,那些报道称,方滨兴2011年12月曾邀请王立军担任北邮客座教授,并称赞王立军是“铁血警魂”和温文尔雅的学者。

去年4月,纽约时报的一篇报道提到,薄熙来和王立军多年前就对中共高层官员展开了监听行动,从电话到互联网都被他们安装了先进的监视系统。他们招揽的一位网络安全专家就是北邮校长、防火墙之父方滨兴。

而目前正值即将审判薄熙来之际,因此,方滨兴在这个时候提出辞职也引起了各种揣测。

今年2月9号,方滨兴通过新浪微博发布蛇年拜年贴。结果却引来众多网民一片骂声!由于评论被关闭,微博用户只能利用转发该贴的时候留言。有认证用户称:“大学校长初一出来拜年,收到的却是2万个‘滚’字,都不敢开放评论!有辱斯文,北邮学子情何以堪?”一位网民给方滨兴题诗称:“半生赢得千夫指,一事修来粪土名。”

在一片“滚”字声中,另一位网民题赠方滨兴的对子是:“始作俑者难有后,千夫所指无疾终。”

新浪微博达人“贫嘴老道”贴出网民创作的一首“江城子”词,标题是“贺互联网防火墙之父北京邮电大学方滨兴校长辞职”。正文为:“十年生死两茫茫,百度兴,谷歌亡。瑞星金山,卡巴话凄凉。纵使相逢应不识,推特死,脸书墙。人人开心忽还乡,马化腾,山寨王。新浪微博,推特泪千行。料得年年肠断处,方滨兴,干你娘。”最后三个字显然是不登大雅之堂的词儿了。

网民“周大白话”用一句大白话总结方滨兴的问题。他说:“方校长犯的最大错误就是404错误。”

网上还出现这样一幅漫画:方滨兴坐在马桶上,却发现卫生纸的滚轴盖上出现了“404错误”的字样。漫画的题目是:“方校长遇到了神秘的404问题…”最后还加上一句:“请抄送方滨兴:-)”

作为中国的防火墙之父,方滨兴的名字肯定会被载入中国互联网的史册。至于这位争议极大的人物的千秋功过,将来自有人来评说。有分析人士认为,一种技术工具本身并不存在对错之分,关键在于应用技术工具的人和机构。网络管理部门应当善待舆情,而不是简单地封杀删除;另一方面,提批评意见的网民在发泄自己的不满情绪时也应当守住网络文明的底线。

深圳网民“失眠的知更鸟”在得知方滨兴提出辞职之后特意写了一首诗,名叫“你砌了一道墙—-致防火墙之父”。我们利用这首诗给老红歌“战斗进行曲”重新填词,用新版“战斗进行曲”结束这期的火墙内外。

网民改编歌曲-战斗进行曲

“你砌了一堵墙,要把我们圈养。你布下一张网,禁锢自由思想。你设下一道防,貌似固若金汤。帮助你的主子,企图掩盖真相。如今你病在床,也许看不到光。可墙内人们,还是说你,为虎作伥,臭名远扬。究竟你为何要这样!嗨!你可曾悔恨?可曾心慌?命运轮回,报应不爽。鞋蛋是授你的勋章。”