背景
虽然 QNAP TS-219P 本身自带有 3322 的 DDNS 功能,不过在使用的过程中,发现经常出现更新 IP 出错的情况。查看它的使用机制,是先获取外网 IP,将外网 IP 与之前保存的外网 IP 进行比较,如果两者不同则更新 DDNS,否则,不做任何操作。
而在使用过程中,偶尔会出现,检测外网 IP 不同,并申请更新 DDNS 的情况。在更新失败的情况,QNAP 还是会保存新的外网 IP,这就导致到,3322 的 DDNS 在下次更换 IP 之前不会被更新。由于平时写程序,很多代码都放在 QNAP 的服务器上,不能访问的话,着实很郁闷!!!所以需要找一种不用 QNAP 自带方式,但是可以更新 IP 的办法。
解决办法
1) 挂载启动盘符到 /tmp/config
mount -t ext2 /dev/mtdblock5 /tmp/config
2) 创建启动盘上的 autorun.sh 文件
touch /tmp/config/autorun.sh
3) 将文件的内容修改为如下:
#!/bin/sh
/share/HDA_DATA/.qpkg/autorun.sh
4) 保存文件,并设置可执行权限
chmod +x /tmp/config/autorun.sh
5) 在 /share/HDA_DATA/.qpkg/ 路径下创建 autorun.sh 文件
/share/HDA_DATA/.qpkg/autorun.sh
6) 设置可执行属性
chmod +x /share/HDA_DATA/.qpkg/autorun.sh
7) 修改 /share/HDA_DATA/.qpkg/autorun.sh 文件,添加我们需要的计划任务
#!/bin/sh
tmpfile=/tmp/crontab.tmp
crontab -l | grep -vi “wget” > $tmpfile
echo “*/10 * * * * /usr/bin/wget -c -O /dev/null http://username:password@www.3322.org/dyndns/update?hostname=username.3322.org” >> $tmpfile
crontab $tmpfile
rm $tmpfile
/etc/init.d/crond.sh restart
8) 重新启动设备,执行如下命令查看设置是否生效
crontab -l
参考资料
http://wiki.qnap.com/wiki/Autorun.sh
http://wiki.qnap.com/wiki/Add_items_to_crontab
最近在网上看了很多关于 MacOS X Leopard 的资料,看得有点心血来潮,有点想装 MacOS 的冲动。不过冲动归冲动,看完了以后发现,要想安装 MacOS X Leopard 还真有点麻烦,因为驱动着实是一个大问题,而且貌似 Intel 3945ABG 现在还无解,得更换无线网卡才行。但还是不死心,每天乐此不疲的翻看如何安装 MacOS 的资料,结果又发现了很多关于一台机安装 Vista + Ubuntu + Leopard 的教程。于是乎,又跑去翻看 Ubuntu 的资料,结果在搜索的时候,发现了 Linux QQ。没想到 Tencent 现在竟然真的推出 Linux 版本的 QQ 了。
话说当年,大家都鄙视 Tencent 为什么不出一个 Linux 下面的版本,现在终于有了。赶紧试用了一下,感觉还是很不错的。基本的聊天通信功能都有了,个人和群组也都支持。不过一些高级的功能还不完善,不过总的来说还是很好的。现在这个版本,跟 TM 比较类似,希望能尽快增加一下群共享,备注这些功能。
附:安装步骤
- 去腾讯的官方网站,下载最新的 Linux QQ 1.0 Beta1。因为我自己用的是 Ubuntu 8.10,所以,下载了一个 DEB 的软件包。
- 下载完成后,双击运行,按照提示安装。
- 在菜单中选择互联网,腾讯QQ
是的,现在在 Ubuntu 下用QQ就是这么简单。赶紧把 MacOS X Leopard 弄好,就可以体验一下 Mac QQ 了。:)
今天把 YoMax 移植到 Linux 平台了,还算顺利,一切都进行的不错。感觉很好,很开心。在 Linux 下面跑的速度很快,效果很好。
其中有几个地方修改了一下:
1)_strnicmp,在 Linux 的标准 C 库里面没有这个函数,用 strncasecmp 替换就可以了
2)_mkdir,同样,Linux 下的 C 库也没有这个函数,需要使用 mkdir。需要用到头文件 <sys/stat.h>,而且还要设置权限,跟 Windows 平台下不大一样。详细的使用说明,可以参考 GNU C Library 手册中创建目录部分的内容。
3)还有就是简单的类型定义之类的细节不同了,以及 main 入口函数的声明不大一样
具体的参数和环境:
-
- Windows XP with Service Pack 3
- Visual Studio 2005 with Service Pack 1
-
- Ubuntu 8.04.1 (Hardy Heron) with 2.6.24-19-generic
- g++ v4.2.3 (Ubuntu 4.2.3-2ubuntu7)
因为在 Linux 下,大部分处理 MP3 的程序,都是用了 libid3tag 来处理 MP3 文件的 ID3 标签的。而因为安装的系统的问题,大部分人都会使用 UTF-8 编码。这样就导致到 GB2312/GB18030/GBK 编码的 MP3 文件在 Linux 下显示都是乱码。如果文件不多的话,手动修改也没有什么大碍,但是有鉴于本人比较懒,所以再次请出 Google,上网搜索解决方案。
经过一番搜索之后,找到了周枫的个人主页,以及他网站上公布的一个叫做 ID3iconv 的小工具。使用这个小工具,可以进行 ID3 编码的转换。需要注意的是,这个程序是用 Java 编写的。所以我们还需要安装一个 Java Runtime:
sudo apt-get install sun-java6-jre
安装完成后可以用如下命令来运行该程序:
java -jar id3iconv-0.2.1.jar
这里我们使用 -e 和 -remove1 两个参数,其中 -e 用来指定原始的编码格式,-removev1 用来移除 v1 版本的标签:
java -jar id3iconv-0.2.1.jar -e gbk -removev1 *.mp3
如果连子目录内的文件也需要转换的话,使用如下命令:
find . -iname "*.mp3" -execdir java -jar id3iconv-0.2.1.jar -e gbk -removev1 {} \;
这个转换工作在 Ubuntu Hardy 8.04 上测试通过。