PDA

View Full Version : Installing Nvidia drivers for remastered cd



ill
03-07-2004, 02:25 AM
Could somew one shed some light on this topic,

i want to install the Offical nvidia drivers for linux, but i dont know how?

raydj
03-16-2004, 01:13 AM
I will make a few assumptions:

1- You want a Knoppix that loads always the accelerated nvidia driver instead of "nv", and behaves normally for other types of video cards.

2- You are remastering knoppix following the Knoppix Remastering Howto of knoppix.net

3- You are familiar with a text editor of your choice (in a terminal). I will use vi.

4- You've already booted knoppix, and have one root shell with the chrooted environment.

5- You have avaliable in the chroot linux-kernel-headers and gcc-2.95


First, create a temporary directory somewhere. I used /temporary:

root@tty1[/]# mkdir temporary
root@tty1[/]# cd temporary

Now, download the .run file from nvidia:

root@tty1[temporary]# wget http://download.nvidia.com/XFree86/Linux-x86/1.0-5336/NVIDIA-Linux-x86-1.0-5336-pkg1.run

Extract it:

root@tty1[temporary]# sh NVIDIA-Linux-x86-1.0-5336-pkg1.run --extract-only
root@tty1[temporary]# cd NVIDIA-Linux-x86-1.0-5336-pkg1

Now there's a little thing we have to tweak. /usr/bin/gcc is a symlink that points to gcc-3.3, but the kernel was compiled with gcc-2.95. I've never had any problems compiling it with 3.3, but just to be on the safe side, let's modify the link (we'll fix it again later):

root@tty1[NVIDIA-Linux-x86-1.0-5336-pkg1]# ln -sf /usr/bin/gcc-2.95 /usr/bin/gcc

We are ready to install. Let's bypass some checks:

root@tty1[NVIDIA-Linux-x86-1.0-5336-pkg1]# ./nvidia-installer --accept-license --no-runlevel-check --no-precompiled-interface

If all went well, the driver is installed. Now let's modify the mkxf86config script:

root@tty1[NVIDIA-Linux-x86-1.0-5336-pkg1]# cd /usr/sbin
root@tty1[sbin]# vi mkxf86config

Look for the sed command that creates /etc/X11/XF86Config-4. You can look for the string "nv", the sed command is a few lines below (there's another 'sed' line above this, don't touch that)

Then, add this before the sed:

if [ "$XMODULE" = "nv" ]; then
XMODULE="nvidia"
fi

sed -e 's|@@PROTOCOL@@|'......

Save the file and exit.

And the moment you've all been waiting for!! Let's tidy up the room first...

root@tty1[NVIDIA-Linux-x86-1.0-5336-pkg1]# cd /
root@tty1[/]# ln -sf /usr/bin/gcc-3.3 /usr/bin/gcc
root@tty1[/]# rm -rf /temporary

Now repack it, and enjoy! :D

ptesone
03-16-2004, 01:57 AM
I musta got lucky then
I downloaded the latest NVIDIA driver today
(made it executable first)
made knoppix not boot KDM and booted via text and typed:
./NVIDIA-Linux-x86-1.0-5336-pkg1.run

-I accepted the EULA
-said no to the compiled driver
-said no on the GCC 2.95 -> 3.x issue

and I typed mcedit /etc/X11/XF86Config-4 file to say "nvida" instead of "nv"

typed startx
(or u can kdm start)
and wella- the big NVIDIA logo appeared. . .

still trying to figure out a few other things tho. . .Like how to keep my Network Settings! ! !

raydj
03-16-2004, 05:32 AM
You can do it this way too, but I think that one of this two things will happen:

a/ when you burn it and boot from the new master, it will either overwrite or ignore the /etc/X11/XF86Config-4 that you've left on the CD, or

b/ it won't start X if the computer does not have a nvidia card

Judging by your last post, maybe option b/ is OK for you. However, I like to keep my Knoppix as "portable" as I can. You never know... :)

PS: I'm not going to try it, so if you go ahead tell me if I'm wrong.

ptesone
03-17-2004, 12:49 AM
I guess I should have stated that
I'm using a HD install and I had to recompile my nVidia drivers with the --force-tls=classic switch anyways. . .

pau1knopp
03-18-2004, 03:44 PM
Would it be possible to use this process on a LIVE CD instance of KNOPPIX? I am looking to evaluate a used GForce2GTS PRO card, but don't want to remaster if I don't have too. Using KNOPPIX 2-16-04

Thanks in advance,

Paul

raydj
03-18-2004, 05:57 PM
IMHO it will be difficult to install the drivers in live cd mode, at least in an easy way, because the directories will be read only. I think it's best to take a little time remastering it, if you follow my procedure you'll end with a KNOPPIX cd that can boot in a system without an nvidia card.

gonzalu
03-21-2004, 02:44 AM
I will make a few assumptions:




Look for the sed command that creates /etc/X11/XF86Config-4. You can look for the string "nv", the sed command is a few lines below (there's another 'sed' line above this, don't touch that)

Then, add this before the sed:

if [ "$XMODULE" = "nv" ]; then
MODULE="nvidia"
fi

sed -e 's|@@PROTOCOL@@|'......

Save the file and exit.

And the moment you've all been waiting for!! Let's tidy up the room first...

root@tty1[NVIDIA-Linux-x86-1.0-5336-pkg1]# cd /
root@tty1[/]# ln -sf /usr/bin/gcc-3.3 /usr/bin/gcc
root@tty1[/]# rm -rf /temporary

Now repack it, and enjoy! :D

Excellent post... I followed your instructions above and it installed the drivers without a hitch (I had done that before and knew it would work but...) So then I added your special cheat into mkxf86config but it did not do what you expected... it still seens "nv" and keeps it that way. This is with autodetect... no biggie.

If I specify xmodule=nvidia, the accelerated drivers come up no problem, but ddc idetection is undermining my intentions (1920x1200 on a Dell Inspiron 8500 with GeForce 4200 To Go) I have a 15.4 inch WUXGA screen... So to get it all to work, I had to hack mkxf86config and XF86Config-4.in (below) and use commandline cheats:

knoppix screen=1920x1200 xmodule=nvidia noddc

There are needed modelines in XF86Config-4 that I added and other stuff like the DRI and other stuff...

Now, if I could only get it all to work in autodetect mode :-) I have an ISO that I will be making available soon for all to just peruse.... Any help with the autodetection of nvidia instead of nv and the automatic disabling of DDC probing (it gets confused by the LCD panel I guess) would be appreciated.

Thank you
Manny

mkxf86config


#!/bin/bash

PATH="/bin:/usr/bin:/sbin:/usr/sbin"; export PATH
umask 022

# [ "`id -u`" != "0" ] && echo "WARNING: $0 has to run as root to work properly." 1>&2

# ANSI COLORS
CRE="
"
NORMAL=""
# RED: Failure or error message
RED=""
# GREEN: Success message
GREEN=""
# YELLOW: Descriptions
YELLOW=""
# BLUE: System messages
BLUE=""
# MAGENTA: Found devices or drivers
MAGENTA=""
# CYAN: Questions
CYAN=""
# BOLD WHITE: Hint
WHITE=""

TMPFILE="/tmp/mkxf86config-$$"
MONITORTMP="$TMPFILE-monitor"

