LoginSignup
2
2

More than 5 years have passed since last update.

Tiny Core Linux用の軽量日本語キーボードレイアウトパッケージを作る

Posted at

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を使ってパッケージをダウンロード
$ wget -O kmaps.tcz http://tinycorelinux.net/7.x/x86/tcz/kmaps.tcz

Tiny Core Linux上で作業している場合はtceコマンドやtce-loadコマンドを使って取得することもできます。

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にマウントされている事を想定しています。

Ubuntu上で作業している場合
$ sudo cp kmap-jp106.tcz* /mnt/tce/optional/
$ sudo sh -c "echo kmap-jp106.tcz >> /mnt/tce/onboot.lst"

Tiny Core Linuxで作業している場合は以下のような感じになります。

TinyCoreLinux上で作業している場合
$ cp kmap-jp106.tcz* /etc/sysconfig/tcedir/optional/
$ echo kmap-jp106.tcz >> /etc/sysconfig/tcedir/onboot.lst

ブートオプションの変更

ブートオプションにkmap=qwerty/jp106を追加します。以下は私の環境の場合の例です。

Ubuntu上で作業している場合
$ 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
TinyCoreLinux上で作業している場合
$ 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
2
2
3

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