3
2

More than 5 years have passed since last update.

Tiny Core Linux 4.7.7をHDDにインストール&日本語対応

Last updated at Posted at 2016-11-14

 軽いで有名なTiny Core Linuxですが、現在Tiny Core Linux日本語化プロジェクトの公開されているバージョンは4.5.2-jaで止まっているようです。4.5.2でも十分な気もするのですが、今回は5.xを想定して、4.5.2-jaから日本語部分を取り出し、4.7.7-jaみたいなものを作ってみちゃおうと思います。

CorePlus-4.7.7のダウンロード&ブートCDの作成

 Tiny Core Linux 3.xでは大変だったハードディスクへのインストールですが4.xではtc-installというツールを使って簡単にインストールできるようになりました。CorePlusならはじめからtc-installがインストールされていますので今回はCorePlusを使います。

1. CorePlus-4.7.7のダウンロード

 Tiny Core Linuxのサイトを見てみると5.xがリリースされた事によって最新版しかダウンロードできないように見えるのですが、Downloadsのページをよく見ると過去のバージョンもしっかりとダウンロードする事ができます。
 過去のバージョンのダウンロードはTiny Core Linuxの公式サイト から Downloads -> Archive of past base releases: 4.x -> 4.7.7 から CorePlus-4.7.7.iso をダウンロードします。

2. CorePlus-4.7.7のライブCD作成

 ダウンロードしたCorePlus-4.7.7.isoをCD-Rに焼いてライブCDを作成します。

3. CorePlus-4.7.7のインストール

 ブートCDからCorePlus-4.7.7を起動し、tc-install 又は tc-install.sh を使ってHDDにインストールします。インストール途中の「Enter space separated boot options」のところでhome=sda1 opt=sda1 を追加します。このオプションを追加するとhomeとoptディレクトリをメモリ上ではなくHDDを使うようになります。

(省略)
Enter space separated boot options:
Example: vga=normal syslog showapps uaitusb=5
home=sda1 opt=sda1
(省略)

4. ハードディスクからブート

 ブートCDを取り出しハードディスクから起動します。私の場合、結構な割合でブートできない事がありました。その場合は再度インストールしてみると出来たりします。それでもできない場合はcfdiskコマンドとかを使ってがんばると出来る事もあります。その方法はTiny Core Linux3.2 日本語版のインストールあたりが参考になるかもしれません。

5. homeディレクトリのバックアップ無効化

 Tiny Core LinuxはCDやUSBメモリから起動することを前提に設計されているせいか、インストールしてすぐの状態ではhomeやoptディレクトリがHDDであっても終了時にhomeとoptディレクトリを圧縮して保存するような動きをします。しかし今回はhomeとoptディレクトリはメモリ上ではなくHDD上になるため、バックアップしないようにします。

$ echo > /opt/.filetool.lst

4.5.2-jaのダウンロードと解凍

 Tiny Core Linux 4.7.7のインストールが完了したら4.5.2-jaから日本語関係のモジュールを取り出すためにISOファイルをダウンロードして解凍します。

Tiny Core Linux 日本語化プロジェクト から TinyCore-4.5.2-ja.iso をダウンロードします。

$ wget http://jaist.dl.sourceforge.jp/tinycore-jp/55908/TinyCore-4.5.2-ja.iso

ダウンロードしたTinyCore-4.5.2-ja.isoを解凍します。

