[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:11420] Re: [Adam Di Carlo <adam@xxxxxxxxxxx>]Re: framebuffer



佐野@浜松です。

In article <20000119174352Q.hattas@xxxxxxxxxxxxxxxxxxxxxx>,
  at Wed, 19 Jan 2000 17:44:02 +0900,
   on [debian-devel:11414] Re: [Adam Di Carlo <adam@xxxxxxxxxxx>]Re: framebuffer,
 Hatta Shuzo <hattas@xxxxxxxxxxxxxxxxxxxxxx> さん writes:

> はったです。

御苦労さまです。

> >         pw = getpwuid(getuid());
> > 
> > で pw に NULL が渡っているため、
> 
> これの原因がわからんです。

 library reduction で getpwuid が消されているんでは ?

普通のシステムで objdump -x /lib/libc6.so した場合と
 loopback mount した boot-floppies の領域で objdump -x
した場合を比較してみると、けっこう消えているみたいです。

 utilities/busybox/utility.c には

#if defined (BB_CHMOD_CHOWN_CHGRP) || defined (BB_PS)

/* Use this to avoid needing the glibc NSS stuff 
 * This uses storage buf to hold things.
 * */
uid_t 
my_getid(const char *filename, char *name, uid_t id) 
{
(snip)
void
my_getpwuid(char* name, uid_t uid) 
{
    my_getid("/etc/passwd", name, uid);
}

とかあったりします。whoami.c という getpwuid を使うコードも
ありますが、i386 では make されないみたい。

 reduction しない libc を使う、という方向はたぶんあまり支持されない
と思うので、getpwuid を使わない、というか utmp を使わない動作モード
が jfbterm にあるといいのかな、と思ったり。

> この修正でとりあえず、jfbterm on boot-floppies が起動できました。

 /bin/gzip が必要なところは busybox の gunzip or zcat を使うように
変更したほうがいいかと。これだけのために gzip を入れる必要は無さげ。

> # 多謝 > 佐野さま。どうやってデバッグしたっすか?

 # fprintf(stderr,) スギ。X サーバーのデバッグで ErrorF 乱発には慣れてる :)
 # 基本は力技。最初は main.c の main() から。すぐ tterm_start に移ったので
 # term.c に数10個所探りを入れて。小さなコードだからそれほど大変ではない。
 # (X サーバーの debug は泣きたくなるくらい大変ですよ。-g で static link な
 # サーバーにしてコンパイルするといきなりサイズが 200MB くらいのでかい実行
 # バイナリになったし。)

> 今はまだ、起動直後に jfbterm が動くようにはしてないので、Alt+F2 で裏画
> 面に行き、まず jfbterm 起動。その後、dbootstrap を起動してインストール
> 画面が*日本語*で表示されます。

Alt+F2 のって /etc/inittab に

tty2::askfirst:/bin/sh

ってなってるやつですよね。

 askfirst って見たことないな、と思ったら boot-floppies は init も
 busybox の init.c なんですね。このあたり、なんかまだ bug があったり
するのかも。

> 罫線が化けてたり(これは鵜飼さんからヒントいただいた)、改行が
> マルチバイト文字を考慮してなかったりするけれど、とりあえず、一山越えました。
> 起動ディスクイメージは、
> http://www.debian.or.jp/~hattas/boot-floppies/20000119/ に置いてます。
> 試したかたはどーぞ(まだ実用にはほど遠いとは思います)

とりあえず Michael Sobolev は理解を示してくれているみたいなんで、
他に影響の出ない範囲の変更はどんどん cvs に入れていってみんなで
突つきまわすのが良いかと。

> # ただ、jfbterm から exit すると端末が凍る…

そう。これは jfbterm の

#       仮想コンソールを新しく取得するかの指定
#       0       ...     可能なら取得しない。
#       1       ...     取得する。
newvc           :       0

という設定に由来するものなのか、あるいは busybox の init.c に
由来するものなのか、もしくはその両方か、どれなんでしょう ?

というあたりで時間が無くて止まってます。

 # 2, 3 日続けて布団に入るのが 3 時過ぎになったので家人に叱られました。
 # ほとんど会社で椅子に座って寝ているような状態なので、今夜は作業を
 # せずに早目に寝ます。

-- 
     # (わたしのおうちは浜松市、「夜のお菓子」で有名さ。)
    <kgh12351@xxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)