[Armadillo:08497] Re: ロケールでエラー(Armadilloー440)

watanabe email@hidden
2012年 12月 27日 (木) 17:55:25 JST


渡辺です。

回答ありがとうございます。

> ja_JP.UTF-8のロケールデータを生成する例:
>    localedef -i ja_JP -c -f UTF-8 ./ja_JP.UTF-8
はい。ja_JP.UTF-8ディレクトリが出来たので、Armadilloの/usr/lib/locale/
にコピーしました。

> また、LANG環境変数を設定するには、
> /etc/defaults/locale に設定を記述してあるならば、
>
> . /etc/defaults/locale  #設定の読み込み
> export LANG             #LANG環境変数をexport
>
> とすると、exportできます。
/etc/default/localeと言うファイルを作成し、中身は
LANG=ja_JP.UTF-8
となっています。

> ※根本的な問題がフォントが無いことであった場合、また別の対応が必要に
>  なります。
Armailloには
/usr/share/fonts/X11と
/usr/share/fonts/truetypeとあるので、フォントは入っていると考えて
います。また、/etc/fonts/fonts.confにも<dir>/usr/share/fonts</dir>と言う
記述があるので、良く分からないながらもフォントの設定は出来ていると
思っています。

という状況で、

char *loc;
loc = setlocale(LC_CTYPE, "");
のlocは"c"になり、直後の
XSupportsLocale()の戻り値が0になって
しまいます。

やはりまだロケールの設定が出来ていないのでしょうか?