rm -f "$TMPFILE" "$MONITORTMP"

### Utility Function(s)
# Reread boot command line; echo last parameter's argument or return false.
CMDLINE="$(cat /proc/cmdline)"

getbootparam(){
case "$CMDLINE" in *\ $1=*) ;; *) return 1; ;; esac
result="${CMDLINE##*$1=}"
result="${result%%[ ]*}"
echo "$result"
return 0
}

checkbootparam(){
case "$CMDLINE" in *\ $1*) return 0;; esac
return 1
}

# Read in what hwsetup has found for X
[ -f /etc/sysconfig/xserver ] && . /etc/sysconfig/xserver

# Xserver, Xmodule, Xscreen, Xvrefresh, if specified by commandline
NEWXSERVER="$(getbootparam xserver 2>/dev/null)"
[ -z "$XSERVER" -a -z "$NEWXSERVER" ] && NEWXSERVER="XFree86"
[ -n "$NEWXSERVER" ] && { XSERVER="$NEWXSERVER" ; echo "XSERVER='$XSERVER'" >> /etc/sysconfig/knoppix ; echo "XSERVER='$XSERVER'" >> /etc/sysconfig/xserver; }
NEWXMODULE="$(getbootparam xmodule 2>/dev/null)"
[ -z "$XMODULE" -a -z "$NEWXMODULE" ] && NEWXMODULE="vesa"
[ -n "$NEWXMODULE" ] && { XMODULE="$NEWXMODULE" ; echo "XMODULE='$XMODULE'" >> /etc/sysconfig/knoppix ; echo "XMODULE='$XMODULE'" >> /etc/sysconfig/xserver; }
XSCREEN="$(getbootparam xscreen 2>/dev/null)"
[ -z "$XSCREEN" ] && XSCREEN="$(getbootparam screen 2>/dev/null)"
[ -n "$XSCREEN" ] && { echo "XSCREEN='$XSCREEN'" >> /etc/sysconfig/knoppix ; echo "XSCREEN='$XSCREEN'" >> /etc/sysconfig/xserver; }
XVREFRESH="$(getbootparam xvrefresh 2>/dev/null)"
[ -n "$XVREFRESH" ] || XVREFRESH="$(getbootparam vrefresh 2>/dev/null)"
[ -n "$XVREFRESH" ] || XVREFRESH="$(getbootparam xvsync 2>/dev/null)"
[ -n "$XVREFRESH" ] || XVREFRESH="$(getbootparam vsync 2>/dev/null)"
[ -n "$XVREFRESH" ] && { echo "XVREFRESH='$XVREFRESH'" >> /etc/sysconfig/knoppix ; echo "XVREFRESH='$XVREFRESH'" >> /etc/sysconfig/xserver; }
XHREFRESH="$(getbootparam xhrefresh 2>/dev/null)"
[ -n "$XHREFRESH" ] || XHREFRESH="$(getbootparam hrefresh 2>/dev/null)"
[ -n "$XHREFRESH" ] || XHREFRESH="$(getbootparam xhsync 2>/dev/null)"
[ -n "$XHREFRESH" ] || XHREFRESH="$(getbootparam hsync 2>/dev/null)"
[ -n "$XHREFRESH" ] && { echo "XHREFRESH='$XHREFRESH'" >> /etc/sysconfig/knoppix ; echo "XHREFRESH='$XHREFRESH'" >> /etc/sysconfig/xserver; }
XDEPTH="$(getbootparam xdepth 2>/dev/null)"
[ -n "$XDEPTH" ] || XDEPTH="$(getbootparam depth 2>/dev/null)"
[ -n "$XDEPTH" ] && { echo "XDEPTH='$XDEPTH'" >> /etc/sysconfig/knoppix ; echo "XDEPTH='$XDEPTH'" >> /etc/sysconfig/xserver; }
# Wheel
WHEEL=""
if checkbootparam "wheel"; then
WHEEL='s|"PS/2"|"IMPS/2"\
Option "ZAxisMapping" "4 5"|g;'
elif checkbootparam "nowheel"; then
# Don't change the default, which is plain PS/2
WHEEL=""
else
# Apparently, the mouse auto-protocol option works in XFree 4.3 now. Let's give it a try.
WHEEL='s|"PS/2"|"auto"\
Option "ZAxisMapping" "4 5"|g;'
fi

# Read in changes
[ -f /etc/sysconfig/knoppix ] && . /etc/sysconfig/knoppix

# Read default keyboard from config file.
# There seems to be no reliable autoprobe possible.
[ -f /etc/sysconfig/keyboard ] && . /etc/sysconfig/keyboard

# Create mouse link and insert a mouse default type into XF86Config
# if not already done by hwsetup
[ -f /etc/sysconfig/mouse ] && . /etc/sysconfig/mouse
[ -e /dev/mouse ] || ln -sf /dev/ttyS0 /dev/mouse
# PROTO="${XMOUSETYPE:-Auto}"
PROTO="${XMOUSETYPE:-Microsoft}"
NOEMU=""
[ "${XEMU3}" = "no" ] && NOEMU='s|^.*Emulate3|# No 2 -> 3 Button emulation|g'
DEADKEYS=""
[ "$XKEYBOARD" = "de" ] || DEADKEYS='s|^.*nodeadkeys.*$||g;'
if [ -n "XMODULE" ]; then
# Check for Framebuffer X-Modules and initialize framebuffer module
case "$XMODULE" in
pvr2fb) modprobe "$XMODULE" >/dev/null 2>&1 ; XMODULE="fbdev"; ;;
esac
fi

NODDC=""
checkbootparam noddc && NODDC="true"

MONITOR=""
COMPLETE=""
RC=""

if [ -z "$NODDC" ]; then
# Try to get Monitor data via ddcxinfo-knoppix
MONITOR="$(ddcxinfo-knoppix -monitor)"
RC="$?"
COMPLETE="$(awk '/EndSection/{print}' <<EOF
$MONITOR
EOF)"
fi

if [ "$RC" != "0" -o -z "$MONITOR" -o -z "$COMPLETE" ]; then
MONITOR='
Section "Monitor"
Identifier "Monitor0"
ModelName "Old Monitor (no DDC)"
# HorizSync 28.0 - 78.0 # Warning: This may fry very old Monitors
HorizSync 28.0 - 96.0 # Warning: This may fry old Monitors
# VertRefresh 50.0 - 76.0 # Very conservative. May flicker.
VertRefresh 50.0 - 60.0 # Extreme conservative. Will flicker. TFT default.

