ILamp
The Apple iLamp -- the iMac G4 w/flat panel display.
CPU form-factor is a white half-sphere w/chrome arm connecting LCD panel to CPU.
[iLamp.config]
End-User Report (dmesg, hardware, gotchas etc.)
Reference machine: iMac G4 Flat Panel Display 15" 1024x768 max resolution, manufactured circa 2002 (acquired new November 2002). All citations from the /proc filesystem, dmesg, etc. were from a benh 2.4.22-r7 kernel built April, 2004. New citations for a 2.6.10 ubuntu kernel have not yet been compiled.
Disassembly, upgrade:
Please see August, 2003 issue of MacWorld, pp.52-3; 62-65. Excellent pictorial article focusing on upgrading internal hard disk drive, RAM. Thermal paste required for reassembly. 'Remove any paste that gets in the vent hole.'
Modem : Conexant usbhcf (V.90) Video : nVidia GeForce2-MX (rivafb) ATA-4 : KeyLargo i2c : KeyWest eth0 : (sungem.c) Sun GEM (PCI) 10/100/1000BaseT Ethernet Audio : TAS3001c + Tumbler Memory : UniNorth PCI : UniNorth io : Pangea irq : OpenPIC BogoMIPS: 697 hda : ST340810A hda : 80022600 sectors (40972 MB) w/2048KiB Cache, CHS=79387/16/63, UDMA(66) hdb : PIONEER DVD/CDRW DCR-111, ATAPI CD/DVD-ROM drive agpgart : Detected Apple UniNorth/Pangea chipset agp : configuring for size idx: 4 agpgart : AGP aperture is 16M @ 0x0 scsi0 : SCSI host adapter emulation for IDE ATAPI devices Vendor: PIONEER Model: DVD/CDRW DCR-111 Rev: 1.30 Type: CD-ROM ANSI SCSI revision: 02 sr0 : scsi3-mmc drive: 27x/62x writer cd/rw xa/form2 cdda tray firewire: detected (untested with peripherals) drivers : usb.c, hub.c, usb-ohci.c, hid-core.c, i2c-dev.o, i2c-core.o.
$ cat /proc/cpuinfo
cpu : 7450, altivec supported clock : 700MHz revision : 2.1 (pvr 8000 0201) bogomips : 697.95 machine : PowerMac4,2 motherboard : PowerMac4,2 MacRISC2 MacRISC Power Macintosh board revision : 00000002 detected as : 258 (Flat panel iMac) pmac flags : 00000001 L2 cache : 256K unified memory : 512MB pmac-generation : NewWorld
$ cat /proc/misc
134 apm_bios 135 rtc 144 nvram 175 agpgart 154 pmu
$ cat /proc/modules
hcfusbserial 22240 1 hcfusbengine 633692 0 [hcfusbserial] hcfusbosspec 39504 4 [hcfusbserial hcfusbengine] [others]
Modem driver
(struck text wrt older modem driver -- see History. -cwh)
/proc/devices
$ cat /proc/devices
Character devices: 1 mem 2 pty/m%d 3 pty/s%d 4 tts/%d 5 cua/%d 7 vcs 10 misc 13 input 14 sound 21 sg 29 fb 56 adb 89 i2c 108 ppp 128 ptm 136 pts/%d 162 raw 180 usb 240 ttySHCF%d 241 cuaHCF%d
Block devices:
1 ramdisk 3 ide0 7 loop 11 sr
$ cat /proc/interrupts
CPU0 1: 0 OpenPIC Edge Built-in Sound out 2: 0 OpenPIC Edge Built-in Sound in 19: 29601 OpenPIC Level ide0 22: 0 OpenPIC Level SCC 23: 0 OpenPIC Level SCC 25: 580 OpenPIC Level VIA-PMU 26: 41 OpenPIC Level keywest i2c 27: 70018 OpenPIC Level usb-ohci 28: 461298 OpenPIC Level usb-ohci 41: 2 OpenPIC Level eth0 42: 0 OpenPIC Level keywest i2c 47: 0 OpenPIC Level GPIO1/ADB 58: 0 OpenPIC Edge Headphone detect BAD: 0
$ lspci
0000:00:0b.0 Host bridge: Apple Computer Inc. UniNorth/Pangea AGP 0000:00:10.0 VGA compatible controller: nVidia Corporation NV11 [GeForce2 MX/MX 400] (rev b2) 0000:10:0b.0 Host bridge: Apple Computer Inc. UniNorth/Pangea PCI 0000:10:17.0 Class ff00: Apple Computer Inc. KeyLargo/Pangea Mac I/O 0000:10:18.0 USB Controller: Apple Computer Inc. KeyLargo/Pangea USB 0000:10:19.0 USB Controller: Apple Computer Inc. KeyLargo/Pangea USB 0000:20:0b.0 Host bridge: Apple Computer Inc. UniNorth/Pangea Internal PCI 0000:20:0e.0 Class ffff: Apple Computer Inc. UniNorth/Pangea FireWire (rev ff) 0000:20:0f.0 Ethernet controller: Apple Computer Inc. UniNorth/Pangea GMAC (Sun GEM)
Backlight
LCD backlight: Set in Mac OS X; double-click on Finder folder to save to NVRAM.
Audio Muting During Boot Sequence
Audio muting : see 'Backlight' for similar procedure (set it to nvram).
Functioning Software and Hardware
gdm : yes, now supported xdm : yes, now supported modem driver : proprietary (taints kernel; no longer free-beer). speakers : fine. xmms works fine. headphones : jack and muting works fine.
Audio Driver in Kernel Source
Audio driver path:
/usr/src/ppc-sources-benh-2.4.22/drivers/sound/dmasound/tas3001c.c
version: 0.3 embedded date: 2001 12 14 (file last stamped: Dec 7 2002)
These md5sums and timestamps may not be originals:
- 9eb6dfa03c74644e1a13832d00bb1d32 tas3001c.c 9896 Dec 7 2002
- aa8cc576bf4a02710ea49bac897b00a5 tas3001c.h 12011 Dec 7 2002
Newer versions of this driver did not work.
Copying working drivers/sound/dmasound/* to newer kernel trees seems to work fine here (up to 2.4.22 anyway).
Open Firmware, NVRAM
TODO: discuss..
..commands
..forth ( www.forth.org etc. )
..relationship to boot sequence
..description of UI
XF86Config-4
XF86Config-4 for 2.4.22 under warty:
# NOTE: This entire /etc/X11/XF86Config-4 may be applicable # only to 2.4.22 kernel built from benh tree. No other # kernel was tested. DPMS issue may be due only to # the author's poor understanding of it. # NOTE: Please use the information *in* but not the formatting # *of* this file. This isn't literate programming; it # is a heavily-commented XF86Config-4 file, and does # not obey X11 tradition. It may not even work, as # posted -- but the individual bits and phrases will.
Section "Module" Load "GLcore" Load "bitmap" Load "dbe" Load "ddc" Load "dri" # Load "extmod" <-- commented out SubSection "extmod" # This was the problem: DPMS. It caused idle X11 # sessions to logout to gdm, ostensibly because # of poor interaction between xscreensaver, and # the underlying DPMS mechanism in this particular # installation. # ------------ not a comment --------------- Option "omit DPMS" # ------------ not a comment --------------- EndSubSection # Repeat: we added a new 'SubSection "extmod" ' and # in such subsection we added an option called # "omit DPMS" to modify the default behavior when # loading the "extmod" module. DPMS (or lack of it) # crashed X11 to the point of unusability. Omitting # support for it (from extmod) was the quick fix. Load "freetype" Load "glx" Load "int10" Load "pex5" Load "record" Load "speedo" Load "type1" Load "vbe" Load "xie" EndSection
Section "InputDevice" Identifier "iMac Factory Keyboard" # Model Number: M7803 Apple Pro Keyboard (c) 2002 Apple # has transparent case, 15 fn keys, 3 speaker/sound control # keys, CDROM eject key (upper right) Driver "keyboard" Option "CoreKeyboard" Option "XkbRules" "xfree86" # XkbModel # # 'macintosh_old' is essential in some installations. # # 'macintosh' is essential in some other installations. # This is an artifact of how the kernel was built. # Hint: ssh from a sane machine so you aren't fighting # a crazy keymap to put it back to rights. # Repeat: both macintosh and macintosh_old work with # the factory iMac G4 (circa 2002 mfgr), depending on # how the kernel was built -- it will be one or the # other, for that kernel build. Option "XkbModel" "macintosh_old" Option "XkbLayout" "us" EndSection
Section "InputDevice" # Yes, multiple InputDevice sections. -cwh # Sample: a recent Logitech USB trackball T-BC21 'Marble Mouse USB' Identifier "Logitech Trackball" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "false" # this is unknown: Option "ZAxisMapping" "4 5" EndSection
Section "Device" Identifier "nVidia GeForce2 MX" Driver "fbdev" BusID "PCI:0:16:0" # Note: UseFBDev (see below) does not seem to work # in Hoary w/ xorg. # # But we're still in XFree86 4.x.x so it is okay here. Option "UseFBDev" "true" EndSection
Section "Monitor" Identifier "Apple iMac G4 Flat Panel" # We are an LCD display. These are dummy args afaik: HorizSync 30-60 VertRefresh 50-75 # Must comment out DPMS for some installations, or # xscreensaver causes instant logouts when manipulated, # and when the X11 session is idle: # Option "DPMS" # Summary: DPMS was disabled in two places: # # Section --> Monitor, # and Modules --> extmod. EndSection
Section "Screen" Identifier "Default Screen" Device "nVidia GeForce2 MX" Monitor "Apple iMac G4 Flat Panel" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1024x768" # You can get other modes; 1024x768 is the natural # mode for a 15" Flat Panel iMac G4 of 2002 vintage. EndSubSection EndSection
Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "iMac Factory Keyboard" InputDevice "Logitech Trackball" EndSection
Section "DRI" Mode 0666 EndSection
xorg.conf
xorg.conf for 2.6.10 under hoary:
# /etc/X11/xorg.conf (xorg X Window System server configuration file) # NOTE: not all required sections reproduced here. # uname -a # Linux foo.bar.org 2.6.10-5-powerpc #1 Tue Apr 5 12:44:32 UTC 2005 ppc GNU/Linux
- # ls -l linux-image-2.6.10-5-powerpc_2.6.10-34_powerpc.deb
15237330 2005-04-05 13:20 \ linux-image-2.6.10-5-powerpc_2.6.10-34_powerpc.deb
- # md5sum linux-image-2.6.10-5-powerpc_2.6.10-34_powerpc.deb
ab2f3aa84b2ec8733ddc4cf29714ff8d \ linux-image-2.6.10-5-powerpc_2.6.10-34_powerpc.deb
Section "Module" Load "GLcore" Load "bitmap" Load "dbe" Load "ddc" Load "dri" # Load "extmod" SubSection "extmod" Option "omit DPMS" EndSubSection Load "freetype" Load "glx" Load "int10" Load "record" Load "type1" Load "vbe" EndSection
Section "InputDevice" Identifier "Generic Keyboard" Driver "keyboard" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "macintosh" Option "XkbLayout" "us" EndSection
Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" EndSection
Section "Device" Identifier "NVIDIA Corporation NV11 [GeForce2 MX/MX 400]" Driver "nv" BusID "PCI:0:16:0" # Defaults to 'true' not 'false'. We want 'false' here: Option "UseFBDev" "false" EndSection
Section "Monitor" Identifier "Color LCD" # Still broken? # Option "DPMS" HorizSync 28-49 VertRefresh 43-72 EndSection
Section "Screen" Identifier "Default Screen" Device "NVIDIA Corporation NV11 [GeForce2 MX/MX 400]" Monitor "Color LCD" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1024x768" EndSubSection EndSection
Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" EndSection
Section "DRI" Mode 0666 EndSection
# Special Note: Above was not tested -- instead is an edit of # an existing (functional) xorg.conf. Errors (if any) are due # to omission, not alteration. A line here or there may've been # inadvertantly deleted, but no important changes were added # without testing.
# TODO: verify all above w/working system. -cwh
Kernel .config
Next: /usr/src/linux/.config for 2.4.22 from benh tree.
[iLamp.config]
People
benh
gerk
matt*
_ * local to this wiki and /time/.
ILamp (last edited 2008-08-06 16:13:54 by localhost)