HSIAO-YANG CHEN 发布的文章

原机的蓝牙设备4.0,不支持低功耗蓝牙外设,导致连接不上低功耗的蓝牙耳机。
修改BIOS白名单,完美支持AX210 mini-pcie无线网卡,实现wifi6e+BT5.2。
具体修改的设备ID如下,支持AX210(2725)、AR9285(002B)

EC10 7681 EC109581  ->  8680 2527 86802400
E414 6543 AA171106  ->  8C16 2B00 8C16AB30

对应的蓝牙也一并修改(蓝牙不改,验证不过)

5B10 65E0   ->  F30C 0030
CA04 0720  ->  8780 3200

编程器固件
E430_H0ETA0WW.zip

固定IP使用旁路的网关,自由分配的IP使用主路由网关。
1.把DHCP服务器,设置主路由的地址和对应的DNS。
微信图片_20231229010309.png
2.把需要从旁路由出去的设备设置成静态地址分配。
微信图片_20231229010501.png

--- package/network/services/dnsmasq/files/dnsmasq.init
+++ package/network/services/dnsmasq/files/dnsmasq.init
@@ -339,9 +339,9 @@
 
     if [ $DNSMASQ_DHCP_VER -eq 6 ]; then
         addrs="${ip:+,$ip}${hostid:+,[::$hostid]}"
-        xappend "--dhcp-host=$macs${duids:+,$duids}$hosttag$addrs$nametime"
+        xappend "--dhcp-host=set:ssr,$macs${duids:+,$duids}$hosttag$addrs$nametime"
     else
-        xappend "--dhcp-host=$macs$hosttag${ip:+,$ip}$nametime"
+        xappend "--dhcp-host=set:ssr,$macs$hosttag${ip:+,$ip}$nametime"
     fi
 }
 
@@ -951,6 +951,17 @@
     [ ! -d "$dnsmasqconfdir" ] && mkdir -p $dnsmasqconfdir
     xappend "--user=dnsmasq"
     xappend "--group=dnsmasq"
+
+    br_lan="$( ifconfig |grep "Bcast" | sed 's/.*addr://;s/Bcast.*//' )"
+    br_lan6="$( ifconfig |grep -A1 "Bcast" |grep inet6.*addr| sed 's/.*inet6.*addr://;s/\/.*//' )"
+    xappend "--dhcp-option=tag:ssr,option:router,$br_lan"
+    xappend "--dhcp-option=tag:ssr,option:dns-server,$br_lan"
+    xappend "--dhcp-option=tag:ssr,option:nis-server,$br_lan"
+    xappend "--dhcp-option=tag:ssr,option:ntp-server,$br_lan"
+    xappend "--dhcp-option=tag:ssr,option6:dns-server,$br_lan6"
+    xappend "--dhcp-option=tag:ssr,option6:nis-server,$br_lan6"
+    xappend "--dhcp-option=tag:ssr,option6:sntp-server,$br_lan6"
+
     echo >> $CONFIGFILE_TMP
 
     config_get_bool enable_tftp "$cfg" enable_tftp 0


--- feeds/luci/modules/luci-base/po/zh-cn/base.po
+++ feeds/luci/modules/luci-base/po/zh-cn/base.po
@@ -838,8 +838,9 @@
 "\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
 "servers to clients."
 msgstr ""
-"设置 DHCP 的附加选项,例如设定 \"<code>6,192.168.2.1,192.168.2.2</code>\" 表"
-"示通告不同的 DNS 服务器给客户端。"
+"设置 DHCP 的附加选项,例如设定 \"<code>3,192.168.2.1</code>\" 表"
+"示指定客户端的网关地址;\"<code>6,210.2.4.8,192.168.2.1</code>\" 表"
+"示指定客户端的 DNS 服务器地址。"
 
 msgid "Delete"
 msgstr "删除"

补丁下载地址:02_fixed_router_dns_dnsmasq.zip

UBNT的稳定性一直不错,特别是3.6.1的版本,最新的4.0.4大数据传输后,第二天老死机,连接不上。此文就针对3.6.1进行讲解怎么分离固件和最终生成固件。

1、下载​SDK.UBNT.v3.6.1.4873.tar.bz2,进行解压

tar xvf​​SDK.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透视表处理工具,批量将透视表数据转换成完整的记录行,方便数据的二次使用。

微信图片_20220819162216.png

基于vba宏编写,打开运行,需要启用宏,才能正常工作。

微信图片_20220819164549.png

处理代码如下:

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

范例下载