# Default modes distilled from
# "VESA and Industry Standards and Guide for Computer Display Monitor
# Timing", version 1.0, revision 0.8, adopted September 17, 1998.
# $XFree86: xc/programs/Xserver/hw/xfree86/etc/vesamodes,v 1.4 1999/11/18 16:52:17 tsi Exp $
# 640x350 @ 85Hz (VESA) hsync: 37.9kHz
ModeLine "640x350" 31.5 640 672 736 832 350 382 385 445 +hsync -vsync
# 640x400 @ 85Hz (VESA) hsync: 37.9kHz
ModeLine "640x400" 31.5 640 672 736 832 400 401 404 445 -hsync +vsync
# 720x400 @ 85Hz (VESA) hsync: 37.9kHz
ModeLine "720x400" 35.5 720 756 828 936 400 401 404 446 -hsync +vsync
# 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz
ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync
# 640x480 @ 72Hz (VESA) hsync: 37.9kHz
ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync
# 640x480 @ 75Hz (VESA) hsync: 37.5kHz
ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync
# 640x480 @ 85Hz (VESA) hsync: 43.3kHz
ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync
# 800x600 @ 56Hz (VESA) hsync: 35.2kHz
ModeLine "800x600" 36.0 800 824 896 1024 600 601 603 625 +hsync +vsync
# 800x600 @ 60Hz (VESA) hsync: 37.9kHz
ModeLine "800x600" 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync
# 800x600 @ 72Hz (VESA) hsync: 48.1kHz
ModeLine "800x600" 50.0 800 856 976 1040 600 637 643 666 +hsync +vsync
# 800x600 @ 75Hz (VESA) hsync: 46.9kHz
ModeLine "800x600" 49.5 800 816 896 1056 600 601 604 625 +hsync +vsync
# 800x600 @ 85Hz (VESA) hsync: 53.7kHz
ModeLine "800x600" 56.3 800 832 896 1048 600 601 604 631 +hsync +vsync
# 1024x768i @ 43Hz (industry standard) hsync: 35.5kHz
ModeLine "1024x768" 44.9 1024 1032 1208 1264 768 768 776 817 +hsync +vsync Interlace
# 1024x768 @ 60Hz (VESA) hsync: 48.4kHz
ModeLine "1024x768" 65.0 1024 1048 1184 1344 768 771 777 806 -hsync -vsync
# 1024x768 @ 70Hz (VESA) hsync: 56.5kHz
ModeLine "1024x768" 75.0 1024 1048 1184 1328 768 771 777 806 -hsync -vsync
# 1024x768 @ 75Hz (VESA) hsync: 60.0kHz
ModeLine "1024x768" 78.8 1024 1040 1136 1312 768 769 772 800 +hsync +vsync
# 1024x768 @ 85Hz (VESA) hsync: 68.7kHz
ModeLine "1024x768" 94.5 1024 1072 1168 1376 768 769 772 808 +hsync +vsync
# 1152x864 @ 75Hz (VESA) hsync: 67.5kHz
ModeLine "1152x864" 108.0 1152 1216 1344 1600 864 865 868 900 +hsync +vsync
# 1280x960 @ 60Hz (VESA) hsync: 60.0kHz
ModeLine "1280x960" 108.0 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync
# 1280x960 @ 85Hz (VESA) hsync: 85.9kHz
ModeLine "1280x960" 148.5 1280 1344 1504 1728 960 961 964 1011 +hsync +vsync
# 1280x1024 @ 60Hz (VESA) hsync: 64.0kHz
ModeLine "1280x1024" 108.0 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync
# 1280x1024 @ 75Hz (VESA) hsync: 80.0kHz
ModeLine "1280x1024" 135.0 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync
# 1280x1024 @ 85Hz (VESA) hsync: 91.1kHz
ModeLine "1280x1024" 157.5 1280 1344 1504 1728 1024 1025 1028 1072 +hsync +vsync
# 1600x1200 @ 60Hz (VESA) hsync: 75.0kHz
ModeLine "1600x1200" 162.0 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1600x1200 @ 65Hz (VESA) hsync: 81.3kHz
ModeLine "1600x1200" 175.5 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1600x1200 @ 70Hz (VESA) hsync: 87.5kHz
ModeLine "1600x1200" 189.0 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1600x1200 @ 75Hz (VESA) hsync: 93.8kHz
ModeLine "1600x1200" 202.5 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1600x1200 @ 85Hz (VESA) hsync: 106.3kHz
ModeLine "1600x1200" 229.5 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1792x1344 @ 60Hz (VESA) hsync: 83.6kHz
ModeLine "1792x1344" 204.8 1792 1920 2120 2448 1344 1345 1348 1394 -hsync +vsync
# 1792x1344 @ 75Hz (VESA) hsync: 106.3kHz
ModeLine "1792x1344" 261.0 1792 1888 2104 2456 1344 1345 1348 1417 -hsync +vsync
# 1856x1392 @ 60Hz (VESA) hsync: 86.3kHz
ModeLine "1856x1392" 218.3 1856 1952 2176 2528 1392 1393 1396 1439 -hsync +vsync
# 1856x1392 @ 75Hz (VESA) hsync: 112.5kHz
ModeLine "1856x1392" 288.0 1856 1984 2208 2560 1392 1393 1396 1500 -hsync +vsync
# 1920x1440 @ 60Hz (VESA) hsync: 90.0kHz
ModeLine "1920x1440" 234.0 1920 2048 2256 2600 1440 1441 1444 1500 -hsync +vsync
# 1920x1440 @ 75Hz (VESA) hsync: 112.5kHz
ModeLine "1920x1440" 297.0 1920 2064 2288 2640 1440 1441 1444 1500 -hsync +vsync
# Additional modelines
ModeLine "1800x1440" 230 1800 1896 2088 2392 1440 1441 1444 1490 +HSync +VSync
ModeLine "1800x1440" 250 1800 1896 2088 2392 1440 1441 1444 1490 +HSync +VSync
# Extended modelines with GTF timings
# 640x480 @ 100.00 Hz (GTF) hsync: 50.90 kHz; pclk: 43.16 MHz
ModeLine "640x480" 43.16 640 680 744 848 480 481 484 509 -HSync +Vsync
# 768x576 @ 60.00 Hz (GTF) hsync: 35.82 kHz; pclk: 34.96 MHz
ModeLine "768x576" 34.96 768 792 872 976 576 577 580 597 -HSync +Vsync
# 768x576 @ 72.00 Hz (GTF) hsync: 43.27 kHz; pclk: 42.93 MHz
ModeLine "768x576" 42.93 768 800 880 992 576 577 580 601 -HSync +Vsync
# 768x576 @ 75.00 Hz (GTF) hsync: 45.15 kHz; pclk: 45.51 MHz
ModeLine "768x576" 45.51 768 808 888 1008 576 577 580 602 -HSync +Vsync
# 768x576 @ 85.00 Hz (GTF) hsync: 51.42 kHz; pclk: 51.84 MHz
ModeLine "768x576" 51.84 768 808 888 1008 576 577 580 605 -HSync +Vsync
# 768x576 @ 100.00 Hz (GTF) hsync: 61.10 kHz; pclk: 62.57 MHz
ModeLine "768x576" 62.57 768 816 896 1024 576 577 580 611 -HSync +Vsync
# 800x600 @ 100.00 Hz (GTF) hsync: 63.60 kHz; pclk: 68.18 MHz
ModeLine "800x600" 68.18 800 848 936 1072 600 601 604 636 -HSync +Vsync
# 1024x768 @ 100.00 Hz (GTF) hsync: 81.40 kHz; pclk: 113.31 MHz
ModeLine "1024x768" 113.31 1024 1096 1208 1392 768 769 772 814 -HSync +Vsync
# 1152x864 @ 60.00 Hz (GTF) hsync: 53.70 kHz; pclk: 81.62 MHz
ModeLine "1152x864" 81.62 1152 1216 1336 1520 864 865 868 895 -HSync +Vsync
# 1152x864 @ 85.00 Hz (GTF) hsync: 77.10 kHz; pclk: 119.65 MHz
ModeLine "1152x864" 119.65 1152 1224 1352 1552 864 865 868 907 -HSync +Vsync
# 1152x864 @ 100.00 Hz (GTF) hsync: 91.50 kHz; pclk: 143.47 MHz
ModeLine "1152x864" 143.47 1152 1232 1360 1568 864 865 868 915 -HSync +Vsync
# 1280x960 @ 72.00 Hz (GTF) hsync: 72.07 kHz; pclk: 124.54 MHz
ModeLine "1280x960" 124.54 1280 1368 1504 1728 960 961 964 1001 -HSync +Vsync
# 1280x960 @ 75.00 Hz (GTF) hsync: 75.15 kHz; pclk: 129.86 MHz
ModeLine "1280x960" 129.86 1280 1368 1504 1728 960 961 964 1002 -HSync +Vsync
# 1280x960 @ 100.00 Hz (GTF) hsync: 101.70 kHz; pclk: 178.99 MHz
ModeLine "1280x960" 178.99 1280 1376 1520 1760 960 961 964 1017 -HSync +Vsync
# 1280x1024 @ 100.00 Hz (GTF) hsync: 108.50 kHz; pclk: 190.96 MHz
ModeLine "1280x1024" 190.96 1280 1376 1520 1760 1024 1025 1028 1085 -HSync +Vsync
# 1400x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 122.61 MHz
ModeLine "1400x1050" 122.61 1400 1488 1640 1880 1050 1051 1054 1087 -HSync +Vsync
# 1400x1050 @ 72.00 Hz (GTF) hsync: 78.77 kHz; pclk: 149.34 MHz
ModeLine "1400x1050" 149.34 1400 1496 1648 1896 1050 1051 1054 1094 -HSync +Vsync
# 1400x1050 @ 75.00 Hz (GTF) hsync: 82.20 kHz; pclk: 155.85 MHz
ModeLine "1400x1050" 155.85 1400 1496 1648 1896 1050 1051 1054 1096 -HSync +Vsync
# 1400x1050 @ 85.00 Hz (GTF) hsync: 93.76 kHz; pclk: 179.26 MHz
ModeLine "1400x1050" 179.26 1400 1504 1656 1912 1050 1051 1054 1103 -HSync +Vsync
# 1400x1050 @ 100.00 Hz (GTF) hsync: 111.20 kHz; pclk: 214.39 MHz
ModeLine "1400x1050" 214.39 1400 1512 1664 1928 1050 1051 1054 1112 -HSync +Vsync
# 1600x1200 @ 100.00 Hz (GTF) hsync: 127.10 kHz; pclk: 280.64 MHz
ModeLine "1600x1200" 280.64 1600 1728 1904 2208 1200 1201 1204 1271 -HSync +Vsync
EndSection
'
fi

