openwrt使用glibc時區無法生效問題解決方法

由於項目需要,將openwrt的uclibc切換到了glibc,但是使用中發現配置的時區無法生效。後來查找資料發現uclibc和glibc對時區的使用有差異:

1.對於uclibc,重要文件是/etc/TZ,實際連接到/tmp/TZ,修改時區後,會根據配置文件system中的timezone的option修改/tmp/TZ

2.對於glibc,重要文件是/etc/localtime,實際連接到/tmp/localtime,而/tmp/localtime也是連接文件,根據配置文件system中的zonename的option修改該連接

基於以上,使用glibc後,需要進行一下修改來生效時區:

1.make menuconfig,選中Utilities->zoneinfo中的所有package,會將時區相關的信息文件安裝到/usr/share/zoneinfo/,/tmp/localtime連接到該目錄下相應文件

2./etc/init.d/system中system_config函數將ln -s "/usr/share/zoneinfo/$zonename" /tmp/localtime修改爲ln -sf "/usr/share/zoneinfo/$zonename" /tmp/localtime,強制建立連接,可以使系統完全啓動後也能修改時區並生效

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章