QNAP TS-409 Pro添加中文UTF8 locale
QNAP TS-409 Pro NAS中除了C和POSIX以外,不包含utf8的locale,PHP中也不包含iconv。即使是最新版本的3.0.1 Build 0708T也是如此。最直接的结果就是MLDonkey等软件的下载文件名出现乱码或者“_”符号。但QNAP却提供了手工安装locale的方法。但最新的3.0.1版本中,却没有locale和localedef文件,导致按照官方安装locale的方法,无法操作。经过论坛上的各种讨论,可以采用如下的方法来实现。
首先通过SSH登录NAS,找到locale和localedef命令,并创建对应的符号链接:
ll /mnt/HDA_ROOT/rootfs_2_3_6/usr/bin/locale* ln –s /mnt/HDA_ROOT/rootfs_2_3_6/usr/bin/locale /usr/sbin/locale ln –s /mnt/HDA_ROOT/rootfs_2_3_6/usr/bin/localedef /usr/sbin/localedef ll /usr/sbin/locale*
接下来下载Posix-locale文件(下载地址:http://wiki.qnap.com/w/images/7/77/Posix-locales.rar),解压后,上传到任意目录,并将LOCALES重命名为locales。为了节省系统盘空间,推荐在/share/HDA_DATA(或/share/MD0_DATA)中创建一个目录。
mkdir /share/HDA_DATA/i18n ln –s /share/HDA_DATA/i18n /usr/share/i18n cd /usr/share/i18n wget http://wiki.qnap.com/w/images/7/77/Posix-locales.rar unrar Posix-locales.rar mv LOCALES locales
创建/usr/lib/locale目录,该目录用于存储locale-archive文件(也可以使用符号链接)
剩下的步骤就可以创建新的locale了
localedef –i zh_CN –f UTF-8 zh_CN.utf8
如果需要其他的locale,只需要将zh_CN、UTF-8更换为其他的locale即可,具体的参数,可以查看/usr/share/i18n/locales和/usr/share/i18n/charmaps中的文件列表,最后的zh_CN.utf8可以自己指定。
检查新的locale
locale -a
此时即可生成新的zh_CN.utf8的locale,剩下的工作可以为locale-archive创一个符号链接,以便节省/分区的空间。
mv /usr/lib/locale/locale-archive /share/HDA_DATA/locale-archive ln –s /share/HDA_DATA/locale-archive /usr/lib/locale/locale-archive
特别说明
- QNAP NAS会在每次升级之后,重新在硬盘中写入操作系统,所以此过程需要在每次升级版本的时候操作一次。
- 为了避免在UTF8编码无效时,某些软件(如MLDonkey)出现乱码的问题,在操作/升级前,请先关闭所有的QPKG。
- HDA_DATA为不使用RAID配置的路径,如果启用RAID,则将更换为MD0_DATA。
关于MLDonkey
MLDonkey的启动脚本位于/share/HDA_DATA/.qpkg/MLDonkey/mldonkey.sh。该脚本通过/usr/bin/locale取得当前环境的LANG环境变量。我图省事儿,直接将此修改为:
export LANG=zh_CN.utf8




Recent Comments