# Extract values for display
MODEL="$(awk '/^[ ]*ModelName/{print;exit}'<<EOF
$MONITOR
EOF
)"

MODEL="${MODEL#*\"}"
MODEL="${MODEL%\"*}"

HREFRESH="$(awk '/^[ ]*HorizSync/{print $2 $3 $4; exit}'<<EOF
$MONITOR
EOF
)"

VREFRESH="$(awk '/^[ ]*VertRefresh/{print $2 $3 $4; exit}'<<EOF
$MONITOR
EOF
)"

# Build line of allowed modes
MODES=""
ADDMODE=""
# Use commandline modes if specified
[ -n "$XSCREEN" ] && ADDMODE="-firstmode $XSCREEN"
if [ -z "$NODDC" ]; then
MODES="$(ddcxinfo-knoppix -modes $ADDMODE)"
fi
if [ "$?" != "0" -o -z "$MODES" ]; then
MODES="Modes "
[ -n "$XSCREEN" ] && MODES="$MODES \"$XSCREEN\""
MODES="$MODES \"1024x768\" \"800x600\" \"640x480\""
fi

# Use commandline vertical refresh rate if specified
if [ -n "$XVREFRESH" ]; then
MONITOR="$(sed 's|VertRefresh[ ].*$|VertRefresh 49.0 - '"$XVREFRESH"'|g;' <<EOF
$MONITOR
EOF
)"
fi

# Use commandline horizontal refresh rate if specified
if [ -n "$XHREFRESH" ]; then
MONITOR="$(sed 's|HorizSync[ ].*$|HorizSync 28.0 - '"$XHREFRESH"'|g;' <<EOF
$MONITOR
EOF
)"
fi

DEPTH=""
# Use commandline colordepth if specified
if [ -n "$XDEPTH" ]; then
DEPTH='s|DefaultColorDepth[ ].*$|DefaultColorDepth '"$XDEPTH"'|g;'
fi

# We need to check this because serial mice have long timeouts
SERIALMOUSE="$(ls -l1 /dev/mouse* 2>/dev/null | awk '/ttyS/{print $NF ; exit 0}')"
if [ -n "$SERIALMOUSE" ]; then
SERIALMOUSE="s|/dev/ttyS0|$SERIALMOUSE|g;"
else
SERIALMOUSE='s|^.*InputDevice.*"Serial Mouse".*$|# Serial Mouse not detected|g;'
fi

# PS/2 bug: Some keyboards are incorrectly used as mice in XFree. :-(
PSMOUSE="$(ls -l1 /dev/mouse* 2>/dev/null | awk '/psaux/{print $NF ; exit 0}')"
if [ -n "$PSMOUSE" ]; then
PSMOUSE=""
else
PSMOUSE='s|^.*InputDevice.*"PS/2 Mouse".*$|# PS/2 Mouse not detected|g;'
fi

case "$(cat /proc/modules)" in *usbmouse*|*mousedev*|*hid\ *)
USBMOUSE="" ;;
*)
USBMOUSE='s|^.*InputDevice.*"USB Mouse".*$|# USB Mouse not detected|g;';;
esac

# Write Monitor data now
rm -f "$MONITORTMP"
echo "$MONITOR" >"$MONITORTMP"

# /etc/X11/XF86Config* is the "default" config.
if [ ! -f /etc/XF86Config -a ! -f /etc/X11/XF86Config ]; then
# Remove it, just in case it's a link to CD
rm -f /etc/XF86Config /etc/X11/XF86Config 2>/dev/null
sed -e 's|@@PROTOCOL@@|'"$PROTO"'|g;'"$NOEMU" \
-e '/@@MONITOR@@/r '"$MONITORTMP" \
-e 's|@@MONITOR@@||g' \
-e 's|@@MODES@@|'"$MODES"'|g;'"$DEPTH" \
-e 's|XkbLayout *"[^"]*"|XkbLayout "'"$XKEYBOARD"'"|g;'"$DEADKEYS" \
/etc/X11/XF86Config.in > /etc/X11/XF86Config
fi

if [ ! -f /etc/XF86Config-4 -a ! -f /etc/X11/XF86Config-4 ]; then
rm -f /etc/XF86Config-4 /etc/X11/XF86Config-4 2>/dev/null

# VMWare special handling
VMWARE=""
if [ "$XMODULE" = "vmware" ]; then
VMWARE='s|^.*BusID.*PCI.*$|BusID "PCI:0:15:0"|g;'
DEPTH='s|DefaultColorDepth |# DefaultColorDepth |g;'
fi

