• 【详细教程】编译openwrt + njit-client 1.3,通过iNode认证

    这个教程,简单地说是我一年以来的鼓捣成果,也是我对我baidu/google看过无数教程的一个小总结。我之前在贴吧看了这个帖http://tieba.baidu.com/p/1621858667之后,燃起了我对openwrt路由器的激情。在看了很多很多个教程之后,我把我的心得汇总在这里,希望对各位有所帮助。  PS.20130902更新:njit-client在华工五山校区测试成功。

    首先,你需要有一个能刷openwrt的路由器。怎么知道自己的路由支不支持呢?请参看http://wiki.openwrt.org/toh/start,在Supported Hardware – Router type里面就是支持的,如下图。简单地说,对于一个主流硬件的路由器,Flash必须≥4MBRAM必须≥32MB才能正常使用openwrt。

    2013-07-14 10_38_16的屏幕截图

    怎么刷机?不同的路由刷的方法也是不同的,所以请自行百度。当然你也可以去淘宝直接买一个刷好了的。

    刷机的固件怎么来?去openwrt官网下载是最方便的方法,之后要自己安装njit-client及其依赖包。本文末附上我编译的ramipsar7xxx的njit-client 1.3 的ipk下载,自己再去openwrt官网下载其依赖包libpcap装上就好了。(当然这还是比自己从头编译固件方便)也可以去各论坛上下载别人编译的固件。

    但是如果你下定决心要编译固件,那么就可以往下看后文讲述的编译openwrt固件和njit-client 1.3的步骤。自己编译固件的优点还是有的:由于squashfs的特性,固化的软件占用的Flash空间更少,于是就可以在有限的空间中安装更多的软件。

    13

    space

    我还装了一些ipv6支持、QoS什么的还剩200多k空间

    以下内容有相当一部分参考了这里的教程。

    一、准备工作

    • 准备一台运行Linux或者类Unix操作系统的PC,比如Ubuntu,Debian,Fedora,MAC OS,FreeBSD,Suse等。下文所列出命令都Ubuntu下的命令,其他linux发行版请到这里查看相关的命令。
    • 需要大约350MB硬盘空间,用于下载软件包(当然,选择编译的软件越多,需要下载的源代码包就越多,可能需要多达几个G的硬盘空间)。
    • 需要6~8GB可用硬盘空间,用于编译OpenWrt。
    • 一般情况下,我们还需要一个非root用户。
    • 最后是耐心和时间,OpenWrt边下载边编译,编译几个小时那是家常便饭,并且中间还有可能出错。

    二、编译openwrt

    1.安装 git 以获取源代码:

    在终端中运行:

    sudo apt-get update
    sudo apt-get install git-core

    2.安装必要的编译工具:

    sudo apt-get install libtool autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev subversion

    3.下载openwrt源代码,这里我下载的是trunk (main development tree) :

    git clone git://git.openwrt.org/openwrt.git

    如果想下载Barrier Breaker 14.07 分支,就这样:

    git clone git://git.openwrt.org/14.07/openwrt.git

    4.更新下载和安装扩展软件包:

    假设你的工作目录为openwrt,进入openwrt目录:

    cd openwrt

    然后把feeds.conf.default复制一份命名为feeds.conf:

    cp feeds.conf.default feeds.conf

    (添加njit-client的源)打开feeds.conf,在最后加上一行

    src-svn njit https://github.com/liuqun/openwrt-clients/trunk/njit

    然后是更新下载扩展软件包,并安装它们到package/feeds/目录:

    ./scripts/feeds update -a
    ./scripts/feeds install -a

    5.配置openwrt

    现在开始配置OpenWrt,选择你需要目标平台,以及选择将要编译和添加进固件的软件包。运行命令:

    make menuconfig

    若回显提示缺少软件包或编译库等依赖,则按提示安装所缺软件包或库等即可。

    然后你就来到了这个界面:

    2013-07-14 10_39_12的屏幕截图

    这个配置界面跟Linux内核的配置界面基本差不多,几乎每一项都有3个选择Y/M/N:

    • Y:选择Y,该软件将被编译,并且加入到你的目标固件里;
    • M:选择M,该软件包将会被编译,但不会被放入固件里。在需要它的时候,可以用OPKG软件包管理器进行安装;
    • N:选择N,该软件包将不会被编译,也不会被安装进固件。
    • /:搜索软件包。
    • 方向键是移动光标
    • 回车键是确认
    • 空格键是选择,可以代替Y/M/N键的使用

     

    例如我用的型号是D-LINK DIR-615 D4,到第一幅图Support Hardware那里查询对应的Target和Platform,查到之后选择对应的Target System和Subtarget和Target Profile,我选的是Ralink RT28XX/3XXX和RT305X和对应的Profile。

    又例如你是TP-LINK TL-MR3420,就这样选:

    Target System ---> (X) Atheros AR71xx/AR7240/AR913x
    Target Profile ---> (X) TP-LINK TL-MR3420 v1

    之后就是选择扩展软件包,按需要添加。

    • 添加LuCI(这样才自带网页GUI端):LuCI ->Collections -> <*> luci(就是找到luci然后按一下Y)
    • 添加LuCI的中文语言包:LuCI ->Translations -> <*> luci-i18n-chinese
    • 添加UTF8编码:Kernel modules -> Native Language Support -> <*> kmod-nls-utf8
    • 添加njit-client:Network -> <*> njit8021xclient
    • 下面的njit8021xclient-web也顺便选了吧,这个是一个简单的LuCI的配置界面

    其他的软件包就按需要添加吧,注意不要太多(我可怜的4M ROM…),不然编译到最后会提示文件太大无法创建。

    好了,选完之后回到主菜单,选Exit退出并保存,回到终端。

    (不装njit-client可忽略)如果你的系统是Ubuntu,那么在编译之前建议执行此操作

    sudo mv /usr/bin/pcap-config /usr/bin/pcap-config.bak

    总之就是干掉pcap-config,否则编译会出错,就像这样:

    auth.c: In function ‘SendResponseIdentity’:
    auth.c:432:11: error: invalid ‘asm’: invalid use of ‘%w’

    当时编译出错了真是折腾了好久,最后终于在这里看到了njit-client作者的解答。

     

    然后把默认的无线开启,这样刷机之后方便许多。打开package/kernel/mac80211/files/lib/wifi/mac80211.sh,将

    option disabled 1

    的1改为0,编译出来就默认打开wifi了。

    下面的encryption也可以改下,不改就是默认没密码。

    要改的话,把none改为psk2,再加一行option key yourpassword即可。

     

    之后就是开始编译了:执行

    make V=s

    其中“V=s”表示输出详细的debug信息,也可以直接执行make。

     

    编译完成之后,在 /openwrt/bin/ 下就会生成刷机用的.bin文件,在packages/下有软件包的.ipk文件。刷机方法就请自行百度了。

    刷完之后重启路由,把电脑本地连接的ip改为192.168.1.x,然后在浏览器中进入192.168.1.1就进入LuCI了。没有LuCI的就telnet 192.168.1.1自行配置吧。然后在浏览器里设置一些东西,例如刚进去就要改密码、改WAN口的IP(学校给的)、DNS、网关(学校给的)、MAC地址(如果校园网绑定了MAC)、设置DHCP服务(设完之后可以把本地连接的手动ip改回自动获取,DNS好像要用学校给的DNS)什么的,慢慢做吧。

     

    测试一下njit-client吧!在putty终端中执行

    njit-client [username] [password] [interface] &    #改成自己的用户名和密码,接口必须对应

    试试吧!其中[interface]是接口,例如eth0,eth1,总之要对应你的WAN口,在luci里就可以查看,例如我就是eth0.2,ar71xx的多数是eth1。

    20130714184945

    能连接上之后就做一个开机启动脚本吧~在路由器的 /etc/init.d/ 目录下建立一个自动运行脚本 njitclient,内容如下:

    #!/bin/sh /etc/rc.common
    #(c) 2010 ivan_wl
    START=50
    
    start() {
        njit-client [yourusername] [yourpassword] [interface] &    #这里自己改一下
    }
    
    stop() {
        killall njit-client
        killall udhcpc
    }
    

    之后运行命令

    chmod +x /etc/init.d/njitclient     #加上可执行属性
    /etc/init.d/njitclient enable    #开启开机自动运行

     

    最后附上ramips的njit-client下载:njit8021xclient_1.3-testing_ramips.zip

    ar71xx的:njit8021xclient_1.3-testing_ar71xx.zip

    20140309更新ramips_24kec,用较新版本的openwrt应该装这个版本njit8021xclient_1.3-testing_ramips_24kec.zip

     

    20131116更新scutclient,华南理工大学翼起来客户端请用这个。scutclient的下载及使用请到群262939451进行反馈,我不在此回答有关scutclient的问题。

    20141226更新:scutclient的源码最近已由原作者发布于github,下载及编译方法参见https://github.com/forward619/scutclient

  • Acfun Localizer无法下载bilibili弹幕xml的暂时解决

    发现最近Acfun Localizer下载的bilibili的xml弹幕文件都是2k,内容为空,于是研究了一下相关的lua脚本,脚本版本:20120907

    问题出现在bilibili.lua的大约180~200行的获取str_id的地方,本来获取的id应该为412345这样的6位数字,而现在变成了627320&aid=409176这样的加多了一串aid的情况。

    于是下载的comment.bilibili.tv/412345.xml就变成了comment.bilibili.tv/627320&aid=409176.xml,自然就出错了。

    我以前没接触过lua脚本,对其他语言也没啥太多了解,总之就是非专业人士了。本来想把获取str_id的代码改好,但是不成功。于是google了一下lua的语法想到了个暂时解决这个问题的馊主意:把bilibili.lua的250行的

    str_subxmlurl = "http://comment.bilibili.tv/" .. str_id .. ".xml";

    改成

    str_subxmlurl = "http://comment.bilibili.tv/" .. string.sub(str_id,1,6) .. ".xml";

    也就是说只提取类似627320&aid=409176的前6位——这样的话cid是6位的视频弹幕都能解决(老的视频应该有5位或以下的,现在的视频估计都是6位的)

    最后还是期待作者的更新吧,非专业人士只能帮自己/你到这了~

    PS.有网友在下面的评论区提出了更好的方法,应该是目前完美的方法了。

  • 推荐几个自己用过的RamDisk软件

    这年头内存越来越白菜价,新买的的笔记本自带8G内存,不用来做RamDsik都觉得有点浪费= =..

    baidu/google一下ramdisk,发现ramdisk软件现在是更多种多样了(比几年前多得多了),找来找去都找不到几个好用的,要么就共享要么限制多多,现在就来分享我自用的两款RamDisk软件吧。

    1.Gavotte RamDisk     下载: http://www.kuaipan.cn/file/id_3157960603730010.htm

    这软件比较旧,但我的32bit Win7 多年以来一直用的是这个(要打开PAE)。至于64位,它的说明上说是支持64bit的,我没测试过。安装记得很简单,解压后打开ramdisk.exe设置参数后点安装、应用就ok,自动在根目录新建TEMP。非常稳定。

    2.Qsoft Ramdisk     下载: http://www.kuaipan.cn/file/id_3157960603730000.htm

    这个忘了在哪找到的了,我的64bit Win8用的是这个。安装相对复杂一点,解压后到设备管理器,随便点一下下面的各个硬件,然后点操作-添加过时硬件(上一步不点一下按操作后没有这个选项),再选中解压出来的inf文件一路next就装完了。装完之后解压出来的文件就可以删掉了(安装时已经复制到了系统目录)。

    安装好了之后就可以在设备管理器看到Ramdisk啦,然后进入右键属性的第2个选项卡就能进行相关设置了。也非常稳定。

    3.AMD Radeon Ramdisk    下载:AMD官网

    以上的两个都是共享软件,怎么能乱发破解软件呢?我后来找到了AMD出的免费的Ramdisk,对于普通个人用户可以建不大于4GB的Ramdisk,对多数人而言也够用了吧。

    4.OSFMount

    一个小巧的软件。这个主要用来mount一些镜像,后来发现它也可以创建ramdisk。

    5.SoftPerfect RAM Disk

    现在我的win8.1 x64就是用这个,简单小巧,个人用户免费,替代了之前用的相对臃肿的Radeon Ramdisk。

  • 对Win8输入法切换不爽的可以来看看

    用了Win8之后,之前Ctrl+Shift/Space的输入法切换方式变得不好用了,特别是Ctrl+Space只能暂时隐藏输入法,切换出去再切换回来输入法还在……

    Win8用到现在,我的方法是:

    1. 在语言选项的高级设置里,选择“允许我为每个应用窗口设置不同的输入法”
    2. 不用Ctrl+Space切换输入法,转而用Win+Space

    这样用起来感觉就差不多了。(还是有点不习惯啊,Win8我觉得最大的改进就是任务管理器了,其他各种不爽)

  • 【已送完】送Win8 WMC key

    前天晚上用几个邮箱申请了一次,一觉睡醒发现没收到邮件,又换了几个邮箱再次申请。

    没想到到今天为止共收到6个key…我用2个,剩下的4个送给前4名评论者。希望能帮到有需要的人吧。

     

    2012年12月1日,送完4个key,不用谢~

  • 【2012.3.3更新Win8消费者预览版】将Windows 8安装到移动硬盘

    首先下载核心工具:NT6快捷安装器v1.1。点此下载

    然后按以下步骤操作:

    [important]第一步:先选择install.wim文件(在安装盘的sources文件夹内)
    第二步:选择安装分区为移动硬盘的一个分区,勾选格式化,引导分区的选择与安装分区一致,勾选安装到USB移动硬盘,并且更改系统占用盘符与安装分区盘符一致
    第三步:点击开始安装,完毕后重启,在BIOS里设置从移动硬盘启动,之后就能从移动硬盘启动并安装win8了[/important]

     

    值得注意的是,在NT6快捷安装器里的“帮助”里提到了有关引导分区活动主分区的问题,这个看来不能忽视,当然也可以试试选择无视这个,直接安装,至少我是严格按照要求了。我的空闲移动硬盘分区情况如下图:

    注:K盘装的是grub4dos,可引导该盘下的winpe、ubuntu等系统。上图截自MiniTool Partition Wizard Home Edition 7.0,我也是用这个软件来设置活动主分区的。如果是普通的移动硬盘,直接把第一分区设成活动主分区装进去就行。

    在按“开始安装”之后的过程都结束之后,就可以重启,从移动硬盘启动了。

    本来我以为写了引导区重启会直接进win8的,结果竟然进了K盘的grub!!!原来是不影响的啊。在grub里选“Load Boot Manager to Boot Windows Vista/2008/7”之后就看到了“Windows Developer Preview”的启动界面了(没grub的应该选USB启动直接就能看到了),于是就是不算长的安装过程,貌似要重启3次左右,之后安装就完成了。

    移动硬盘中的系统启动速度是慢了点,比装在虚拟机是是烦了点,反正是尝鲜嘛,也没所谓了,顺便还利用了空闲着的移动硬盘,让它继续发光发热。最后上两张系统截图吧。

    感谢远景论坛网友提供的方法~

     

    ===============分割线========================

    ============2012年3月3日更新====================

    [notice]使用同样的软件,同样的方法安装Windows8 Consumer Preview 32bit成功。[/notice]上图。

  • 简简单单让Android也能支持mms流媒体协议

    简简单单让你的Android设备也能播放mms协议的多媒体内容~

    网上的各种方法似乎都比较复杂,而现在已经有软件可以实现了,就是安装一个播放器:达龙影音 Daroon Player   地址http://www.appchina.com/soft_detail_5058_0_10.html

    至于效果如何,就要看网速而定了。

  • 使用AVS脚本和Mediacoder压制SSA特效字幕视频

    前言

    给视频加.ssa特效字幕这个问题困扰了我几个小时,各种视频转换软件似乎都不怎么好用,字幕的显示效果一般都相当不理想。看网上的帖子走了不少弯路,后来在我的鼓捣之下,这个问题总算是能比较简单地解决了。

    需要的软件:

    1. AviSynth (好像不一定要装)
    2. Mediacoder (其他视频转换软件亦可)
    3. EasyAVS (帮助你编写简单的avs脚本)

    示例:

    1.编写一个简单的.avs文件。示例如下:

    LoadPlugin(“X:\xxxxx\xxxx\vsfilter.dll”)
    DirectShowSource(“X:\xxx.avi”, fps=23.976, convertfps=true)
    TextSub(“X:\xxx.ssa”)

    PS: 如果没有安装AviSynth的话,还要在前面加上LoadPlugin(“X:\xxxxx\xxxx\DirectShowSource.dll”)一行,不然会出错。DirectShowSource.dll和VSFilter.dll的下载

    用记事本编辑,另存为.avs格式即可。或者可以用上面提到的EasyAVS来生成.avs脚本,还可以让你了解一下AviSynth别的功能例如加黑边、改大小、加水印还有别的高级功能(其实我也不太了解)。

    2.预览一下.avs文件。我们可以用KMPlayer、PotPlayer、Splayer又或者直接在视频转换软件中预览。(没装AviSynth不能预览?)

    3.预览效果满意的话,就可以开始转换了。把它当作是一个普通的视频文件添加到MediaCoder之类的软件中就行了。

    注意事项:

    1. 预览avs脚本真的很重要,因为预览出来的效果基本上就是转换出来的效果。我开始预览的时候怎么都看不到画面,鼓捣了很久之后才发现AviSynth似乎不支持H.264格式的视频,后来把它转成avi之后再导入就没问题了。后来我发现如果不安装AviSynth的话好像用某些播放软件就播放不了了……但是不影响转码,所以还是照转吧。
  • WordPress 3.1 无法插入Flash的解决

      升级3.1也有一段时间了,但直到昨天才发现原有的插入媒体的功能在3.1消失了,直接插入HTML代码也没用,切换到可视化编辑器后就失效了。

    “插入/编辑内嵌媒体”的按钮在3.1消失了

      对于这个问题,感谢shamiao给我们带来了TinyMCE Media Plugin插件,安装此插件就能很方便地解决本问题。详情参阅其网站:http://shamiao.com/wordpress/wpplugin/new-wp-flash-plugin.htm