[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 (佐野 武俊)