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

Koyo Takenoshita email@hidden
2012年 12月 27日 (木) 18:21:15 JST


竹之下です。

/etc/rc.d/S80xfbdev の中で、
export LANG
は実行していますか?

> char *loc;
> loc = setlocale(LC_CTYPE, "");
> のlocは"c"になり、直後の
というプログラムは、どのように実行されましたか?

コンソールで実行しているのであれば、/etc/rc.d/S80xfbdev とは別に、
コンソールにログインした後、
export LANG=ja_JP.UTF-8
とする必要があります。

例えば、setlocale()を実行するプログラムの名前がa.outだったとして、
# export LANG=
# ./a.out
# export LANG=ja_JP.UTF-8
# ./a.out
とした場合、挙動は変わりますか?
挙動が変われば、ロケールデータの配置は意図したとおりにできています。
そうでなければ、なにかおかしいです。

(2012/12/27 17:55), watanabe wrote:
> 渡辺です。
> 
> 回答ありがとうございます。
> 
>> 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
>>>
>>
> 

-- 
Koyo Takenoshita




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