Pakiety kmod-nls-cp1250, kmod-nls-iso8859-2 są dostępne normalnie w repozytorium. Pakiet kmod-nls-cp852 dostępny jest pod adresem http://eko.one.pl/openwrt/kamikaze/8.09_rc2/kmod-nls-cp852_2.4.35.4-brcm-2.4-1_mipsel.ipk (Broadcom, 2.4)
NLS czyli Native Language Support to strony kodowania dla systemów plików w jądrze linuksa. W USA używa się kodowania ASCII, jednak ono obsługuje tylko alfabet używany w USA. By polskie ogonki prawidłowo się wyświetlały należy zastosować rozszerzonego zestawu znaków. Żeby nie było to zbyt proste istnieją 3, a nawet 4 strony kodowe zawierające polskie znaki:
W oficjalnych repozytoriach znajdują się jedynie pakiety z kodowaniem UTF8 i kodowaniem dla Europy Zachodniej: 850 i ISO 8859-1.
Stabilne źródła Whiterussian 0.9 najlepiej pobrać z repozytorium SVN:
$ svn co https://svn.openwrt.org/openwrt/branches/whiterussian/
Po wykonaniu tej operacji w katalogu ./whiterussian/openwrt mamy ściągnięte źródła.
Obiektem naszych zainteresowań będą pliki:
Oraz pliki:
Których jeszcze nie ma więc zaczniemy od ich stworzenia, ale najpierw co one oznaczają? Są to pliki, które zawierają tylko nazwę pakietu z modułem kernela, jego opis, sekcję w której się znajduje i priorytet (tzn. czy ma być domyślnie zaznaczony). Zawartość plików:
Package: kmod-nls-iso8859-2 Priority: optional Section: sys Description: Kernel module for ISO 8859-2 (Latin 2)
Package: kmod-nls-cp852 Priority: optional Section: sys Description: Kernel module for NLS Codepage 852 (Central Europe)
Package: kmod-nls-cp1250 Priority: optional Section: sys Description: Kernel module for Windows Codepage 1250 (Central Europe)
Konfiguracja pliku openwrt/target/linux/linux-2.4/config/brcm. Jest to po prostu plik .config jądra z OpenWRT. Należy w nim dopisać lub odhashować te linijki:
CONFIG_NLS_CODEPAGE_852=m CONFIG_NLS_CODEPAGE_1250=m CONFIG_NLS_ISO8859_2=m
Ważną rzeczą jest zmodyfikowanie pliku: openwrt/target/linux/linux-2.4/Makefile Zawiera ona skrypty budowania pakietów ipkg. W pliku Makefile należy odszukać miejsce, w którym jest skrypt np. do CODEPAGE_850 (linijka 221) i wkleić po nim (za linijką 223):
$(eval $(call KMOD_template,NLS_CP852,nls-cp852,\ $(MODULES_DIR)/kernel/fs/nls/nls_cp852.o \ ,CONFIG_NLS_CODEPAGE_852,,40,nls_cp852.o)) $(eval $(call KMOD_template,NLS_CP1250,nls-cp1250,\ $(MODULES_DIR)/kernel/fs/nls/nls_cp1250.o \ ,CONFIG_NLS_CODEPAGE_1250,,40,nls_cp1250.o)) $(eval $(call KMOD_template,NLS_ISO8859_2,nls-iso8859-2,\ $(MODULES_DIR)/kernel/fs/nls/nls_iso8859-2.o \ ,CONFIG_NLS_ISO8859_2,,40,nls_iso8859-2.o))
Plik openwrt/target/linux/Config.in jest dla konfiguratora OpenWRT. Należy w nim dopisać informacje o modułach:
config BR2_PACKAGE_KMOD_NLS_CP852 tristate "Codepage 852 (Central Europe)" default m help Kernel module for NLS Codepage 852 (Central Europe) config BR2_PACKAGE_KMOD_NLS_CP1250 tristate "Codepage 1250 (Central Europe)" default m help Kernel module for Windows Codepage 1250 (Central Europe) config BR2_PACKAGE_KMOD_NLS_ISO8859_2 tristate "ISO 8859-2 (Latin 2; Central European Languages)" default m help Kernel module for ISO 8859-2 (Latin 2)''
Te linijki najlepiej wkleić gdzieś pod 340 linijką, gdzie jest o kodowaniach 850 i ISO 8859-1.
Wchodzimy do katalogu ./whiterussian/openwrt (por. Pobranie stabilnych źródeł Whiterussian 0.9) i uruchamiamy:
$ make menuconfig
Możemy tam dokonać różnych zmian, które właściwie są zbędne ponieważ w pliku openwrt/target/linux/Config.in daliśmy wszędzie „default m”. Wychodzimy z zapisaniem zmian w konfiguracji.
Pozostaje nam tylko skompilować źródła. Będąc w katalogu ./whiterussian/openwrt (por. Pobranie stabilnych źródeł Whiterussian 0.9) wydajemy polecenie:
$ make
Potrwa to kilka godzin w zależności od szybkości komputera i łącza internetowego. Skrypt sam ściągnie potrzebne źródła jądra linuksa i toolchain. Po udanej kompilacji w katalogu ./whiterussian/openwrt/bin/packages znajdują się wszystkie skompilowane pakiety, w tym gotowe do instalacji nasze: