DISPLAY

RH7-3

The video chip used in the Toshiba 6100 is the NVIDIA GeForce 4 420 Go.

Depending on the exact model of 6100 you have, the video RAM may be 16M or 32M - check this from the specifications before going any further.

During RH Linux 8.0 installation, the chip is probed as NVIDIA GeForce 4 and a "vesa" driver is selected.  
The LCD monitor cannot be automatically probed, so use "Generic Laptop 1024x768", and select a maximum colour depth of 16-bit.

This invokes a standard VESA driver with 800x640 resolution:  not brilliant, but good enough to get the system operational.  You can push this up to 1024x768 using a maximum depth of 16 bit by modifying your /etc/X11/XF86Config file as follows:

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Unknown monitor"
        HorizSync       31.5 - 100
        VertRefresh     50.0 - 100
        Modeline        "1024x768" 110.16 1024 1056 1168 1360 768 772 776 810
        Option "ddc" "off"
EndSection
Section "Device"
        Identifier  "Videocard0"
        Driver      "vesa"
        VendorName  "Videocard vendor"
        BoardName   "NVIDIA GeForce 4 (generic)"
        VideoRam 32768  #  Check the amount of video RAM in your PC from the specifications and set accordingly
        Option "BackingStore" "Off"   # I set BackingStore Off for compatibility with Win4Lin - it may not be necessary if you do not use this application
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        Monitor    "Monitor0"
        DefaultDepth     16
        SubSection "Display"
                Modes    "1024x768"
        EndSubSection
        SubSection "Display"
                Depth     16
                Modes    "1024x768"
                Virtual 1024 768
        EndSubSection
EndSection

Installing the NVIDIA drivers:

For a really sparkling display, you will need to get the correct Linux drivers.  At the time of writing, NVidia had not issued *.rpm packages compatible with the Toshiba hardware and running the standard version of Redhat 8.0 with kernel 2.4.18-14.

Check this page (Release 40, software version 1.0-4191) for the latest position on the current drivers, and if in doubt, run the NVchooser application provided.

Do not attempt to use drivers that are incompatible with your architecture/operating system/kernel under any circumstances!

For the avoidance of doubt, the applicable architecture is i686 (not UP, SMP or bigmem), the operating system is Redhat 8.0, and you can find out your kernel version by doing:

# uname -r

If you read this warning too late, you can always revert to the VESA driver until NVidia have issued an appropriate .rpm file


At the time of writing, the only reasonably safe way to install the NVidia drivers is from the "tarballs": NVIDIA_kernel_1.0_4191.tar.gz and NVIDIA_GLX_1.0_4191.tar.gz, but be prepared for problems!

The following steps involve re-configuring the kernel, and are not for the faint-hearted...

  1. Read the NVidia documentation, available here (Release 40, software version 1.0-4191) in .txt or .pdf format
  2. Download the kernel and GLX .tar.gz files
  3. As root, copy the downloaded files to /usr/local
  4. Change directory to /usr/local
  5. Extract the kernel tarball: tar -xvzf NVIDIA_kernel_1.0_4191.tar.gz
  6. Change directory to NVIDIA_kernel_1.0_4191 and type "make"
  7. At this point, there are two kinds of error you may get: (i) unresolved symbol errors, and/or (ii) kernel-module version mismatch error. In either case, proceed to the next step...(If a miracle happens and you get no errors, proceed to step 16)
  8. Check that you have a kernel-source package installed: rpm -qa | grep source (if not, please install kernel-source from .rpm file)
  9. Check that the kernel-source version (e.g. 2.4.18-14) is the same as the running kernel (type "uname -r" to find out). If the kernel-source version is older, install (rpm -Uvh) the version compatible with the running kernel
  10. Change directory to /usr/src/linux-(highest version number & must be compatible with the kernel-source version)/configs
  11. Select the appropriate configuration file, for example, if you are running 2.4.18-14, it will be /usr/src/linux-2.4.18-14/configs/kernel-2.4.18-i686.config
  12. Copy the above config file to /usr/src/linux-2.4/.config (Make a backup of .config first)
  13. Change directory to /usr/src/linux-2.4 and edit the Makefile so that the line EXTRAVERSION = -14custom becomes EXTRAVERSION = -14
  14. Type the following sequence of commands: make mrproper , make oldconfig , make dep
  15. Go back to the NVIDIA_kernel directory under /usr/local and run: make clean , make (hopefully with no errors this time!)
  16. cd ../ and extract the GLX tarball: tar -xvzf NVIDIA_GLX_1.0_4191.tar.gz
  17. cd NVIDIA_GLX_1.0_4191 and run: make
  18. Now, just to be on the safe side, go to your /etc/inittab file and change the default runlevel to 3 (multi-user, no X server): you can always change it back to 5 later

That's the difficult part done. If it didn't work for some reason, all I can suggest is that you consult the Linux and NVidia Graphics forum. When I experienced problems with unresolved symbols, kernel mismatch, and so on, I received outstanding support by posting a question there (hence I am able to share the solution, above).

Assuming the Version 1.0-4191 drivers have installed correctly, proceed as follows:

Re-boot your computer. It should re-enter at runlevel 3. Log in as root.

Make a backup of your XF86 Config (/etc/X11/XF86Config) then modify it as follows:

"Module" section:

  1. Remove the line> Load "dri"
  2. Remove the line> Load "GLcore"
  3. Ensure you have the line> Load "glx"

"Monitor" section:

