[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
XFree86 on PowerPC
PowerPCは初心者で、斉藤といいます。
初心者な質問がありまして、どなたかヒントいただけませんか?
CPUがp750(400MHz)で、NetBSD-1.5.1(prepを参考にして)をgcc-3.0.1を使って、
動かしてます。chips69000にxsrc/xfree/xc/programs/Xserverに入っている
XFree86(4.0.3)を動かしてみました(まだ表示だけですが動いてます)。
そこで質問ですが、XFree86がPCIメモリ空間や、I/O空間をアクセスするために
/dev/memをopenし、mmapしようとしますが、マルチユーザモードでは、
ppc_iomap: failed to open /dev/mem (Operation not permitted)
と、エラーとなります。
securelevelに-1を初期設定すれば、とりあえずここは通ります。
次に、sys/arch/powerpc/powerpc/mem.cにある、mmmap()関数は、
paddr_t
mmmmap(dev, off, prot)
dev_t dev;
off_t off;
int prot;
{
return -1;
}
となっていて、mmapできないようになっています。
そこで再度のとりあえず、
paddr_t
mmmmap(dev, off, prot)
dev_t dev;
off_t off;
int prot;
{
struct proc *p = curproc; /* XXX */
if (minor(dev) != 0)
return (-1);
if (suser(p->p_ucred, &p->p_acflag) != 0)
return (-1);
return (powerpc_btop((u_int)off));
}
のように変更しました。
XFree86を動かす場合は、securelevelを無効にするのは通常でしょうか?
/dev/memでmmapできないのが正しいとすれば、Xサーバが動作する機種の場合、
どうやって、pci領域を参照するのでしょうか?
これは、ついでの質問ですが、XFree86がグラフィカルなコンソールデバイスをopen
するようでしたので、config/XXXファイルに
# wscons
# PCI graphyics devices
vga* at pci? dev ? function ? # PCI VGA Graphics
wsdisplay* at vga?
を加えたのですが、このwsdisplayとか、wscons, wsmouse, wskbdのwsは
どんなデバイスあるいは特定の装置を意味しているのでしょうか?
ちなみに、xsrcにはいっている、もう一つのxsrc/xc/programs/Xserverは、
うまくmakeできなかったのですが、本当はこっちを動かすのでしょうか?