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

watanabe email@hidden
2012年 12月 27日 (木) 18:49:36 JST


竹之下 様。

渡辺です。

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

> # export LANG=
> # ./a.out
> # export LANG=ja_JP.UTF-8
> # ./a.out
> とした場合、挙動は変わりますか?
コンソールから実行しています。
この通りやってみましたが、挙動は全く同じでした。

> 挙動が変われば、ロケールデータの配置は意図したとおりにできています。
> そうでなければ、なにかおかしいです。
挙動が変わらないということは、ロケールデータの配置がまずい、
と言うことですね。もう一度見直して、顔を洗って出直します。


(2012/12/27 18:21), Koyo Takenoshita wrote:
> 竹之下です。
> 
> /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
>>>>
>>>
>>
> 




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