NetBSD/macppc 4.99.63でX Window System (radeonfbで苦戦)
2008/05/28(水) 25:52 NetBSD はてブ情報 はてブに登録 はてブ数

Mac miniにcurrentを入れて、Xを動かしてデスクトップとして使おうとしていますが、苦戦しています。

まず、radeonfbに困惑です。

NetBSD/macppcのGENERICカーネルは
# Display devices
# ofb*  at pci? dev ? function ?        # Generic Open Firmware Framebuffer
# OFB_ENABLE_CACHE speeds up the console on many machines, but should
# not be enabled on some older machines, such as the rev. A-D iMacs or any
# O'Hare based machine that uses external cache like the PowerBook 3400c
#options        OFB_ENABLE_CACHE        # Speed up console in ofb
#options        OFB_FAKE_VGA_FB         # Allow X to mmap VGA regs
chipsfb*        at pci? function ?      # C&T 65550
machfb*         at pci? function ?      # ATI Mach 64, Rage, Rage Pro

radeonfb*       at pci? function ?      # ATI Radeon. R3xx is problematic
options         RADEONFB_MMAP_BARS      # allow mmap()ing BARs - needed for X

voodoofb*       at pci? function ?      # 3Dfx Voodoo3 
r128fb*         at pci? function ?      # ATI Rage 128
genfb*          at pci? function ?
といった感じで適切なFramebufferデバイスを使うようになっており、Mac miniではradeonfbが使用されます。

で、使用された瞬間、画面が暗転します。画面は暗転しますが、キー入力は受け付けているようで、適切な入力ができればシャットダウンぐらいはできますね。って、それでは困ります。

さて、radeonfbが使われている状態のdmesgを見ると次のようになっています。起動時にradeonfbの検出を行ったぐらいでいきなり暗転するわけですね。
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 4.99.63 (GENERIC) #0: Mon May 19 16:09:15 PDT 2008
        builds@wb33:/home/builds/ab/HEAD/macppc/200805190002Z-obj/home/builds/ab/HEAD/src/sys/arch/macppc/compile/GENERIC
中略
radeonfb0 at pci0 dev 16 function 0: ATI Technologies Radeon 9200 5962
radeonfb0: Video BIOS not present
radeonfb0: No video BIOS, using default clocks
radeonfb0: refclk = 27.000 MHz, refdiv = 12 minpll = 125000, maxpll = 350000
radeonfb0: using static EDID
max_dotclock according to supported modes: 108000
Vendor: [ENC] 
Product: [1650] L565
Serial number: 0
Manufactured 2003 Week 38
EDID Version 1.2
EDID Comment: 
Video Input: 80
        Digital
Gamma: 2.20
Max Size: 34 cm x 27 cm
Features: ea
        DPMS standby
        DPMS suspend
        DPMS active-off
        RGB
        Preferred timing
Chroma Info:
        Red X: 0.639
        Red Y: 0.639
        Grn X: 0.290
        Grn Y: 0.610
        Blu X: 0.139
        Blu Y: 0.080
        Wht X: 0.309
        Wht Y: 0.330
Range:
        Horizontal: 30 - 65 kHz
        Vertical: 59 - 61 Hz
        Max Dot Clock: 110 MHz
Video modes:
        1024x768 @ 60Hz
        800x600 @ 60Hz
        640x480 @ 60Hz
        1280x1024 @ 60Hz
        1280x1024 @ 60Hz
Preferred mode: 1280x1024 @ 60Hz
radeonfb0: using static EDID
max_dotclock according to supported modes: 108000
Vendor: [ENC] 
Product: [1650] L565
Serial number: 0
Manufactured 2003 Week 38
EDID Version 1.2
EDID Comment: 
Video Input: 80
        Digital
Gamma: 2.20
Max Size: 34 cm x 27 cm
Features: ea
        DPMS standby
        DPMS suspend
        DPMS active-off
        RGB
        Preferred timing
Chroma Info:
        Red X: 0.639
        Red Y: 0.639
        Grn X: 0.290
        Grn Y: 0.610
        Blu X: 0.139
        Blu Y: 0.080
        Wht X: 0.309
        Wht Y: 0.330
Range:
        Horizontal: 30 - 65 kHz
        Vertical: 59 - 61 Hz
        Max Dot Clock: 110 MHz
Video modes:
        1024x768 @ 60Hz
        800x600 @ 60Hz
        640x480 @ 60Hz
        1280x1024 @ 60Hz
        1280x1024 @ 60Hz
Preferred mode: 1280x1024 @ 60Hz
radeonfb0: 64 MB aperture at 0x98000000, 64 KB registers at 0x90000000
radeonfb0: display 0: initial virtual resolution 1280x1024 at 32 bpp
radeonfb0: port 0: physical 1280x1024 60Hz
radeonfb0: port 1: physical 1280x1024 60Hz
init engine
wsdisplay0 at radeonfb0 kbdmux 1: console (fb, vt100 emulation)
wsmux1: connecting to wsdisplay0
drm at radeonfb0 not configured

中略
sshなどのリモートログインの方策がない場合、にっちもさっちもいかないのでこれでは困ります。結局のところ、radeonfbを無効にしたkernelを作れば当然ですが暗転することはありません。

ということで次のようなconfigのカーネルを作りました。
# Display devices
 ofb*   at pci? dev ? function ?        # Generic Open Firmware Framebuffer
# OFB_ENABLE_CACHE speeds up the console on many machines, but should
# not be enabled on some older machines, such as the rev. A-D iMacs or any
# O'Hare based machine that uses external cache like the PowerBook 3400c
options         OFB_ENABLE_CACHE        # Speed up console in ofb
options         OFB_FAKE_VGA_FB         # Allow X to mmap VGA regs
#chipsfb*       at pci? function ?      # C&T 65550
#machfb*                at pci? function ?      # ATI Mach 64, Rage, Rage Pro

#radeonfb*      at pci? function ?      # ATI Radeon. R3xx is problematic
#options        RADEONFB_MMAP_BARS      # allow mmap()ing BARs - needed for X

#voodoofb*      at pci? function ?      # 3Dfx Voodoo3 
#r128fb*                at pci? function ?      # ATI Rage 128
genfb*          at pci? function ?
dmesgで確認するとgenfbでデバイスが認識されています。ofbかと思っていたのですけどねぇ。なぜでしょう。
genfb0 at pci0 dev 16 function 0: ATI Technologies Radeon 9200 5962
genfb0: framebuffer at 0x9c008000, size 1280x1024, depth 8, stride 1280
wsdisplay0 at genfb0 kbdmux 1: console (default, vt100 emulation)
wsmux1: connecting to wsdisplay0
drm at genfb0 not configured

名前:  非公開コメント   

  • TB-URL  http://www.tokuda.net/diary/0633/tb/