On Mon, Sep 09, 2002 at 06:10:49PM +0200, Michael Renner wrote:
> not identical. I should create a XF86Config depending to the graphic card 
> (and ideally also depending to the monitor or LCD) a modules.config depending 
> to the soundcard and so on.
if you install 'discover' on your machines, kernel modules for a lot of
hardware (like network cards, soundcards ...) are detected and loaded at 
boottime.
there are three pieces of hardware left, where you have to develop your
own solution:
-graphics card
-mouse
-monitor

we use fcopy for our XF86Config, copying only a kind of template and
inserting the data by using postinst, doing installtime detection there.
we use read-edid and hwinfo for this.
single problem: as hwinfo is a locally debianized SuSE-tool, in longterm
we have to replace it ;)

I attached the contents of $FAI/files/etc/X11/XF86Config-4/

-- 
c u
henning
#XF86Config-4 template
# $Id: XCLIENT,v 1.8 2002/07/05 09:57:06 glaweh Exp $
#
#Replace hash surrounded
#   MOUSEDEVICE, MOUSEPROTOCOL
#   HORIZSYNC, VERTREFRESH
#   VIDEODRIVER, X_KEYMAP 
#by appropriate values

Section "Files"
        FontPath        "unix/:7100"                    # local font server
        # if the local font server has problems, we can fall back on these
        FontPath        "/usr/lib/X11/fonts/misc"
        FontPath        "/usr/lib/X11/fonts/cyrillic"
        FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/TrueType"
        FontPath        "/usr/lib/X11/fonts/Type1"
        FontPath        "/usr/lib/X11/fonts/Speedo"
        FontPath        "/usr/lib/X11/fonts/100dpi"
        FontPath        "/usr/lib/X11/fonts/75dpi"
EndSection

Section "ServerFlags"
  Option       "AllowMouseOpenFail"
  Option       "DontZap"
EndSection

Section "Module"
        Load    "ddc"
        Load    "GLcore"
        Load    "dbe"
        Load    "dri"
        Load    "extmod"
        Load    "glx"
        Load    "pex5"
        Load    "record"
        Load    "xie"
        Load    "bitmap"
        Load    "freetype"
        Load    "speedo"
        Load    "type1"
        Load    "vbe"
        Load    "int10"
EndSection

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "keyboard"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xfree86"
        Option          "XkbModel"      "pc102"
        Option          "XkbLayout"     "#X_KEYMAP#"
#       Option          "XkbVariant"    "nodeadkeys"
EndSection

Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Device"                "#MOUSEDEVICE#"
        Option          "Protocol"              "#MOUSEPROTOCOL#"
        Option          "Buttons"               "5"
        Option          "Emulate3Buttons"       "false"
        Option          "ZAxisMapping"          "4 5"
EndSection

Section "Device"
        Identifier      "Generic Video Card"
        Driver          "#VIDEODRIVER#"
EndSection

Section "Monitor"
        Identifier      "Generic Monitor"
        HorizSync       #HORIZSYNC#
        VertRefresh     #VERTREFRESH#
        Option          "DPMS"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Device          "Generic Video Card"
        Monitor         "Generic Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           1
                Modes           "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           4
                Modes           "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           8
                Modes           "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           15
                Modes           "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           16
                Modes           "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Default Screen"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
EndSection

Section "DRI"
        Mode    0666
EndSection

# end of XF86Config
<?xml version="1.0" encoding="ISO-8859-1"?>
<fcopyinfo>
<comment>Template der X11-Serverkonfiguration, das mit Hilfe von <tt>postinst</tt> 
aktualisiert wird.</comment>
<depend>
  <package>xfree86-common</package>
</depend>
</fcopyinfo>
root root 0644
#!/bin/sh
# $Id: postinst,v 1.7 2002/02/05 23:14:32 glaweh Exp $

# Get keyboard configuration
[ -e $target/etc/config/keyboard ] && . $target/etc/config/keyboard

# Check for the XF86 Servermodule
VIDEODRIVER=`hwinfo --display | grep 'XFree86 v4 Server Module:' \
        | sed -e 's/.*XFree86 v4 Server Module: *//' | head -n 1`

# Check for the XF86 Mouse
MOUSEDEVICE=`hwinfo --mouse | grep 'Device File:' \
        | sed -e 's/.*Device File: *//'`

MOUSEPROTOCOL=`hwinfo --mouse | grep 'XFree86 Protocol:' \
        | sed -e 's/.*Protocol: *//'`

# Check for the Monitor data
MONITORDATA=`get-edid 2>/dev/null | parse-edid 2>/dev/null \
        | grep -e "HorizSync" -e "VertRefresh" \
        | sed -e 's/.*HorizSync *//g'  -e 's/.*VertRefresh *//g'`

HORIZSYNC=`  echo ${MONITORDATA} | awk '{print $1}'`
VERTREFRESH=`echo ${MONITORDATA} | awk '{print $2}'`

[ -z "${VIDEODRIVER}"   ] &&   VIDEODRIVER=vga
[ -z "${MOUSEDEVICE}"   ] &&   MOUSEDEVICE=/dev/psaux
[ -z "${MOUSEPROTOCOL}" ] && MOUSEPROTOCOL=ps/2
[ -z "${HORIZSYNC}"     ] &&     HORIZSYNC=30-100
[ -z "${VERTREFRESH}"   ] &&   VERTREFRESH=48-160
[ -z "${X_KEYMAP}"      ] &&      X_KEYMAP=us

export VIDEODRIVER MOUSEPROTOCOL MOUSEDEVICE HORIZSYNC VERTREFRESH X_KEYMAP 

perl -pi -e 's/#VIDEODRIVER#/$ENV{VIDEODRIVER}/g;' \
        -e 's/#MOUSEDEVICE#/$ENV{MOUSEDEVICE}/g;'\
        -e 's/#MOUSEPROTOCOL#/$ENV{MOUSEPROTOCOL}/g;'\
        -e 's/#HORIZSYNC#/$ENV{HORIZSYNC}/g;' \
        -e 's/#VERTREFRESH#/$ENV{VERTREFRESH}/g;' \
        -e 's/#X_KEYMAP#/$ENV{X_KEYMAP}/g;' $2

Reply via email to