$ sudo mount -t iso9660 -o loop TinyCore-4.5.2-ja.iso /mnt/sr0
$ mkdir TinyCore-4.5.2-ja
$ sudo cp -rp /mnt/sr0/* TinyCore-4.5.2-ja
$ umount /mnt/sr0

日本語関係のパッケージのコピー

 ダウンロードしたisoファイルから日本語関係のパッケージを取り出します。unicode対応rxvt(rxvt-unicode)と日本語入力システム(scim, anthy)はそのまま使えそうなのでそのままコピーします。

unicode対応rxvtをインストール(4.5.2-jaのパッケージをそのまま使用)

$ /bin/cp -f TinyCore-4.5.2-ja/cde/optional/rxvt-unicode.tcz* /mnt/sda1/tce/optional/
$ echo rxvt-unicode.tcz >> /mnt/sda1/tce/onboot.lst

日本語入力システムをインストール(4.5.2-jaのパッケージをそのまま使用)

$ /bin/cp -f TinyCore-4.5.2-ja/cde/optional/scim-anthy.tcz* /mnt/sda1/tce/optional/
$ /bin/cp -f TinyCore-4.5.2-ja/cde/optional/scim.tcz* /mnt/sda1/tce/optional/
$ /bin/cp -f TinyCore-4.5.2-ja/cde/optional/anthy.tcz* /mnt/sda1/tce/optional/
$ echo scim-anthy.tcz >> /mnt/sda1/tce/onboot.lst

つづけて日本語入力システムを使うために必要となるパッケージをダウンロード&インストールします。

$ tce-load -wil libiconv.tcz
$ tce-load -wil gtk2.tcz
$ tce-load -wil libxcb.tcz

パッケージ作成の準備

 unicode対応rxvtと日本語入力システムをインストールしただけでは日本語入力はできないみたいです。4.5.2-jaから更に必要なモジュールを取り出します。後々を考えると必要なファイルやプログラムはパッケージにしておくとインストール&アンインストールがとても楽に行えますので可能な限りパッケージ化していきたいと思います。

 まずはパッケージの解凍と作成のために必要となるsquashfsをインストールします。

$ tce-load -wi squashfs-tools-4.x

M+フォントのパッケージ作成とインストール

日本語ビットマップフォントであるM+フォントをインストールするパッケージを作成します。

Xlibs-jaを解凍します(M+フォントはXlibs-jaに含まれているため)。

$ unsquashfs -d Xlibs-ja TinyCore-4.5.2-ja/cde/optional/Xlibs-ja.tcz 

M+フォントをコピーします。

$ mkdir -p mplus-fonts/usr/share/fonts/
$ cp Xlibs-ja/usr/lib/X11/fonts/misc/mplus_*.pcf mplus-fonts/usr/share/fonts/
$ gzip mplus-fonts/usr/share/fonts/mplus_b_12.pcf
$ gzip mplus-fonts/usr/share/fonts/mplus_r_12.pcf

$ mkdir -p mplus-fonts/usr/lib/X11/fonts/misc/
$ ln -sf /usr/share/fonts/mplus_b_12.pcf.gz mplus-fonts/usr/lib/X11/fonts/misc/
$ ln -sf /usr/share/fonts/mplus_r_12.pcf.gz mplus-fonts/usr/lib/X11/fonts/misc/

$ mkdir -p mplus-fonts/usr/local/tce.installed/

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

$ vi mplus-fonts/usr/local/tce.installed/mplus-fonts
mplus-fonts/usr/local/tce.installed/mplus-fonts
#!/bin/sh

FONTS_DIR_FILE="/usr/lib/X11/fonts/misc/fonts.dir"
FONT_NUM=`head -1 $FONTS_DIR_FILE`
FONT_NUM_NEW=`expr $FONT_NUM + 2`

/bin/cp -f $FONTS_DIR_FILE $FONTS_DIR_FILE

cat <<'EOF' >> $FONTS_DIR_FILE
mplus_b_12.pcf.gz -mplus-m+gothic-bold-r-normal--12-120-75-75-c-120-iso10646-1
mplus_r_12.pcf.gz -mplus-m+gothic-medium-r-normal--12-120-75-75-c-120-iso10646-1
EOF

sed -i "1 s/$FONT_NUM/$FONT_NUM_NEW/" $FONTS_DIR_FILE

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

$ chmod 755 mplus-fonts/usr/local/tce.installed/mplus-fonts

パッケージを作成します。

$ rm -f mplus-fonts.tcz
$ mksquashfs mplus-fonts mplus-fonts.tcz
$ md5sum mplus-fonts.tcz > mplus-fonts.tcz.md5.txt
$ echo Xlibs.tcz > mplus-fonts.tcz.dep

M+フォント作成したパッケージからインストールしてみます。

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

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

 Xlocaleの役割は私自身よく分かっていないのですが、このファイルがないと日本語入力ができないようです。

Xlocaleのパッケージからファイルをコピーします。

$ mkdir -p Xlocale-ja/usr/share/X11/locale/
$ /bin/cp -rf Xlibs-ja/usr/share/X11/locale/ja_JP.UTF-8 Xlocale-ja/usr/share/X11/locale/

パッケージを作成します。

$ rm -f Xlocale-ja.tcz
$ mksquashfs Xlocale-ja Xlocale-ja.tcz
$ md5sum Xlocale-ja.tcz > Xlocale-ja.tcz.md5.txt
$ echo Xlibs.tcz > Xlocale-ja.tcz.dep

インストールします。

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

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

 Tiny Core Linux 5.xではlibpngのバージョンが16に上がっているため今のバージョンのパッケージを作成しておきます。16と12で互換性があればシンボリックリンクを張って何とかなるかもしれませんが、何とかならなかった時のために作成しておきます。

libpng12からファイルを取り出してパッケージを作成します。

$ mkdir -p libpng12/usr/lib
$ /bin/cp -fd Xlibs-ja/usr/lib/libpng12* libpng12/usr/lib
$ rm -f libpng12.tcz
$ mksquashfs libpng12 libpng12.tcz
$ md5sum libpng12.tcz > libpng12.tcz.md5.txt

libpng12はTiny Core Linux 5.xでは必要になるかもしれませんが、4.7.7では必要ありませんので起動時には読み込まれないようにしておきます。

$ /bin/cp -f libpng12.tcz* /mnt/sda1/tce/optional/

日本語キーボードレイアウトパッケージの作成とインストール

 kmapsをインストールすればキーボードレイアウトがインストールされますが日本語レイアウト以外は不要なので、軽量化のために日本語キーボード(jp106)のみのレイアウトファイルを作成します。

kmapsのインストール

$ tce-load -wil kmaps

日本語キーボードレイアウトパッケージを作成するために必要なファイルをコピーします。

$ mkdir -p kmap-jp106/usr/share/kmap/qwerty/
$ cp /tmp/tcloop/kmaps/usr/share/kmap/qwerty/jp106.kmap kmap-jp106/usr/share/kmap/qwerty/
$ mkdir -p kmap-jp106/usr/local/tce.installed/

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

$ vi kmap-jp106/usr/local/tce.installed/kmap-jp106
kmap-jp106/usr/local/tce.installed/kmap-jp106
#!/bin/sh
USER=`cat /etc/sysconfig/tcuser`
if [ -n "$USER" ]; then
install -o $USER -g staff -m 755 -d /home/$USER/.X.d
cat <<__EOF__ > /home/$USER/.X.d/kmap-jp106
setxkbmap -rules xorg -layout jp -model jp106
xmodmap -e "keycode 49 = Zenkaku_Hankaku"
__EOF__
fi

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

$ chmod 755 kmap-jp106/usr/local/tce.installed/kmap-jp106

パッケージを作成します。

$ rm -f kmap-jp106.tcz
$ mksquashfs kmap-jp106 kmap-jp106.tcz
$ md5sum kmap-jp106.tcz > kmap-jp106.tcz.md5.txt

日本語キーボードレイアウトをインストールします。

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

日本語ロケールパッケージの作成とインストール

 ロケールファイルを作成するためにはlocaledefというコマンドを使うようです。localedefはgetlocaleパッケージに含まれるみたいですので、getlocaleをインストールします。

$ tce-load -wil getlocale.tcz

必要なファイルをコピーします。

$ sudo mkdir -p /usr/lib/locale/
$ sudo rm -f /usr/lib/locale/locale-archive
$ sudo localedef -i ja_JP -c -f UTF-8 ja_JP.UTF-8
$ sudo mkdir -p locale-ja/usr/lib/locale
$ sudo cp -a /usr/lib/locale/locale-archive locale-ja/usr/lib/locale

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

$ sudo vi locale-ja/usr/local/tce.installed/locale-ja
locale-ja/usr/local/tce.installed/locale-ja
#!/bin/sh
PROFDIR="/etc/profile.d"

if [ -d "$PROFDIR" ]; then
cat <<EOS > "$PROFDIR/locale-ja.sh"
export G_FILENAME_ENCODING=@locale
EOS
fi

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

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

依存関係を設定します。

$ vi locale-ja.tcz.dep
locale-ja.tcz.dep
libiconv.tcz
glibc_gconv.tcz

パッケージを作成します。

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

インストールします。

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

ブートオプションの設定

 タイムゾーン、ロケール、日本語キーボードレイアウトをカーネルオプションで指定します。「tz=JST-9 noutc lang=ja_JP.UTF-8 kmap=qwerty/jp106」を指定して再起動します。

$ vi /mnt/sda1/tce/boot/extlinux/extlinux.conf
/mnt/sda1/tce/boot/extlinux/extlinux.conf
 DEFAULT core
 LABEL core
 KERNEL /tce/boot/vmlinuz
-APPEND initrd=/tce/boot/core.gz quiet home=sda1 opt=sda1 ...
+APPEND initrd=/tce/boot/core.gz quiet tz=JST-9 noutc lang=ja_JP.UTF-8 kmap=qwerty/jp106 home=sda1 opt=sda1 ...

動作チェック

ここまでできたら再起動します。再起動後、urxvtを起動して、[全角/半角]キーを押して日本語入力ができれば、まずは成功です。うまくいかない場合は、ブートオプションのquietをshowappsに変更してエラーが出ていないかチェックします。

実はまだ先が…

ここまでがんばっても日本語関係でまだおかしなところがありますので、さらに以下の変更も必要となります。日本語って本当大変なんですね。

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