# These drivers need the sw_cursor option
SWCURSOR=""
case "$XMODULE" in ati|radeon|nv|trident) SWCURSOR='s|^.*#Option.*"sw_cursor".*$|Option "sw_cursor"|g;';; esac

# We must use NoPM, because some machines freeze if Power management is being activated.

NOPM=""
DPMS=""
checkbootparam noapm && NOPM='Option "NoPM" "true"' || DPMS='Option "DPMS" "true"'

sed -e 's|@@PROTOCOL@@|'"$PROTO"'|g;'"$NOEMU" \
-e '/@@MONITOR@@/r '"$MONITORTMP" \
-e 's|@@MONITOR@@||g' \
-e 's|@@NOPM@@|'"$NOPM"'|g' \
-e 's|@@XMODULE@@|'"$XMODULE"'|g;'"$VMWARE""$SERIALMOUSE""$USBMOUSE""$PSMOUSE""$SWCURSOR""$WHEEL" \
-e 's|@@MODES@@|'"$MODES"'|g;'"$DEPTH" \
-e 's|"XkbLayout" *"[^"]*"|"XkbLayout" "'"$XKEYBOARD"'"|g;'"$DEADKEYS" \
/etc/X11/XF86Config-4.in >/etc/X11/XF86Config-4

if [ -n "$DPMS" ]; then
sed -e 's|Identifier[ ]*"Monitor0"|Identifier "Monitor0"\
'"$DPMS"'|g' /etc/X11/XF86Config-4 >/etc/X11/XF86Config-4.new
mv -f /etc/X11/XF86Config-4.new /etc/X11/XF86Config-4
fi

fi

rm -f "$TMPFILE" "$MONITORTMP" 2>/dev/null

# Print info about selected X-Server
[ -n "$XDESC" ] || XDESC="(yet) unknown card"
echo -n " ${GREEN}Video is"
[ -n "$XDESC" ] && echo -n " ${YELLOW}$XDESC${GREEN},"
echo -n " using ${YELLOW}${XSERVER:-generic VESA}"
[ -n "$XMODULE" ] && echo -n "(${MAGENTA}$XMODULE${YELLOW})"
echo " Server${NORMAL}"
echo -n " ${GREEN}Monitor is ${YELLOW}${MODEL:-Generic Monitor}${NORMAL}"
[ -n "$HREFRESH" -a -n "$VREFRESH" ] && echo "${GREEN}, ${GREEN}H:${YELLOW}${HREFRESH}kHz${GREEN}, V:${YELLOW}${VREFRESH}Hz${NORMAL}" || echo ""
[ -n "$XVREFRESH" ] && echo " ${GREEN}Trying specified vrefresh rate of ${YELLOW}${XVREFRESH}Hz.${NORMAL}"
[ -n "$MODES" ] && echo " ${GREEN}Using Modes ${YELLOW}${MODES##Modes }${NORMAL}"


XF86Config-4.in


Section "ServerLayout"
Identifier "XFree86 Configured"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "PS/2 Mouse" "CorePointer"
InputDevice "Serial Mouse" "CorePointer"
InputDevice "USB Mouse" "CorePointer"
InputDevice "Bluetooth Mouse"
EndSection

Section "ServerFlags"
Option "AllowMouseOpenFail" "true"
@@NOPM@@
EndSection

Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/X11R6/lib/modules"
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/PEX"
# Additional fonts: Locale, Gimp, TTF...
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
# FontPath "/usr/X11R6/lib/X11/fonts/latin2/75dpi"
# FontPath "/usr/X11R6/lib/X11/fonts/latin2/100dpi"
# True type and type1 fonts are also handled via xftlib, see /etc/X11/XftConfig!
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/ttf/western"
FontPath "/usr/share/fonts/ttf/decoratives"
FontPath "/usr/share/fonts/truetype"
FontPath "/usr/share/fonts/truetype/openoffice"
FontPath "/usr/share/fonts/truetype/ttf-bitstream-vera"
FontPath "/usr/share/fonts/latex-ttf-fonts"
FontPath "/usr/X11R6/lib/X11/fonts/defoma/CID"
FontPath "/usr/X11R6/lib/X11/fonts/defoma/TrueType"
EndSection

Section "Module"
Load "ddc" # ddc probing of monitor
# Load "GLcore"
Load "dbe"
# Load "dri"
Load "extmod"
Load "glx"
Load "bitmap" # bitmap-fonts
Load "speedo"
Load "type1"
Load "freetype"
Load "record"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc105"
Option "XkbLayout" "de"
Option "XkbVariant" "nodeadkeys"
EndSection

Section "InputDevice"
Identifier "Serial Mouse"
Driver "mouse"
Option "Protocol" "Microsoft"
Option "Device" "/dev/ttyS0"
Option "Emulate3Buttons" "true"
Option "Emulate3Timeout" "70"
Option "SendCoreEvents" "true"
EndSection

Section "InputDevice"
Identifier "PS/2 Mouse"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "true"
Option "Emulate3Timeout" "70"
Option "SendCoreEvents" "true"
EndSection

Section "InputDevice"
Identifier "Bluetooth Mouse"
Driver "mouse"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/mice"
Option "Protocol" "ExplorerPS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
Option "Buttons" "5"
Option "Name" "AutoDetected"
Option "Vendor" "AutoDetected"
EndSection

Section "InputDevice"
Identifier "USB Mouse"
Driver "mouse"
Option "Device" "/dev/input/mice"
Option "SendCoreEvents" "true"
Option "Protocol" "IMPS/2"
Option "ZAxisMapping" "4 5"
Option "Buttons" "5"
EndSection

# Auto-generated by KNOPPIX mkxf86config
@@MONITOR@@

Section "Device"
### Available Driver options are:-
# sw_cursor is needed for some ati and radeon cards
#Option "sw_cursor"
#Option "hw_cursor"
#Option "NoAccel"
#Option "ShowCache"
#Option "ShadowFB"
#Option "UseFBDev"
#Option "Rotate"
Identifier "Card0"
# The following line is auto-generated by KNOPPIX mkxf86config
Driver "@@XMODULE@@"
VendorName "All"
BoardName "All"
# BusID "PCI:1:0:0"
Option "CursorShadow" "1"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultColorDepth 24
SubSection "Display"
Depth 1
@@MODES@@
EndSubSection
SubSection "Display"
Depth 4
@@MODES@@
EndSubSection
SubSection "Display"
Depth 8
@@MODES@@
EndSubSection
SubSection "Display"
Depth 15
@@MODES@@
EndSubSection
SubSection "Display"
Depth 16
@@MODES@@
EndSubSection
SubSection "Display"
Depth 24
@@MODES@@
EndSubSection
SubSection "Display"
Depth 32
@@MODES@@
EndSubSection
EndSection

Section "DRI"
Mode 0666
EndSection

raydj
03-21-2004, 04:59 PM
Looking at the code of your mkxf86config, it seems that you've forgot to patch it. So it keeps passing "nv" as the value of $XMODULE...

gonzalu
03-22-2004, 02:19 AM
No way, I am sure I did it! Am I that dense? ... man I swear.. I did it :)

Let me look again brb...

