发布于2016的文章

Mar 23

一个是做 DNSSEC 的
auto-trust-anchor-file: "/opt/etc/unbound/root.key"
一个是
use-caps-for-id: yes
开启这两个参数任意一个,如果转发的 DNS (若干)上游服务器稍有“不遵循规范”的就会返回空值:

wrong 0x20-ID in reply qname
......
Capsforid fallback: getting different replies, failed
......

具体没做细研究了!

Use 0x20-encoded random bits in the query to foil spoof
attempts. This perturbs the lowercase and uppercase of query
names sent to authority servers and checks if the reply still
has the correct casing. Disabled by default. This feature is
an experimental implementation of draft dns-0x20.


Mar 18

1. 下载 JDK,用 7-zip 解压出 tools.zip;
2. 解压 tools.zip 文件到目标目录,例如: e:/JavaJDK;
3. 运行:
for /R %f in (.\*.pack) do @"D:\JavaJDK\bin\unpack200" -r -v -l "" "%f" "%~pf%~nf.jar"
4. 添加系统环境变量 JAVA_HOME 以及相关 bin 路径;
5. 添加注册表相关值;
x86:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft]
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8]
"JavaHome"="E:\\JavaJDK"

x64:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\JavaSoft]
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment]
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment\1.8]
"JavaHome"="E:\\JavaJDK"

这样系统内基于 Java 的程序都能正常运行了,开发也没问题。


Jan 05

想利用 DD-WRT 支持 Buffalo WZR-1750DHP 全部 512M 内存的固件来做编译机,安装了 Tomatoware。

编译一些无需通过 automake/autoconf 生成 Makefile 的源程序都没啥问题,但是一旦编译通过 autogen.sh (应该调用 automake 等程序)生成的 Makefile 就会直接出错,信息类似:

[goflex@GoFLEX:/home/local/goflex/work/shairport-sync_git 35%] ~ make
make all-recursive
make[1]: Entering directory '/home/local/goflex/work/shairport-sync_git'
Making all in man
Makefile:518: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/local/goflex/work/shairport-sync_git'
Makefile:371: recipe for target 'all' failed
make: *** [all] Error 2
[goflex@GoFLEX:/home/local/goflex/work/shairport-sync_git 36%] ~

参考:

https://forum.openwrt.org/viewtopic.php?id=60605

https://github.com/lancethepants/tomatoware/issues/18#issuecomment-168871785

目前没什么好的解决办法,好在出错的地方有些规律,就是在 Makefile 中 dot_seen=no; 这句上面的反斜杠“\”需要去掉;写了个脚本做提示:

#!/bin/sh

curr_dir=`pwd`

bad_makefile=""
bad_makefile_line=""

bad_makefile_line=$(sed -n '/dot_seen=no;/=' `grep -lr 'dot_seen=no;' $curr_dir`)
bad_makefile=$(grep -lr 'dot_seen=no;' $curr_dir)

for bfile in $bad_makefile; do
    echo $bfile
done

for line in $bad_makefile_line; do
    fi_line="$(($line - 1))"
    echo $fi_line
done

echo "sed -i 'LINEs/\//' FILE"

它会列出需要修改的文件,所在行数,提示用:

sed -i 'LINEs/\//' FILE

去修改。

参考上面的帖子链接,最终确认是 DD-WRT 自带 /bin/bash 的问题,解决方法是:在 ./configure 之前建立一个环境变量:

export CONFIG_SHELL=/mmc/bin/bash

用来覆盖配置文件建立时默认使用的 /bin/bash 即可。


Jan 03

就是记录一下,别期望太高,暂时推荐使用的是 DNSPod,PandaDNS 和 AliDNS。

OpenNIC 151.236.20.236,106.186.17.181;
PandaDNS 182.254.158.191,120.27.30.176
dnspod 119.29.29.29
oneDNS 112.124.47.27,114.215.126.16
HelloDNS 123.56.46.123,121.40.144.82
114 114.114.114.114,114.114.115.115
AliDNS 223.5.5.5,223.6.6.6
BaiduDNS 180.76.76.76
DNSPod DNS+ 119.29.29.29,182.254.116.116
CNNIC DNS 1.2.4.8,210.2.4.8
DNS 派 101.226.4.6,218.30.118.6
DNS 派 联通 123.125.81.6,140.207.198.6
Google DNS 8.8.8.8,8.8.4.4
OpenDNS 208.67.222.222,208.67.220.220
V2EX DNS 199.91.73.222,178.79.131.110

Apple TV DNS
上海电信 180.153.225.136
杭州电信 115.29.189.118
广东电信 203.195.182.150
北方联通 118.244.224.124


Jan 02

2024 更新:

最快的方法还是在虚拟机中交叉编译, 而且最新的 1.2x 版本如果在路由器编译会很容易内存溢出。

下载源码,解压后在 Alpine/Debian 虚拟机中执行:

cd /root/src/go/src
GOARCH=arm GOARM=5 GOOS=linux ./make.bash -v

完成后用 go/bin/linux_arm/ 下的文件替换 go/bin/ 下面的 go 和 gofmt 两个同名文件;删除 go/pkg/tool/linux_amd64 目录,然后打包:

cd ../bin
mv linux_arm/* ./
rm -rf linux_arm/
cd ../pkg
rm -rf tool/linux_amd64/
tar --numeric-owner -czf /root/src/go1.22.5.linux-armv7.tar.gz -C /root/src go

复制到路由器上:

rm -fr /mnt/data/go
tar -xzf /mnt/data/go1.22.5.linux-armv7.tar.gz -C /mnt/data
export PATH=/mnt/data/go/bin:$PATH
go version

------------------------------------------------------------------------------------------------------------------------------

可以不看

编译后的版本在 Tomato 这种老内核上运行没问题,支持(基于博通 BCM 4708/4709 的 Asus RT-AC68U/P/Netgear R7000/6300v2/6250/小米) 等路由器。

参考: How to compile Go on any ARM device





[2/2]  < 1 2