Tiny Core Linux用の日本語キーボードレイアウトのパッケージを作った時のメモです。作業は「UbuntuからTiny Core Linux 7をUSBメモリにインストール」のようにUbuntu上でパッケージを作成してUSBのTiny Core Linuxにインストールするという方法で行いましたがTiny Core Linux上でもsquashfs-toolsパッケージをインストールすれば同じことが行えます。
Tiny Core Linuxで日本語キーボードを使うのはそれほど難しくはなく、kmapsパッケージをインストールしてブートオプションにkmap=qwerty/jp106
を追加すれば使えます。
それ良いと言えば良いのですがkmapsの中には使わないキーボードレイアウトも含まれるので日本語キーボードレイアウトだけにしたら小さくなるんじゃないかと思って試してみました。
kmapsパッケージのサイズは
kmapsのサイズを調べてみると140Kほどでした。思ったよりも小さいので作るのやめようかと思いたくなるようなサイズです。
$ du -hs kmaps.tcz
140K kmaps.tcz
完成したパッケージは4Kです。「35分の1になったー!」と言えば聞こえはいいですが「136K小さくなった」と言ったらそれに意味はあるのかと突っ込まれそうな話です。
$ du -hs kmaps.tcz kmap-jp106.tcz
140K kmaps.tcz
4.0K kmap-jp106.tcz
作り方
kmapsパッケージのダウンロード
wgetを使ってkmapsパッケージをダウンロードします。以下はv7の場合です。それ以外のバージョンの場合は7.xの部分を適当に書き換えて下さい。
$ wget -O kmaps.tcz http://tinycorelinux.net/7.x/x86/tcz/kmaps.tcz
Tiny Core Linux上で作業している場合はtce
コマンドやtce-load
コマンドを使って取得することもできます。
$ tce-load -w kmaps
$ mv /etc/sysconfig/tcedir/optional/kmaps.tcz* ./
kmapsパッケージを解凍
unsquashfs
コマンドを使ってkmapsパッケージを解凍します。Tiny Core LinuxのCoreのようにunsquashfs
コマンドが標準で含まれていない場合はtce-load -wi squashfs-tools
でsquashfs-toolsパッケージをインストールすれば使えるようになります。
$ unsquashfs -d kmaps kmaps.tcz
Parallel unsquashfs: Using 2 processors
154 inodes (192 blocks) to write
[===============================================================|] 192/192 100%
created 154 files
created 11 directories
created 0 symlinks
created 0 devices
created 0 fifos
日本語レイアウトを取り出す
日本語レイアウトパッケージ用のディレクトリを作成し、解凍したファイルから日本語レイアウトファイルjp106.kmapをコピーします。
$ mkdir -p kmap-jp106/usr/share/kmap/qwerty/
$ cp kmaps/usr/share/kmap/qwerty/jp106.kmap kmap-jp106/usr/share/kmap/qwerty/
日本語レイアウトパッケージを作成する
作成したディレクトリごと圧縮することで日本語レイアウトパッケージを作成します。パッケージ名はkmap-jp106としました。
$ mksquashfs kmap-jp106 kmap-jp106.tcz
$ md5sum kmap-jp106.tcz > kmap-jp106.tcz.md5.txt
日本語レイアウトパッケージをインストール
Tiny Core LinuxのUSBメモリにファイルをコピーし起動時に読み込まれるようにします。以下の例はUbuntu上で作業している場合でUSBメモリが/mntにマウントされている事を想定しています。
$ sudo cp kmap-jp106.tcz* /mnt/tce/optional/
$ sudo sh -c "echo kmap-jp106.tcz >> /mnt/tce/onboot.lst"
Tiny Core Linuxで作業している場合は以下のような感じになります。
$ cp kmap-jp106.tcz* /etc/sysconfig/tcedir/optional/
$ echo kmap-jp106.tcz >> /etc/sysconfig/tcedir/onboot.lst
ブートオプションの変更
ブートオプションにkmap=qwerty/jp106
を追加します。以下は私の環境の場合の例です。
$ sudo vi /mnt/boot/grub/menu.lst
default 0
timeout 3
title tinycore
kernel /boot/vmlinuz kmap=qwerty/jp106 quiet waitusb=5 consoleblank=0 blacklist=pcspkr tz=JST-9 notuc
initrd /boot/core.gz
$ vi /etc/sysconfig/tcedir/../boot/grub/menu.lst
default 0
timeout 3
title tinycore
kernel /boot/vmlinuz kmap=qwerty/jp106 quiet waitusb=5 consoleblank=0 blacklist=pcspkr tz=JST-9 notuc
initrd /boot/core.gz
最終的なサイズの違い
以下のような感じになりました。大きな成果とはなりませんでしたが、がんばれば小さくできる可能性がある事が分かったように思います。
$ du -hs kmaps.tcz kmap-jp106.tcz
140K kmaps.tcz
4.0K kmap-jp106.tcz
$ du -hs kmaps kmap-jp106
812K kmaps
24K kmap-jp106