gonzalu
03-22-2004, 02:36 AM
Okay I did have a mistake on the posted code above (dunno where it came from...) but here again is the one on the source directory that i used to build the cd... I will check the actual cd in a second..



#!/bin/bash

PATH="/bin:/usr/bin:/sbin:/usr/sbin"; export PATH
umask 022

# [ "`id -u`" != "0" ] && echo "WARNING: $0 has to run as root to work properly." 1>&2

# ANSI COLORS
CRE="2fb) modprobe "$XMODULE" >/dev/null 2>&1 ; XMODULE="fbdev"; ;;
esac
fi

NODDC=""
checkbootparam noddc && NODDC="true"

MONITOR=""
COMPLETE=""
RC=""

if [ -z "$NODDC" ]; then
# Try to get Monitor data via ddcxinfo-knoppix
MONITOR="$(ddcxinfo-knoppix -monitor)"
RC="$?"
COMPLETE="$(awk '/EndSection/{print}' <<EOF
$MONITOR
EOF)"
fi

if [ "$RC" != "0" -o -z "$MONITOR" -o -z "$COMPLETE" ]; then
MONITOR='
Section "Monitor"
Identifier "Monitor0"
ModelName "Old Monitor (no DDC)"
# HorizSync 28.0 - 78.0 # Warning: This may fry very old Monitors
HorizSync 28.0 - 115.0 # Warning: This may fry old Monitors
# VertRefresh 50.0 - 76.0 # Very conservative. May flicker.
VertRefresh 50.0 - 90.0 # Extreme conservative. Will flicker. TFT default.
DisplaySize 330 210
Option "DPMS"

# Default modes distilled from
# "VESA and Industry Standards and Guide for Computer Display Monitor
# Timing", version 1.0, revision 0.8, adopted September 17, 1998.
# $XFree86: xc/programs/Xserver/hw/xfree86/etc/vesamodes,v 1.4 1999/11/18 16:52:17 tsi Exp $
# 640x350 @ 85Hz (VESA) hsync: 37.9kHz
ModeLine "640x350" 31.5 640 672 736 832 350 382 385 445 +hsync -vsync
# 640x400 @ 85Hz (VESA) hsync: 37.9kHz
ModeLine "640x400" 31.5 640 672 736 832 400 401 404 445 -hsync +vsync
# 720x400 @ 85Hz (VESA) hsync: 37.9kHz
ModeLine "720x400" 35.5 720 756 828 936 400 401 404 446 -hsync +vsync
# 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz
ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync
# 640x480 @ 72Hz (VESA) hsync: 37.9kHz
ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync
# 640x480 @ 75Hz (VESA) hsync: 37.5kHz
ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync
# 640x480 @ 85Hz (VESA) hsync: 43.3kHz
ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync
# 800x600 @ 56Hz (VESA) hsync: 35.2kHz
ModeLine "800x600" 36.0 800 824 896 1024 600 601 603 625 +hsync +vsync
# 800x600 @ 60Hz (VESA) hsync: 37.9kHz
ModeLine "800x600" 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync
# 800x600 @ 72Hz (VESA) hsync: 48.1kHz
ModeLine "800x600" 50.0 800 856 976 1040 600 637 643 666 +hsync +vsync
# 800x600 @ 75Hz (VESA) hsync: 46.9kHz
ModeLine "800x600" 49.5 800 816 896 1056 600 601 604 625 +hsync +vsync
# 800x600 @ 85Hz (VESA) hsync: 53.7kHz
ModeLine "800x600" 56.3 800 832 896 1048 600 601 604 631 +hsync +vsync
# 1024x768i @ 43Hz (industry standard) hsync: 35.5kHz
ModeLine "1024x768" 44.9 1024 1032 1208 1264 768 768 776 817 +hsync +vsync Interlace
# 1024x768 @ 60Hz (VESA) hsync: 48.4kHz
ModeLine "1024x768" 65.0 1024 1048 1184 1344 768 771 777 806 -hsync -vsync
# 1024x768 @ 70Hz (VESA) hsync: 56.5kHz
ModeLine "1024x768" 75.0 1024 1048 1184 1328 768 771 777 806 -hsync -vsync
# 1024x768 @ 75Hz (VESA) hsync: 60.0kHz
ModeLine "1024x768" 78.8 1024 1040 1136 1312 768 769 772 800 +hsync +vsync
# 1024x768 @ 85Hz (VESA) hsync: 68.7kHz
ModeLine "1024x768" 94.5 1024 1072 1168 1376 768 769 772 808 +hsync +vsync
# 1152x864 @ 75Hz (VESA) hsync: 67.5kHz
ModeLine "1152x864" 108.0 1152 1216 1344 1600 864 865 868 900 +hsync +vsync
# 1280x960 @ 60Hz (VESA) hsync: 60.0kHz
ModeLine "1280x960" 108.0 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync
# 1280x960 @ 85Hz (VESA) hsync: 85.9kHz
ModeLine "1280x960" 148.5 1280 1344 1504 1728 960 961 964 1011 +hsync +vsync
# 1280x1024 @ 60Hz (VESA) hsync: 64.0kHz
ModeLine "1280x1024" 108.0 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync
# 1280x1024 @ 75Hz (VESA) hsync: 80.0kHz
ModeLine "1280x1024" 135.0 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync
# 1280x1024 @ 85Hz (VESA) hsync: 91.1kHz
ModeLine "1280x1024" 157.5 1280 1344 1504 1728 1024 1025 1028 1072 +hsync +vsync
# 1600x1200 @ 60Hz (VESA) hsync: 75.0kHz
ModeLine "1600x1200" 162.0 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1600x1200 @ 65Hz (VESA) hsync: 81.3kHz
ModeLine "1600x1200" 175.5 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1600x1200 @ 70Hz (VESA) hsync: 87.5kHz
ModeLine "1600x1200" 189.0 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1600x1200 @ 75Hz (VESA) hsync: 93.8kHz
ModeLine "1600x1200" 202.5 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1600x1200 @ 85Hz (VESA) hsync: 106.3kHz
ModeLine "1600x1200" 229.5 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1792x1344 @ 60Hz (VESA) hsync: 83.6kHz
ModeLine "1792x1344" 204.8 1792 1920 2120 2448 1344 1345 1348 1394 -hsync +vsync
# 1792x1344 @ 75Hz (VESA) hsync: 106.3kHz
ModeLine "1792x1344" 261.0 1792 1888 2104 2456 1344 1345 1348 1417 -hsync +vsync
# 1856x1392 @ 60Hz (VESA) hsync: 86.3kHz
ModeLine "1856x1392" 218.3 1856 1952 2176 2528 1392 1393 1396 1439 -hsync +vsync
# 1856x1392 @ 75Hz (VESA) hsync: 112.5kHz
ModeLine "1856x1392" 288.0 1856 1984 2208 2560 1392 1393 1396 1500 -hsync +vsync
#
# added by MG 03-21-2004
ModeLine "1920x1200" 162 1920 1984 2176 2480 1200 1201 1204 1250 +hsync +vsync
Modeline "1680x1050" 147.14 1680 1784 1968 2256 1050 1051 1054 1087
#
# 1920x1440 @ 60Hz (VESA) hsync: 90.0kHz
ModeLine "1920x1440" 234.0 1920 2048 2256 2600 1440 1441 1444 1500 -hsync +vsync
# 1920x1440 @ 75Hz (VESA) hsync: 112.5kHz
ModeLine "1920x1440" 297.0 1920 2064 2288 2640 1440 1441 1444 1500 -hsync +vsync
# Additional modelines
ModeLine "1800x1440" 230 1800 1896 2088 2392 1440 1441 1444 1490 +HSync +VSync
ModeLine "1800x1440" 250 1800 1896 2088 2392 1440 1441 1444 1490 +HSync +VSync
# Extended modelines with
GTF timings
# 640x480 @ 100.00 Hz (GTF) hsync: 50.90 kHz; pclk: 43.16 MHz
ModeLine "640x480" 43.16 640 680 744 848 480 481 484 509 -HSync +Vsync
# 768x576 @ 60.00 Hz (GTF) hsync: 35.82 kHz; pclk: 34.96 MHz
ModeLine "768x576" 34.96 768 792 872 976 576 577 580 597 -HSync +Vsync
# 768x576 @ 72.00 Hz (GTF) hsync: 43.27 kHz; pclk: 42.93 MHz
ModeLine "768x576" 42.93 768 800 880 992 576 577 580 601 -HSync +Vsync
# 768x576 @ 75.00 Hz (GTF) hsync: 45.15 kHz; pclk: 45.51 MHz
ModeLine "768x576" 45.51 768 808 888 1008 576 577 580 602 -HSync +Vsync
# 768x576 @ 85.00 Hz (GTF) hsync: 51.42 kHz; pclk: 51.84 MHz
ModeLine "768x576" 51.84 768 808 888 1008 576 577 580 605 -HSync +Vsync
# 768x576 @ 100.00 Hz (GTF) hsync: 61.10 kHz; pclk: 62.57 MHz
ModeLine "768x576" 62.57 768 816 896 1024 576 577 580 611 -HSync +Vsync
# 800x600 @ 100.00 Hz (GTF) hsync: 63.60 kHz; pclk: 68.18 MHz
ModeLine "800x600" 68.18 800 848 936 1072 600 601 604 636 -HSync +Vsync
# 1024x768 @ 100.00 Hz (GTF) hsync: 81.40 kHz; pclk: 113.31 MHz
ModeLine "1024x768" 113.31 1024 1096 1208 1392 768 769 772 814 -HSync +Vsync
# 1152x864 @ 60.00 Hz (GTF) hsync: 53.70 kHz; pclk: 81.62 MHz
ModeLine "1152x864" 81.62 1152 1216 1336 1520 864 865 868 895 -HSync +Vsync
# 1152x864 @ 85.00 Hz (GTF) hsync: 77.10 kHz; pclk: 119.65 MHz
ModeLine "1152x864" 119.65 1152 1224 1352 1552 864 865 868 907 -HSync +Vsync
# 1152x864 @ 100.00 Hz (GTF) hsync: 91.50 kHz; pclk: 143.47 MHz
ModeLine "1152x864" 143.47 1152 1232 1360 1568 864 865 868 915 -HSync +Vsync
# 1280x960 @ 72.00 Hz (GTF) hsync: 72.07 kHz; pclk: 124.54 MHz
ModeLine "1280x960" 124.54 1280 1368 1504 1728 960 961 964 1001 -HSync +Vsync
# 1280x960 @ 75.00 Hz (GTF) hsync: 75.15 kHz; pclk: 129.86 MHz
ModeLine "1280x960" 129.86 1280 1368 1504 1728 960 961 964 1002 -HSync +Vsync
# 1280x960 @ 100.00 Hz (GTF) hsync: 101.70 kHz; pclk: 178.99 MHz
ModeLine "1280x960" 178.99 1280 1376 1520 1760 960 961 964 1017 -HSync +Vsync
# 1280x1024 @ 100.00 Hz (GTF) hsync: 108.50 kHz; pclk: 190.96 MHz
ModeLine "1280x1024" 190.96 1280 1376 1520 1760 1024 1025 1028 1085 -HSync +Vsync
# 1400x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 122.61 MHz
ModeLine "1400x1050" 122.61 1400 1488 1640 1880 1050 1051 1054 1087 -HSync +Vsync
# 1400x1050 @ 72.00 Hz (GTF) hsync: 78.77 kHz; pclk: 149.34 MHz
ModeLine "1400x1050" 149.34 1400 1496 1648 1896 1050 1051 1054 1094 -HSync +Vsync
# 1400x1050 @ 75.00 Hz (GTF) hsync: 82.20 kHz; pclk: 155.85 MHz
ModeLine "1400x1050" 155.85 1400 1496 1648 1896 1050 1051 1054 1096 -HSync +Vsync
# 1400x1050 @ 85.00 Hz (GTF) hsync: 93.76 kHz; pclk: 179.26 MHz
ModeLine "1400x1050" 179.26 1400 1504 1656 1912 1050 1051 1054 1103 -HSync +Vsync
# 1400x1050 @ 100.00 Hz (GTF) hsync: 111.20 kHz; pclk: 214.39 MHz
ModeLine "1400x1050" 214.39 1400 1512 1664 1928 1050 1051 1054 1112 -HSync +Vsync
# 1600x1200 @ 100.00 Hz (GTF) hsync: 127.10 kHz; pclk: 280.64 MHz
ModeLine "1600x1200" 280.64 1600 1728 1904 2208 1200 1201 1204 1271 -HSync +Vsync
EndSection
'
fi

