i'm trying to understand the sax2 tool

I’m switching between nv driver to nouveau. Now the command sax2 -a -m 0 X=nouveau, the syntax might be correct. If so, I still don’t really understand the -m switch. When I man sax2, it said card X=module, what is card stand for, 0 meaning the first card and so on. X means X as short for XORG. A bit more explanation would be great

0 is the first card, 1 the second and so on. So you are saying via -m, for the first card use the nouveau module. If you had more cards it would probably be something like:

-m 0 X=nouveau,1 X=ati

and so on, per man page. Rather odd syntax I must say.

Thanks, so X plays no significance, why just not -m 0=nouveau.

While you are waiting for a sax2 guru to explain it breifly, this may help a bit with your question. This is taken from SDB Server Configuration with SaX2 (8.1 or Higher) - openSUSE

**Options **

 Sax2 offers a number of possibilities to circumvent possible problems with various parameters. The most important options are as follows: 
 sax2 -p         =  Interprets the Bus and lists all cards recognized as
        graphics cards.
sax2 -b         =  Batch mode. /usr/X11R6/lib/sax/profile/
            contains a series of profiles you can use to start SaX2.
        To select the profile, you must enter the complete path, e.g.:
        sax2 -b /usr/X11R6/lib/sax/profile/kyro
sax2 -r         =    It reads all hardware again.
sax2 -l         =    Starts Sax2 with 640*480@60Hz. DDC probing is
        disabled. This option is very helpful in case your
        monitor shuts down as Sax2 starts or your screen is
        black.
sax2 -m 0=   =  This option chain informs SaX2 which module to use
                at start-up for addressing the graphics card.
        For example: sax2 -m 0=r128
                loads the module for ATI Rage-128 cards.
        All modules available for XFree 4.x.x are listed
        under /usr/X11R6/lib/modules/drivers/
        apm          ark        ati
        atimisc          chips        cirrus_alpine
        cirrus          cirrus_laguna    cyrix
        dummy          fbdev        glide
        glint          i128        i740
        i810          imstt        mga
        mga_hal          neomagic        nv
        powervr          r128        radeon
        rendition     s3        s3virge
        savage          siliconmotion    sis
        tdfx          tga        trident
        tseng          vesa        vga
        vmware
sax2 -c    CHIP =  If your system contains several graphics cards or
        several graphics cards are detected, this option enables
        you to define the chipset to configure when
        you do not want to configure a dual or multihead system. For
        example:
        The output of sax2 -p is:
    Chip: 0  is -> ATI Rage 128 PF  01:00:0 0x1002 0x5046 AGP r128
    Chip: 1  is -> ATI Rage 128 PF  01:01:0 0x1002 0x5046 AGP r128
            To perform the configuration, start SaX2 as follows:
        sax2 -c 0
sax2 -n -t   =    If the mouse detection causes any problem, you can start SaX2
        with certain parameters that determine the mouse device and its
        protocol. These are defined with the options -n (node) and -t
        (protocol).
        A sample command could be:
        sax2 -n /dev/usbmouse -t ps/2
sax2 --vesa  =  Starting from version sax2-4.7-237, SaX2 enables you to use
                the option --vesa to directly start SaX2 with any resolution
                with VESA frequencies.
                For example:
                  sax2 --vesa 0:1024x768@85
        The screen to be configured is defined by 0:.
        When combined with -a, it provides an XF86Config within a
                few seconds.
sax2 -a         =  The option -a or --auto generates an automatic
        configuration under consideration of all hardware
        data automatically detected by SaX2. Following the
        launch of "sax2 -a", you can start the graphical
        user interface immediately and adjust the image with
        xfine or restart SaX2 to modify the
        existing configuration. xfine requires
        root permissions.
        You can also combine options, for example:
        sax2 -m 0=r128 -n /dev/psaux -t imps/2 -a
It is also possible that a driver included in your SUSE LINUX version can support certain graphics card types but cannot recognize the graphics card ID. In this case, execute the command 
 echo "Device->[X]->Raw->0->ChipID=0x4966" > /tmp/sax2.batch
When executing this command, do not forget to replace ChipID with your own. Then start SaX2 with 
 sax2 -m 0=DRIVER -b /tmp/sax2.batch
DRIVER must also be replaced with the module supporting your graphics card. 

If you run sax2 --help the return for m option is like this
-m | --modules ]
comma seperated list of X-Server modules
for example: -m 0=mga,1=nv

EDIT!
Opps I’m too late with my post, there is a guru who already answered your question.:X](http://tr.opensuse.org/SDB:X_Server_Configuration_with_SaX2_(8.1_or_Higher)) Looks like someone put this image in my post.

Ah, it looks like the man page is badly written. card X is to be substituted with 0, 1, etc. You are not meant to type in a literal X. So the correct invocation is as you have just suggested. I think it’s because it’s actually card_X in the man page, but the rendering of the output on a terminal negates the underscore on the screen so it looks like space. If you could please file a bug on the man page for this. card_X should be changed to N or something like that, and an example given with 0 and 1, to make it clearer.

Yeah, sax2 complained, wrong module syntax