For a basic setup, all you need is:

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Toshiba 6100 LCD Display"
        HorizSync       31.5 - 150
        VertRefresh     50.0 - 100
        Modeline     "1024x768" 97.40  1024 1072 1192 1416 768 768 771 809
        Option "ddc" "off"
EndSection

"Device" section:

It's very important that the Driver line is changed from "nv" or "vesa" to "nvidia". Also, remember to check the amount of video RAM you have, and decide whether you want BackingStore on or off. (Must be off if you are using Win4Lin).


Section "Device"
        Identifier  "Videocard0"
        Driver      "nvidia"
        VendorName  "NVIDIA"
        BoardName   "NVIDIA GeForce 4 420 Go"
        VideoRam 32768
        Option "BackingStore" "Off"
EndSection

"Screen" section:

You can add more modes as required, but note that each must have a valid modeline in the "Monitor" section. The "Virtual" line disables the display panning that would otherwise occur by default, and forces the driver to display everything within the confines of the screen dimensions.

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        Monitor    "Monitor0"
        DefaultDepth     24
        SubSection "Display"
                Modes    "1024x768"
        EndSubSection
        SubSection "Display"
                Depth     24
                Modes    "1024x768"
                Virtual 1024 768
        EndSubSection
EndSection

Once the modified file has been saved, you can try starting the X-server:

$ startx

and with a bit of luck, you will have a functioning display. If not, check the /var/log/XFree86.9.log file for pointers to what went wrong. Useful key commands at this stage are:

<Ctrl> <Alt> <BkSp> to kill the X-server and revert to text mode

<Ctrl> <Alt> <Fn> <;> to switch screen modes (if you have more than one)

IMPORTANT NOTE:  If you make a mistake and get a bright white screen, kill the X-server immediately to avoid irreparable damage to the LCD display. All of the above instructions are given without any warranty. They may not work in your case, and worse, they may cause damage to your PC. Use them at your own risk!

Assuming all is well, you may notice a black vertical line at the right hand side of the screen. To get rid of this, add the following line to /etc/modules.conf :

options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=2

and re-boot.


Examples:

Here are some sample XF86Config files to play with (sample display shown under each):

  1. 16-bit VESA exampleVesa 16-bit
  2. 24-bit NVIDIA exampleNVidia 1.0-4191 @ 32 bits

Copy these to your /etc/X11/XF86Config file, as appropriate, having made a backup first. Note that only the 1024x768 modeline is working properly at the moment - I will try to get the other screen resolutions later...



External Monitor/TV settings

This is really difficult. The Toshiba 6100 hotkey display switch (Fn F5) is not properly supported under Linux, and the NVidia driver implementation supports it even less... There is a solution, though!

  1. Ensure that you have Jonathan Buzzard's Toshiba Linux Utilities, which you can obtain here. The stable version of the utilities requires Toshiba Laptop support either compiled into the kernel or as a loadable module (RH8.0 default). Download the utilities tarball, copy to /usr/local/ and do tar -xvzf. Change directory to /usr/local/toshutils-2.x.x and follow the README for installation instructions. Note that "make install" creates the required special device files if they do not already exist.
  2. The display switch in Jonathan's utilities only works on Libretto notebooks, so you are going to need another little utility named "Toshset" from Charles Schwieters. Copy to /usr/local/ and "untar" as you did in step 1.
    cd to /usr/local/toshset-1.xx and follow the README for installation instructions. If you have Toshiba Laptop support compiled into the kernel (not as a module, which is RH8.0 default), you must change the Toshset Makefile so that the line "DEFS = -DUSE_KERNEL_INTERFACE" is uncommented. Failure to do this will cause Toshset to crash with a segmentation fault...Also, you may need to create 3 directories to prevent compilation errors. These are:
    /usr/local/man
    /usr/local/man/man1 and 
    /usr/local/man/man8
    

Now, you have two options (i) VESA 16-bit or (ii) NVidia 24-bit. The VESA option is easier, but will probably not support everything you want to do.

VESA 16-bit dual display

The trick here is to ensure that your monitor settings can apply equally to the internal and external monitors. I have used a very old monitor (Philips 105S) in this sample XF86Config running at 1024x768 pixels. Copy this to your existing XF86Config, having made a backup first, and re-start your computer with the external monitor plugged in.
Note: you can change TV regional options (PAL/NTSC) via the computer's setup menu by pressing <Ctrl> <Esc> immediately after switching on.
Login and use toshset -video both to enable LCD and external monitors simultaneously. This works in text mode or from an X-terminal. Other toshset options are int, ext, tv. You can try these, but "tv" will probably only work at 800x600.

NVidia 24-bit dual display

Getting this to work depends on some slick operation of the Fn F5 hotkey while the computer is booting up. Try this XF86 config. file (you may need to change the settings to suit your external monitor, but once again, I have used something undemanding that will probably work on most monitors. You will almost certainly need to change the TV option from the PAL-B setting I have used to be compatible with UK standards).
Plug your monitor into the VGA port, or TV into the RCA phono jack, when the computer is switched off. Switch on, and while Linux is loading up, press Fn F5 repeatedly until you see a display on both the internal and external monitors. When the X-server starts, you should continue to get a dual display. If not, check your external monitor Hfreq/Vfreq values. or TV localisation settings.
TV seems to work OK at 1024x768, but you may have to run at a colour depth of 16 for playing DVDs. Note that neither toshset nor Fn F5 will work with the NVidia driver when X is running. You can always use toshset in text mode (runlevel 3).


Finally, a useful link for determining external monitor refresh rates and another for generating modelines.

Good luck!



Previous Contents Next