# Extract values for display
MODEL="$(awk '/^[ ]*ModelName/{print;exit}'<<EOF
$MONITOR
EOF
)"

MODEL="${MODEL#*\"}"
MODEL="${MODEL%\"*}"

HREFRESH="$(awk '/^[ ]*HorizSync/{print $2 $3 $4; exit}'<<EOF
$MONITOR
EOF
)"

VREFRESH="$(awk '/^[ ]*VertRefresh/{print $2 $3 $4; exit}'<<EOF
$MONITOR
EOF
)"

# Build line of allowed modes
MODES=""
ADDMODE=""
# Use commandline modes if specified
[ -n "$XSCREEN" ] && ADDMODE="-firstmode $XSCREEN"
if [ -z "$NODDC" ]; then
MODES="$(ddcxinfo-knoppix -modes $ADDMODE)"
fi
if [ "$?" != "0" -o -z "$MODES" ]; then
MODES="Modes "
[ -n "$XSCREEN" ] && MODES="$MODES \"$XSCREEN\""
MODES="$MODES \"1920x1200\" \"1680x1050\" \"1024x768\" \"800x600\" \"640x480\""
fi

# Use commandline vertical refresh rate if specified
if [ -n "$XVREFRESH" ]; then
MONITOR="$(sed 's|VertRefresh[ ].*$|VertRefresh 49.0 - '"$XVREFRESH"'|g;' <<EOF
$MONITOR
EOF
)"
fi

# Use commandline horizontal refresh rate if specified
if [ -n "$XHREFRESH" ]; then
MONITOR="$(sed 's|HorizSync[ ].*$|HorizSync 28.0 - '"$XHREFRESH"'|g;' <<EOF
$MONITOR
EOF
)"
fi