(2012/12/27 12:03), Koyo Takenoshita wrote:
> 竹之下です。
> 
> 一部、荘司が言っていることとかぶるのですが。。
> 
>> 1)Armadilloのデフォルトではx11を使用しているが、ロケールは
>>  設定していないのでしょうか?
> 特に、設定はしていません。
> 
>> 2)ロケールデータは、usr/share/localeからusr/lib/localeに
>>  アーカイブで作成され、
> そうですね。
> localedef(1)というコマンドで生成できます。
> 
>> 最終的には"/etc/defaults/locale"
> /etc/defaults/locale には、単に LANG=ja_JP.UTF-8 などの
> 変数が記述してあるだけです。ロケールの設定が必要なところでは、
> みんな共通でこの設定を読み込んで使いましょう、ということに
> なっているようです。
> 
>>  でPAMによって利用されるようになる(と書いてありました)。
>>  Atmark-distではPAMなる物をサポートしていますでしょうか?
> PAMはロケールとは関係ありません。
> 
>>  サポートしていないとすると、ロケールはどのように設定すれば
>>  良いのでしょうか?
> /usr/lib/locale にロケールデータを置き、LANG環境変数を設定する
> という流れになります。
> 
> /usr/lib/locale/locale-archive は、ロケールデータのアーカイブなので、
> どのロケールが入っているか分かりません。
> ATDE上で、下記のようにlocakedefを実行することで、特定のロケールデータを
> 生成できます。
> 
> ja_JP.UTF-8のロケールデータを生成する例:
>    localedef -i ja_JP -c -f UTF-8 ./ja_JP.UTF-8
> 
> 生成された ja_JP.UTF-8ディレクトリを、Armadilloの/usr/lib/locale/
> ディレクトリにコピーしてください。
> ※/usr/share/localeのデータは、Armadillo上での実行時には不要です。
> 
> また、LANG環境変数を設定するには、
> /etc/defaults/locale に設定を記述してあるならば、
> 
> . /etc/defaults/locale  #設定の読み込み
> export LANG             #LANG環境変数をexport
> 
> とすると、exportできます。
> 
> X serverにロケールを反映させるには、
> vendors/AtmarkTechno/Armadillo-440/etc/init.d/xfbdev で、
> X serverを起動する前に、LANG環境変数をexportするように
> するとよいと思います。
> 
> これで、とりあえずロケールの設定はできるはずです。
> ※根本的な問題がフォントが無いことであった場合、また別の対応が必要に
>  なります。
> 
> (2012/12/26 14:01), watanabe wrote:
>> 渡辺です。
>>
>> 件名を変更しました。
>>
>> XCreateFontSetでエラーになっているのかと調べましたが、
>> やはりロケールでエラーになっているため、XCreateFontSetでも
>> エラーになっているようです。
>>
>> 気分を一新して、デフォルト状態ではどうなっているかを
>> 調べてみました。
>> Armadillo-440を出荷状態に戻してから、
>> XSupportsLocale()を行うPRGを作成して実行してみたら、
>> その状態でエラーになってしまいました。
>> DISTはdebianではなく、Atmark-distを使用しています。
>>
>> 以下についてご教示ください。
>> 2)はArmadilloについての質問ではなく、LINUXに関する質問に
>> なってしまうかも知れませんがご容赦ください。
>>
>> 1)Armadilloのデフォルトではx11を使用しているが、ロケールは
>>  設定していないのでしょうか?
>> 2)ロケールデータは、usr/share/localeからusr/lib/localeに
>>  アーカイブで作成され、最終的には"/etc/defaults/locale"
>>  でPAMによって利用されるようになる(と書いてありました)。
>>  Atmark-distではPAMなる物をサポートしていますでしょうか?
>>  サポートしていないとすると、ロケールはどのように設定すれば
>>  良いのでしょうか?
>>
>> 以上、どうぞよろしくお願い致します。
>>
>> (2012/12/21 17:38), watanabe wrote:
>>> 渡辺です。
>>>
>>> 先程の質問ですが、自己解決しました。
>>> どうもお騒がせしました。
>>> my-product/config.linux-2.6.xを直接いじることにより、
>>> 32Mから64Mに変更されて、無事にブート出来ました。
>>>
>>> しかし。。。
>>>
>>> 本来は
>>> setlocale(LC_TYPE, "");
>>> XSupportsLocale()でエラーになってしまう対策で
>>> ロケールの環境を作成していましたが、結局駄目でした。
>>>
>>> 現在の設定は、
>>> usr/lib/locale/locale-archive
>>> usr/share/locale/en
>>> usr/share/locale/ja
>>> としました。ATDEにはusr/share/locale以下に沢山のフォルダ
>>> があったのですが、そんなに入れられないので、フォルダ名から
>>> これだろうと見当を付けて、enとjaだけにしました。
>>>
>>> その結果、
>>> setlocale(LC_TYPE, "");
>>> では"C"が返ってきますが、
>>> XSupportsLocale()では、相変わらずNULLが返ってきます。
>>> まだlocaleの設定が悪いのでしょうか?
>>>
>>>
>>> (2012/12/21 16:40), watanabe wrote:
>>>> 渡辺です。
>>>>
>>>> 回答ありがとうございます。
>>>> LINUXに不慣れなため、確認に時間が掛かってしまいました。
>>>>
>>>> ATDEの/usr/lib/locale/locale-archive(約2Mバイト)を
>>>> Armadilloに送ったのですが、リブートすると以下のエラー
>>>> が出て固まってしまいます。
>>>> "RAMDISK: ext2 filesystem found at block 0
>>>> RAMDISK: image too big! (34807KiB/32768KiB)
>>>> List of all partitions:"
>>>>
>>>> Ramdiskのサイズがオーバしてしまい、立ち上がれないのかと
>>>> 思います。過去のメーリングリストを調べてみたら、
>>>> [Armadillo:00952]カーネル側の設定を変更する必要がありそう
>>>> だと分かりました。
>>>>
>>>> email@hidden:~/atmark-dist$make menuconfig
>>>> で設定を変更しようと思ったのですが、RamDiskのサイズ変更
>>>> 方法の場所が見つかりません。
>>>>
>>>> RamDiskのサイズを増やす方法をご教示ください。
>>>>
>>>> (2012/12/19 9:55), Yasushi SHOJI wrote:
>>>>> At Tue, 18 Dec 2012 19:17:19 +0900,
>>>>> watanabe wrote:
>>>>>>
>>>>>> ・ロケールでエラーが出るので、
>>>>>> ・locaeldefを行いたい
>>>>>> ・そのために、\atmark-dist-20121023\glibc\locale\をmakeする
>>>>>> ・makeでエラーが出る(インクルードファイルが無いなどのエラー)
>>>>>>  のでそのエラーをつぶす
>>>>>>
>>>>>> アプローチの仕方は合っていますでしょうか?
>>>>>
>>>>> 上記の方法だと大変なので、「」localdef されたものを Debian から Atmark
>>>>> Distの環境に持っていってはどうか?」というのが提案でした。
>>>>>
>>>>> 上記、「Debianから」というところが問題です。
>>>>>
>>>>>       1) Armadillo で Debian 環境を構築し、そこからデータファイルを移動
>>>>>       2) ATDE はすでに Debian 環境なので、そこからデータファイルを移動
>>>>>
>>>>> という方法が考えられます。1) の方法が直感的ですし間違いがない方法なので
>>>>> すが、2)でも問題なく動くのではないかな?と思っていました。
>>>>>
>>>>> 1) の方法でも、Armadilloサイトから Debian をダウンロードできるので、そ
>>>>> れほど手間ではないと思います。
>>>>>
>>>>>> また、\atmark-dist-20121023\glibc\以下のフォルダはmakeだけでは
>>>>>> エラーが出てしまうのでしょうか?ちなみに、VMwarePlayerでATDE3で
>>>>>> ビルドしています。
>>>>>
>>>>> すみません。上記 glibc は過去の遺産で、今は使われていません。
>>>>>
>>>>
>>>> _______________________________________________
>>>> armadillo mailing list
>>>> email@hidden
>>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>>>
>>>
>>
>> _______________________________________________
>> armadillo mailing list
>> email@hidden
>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>
> 




armadillo メーリングリストの案内