HSIAO-YANG CHEN 发布的文章
UBNT 3.6.1 修改 ROOTFS,增加vlmcsd激活服务器
UBNT的稳定性一直不错,特别是3.6.1的版本,最新的4.0.4大数据传输后,第二天老死机,连接不上。此文就针对3.6.1进行讲解怎么分离固件和最终生成固件。
1、下载SDK.UBNT.v3.6.1.4873.tar.bz2,进行解压
tar xvfSDK.UBNT.v3.6.1.4873.tar.bz2
2、进入./apps/gpl/mkfwimage/src,运行make,生成mkfwimage、fwsplit。
mkfwimage: 用于创建固件的格式,包含kernel、cramfs(rootfs)、RedBoot;
fwsplit:用于分离固件,把固件进行逆向操作,得到固件各分区的内容。
3、进入./kernel/linux-kernel-2.4/scripts/squashfs,运行make,生成mksquashfs。
mksquashfs:用于创建rootfs分区的格式文件;
但还缺少解压squashfs格式的程序,这个好办,只要apt-get install squashfs 就可以安装最新的squashfs程序包,用unsquashfs 命令,进行解压操作。
4、mkfwimage、fwsplit、mksquashfs、unsquashfs 四大工具都备齐,就可以按以下操作,进行固件的分离、解压、修改、再合并生成固件。
4.1、固件的分离
fwsplit NanoStation2-v3.6.1.build4866.bin
将得到NS2.ar2316.v3.6.1.4866.110330.1244.cramfs、NS2.ar2316.v3.6.1.4866.110330.1244.kernel、
NS2.ar2316.v3.6.1.4866.110330.1244.RedBoot和NS2.ar2316.v3.6.1.4866.110330.1244.txt 四个文件,其中前三个为分区文件,最后一个记录固件的分区位置。
4.2、NS2.ar2316.v3.6.1.4866.110330.1244.cramfs就是rootfs系统,且为squashfs文件格式。用unsquashfs命令,进行解压,就可以看到root目录下的一切。
4.3、接下来就按自己的需求添加程序、修改配置,就不多说了。
4.4、把修改好的root目录,进行打包,参数参照./rootfs/create_image.sh:
# finally make the image
${MKSQUASHFS} ${stagingdir} $img -be -all-root -noappend
chmod 755 $img
这样就生成了rootfs分区数据。
4.5、修改NS2.ar2316.v3.6.1.4866.110330.1244.txt,把NS2.ar2316.v3.6.1.4866.110330.1244.cramfs
,替换成新生成的rootfs分区文件名。
4.6、合并各分区,生成固件,参照./rootfs/Makefile:
$(MKFWIMAGE) -i $${FW_INFOFILE} -v $(VER_LS) -o ${VER_LS}$${LAYOUT_SUFFIX}.bin;
这里的$${FW_INFOFILE},指代的就是NS2.ar2316.v3.6.1.4866.110330.1244.txt配置文件;$(VER_LS),指代的是“NS2.ar2316.v3.6.1.4866.110330.1244”字符串,最后一个就是生成的固件名称。
PS:这样生成的固件头为“OPEN”字符串,可以对mkfwimage程序进行修改,把"OPEN"替换成“UBNT”,这样生成的固件头就和官方的更一致了。
最后送上修改好的固件:https://pan.baidu.com/s/1miprlES
透视表转记录(完整数据行)
这个一个简单的EXCEL透视表处理工具,批量将透视表数据转换成完整的记录行,方便数据的二次使用。
基于vba宏编写,打开运行,需要启用宏,才能正常工作。
处理代码如下:
Sub copy_Click()
'
' copy_Click 宏
'
' 快捷键: Ctrl+r
'
'定义 起始和结束单元变量
Dim start_range, end_range As String
'对起始和结束单元单元格进行赋值,取A4和B4的值
start_range = Range("A4").Value
end_range = Range("B4").Value
'定义 4个行列偏移量,相对于A1单元
Dim c1, r1, c2, r2 As Long
c1 = Range(start_range).Column - 1
r1 = Range(start_range).Row - 1
c2 = Range(end_range).Column - 1
r2 = Range(end_range).Row - 1
'行循环,从起始行到结束行
For i = r1 To r2
'列循环,从起始列到结束列
For j = c1 To c2
'当本行单元格内容为空,且上行单元格不为空时,将上行单元格赋值到本行单元格
If Range("A1").Offset(i, j) = "" And Range("A1").Offset(i - 1, j) <> "" Then
' Range("A1").Offset(i, j).Select
Range("A1").Offset(i, j) = Range("A1").Offset(i - 1, j)
End If
'相当于 j++
Next j
'相当于 i++
Next i
'操作完成输出提示,对话框
MsgBox ("已整理完毕!")
End Sub
WinFlash 强刷版
WinFlash2.exe 移除了BIOS类型判断,解决了改刷 DELL SYSTEM 后,再次刷机提示“OnBoard BIOS Not Award BIOS”问题!
由于移除了BIOS类型判断,开刷前请务必确认主板BIOS类型,避免酿成悲剧!
下载地址:
http://pan.baidu.com/share/link?shareid=1349327649&uk=1495204045
QDR68卡刷包(mione_plus-ota-QDR68_20121202.signed.zip)
1、增加来去电归属地查询
2、支持音量键唤醒
3、移植CM9的Trebuchet启动器
4、移植CM9的DSP管理器
5、移植Apollo播放器
6、移植下拉快捷开关
7、修改为2%的环形电量指示器
8、增加MIUI文件管理(可以修改系统文件及FTP文件管理)
9、增加Superuser(ROOT管理)
a、增加拨号T9拼音检索联系人
b、移植CM9短信,改“添加联系人”为有手机号的联系人(原为常联系人)
c、精简掉 MusicFX.apk、Maps.apk、Music.apk、Talk.apk
刷机方法参照:小米手机6种刷机详细教程
文件名:mione_plus-ota-QDR68_20121202.signed.zip,访问地址:
http://pan.xiaomi.com/file/id_67101150238736728.htm