LoginSignup
0
0

More than 5 years have passed since last update.

Tiny Core Linux 4.7.7のcp932対応

Last updated at Posted at 2016-11-15

Tiny Core Linux 4.7.7をHDDにインストール&日本語入力でインストールしたLinuxでUSBメモリをマウントしてみたところ日本語が化けているようです。unicode対応のrxvtをインストールしてbusyboxをunicode対応にしても、USBメモリはFATでSJIS(cp932)だったため化けてしまうようです。cp932に対応するにはcp932に対応したカーネルモジュールを作成しインストールする必要がある事が分かりましたので、作成&インストールに挑戦してみたいと思います。

※Tiny Core Linuxでは起動時にホームディレクトリのパーミッションやオーナーを強制的に変更してしまいます。作業ディレクトリとしてホームディレクトリ/home/tcを使う場合は気をつけて下さい。可能であれば別のディレクトリを使う事をお勧めいたします。

事前準備

カーネルモジュールをコンパイルするために必要なソースコードとパッケージをダウンロード&インストールします。

カーネルモジュールのコンパイルにはcompiletc.tczがあればOKなようですのでインストールします。

$ tce-load -wi compiletc

カーネルモジュールのソースコードを取得します。

$ wget http://distro.ibiblio.org/tinycorelinux/4.x/x86/archive/4.7.7/src/kernel/linux-3.0.21-patched.txz
$ wget http://distro.ibiblio.org/tinycorelinux/4.x/x86/archive/4.7.7/src/kernel/config-3.0.21-tinycore

カーネルモジュールのソースコードを解凍します。

$ tar xvf linux-3.0.21-patched.txz

cp932対応にするために設定ファイルを変更します。

$ cd linux-3.0.21
$ cp ../config-3.0.21-tinycore .config
$ vi .config
.config
@@ -4317,7 +4317,7 @@
 # CONFIG_NLS_CODEPAGE_869 is not set
 # CONFIG_NLS_CODEPAGE_936 is not set
 # CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
+CONFIG_NLS_CODEPAGE_932=m
 # CONFIG_NLS_CODEPAGE_949 is not set
 # CONFIG_NLS_CODEPAGE_874 is not set
 # CONFIG_NLS_ISO8859_8 is not set

コンパイルします。

$ make oldconfig
$ make fs/nls/nls_cp932.ko

パッケージの作成とインストール

パッケージに必要なファイルを集めます。

$ cd ..
$ mkdir -p nls_cp932/lib/modules/`uname -r`/kernel/fs/nls
$ cp linux-3.0.21/fs/nls/nls_cp932.ko nls_cp932/lib/modules/`uname -r`/kernel/fs/nls
$ mkdir -p nls_cp932/usr/local/tce.installed/

インストールスクリプトを作成します。

$ vi nls_cp932/usr/local/tce.installed/nls_cp932
nls_cp932/usr/local/tce.installed/nls_cp932
#!/bin/sh

echo kernel/fs/nls/nls_cp932.ko: >> /lib/modules/`uname -r`/modules.dep

/sbin/insmod /lib/modules/`uname -r`/kernel/fs/nls/nls_cp932.ko

sed -i "s/umask=000/umask=000,iocharset=utf8/" /usr/sbin/rebuildfstab
sed -i "/vfat/ s/umask=000/umask=000,codepage=932/" /usr/sbin/rebuildfstab

インストールスクリプトに実行権限を付与します。

$ chmod 755 nls_cp932/usr/local/tce.installed/nls_cp932

パッケージ化します。

$ rm -f nls_cp932.tcz
$ mksquashfs nls_cp932 nls_cp932.tcz
$ md5sum nls_cp932.tcz > nls_cp932.tcz.md5.txt

起動時にパッケージが読み込まれるようにします。

$ /bin/cp -f nls_cp932.tcz* /mnt/sda1/tce/optional/
$ echo nls_cp932.tcz >> /mnt/sda1/tce/onboot.lst

動作チェック

再起動し、USBメモリをマウントしls -Alなどのコマンドを試して日本語が化けていない事を確認します。この時、ターミナルはurxvtである必要があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0