1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Tiny Core Linux 4.7.7のbusyboxの日本語対応

Last updated at Posted at 2016-11-15

Tiny Core Linux 4.7.7で日本語入力で4.7.7をインストールして日本語入力できるようになったのですが、urxvtで日本語入力して削除すると半分ずつ文字が削除されてしまうようです。どうもbusyboxがunicode対応でないのが原因ぽいようです。busyboxをunicode対応にしてみたいと思います。※busyboxをunicode対応にする以外にもbashを使うという手もあるようです。

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

事前準備

必要なパッケージのインストールと必要なファイルをダウンロードし解凍します。

コンパイルに必要となるパッケージをインストールします。

$ tce-load -wi compiletc
$ tce-load -wi ncurses-dev

busyboxのソースコードをダウンロードします。

$ wget http://distro.ibiblio.org/tinycorelinux/4.x/x86/archive/4.7.7/src/busybox-1.20.2-config
$ wget http://distro.ibiblio.org/tinycorelinux/4.x/x86/archive/4.7.7/src/busybox-1.20.2.tar.bz2
$ wget http://distro.ibiblio.org/tinycorelinux/4.x/x86/archive/4.7.7/src/busybox-1.20.2_depmod.patch

busyboxのソースコードを解凍しパッチをあてます。

$ tar xvfj busybox-1.20.2.tar.bz2
$ cd busybox-1.20.2
$ patch -p1 < ../busybox-1.20.2_depmod.patch

コンパイル

コンパイルの前にunicode対応にするために設定ファイルを変更します。この時点で不要となるモジュールを無効にして小さくする事もできます。例えばinetdやnfsは通常なら使わないと思いますので、無効すると少し小さくなります。

$ cp ../busybox-1.20.2-config .config
$ vi .config
.config
@@ -26,13 +26,13 @@
 CONFIG_FEATURE_INSTALLER=y
 # CONFIG_INSTALL_NO_USR is not set
 CONFIG_LOCALE_SUPPORT=y
-# CONFIG_UNICODE_SUPPORT is not set
-# CONFIG_UNICODE_USING_LOCALE is not set
+CONFIG_UNICODE_SUPPORT=y
+CONFIG_UNICODE_USING_LOCALE=y
 # CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
 CONFIG_SUBST_WCHAR=0
 CONFIG_LAST_SUPPORTED_WCHAR=0
-# CONFIG_UNICODE_COMBINING_WCHARS is not set
-# CONFIG_UNICODE_WIDE_WCHARS is not set
+CONFIG_UNICODE_COMBINING_WCHARS=y
+CONFIG_UNICODE_WIDE_WCHARS=y
 # CONFIG_UNICODE_BIDI_SUPPORT is not set
 # CONFIG_UNICODE_NEUTRAL_TABLE is not set
 # CONFIG_UNICODE_PRESERVE_BROKEN is not set

コンパイル。コンパイル時にエラーぽいメッセージがが出るものの、busyboxは作成されているようなのでとりあえずこのまま使ってみます。

$ make
(省略)
  LINK    busybox_unstripped
Trying libraries: crypt m
 Library crypt is needed, can't exclude it (yet)
 Library m is needed, can't exclude it (yet)

実行できるようにパーミッションを設定します。

$ sudo chown root busybox
$ sudo chmod 4775 busybox

パッケージ化とインストール

作成したbusyboxをパッケージ化するためのファイルを集めます。

$ cd ..
$ mkdir -p busybox-ja/usr/local/bin/
$ sudo cp -p busybox-1.20.2/busybox busybox-ja/usr/local/bin/
$ mkdir -p busybox-ja/usr/local/tce.installed/

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

$ vi busybox-ja/usr/local/tce.installed/busybox-ja
busybox-ja/usr/local/tce.installed/busybox-ja
# !/bin/sh

/usr/local/bin/busybox cp /usr/local/bin/busybox /bin

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

$ chmod 755 busybox-ja/usr/local/tce.installed/busybox-ja

パッケージ化します。

$ rm -f busybox-ja.tcz
$ mksquashfs busybox-ja busybox-ja.tcz
$ md5sum busybox-ja.tcz > busybox-ja.tcz.md5.txt

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

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

動作チェック

再起動し、urxvtを起動して日本語を入力し[Back Space]キーで削除してみます。一文字ずつ削除されれば成功です。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?