PPC: Using the Apple TFT Display under Linux

Support knowledgebase (olh_ppc_apple_tft)
Applies to

SuSE Linux PowerPC: Versions since 6.4

Problem

You have a digital Apple Studio Display and it does not respond correctly under Linux. This article describes how to get the TFT display to work correctly.

Cause

The framebuffer driver in the kernel is not capable of determining the exact type of display that is attached. Thus, it uses a standard resolution that most monitors are capable of functioning at. The TFT display is not capable of using these settings, and switches itself off. Only ATI Rage128 cards can be used right now, nVidia cards do not work at all. ATI Radeon and 3dfx Voodoo cards might work, status unknown.

ATI Rage128 cards listen to video=aty128fb:...
ATI Radeon cards listen to video=radeon:...
3dfx Voodoo cards listen to video=tdfx:...

Solution

It is possible to indicate the correct resolution to use, with the following Kernel parameter:

* 15" Display
video=aty128fb:vmode:14
video=radeon:1024x768-8@60

* 17" Display (Monitor)
video=aty128fb:vmode:20
video=radeon:1280x1024-8@75

* 17" Display (LCD)
video=aty128fb:1280x1024-8@60
video=radeon:1280x1024-8@60
a kernel that works out of the box can be found here:
ftp://ftp.suse.com/pub/suse/ppc/kernel/2.4.2/vmlinux-apple_lcd_17-2.4.2-11.gz

* 22" Cinema Display
video=aty128fb:vmode:22
video=radeon:1600x1024-8@60
This Parameter switches the display to 1024x768 at 60Hz, for the 15 inch display, and 1600x1024 at 60Hz, for the cinema display.

Please note: In order to use the vmode:22, it is necessary to install the 2.2.18 kernel, or higher. Please refer to olh_ppc_64_new_powermacs.html, olh_ppc_64_kernel.html and usb2216.html, if you have version 6.4 of SuSE. Otherwise, obtain the following files:

ftp://ftp.suse.com/pub/suse/ppc/kernel/2.2.18/vmlinux-2.2.18-14
ftp://ftp.suse.com/pub/suse/ppc/kernel/2.2.18/k_pmac-2.2.18-14.ppc.rpm

The file vmlinux-2.2.18-14 needs to be placed in the suseboot folder on the linuxboot partition.

On the linux side, install the other file with the following command (run as root from the directory containing the *.rpm file):

rpm -Uvh k_pmac-2.2.18-14.ppc.rpm

Reboot the machine to initialize the kernel.

Configuration under X11:

With XFree86 3.3.6, the Kernel Framebuffer driver is used, and thus, this resolution is used as well. It is not necessary to create a special configuration in this case. The color depth can be set with the program, xsfbswitch.

XFree86 4.1.0 and newer should be able to autodetect the "panel size".
sax2 4.3 and newer can create a valid XF86config.

With XFree86 4.0.1 and newer versions, you must indicate the correct modeline. This must correspond to 1024x768 at 60Hz or 1600x1024 at 60Hz. With SaX2, the incorrect resolution is used by default, and the display will switch off. Proceed as follows:

Create an XFree86 4 configuration file:

sax2 -af
Copy the example file for the Rage128 Chipset from CD1:
mount /cdrom
cp -av /cdrom/unsorted/XF86Config.g4 /etc/X11/XF86Config
Edit the new file /etc/X11/XF86Config with your favorate text editor and change the following two parameters:
The keyboard assignment in the section "InputDevice"
Section "InputDevice"
  Driver        "keyboard"
  Identifier    "Keyboard[0]"
  Option        "Protocol"      "Standard"
  Option        "XkbLayout"     "en"
  Option        "XkbModel"      "macintosh"
  Option        "XkbRules"      "xfree86"
#  Option        "XkbVariant"    "nodeadkeys"
EndSection
The resolution in the section "Display":
Replace 834x624@75 with 1024x768@60 or 1600x1024@60

Save your modifications.
X11 should now start with the command, startx. Sometimes, if you terminate the session, you will have a white display. The framebuffer driver, or X11, fails to initialize the graphics chip correctly. This does not occur if a graphical login is used.


Keywords: PPC, POWERPC, HARDWARE, MAC, MACINTOSH, APPLE, TFT

Categories: Power Macintosh

SDB-olh_ppc_apple_tft, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 27. Nov 2000
SuSE Linux AG - Last generated: 03. Dez 2001 by olh (sdb_gen 1.40.0)