openwrt ls命是busybox提供的,中文通通显示为???,google了一些资料,重新配置编译了一下busybox,中文能正常显示了。
先搭建好交叉编译环境(不在本文讨论范围内),我用的openwrt 12.09 rc1 的源码路由器是WR703N。进入源码目录make menuconfig,进入Base System -> Busybox -> Busybox Settings -> General Configuration 配置页面,按下面所示配置busybox(195101的值是根据参考文章中的十六制值得来的)保存配置。
[*] Support Unicode │ │ [ ] Check $LANG environment variable │ │ (195101) Character code to substitute unprintable characters with │ │ (195101) Range of supported Unicode characters │ │ [*] Allow zero-width Unicode characters on output │ │ [*] Allow wide Unicode characters on output │ │ [*] Bidirectional character-aware line input │ │ [*] In bidi input, support non-ASCII neutral chars too │ │ [*] Make it possible to enter sequences of chars which are not Unicode
然后执行make package/busybox/compile,编译完成后在build_dir/target-mips_r2_uClibc-0.9.33.2/busybox-1.19.4/ 找到新生成的busybox可执行文件,替换掉openwrt的/bin/busybox文件即可。
下面是我自己编译的版本,用之前最好先测试,比如把busybox传到/root目录下,创建ls软链接 ln -s /root/busybox /root/ls,然后执行/root/ls <含中文文件名的文件夹> ,如果可以正常执行并且中文显示正常,再替换掉/bin/busybox。
帮了我很大的忙,3Q。
195101这个值的设置很重要
亲能帮忙编译个 barrier_breaker 14.07 的 wr720n v3 的 busybox 么。。。编译出错了。。。[openwrt@localhost barrier_breaker]$ make package/busybox/compile V=99make
: Entering directory `/home/openwrt/barrier_breaker’make
: Entering directory `/home/openwrt/barrier_breaker/package/libs/toolchain’cp -fpR /home/openwrt/barrier_breaker/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libuClibc-*.so /home/openwrt/barrier_breaker/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libcrypt-*.so /home/openwrt/barrier_breaker/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libm-*.so /home/openwrt/barrier_breaker/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libpthread-*.so /home/openwrt/barrier_breaker/build_dir/target-mips_34kc_uClibc-0.9.33.2/toolchain/cp: cannot stat `/home/openwrt/barrier_breaker/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libuClibc-*.so’: No such file or directorycp: cannot stat `/home/openwrt/barrier_breaker/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libcrypt-*.so’: No such file or directorycp: cannot stat `/home/openwrt/barrier_breaker/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libm-*.so’: No such file or directorycp: cannot stat `/home/openwrt/barrier_breaker/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib/libpthread-*.so’: No such file or directorymake
: *** [/home/openwrt/barrier_breaker/build_dir/target-mips_34kc_uClibc-0.9.33.2/toolchain/.built] Error 1make
: Leaving directory `/home/openwrt/barrier_breaker/package/libs/toolchain’make
: *** [package/libs/toolchain/compile] Error 2make
: Leaving directory `/home/openwrt/barrier_breaker’make: *** [package/busybox/compile] Error 2
先编译toolchain:make toolchain/compile
额谢谢。。。这个编译了但时间有点长我就挂 screen 了,然后测试 xware 的时候发现 wr720n 承受不住自动重启了。。。然后也没去看编译结果,现在换了树莓派,周末再试下。
busybox 编译成功了?
不了直接换树莓派了。。原生支持中文
就是挂载 ntfs 分区还是有问题,中文还乱码
用这条命令试试:mount -o iocharset=utf8 /dev/sdx /mnt/sdx 注意替换一下x
要是还不行,可能是缺少中文locale 导致的
额 win 下编码不应该是 cp936 么
读取和写入的时候要让ntfs做cp936和utf8之间的转换
好的可以了谢啦