PS/2e and XF86
XF86Config on PS/2
Some hints for debugging XF86
The 9533 PS/2e is not a "real" PS/2 first off. It is an interesting (or: challenging) mix of parts from the PS/2-line of computers and the IBM Thinkpad laptops.
And it has ISA-bus, not MCA. And - fortunately in this case - IDE harddisk interface.
The Floppy disk drive for example can be taken from a Thinkpad TP-700 / 720 machine. It is the same, even if the partnumbers and FRU-numbers are different. My own PS/2e runs with a FDD from a scrapped TP-720C after the original drive broke by what reason.
The machine I got featured a single 16-bit ISA slot and a 160MB 2.5" IDE laptop-style harddisk.
I stuffed in an IBM ISA Token Ring 16/4 Adapter in the slot and did some experimenting with it. From another source I got the original IBM 9507 10.4" TFT LCD screen that once kicked the PS/2e price over the 10.000 DM border ... sort of dream-machine back in its days. Only few could afford that.
As noted: the technical basis of the machine is an ISA-planar. But it got an onboard XGA-2 card with 1MB VRAM. And it got an IBM 486SLC2-25/50 processor with 8MB on the sysboard and another 2 open memory connectors.
Sadly the 486SLC processor is not a real 486 processor - which often leads to a very common "Known Problem". It is a 386SX-family processor, which has a physical RAM-limit of 16MB RAM. The bus of these processors is only 24-bit wide for the addresses and 16-bit for the data path. But 8 MB / 70 ns Parity modules (with IBM presence detection) are relatively easy to get. And it really, really pays to have the full 16MB on that machine.
From the very beginning of my experiments I found the 160MB harddisk way to small.
Through lucky circumstances an IBM 1.2GB DPRA-21250 2.5" harddisk from a TP-760 has been washed to my shores.
To peel the drive out of its "Quick-Out" case was easy done and the transplantation into the PS/2e wasn't awfully complicated. Opening the PS/2e case and getting the internal subframe out without ripping the FDD / HD and Power cables is a different story ... to be told somewhere else.
Oh - and while the PS/2e has an "old-fashioned" IDE controller and BIOS it needs a Disk Manager software to be able to handle a drive over 524MB. I choosed "EZ-Drive" from Microhouse to be the "Diskmangler" of my choice ... it could have been Ontrack Disk Manager or Maxtors Maxblast as well. That's a decision of the product just handy - and some individual preferences.
The systemboard has a standard 40-pin IDE connector and a conversion cable straight between to the single harddisk. In this configuration you cannot attach a second HD or a CD-ROM, which would be helpful installing operating systems on the machine. My first installation was PC-DOS 7.0 therefore - which allowed to use INTERLINK / INTERSRV via parallel port to copy the .CAB files from Win95 on the machine.
Worked fine so far .... but I wanted it to run under Linux.
Those who know Linux pretty good already won't think much about installing it on a "one-slot-ISA-no-CD" box.
I however -being a newbie to Linux- needed some cups of coffee and half a pack of cigarettes, before I was able to make a decision on the "howto".
Plan A) involved a cable from an IDE Travan Streamer.
It has 2 x 40-pin connectors and 1 x 40 pin male plug. This plug could be used on the original cable to the HD, while the other standard IDE-connector could be plugged into a CD-ROM ... unfortunately this cable is rather short. And I dislike fiddling around with open machines. And the power supply on the PS/2e has no standard DC-plug for another device. Well - that could be bypassed with a second external power supply.
After some time of arranging, plugging and unplugging components I found it -all in all- to unelegant and awkward.
So I changed to the alternative
Plan B) - which is always the plan, when A) turns out not to work or being otherwise unpracticable.
Here I planned to use the IBM TR-adapter and the network to establish a NFS connection to my already running 9595-AMT machine.
I almost got grey hair on that.
I used the original SuSE 6.1 starter disk, which came with the package of 5 CDs and which I thought should do the trick, since the PS/2e is a "generic ISA box" - more or less.
Right so far - but on the attempt to load the Token Ring driver module the FDD choked every time with a read error. I replaced the FDD. No success.
The secret: when the message boot: appears on the PS/2e screen you have to type in floppy=thinkpad - which tells the boot disk to switch to an alternative FDD-controller mode used by the IBM Thinkpads only.
To be honest: I discovered that after I compiled my own kernel, which already included the Token Ring drivers ...
After that I had some "minor" problems with the NFS, because I haven't had the CD-ROM on the host-machine in the exports list:
Assumed you'd installed and started the NFS server ("starting NFS server" during loading) on another machine running Linux already, check your /etc/exports file if there is a line
Of course you need to have the CD-1 from your Linux distribution mounted to the directory /cdrom with using mount -t iso9660 /dev/scd0 /cdrom. The /dev/scd0 might be /dev/cd0 if you are using a Non-SCSI machine as NFS server.
Don't forget to umount /cdrom when you need to swap the CDs ... and to mount the next one, if required during the install.
But that were only small problems then. Afterwards I could install Linux on the PS/2e with no further problems. I decided to leave the Disk Manager on the drive, because the DRPA has over 2.000 cylinders and I wanted to avoid unnecessary fragmented partitioning to keep Linux and lilo within the first 1.024 cylinders.
No problem: the two work fine together.
PS/2e and XF86
Some people wrote me after I made a remark on the newsgroup comp.sys.ibm.ps2.hardware that the setup for XF86 wasn't much complicated ... generally.
Did some testing and playing with my PS/2e again.
Seems to be a little trickier for some to get the XF86 stuff to run. So I share my knowledge and give some hints :-)
But first: some things to think about.
- xgapos does not work with the machine, because it is ISA - not MCA.
- The MEMBase needs some caution. The XGA memory range cannot exceed 16MB. On true 486 machines it is relocated somewhere in the adressable memory within the 32-bit range (4GB). The MEMBase on the PS/2e must be within 16MB - as for the 9556, which fortunately responds to xgapos ... :-)
Basically all values for memory locations must be within the 24-bit border.
- It is important to get the base settings in the machine configuration right:
- Instance should be "6"
- Video I/O adress is then 2160-216F
- Use C7C00-C7FFF as range for the video coprocessor register
- The unit has only 16MB - and under XF86 it is rather slow.
XF86Config on PS/2e
This XF86Config has been written for the combination 9533 PS/2e with the 9507 10.4" TFT LCD monitor. The settings for the monitor however are generic enough to result in a picture at least on any other screen. They are VGA-monitor settings mainly.
AutoRepeat 500 5
# this line is for a German keyboard !
# see alternative keyboard section below
#Alternative Section for UK-keyboard on US-map:
# Protocol "Standard"
# AutoRepeat 500 5
# Xkbkeycodes "xfree86"
# XkbTypes "default"
# XkbCompat "default"
# XkbSymbols "en_US(pc101)+gb"
# XkbGeometry "pc"
# 640x480 @ 60.1 Hz, 31.5 kHz hsync
Modeline "640x480" 25.25 640 680 776 800 480 491 493 525 +hsync +vsync
# it is important for the X_AGX server to name Chipset and Ramdac !
# theoretical 90 ... but gets flaky after 77MHz usually
# as in the setup
# the COPbase are the last 256 (FFh) bytes of the range
# set under "Video Coprocessor Register"
# here's the clue: must be below 16MB
# standard VGA value
ViewPort 0 0
Some hints for debugging XF86
This chapter basically refers to all machines you wish to run with XF86.
The debugging of the XF86 often takes very long, because the screen stays dark, blanks, returns with garbled characters - or the machine totally crashes.
One method is to pipe the output into a file, using startx -- -bpp 8 >textfile.txt for example. This command starts XF86 in 8bpp mode and redirects the output into the file textfile.txt.
Main pitfall: when the XF86 crashes your machine and you have to "Master Reset" (switch off) the file isn't written and the info is lost. The effort is also wasted, when the screen comes dark, stays dark and you have no clue how to get back to the command line without switching the machine off - or the characters are totally garbled and you have to init 6 or reboot or blindly type shutdown -r now.
It might take very long until you get into the nature of the problem.
If you have a network and the machine connected to it you might use telnet to log on to that machine.
You should have the line ROOT_LOGIN_REMOTE="yes" included in /etc/rc.config - which allowes you to log in to the machine as root from a remote station.
Alternatively you need to have a user defined on your machine other than root and use the "Super User": login with the user via telnet, then type su and use the root-password ... voilá - you are root now ... or at least very close to.
However: it is not necessary for starting the X-Server. You only need to be able to log in from a remote station into the machine - that will do. No need to be root or Super User here. Except you want to be able to edit the XF86Config from another station too.
If you enter startx -- -bpp 8 here and your XF86Config contains e.g. a typo - you will see where it chokes - and why.
If you -for example- forgot to name the chipset for the X_AGX server you get this message:
(**) FontPath set to "/usr/X11R6/lib/X11/fonts/local/,/usr/X11R6/lib/X11/fonts/m
(**) AGX:Valid AGX/XGA Chip type must be specified.
*** A configured device found, but display modes could not be resolved.***
Fatal server error:
no screens found
This is a rather trivial error and you will be able to read it after XF86 returns from the graphic mode - but if the error would have crashed the machine you have had no clue at all.
Attention: the system is no racer. It takes a while until you see the graphic display after the screen blanked. You should immediately stop the X-server when the monitor starts making funny whistling noises or goes totally out of sync. Running a monitor out of sync for longer may result in permanent damage of the monitor (and the video chip in the worst case too !).
To shut down the X-Server locally you need to press the keys [CTRL] + [ALT] + [BACKSPACE] simultanously. Normally that will stop the X-Server from running and return the machine to the command line. But sometimes the screen output is garbled (on all terminals [ALT][F1] to [ALT][F8] ...), the screen stays blank nontheless or the system hangs anyway.
In this case you will have to "Master Reset" the machine or type init 6 blindly.
To shut down the X-Server from telnet you simply press [CTRL]+[C] ... and you are back on the command-line - after some time to shut down the graphics maybe.
Hope this is of some use ... probably not only for running the PS/2e with XF86.