Help us understand the problem. What is going on with this article?

Edisonに日本語UTF-8(ja_JP.UTF-8)のロケールを設定する。

More than 5 years have passed since last update.

1. はじめに

 Intel EdisonにデフォルトでインストールされているYocto OSはlocaleがインストールされていません。そのため、環境変数LANGやLC_ALLにja_JP.UTF-8と指定してもロケールが変更できません。このままでは日本語を取り扱うプログラムなどを実行すると、うまく処理できない場合があります。そこで本稿では日本語UTF-8のロケールをEdisonにインストール方法について説明します。
 OSを他のディストリビューションにするという方法もありますが、Yocto OS縛りがある場合に参考にしてみてください。

1.1 Edisonのlocaleを確認する

 EdisonのYocto OSはSystemdが採用されています。localeの設定についてはlocalectlが利用されます。
まず現在のlocale設定を見るために以下のコマンドを実行します。

root@edison:~# localectl

また利用できるlocaleの設定については下記のコマンドで確認できます。

root@edison:~# localectl list-locales
Failed to open locale directory: No such file or directory

 Edisonをセットアップ後の状態ではlocaleがインストールされていないため、上記のようなメッセージが表示されます。ここからEdisonにlocaleをインストールして行きます。

1.2 Edisonにロケールを設定する手順

 Edisonでのlocaleの設定の手順は以下の3つの手順になります。
1. 日本語localeのインストール
2. 日本語UTF-8ロケールの作成
3. 環境変数へのlocaleの設定

次にそれぞれについて説明して行きます。

2. 日本語localeのインストール

 ロケールについてはopkgでインストールすることができます。日本語以外に付いてもロケールが用意されていますので、適宜必要な物をインストールします。

2.1 リポジトリの追加

 opkgのリポジトリを追加します。下記パスにファイルにリポジトリを3つ追加します。
/etc/opkg/base-feeds.conf

src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison
src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32 

その後、opkgでアップデートを実行してください。

root@edison:~# opkg update

2.2 インストールの実行

下記のコマンドでインストールして行きます。

root@edison:~# opkg install glibc-locale-ja
root@edison:~# opkg install glibc-localedata-ja-jp
root@edison:~# opkg install glibc-charmap-utf-8

 ここで再びlcalectlで利用できるlocaleを確認します。

root@edison:~# localectl list-locales
ja_JP.EUC-JP

ja_JPが追加されていることが確認できます。

3. 日本語UTF-8ロケールの作成

 ja_JPのロケールはインストールできましたが、このままでは日本語UTF-8のロケールが設定できません。
そこで。localedefを使い、日本語UTF-8をロケールを作成します。
※余談ですが、euc-jpのロケールはopkgのリポジトリにあるようです。

まずlocaledefをopkgからインストールします。

root@edison:~# opkg install localedef

下記のコマンドでUTF-8のロケールを作成します。

root@edison:~# localedef -i ja_JP -f UTF-8 ja_JP.utf8

参考;http://webos-goodies.jp/archives/50808801.html

もう一度ロケールを確認しましょう。下記のように表示されれば成功です。

root@edison:~# localectl list-locales
ja_JP.EUC-JP
ja_JP.utf8

4. ロケールの設定

最後に環境変数を設定すれば完了です。下記を~/.profileなどに設定すれば良いと思います。

root@edison:~# export LANG="ja_JP.utf8"

本来Systemdではlocalectlコマンドでロケールの設定をするのが正しいようですが、Edisonの
場合設定が聞きませんでした。またこの場合、再起動後に設定が消えるようです。このあたり追加で検証を行いたいと思います。

5. まとめ

今回の作業をまとめてみました。

root@edison:~# opkg install glibc-locale-ja
root@edison:~# opkg install glibc-localedata-ja-jp
root@edison:~# opkg install glibc-charmap-utf-8
root@edison:~# opkg install localedef
root@edison:~# localedef -i ja_JP -f UTF-8 ja_JP.utf8
root@edison:~# export LANG="ja_JP.utf8"

masato_ka
HRIからソフトウェア工学をやって、またロボットとかセンサーとかそんな世界に帰ってきました。
http://d.hatena.ne.jp/masato-ka
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away