DEPTH=""
# Use commandline colordepth if specified
if [ -n "$XDEPTH" ]; then
DEPTH='s|DefaultColorDepth[ ].*$|DefaultColorDepth '"$XDEPTH"'|g;'
fi

# We need to check this because serial mice have long timeouts
SERIALMOUSE="$(ls -l1 /dev/mouse* 2>/dev/null | awk '/ttyS/{print $NF ; exit 0}')"
if [ -n "$SERIALMOUSE" ]; then
SERIALMOUSE="s|/dev/ttyS0|$SERIALMOUSE|g;"
else
SERIALMOUSE='s|^.*InputDevice.*"Serial Mouse".*$|# Serial Mouse not detected|g;'
fi

# PS/2 bug: Some keyboards are incorrectly used as mice in XFree. :-(
PSMOUSE="$(ls -l1 /dev/mouse* 2>/dev/null | awk '/psaux/{print $NF ; exit 0}')"
if [ -n "$PSMOUSE" ]; then
PSMOUSE=""
else
PSMOUSE='s|^.*InputDevice.*"PS/2 Mouse".*$|# PS/2 Mouse not detected|g;'
fi

case "$(cat /proc/modules)" in *usbmouse*|*mousedev*|*hid\ *)
USBMOUSE="" ;;
*)
USBMOUSE='s|^.*InputDevice.*"USB Mouse".*$|# USB Mouse not detected|g;';;
esac

# Write Monitor data now
rm -f "$MONITORTMP"
echo "$MONITOR" >"$MONITORTMP"

# /etc/X11/XF86Config* is the "default" config.
if [ ! -f /etc/XF86Config -a ! -f /etc/X11/XF86Config ]; then
# Remove it, just in case it's a link to CD
rm -f /etc/XF86Config /etc/X11/XF86Config 2>/dev/null
sed -e 's|@@PROTOCOL@@|'"$PROTO"'|g;'"$NOEMU" \
-e '/@@MONITOR@@/r '"$MONITORTMP" \
-e 's|@@MONITOR@@||g' \
-e 's|@@MODES@@|'"$MODES"'|g;'"$DEPTH" \
-e 's|XkbLayout *"[^"]*"|XkbLayout "'"$XKEYBOARD"'"|g;'"$DEADKEYS" \
/etc/X11/XF86Config.in > /etc/X11/XF86Config
fi

if [ ! -f /etc/XF86Config-4 -a ! -f /etc/X11/XF86Config-4 ]; then
rm -f /etc/XF86Config-4 /etc/X11/XF86Config-4 2>/dev/null

# VMWare special handling
VMWARE=""
if [ "$XMODULE" = "vmware" ]; then
VMWARE='s|^.*BusID.*PCI.*$|BusID "PCI:0:15:0"|g;'
DEPTH='s|DefaultColorDepth |# DefaultColorDepth |g;'
fi

# These drivers need the sw_cursor option
SWCURSOR=""
case "$XMODULE" in ati|radeon|nv|nvidia|trident) SWCURSOR='s|^.*#Option.*"sw_cursor".*$|Option "sw_cursor"|g;';; esac

# We must use NoPM, because some machines freeze if Power management is being activated.

NOPM=""
DPMS=""
checkbootparam noapm && NOPM='Option "NoPM" "true"' || DPMS='Option "DPMS" "true"'

if [ "$XMODULE" = "nv" ]; then
MODULE="nvidia"
fi

sed -e 's|@@PROTOCOL@@|'"$PROTO"'|g;'"$NOEMU" \
-e '/@@MONITOR@@/r '"$MONITORTMP" \
-e 's|@@MONITOR@@||g' \
-e 's|@@NOPM@@|'"$NOPM"'|g' \
-e 's|@@XMODULE@@|'"$XMODULE"'|g;'"$VMWARE""$SERIALMOUSE""$USBMOUSE""$PSMOUSE""$SWCURSOR""$WHEEL" \
-e 's|@@MODES@@|'"$MODES"'|g;'"$DEPTH" \
-e 's|"XkbLayout" *"[^"]*"|"XkbLayout" "'"$XKEYBOARD"'"|g;'"$DEADKEYS" \
/etc/X11/XF86Config-4.in >/etc/X11/XF86Config-4

if [ -n "$DPMS" ]; then
sed -e 's|Identifier[ ]*"Monitor0"|Identifier "Monitor0"\
'"$DPMS"'|g' /etc/X11/XF86Config-4 >/etc/X11/XF86Config-4.new
mv -f /etc/X11/XF86Config-4.new /etc/X11/XF86Config-4
fi

fi

rm -f "$TMPFILE" "$MONITORTMP" 2>/dev/null

# Print info about selected X-Server
[ -n "$XDESC" ] || XDESC="(yet) unknown card"
echo -n " ${GREEN}Video is"
[ -n "$XDESC" ] && echo -n " ${YELLOW}$XDESC${GREEN},"
echo -n " using ${YELLOW}${XSERVER:-generic VESA}"
[ -n "$XMODULE" ] && echo -n "(${MAGENTA}$XMODULE${YELLOW})"
echo " Server${NORMAL}"
echo -n " ${GREEN}Monitor is ${YELLOW}${MODEL:-Generic Monitor}${NORMAL}"
[ -n "$HREFRESH" -a -n "$VREFRESH" ] && echo "${GREEN}, ${GREEN}H:${YELLOW}${HREFRESH}kHz${GREEN}, V:${YELLOW}${VREFRESH}Hz${NORMAL}" || echo ""
[ -n "$XVREFRESH" ] && echo " ${GREEN}Trying specified vrefresh rate of ${YELLOW}${XVREFRESH}Hz.${NORMAL}"
[ -n "$MODES" ] && echo " ${GREEN}Using Modes ${YELLOW}${MODES##Modes }${NORMAL}"

raydj
03-22-2004, 03:31 AM
Well... looking at this one, I see you've patched it. However, you have to put XMODULE, not MODULE. That should solve the issue :)

gonzalu
03-22-2004, 04:25 AM
Agggrrr :)

Darn... I copied your code instead of looking at it first hehehe... I should have picked up on that, I amy be a dummy but man, that looked obvious :oops:

Let me give it another shot... I'd like to disable DDC as well when that happens and perhaps try 1920x1200 first... can I just hack that same line of yours to set the NODDC cheat here as well? And maybe also try 1920x1200? I have no clue how to do it, I was simply gonna do:



if [ "$XMODULE" = "nv" ]; then
XMODULE="nvidia"
NODDC="true"
SCREEN="1920x1200"
fi


However, I think the NODDC and SCREEN size options should be higher up on the script... I think by this point the decision has been made wether or not DDC is to be taken into consideration or not (and in my case, I need it to be not taken into consideration)

I will play with the file a bit more and see if I can find how to more elegantly decide if the screen should be detected one way or another to make the CD as flexible as possible. I know I can just hard code this stuff in but I want to make it flexible enough ...

What do you think? Thanks for your help on this. I have gotten much further than I ever have before.

8)

raydj
03-22-2004, 01:34 PM
Well, to diable DCC look for the line that says:

NODCC=""
checkbootparm nodcc && NODCC="true"


add this line below to put ir to TRUE no matter what it detects:

NODCC="true"

I'll suggest to learn a little about bash scripting and keep playing with the init scripts (as long as you don't break anything), it seems that you'll end knowing your way around :)