# Mach64 compile error, kernel flag must be set, but it is

## Hexadecimus

I gave up on Arch and another distro because they aren't playing well with my hardware.  Gentoo isn't cooperating either.  A Tails live disc boots into the GUI so I know it's possible to get this working. I'm just not sure how.  It's been a few years since I've had to do anything like this.

It's a SuperMicro A+ with a H8DAR-i board, dual Opteron 280 dual-cores, onboard Rage XL 8mb which I'm reading should use a Mach64 driver.  I'm running 3.12.13 hardened x86_64...

Radeon, r128 modules are built. I read in one place that radeon will pull the Mach64 etc.

Kernel includes ATI Radeon, Rage128, frame buffer including those as well as Mach64, Mach64 generic, Mach64 GX.

Xorg fails (log below) so I'm trying to build the drivers referred to here: http://ubuntuforums.org/showthread.php?t=7200 .

This gives me an error that CONFIG_X86_CMPXCHG must be enabled.

I've checked the .config after make menuconfig to be sure that the CONFIG_X86_CMPXCHG is enabled. It's uncommented and =y.  I checked the timestamp to make sure that my latest kernel build with that and the Mach64 options is running. It is. I've checked modules directory in the installer script and it's my latest kernel compile, half an hour ago.

All I want is a simple GUI.  Is that too much to ask?  Thanks in advance for your help.[/url][/code]

Xorg.0.log:

```
[   798.094] 

X.Org X Server 1.15.0

Release Date: 2013-12-27

[   798.097] X Protocol Version 11, Revision 0

[   798.098] Build Operating System: Linux 3.12.13-gentoo x86_64 Gentoo

[   798.100] Current Operating System: Linux supermicro 3.12.13-gentoo #1 SMP Wed Apr 23 12:27:22 CDT 2014 x86_64

[   798.100] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.12.13-sm3 root=/dev/sda4 ro

[   798.102] Build Date: 23 April 2014  11:09:09AM

[   798.102]  

[   798.103] Current version of pixman: 0.32.4

[   798.104]    Before reporting problems, check http://wiki.x.org

   to make sure that you have the latest version.

[   798.104] Markers: (--) probed, (**) from config file, (==) default setting,

   (++) from command line, (!!) notice, (II) informational,

   (WW) warning, (EE) error, (NI) not implemented, (??) unknown.

[   798.108] (==) Log file: "/var/log/Xorg.0.log", Time: Wed Apr 23 12:51:47 2014

[   798.110] (==) Using system config directory "/usr/share/X11/xorg.conf.d"

[   798.110] (==) No Layout section.  Using the first Screen section.

[   798.110] (==) No screen section available. Using defaults.

[   798.110] (**) |-->Screen "Default Screen Section" (0)

[   798.110] (**) |   |-->Monitor "<default monitor>"

[   798.110] (==) No monitor specified for screen "Default Screen Section".

   Using a default monitor configuration.

[   798.111] (==) Automatically adding devices

[   798.111] (==) Automatically enabling devices

[   798.111] (==) Automatically adding GPU devices

[   798.111] (WW) The directory "/usr/share/fonts/TTF/" does not exist.

[   798.111]    Entry deleted from font path.

[   798.111] (WW) The directory "/usr/share/fonts/OTF/" does not exist.

[   798.111]    Entry deleted from font path.

[   798.111] (WW) The directory "/usr/share/fonts/Type1/" does not exist.

[   798.111]    Entry deleted from font path.

[   798.111] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi/".

[   798.111]    Entry deleted from font path.

[   798.111]    (Run 'mkfontdir' on "/usr/share/fonts/100dpi/").

[   798.111] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/75dpi/".

[   798.111]    Entry deleted from font path.

[   798.111]    (Run 'mkfontdir' on "/usr/share/fonts/75dpi/").

[   798.111] (==) FontPath set to:

   /usr/share/fonts/misc/

[   798.111] (==) ModulePath set to "/usr/lib64/xorg/modules"

[   798.111] (II) The server relies on udev to provide the list of input devices.

   If no devices become available, reconfigure udev or disable AutoAddDevices.

[   798.111] (II) Loader magic: 0x7f62c0caac80

[   798.111] (II) Module ABI versions:

[   798.111]    X.Org ANSI C Emulation: 0.4

[   798.111]    X.Org Video Driver: 15.0

[   798.111]    X.Org XInput driver : 20.0

[   798.111]    X.Org Server Extension : 8.0

[   798.114] (--) PCI:*(0:3:4:0) 1002:4752:15d9:0811 rev 39, Mem @ 0xfd000000/16777216, 0xfeaff000/4096, I/O @ 0x0000b800/256, BIOS @ 0x????????/131072

[   798.115] Initializing built-in extension Generic Event Extension

[   798.116] Initializing built-in extension SHAPE

[   798.117] Initializing built-in extension MIT-SHM

[   798.118] Initializing built-in extension XInputExtension

[   798.119] Initializing built-in extension XTEST

[   798.120] Initializing built-in extension BIG-REQUESTS

[   798.121] Initializing built-in extension SYNC

[   798.122] Initializing built-in extension XKEYBOARD

[   798.123] Initializing built-in extension XC-MISC

[   798.124] Initializing built-in extension XINERAMA

[   798.125] Initializing built-in extension XFIXES

[   798.126] Initializing built-in extension RENDER

[   798.127] Initializing built-in extension RANDR

[   798.128] Initializing built-in extension COMPOSITE

[   798.129] Initializing built-in extension DAMAGE

[   798.130] Initializing built-in extension MIT-SCREEN-SAVER

[   798.131] Initializing built-in extension DOUBLE-BUFFER

[   798.131] Initializing built-in extension RECORD

[   798.132] Initializing built-in extension DPMS

[   798.133] Initializing built-in extension Present

[   798.134] Initializing built-in extension DRI3

[   798.135] Initializing built-in extension X-Resource

[   798.136] Initializing built-in extension XVideo

[   798.137] Initializing built-in extension XVideo-MotionCompensation

[   798.138] Initializing built-in extension XFree86-VidModeExtension

[   798.139] Initializing built-in extension XFree86-DGA

[   798.140] Initializing built-in extension XFree86-DRI

[   798.141] Initializing built-in extension DRI2

[   798.141] (II) LoadModule: "glx"

[   798.142] (II) Loading /usr/lib64/xorg/modules/extensions/libglx.so

[   798.142] (EE) Failed to load /usr/lib64/xorg/modules/extensions/libglx.so: /usr/lib64/xorg/modules/extensions/libglx.so: wrong ELF class: ELFCLASS32

[   798.142] (II) UnloadModule: "glx"

[   798.142] (II) Unloading glx

[   798.142] (EE) Failed to load module "glx" (loader failed, 7)

[   798.142] (==) Matched ati as autoconfigured driver 0

[   798.142] (==) Matched modesetting as autoconfigured driver 1

[   798.142] (==) Matched fbdev as autoconfigured driver 2

[   798.142] (==) Matched vesa as autoconfigured driver 3

[   798.142] (==) Assigned the driver to the xf86ConfigLayout

[   798.142] (II) LoadModule: "ati"

[   798.143] (WW) Warning, couldn't open module ati

[   798.143] (II) UnloadModule: "ati"

[   798.143] (II) Unloading ati

[   798.143] (EE) Failed to load module "ati" (module does not exist, 0)

[   798.143] (II) LoadModule: "modesetting"

[   798.144] (WW) Warning, couldn't open module modesetting

[   798.144] (II) UnloadModule: "modesetting"

[   798.144] (II) Unloading modesetting

[   798.144] (EE) Failed to load module "modesetting" (module does not exist, 0)

[   798.144] (II) LoadModule: "fbdev"

[   798.145] (WW) Warning, couldn't open module fbdev

[   798.145] (II) UnloadModule: "fbdev"

[   798.145] (II) Unloading fbdev

[   798.145] (EE) Failed to load module "fbdev" (module does not exist, 0)

[   798.145] (II) LoadModule: "vesa"

[   798.145] (II) Loading /usr/lib64/xorg/modules/drivers/vesa_drv.so

[   798.145] (II) Module vesa: vendor="X.Org Foundation"

[   798.145]    compiled for 1.15.0, module version = 2.3.3

[   798.145]    Module class: X.Org Video Driver

[   798.146]    ABI class: X.Org Video Driver, version 15.0

[   798.146] (II) VESA: driver for VESA chipsets: vesa

[   798.146] (--) using VT number 7

[   798.214] vesa: Ignoring device with a bound kernel driver

[   798.214] (WW) Falling back to old probe method for vesa

[   798.214] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support

[   798.215] (EE) Screen 0 deleted because of no matching config section.

[   798.215] (II) UnloadModule: "vesa"

[   798.215] (EE) Device(s) detected, but none match those in the config file.

[   798.215] (EE) 

Fatal server error:

[   798.215] (EE) no screens found(EE) 

[   798.215] (EE) 

Please consult the The X.Org Foundation support 

    at http://wiki.x.org

 for help. 

[   798.215] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.

[   798.215] (EE) 

[   798.305] (EE) Server terminated with error (1). Closing log file.

```

----------

## eccerr0r

I gave up on the RageXL with Mach64 at least on my ia64 box, and just ran the regular ATI driver.  For 2D it's fine...  My Rage Pro PCI/AGP cards seemed to work better, but it's been a long time; I wouldn't be surprised if bit rot got the best of them.  You shouldn't need to build the mach64 kernel DRM driver if you have it to use the regular 2D driver.  I guess for my ia64 box that kernel driver would need to be tweaked...

I do have to mention that at least for ia64 it has indeed bitrot and past certain versions of Xorg it will no longer work.   I haven't tried it in a while to see if they fixed it.

Your machine looks like it's getting a mixture of ia32 and x86_64 binaries... hmm...

----------

## Hexadecimus

Which are the ia32 binaries?  I thought I'd disabled most unneeded flags in my kernel.  I've given up on that driver too.  I'm going to use the Xorg driver.

Should I start a new thread for that?

I was able to compile the ATI Radeon and Mach64 drivers from Xorg but no matter what I get "no screens found" now.  There is no make.conf anywhere on my system.  Xorg -configure yields an error, "Number of created screens does not match number of detected devices. Configuration failed."

"List of video drivers:"  (per Xorg -configure)

tdfx, vmware, ati, openchrome, mga, mach64, savage, trident, nv, glint, dummy, r128, nouveau, intel, v41, radeon, vesa, fbdev

Should I try blacklisting everything but mach64, radeon, fbdev, vesa, vmware?

----------

## Jaglover

Not sure what is going on there and why you have all those drivers in your system (you shouldn't), but vesa and fbdev should work practically on everything. If this is some sort of server you may consider running X apps remotely (this is a native X feature).

----------

## Hexadecimus

I didn't add any drivers. This is just defaults, plus mach64.  Using the Xorg drivers, I'm now stuck at "No screens found".

From /var/log/Xorg.0.log:

```
(II) Loading /usr/lib/xorg/modules/extensions/libglx.so

(II) Module glx: vendor="X.Org Foundation"

compiled for 1.15.0, module version  = 1.0.0

ABI class: X.Org Server Extensions, version 8.0

(==) AIGLX enabled

Loading extension GLX

(II) LoadModule: "mach64"

(II) Loading /usr/lib/xorg/modules/drivers/mach64_drv.so

(II) Module mach64: vendor="X.Org Foundation"

compiled for 1.15.0, module version = 6.9.4

Module class: X.Org Video Driver

ABI class: X.Org Video Driver, version 15.0

(II) MACH64: Drivers for ATI Mach64 Chipsets

(--) using VT number 7

(EE) No devices detected.

(EE) Fatal server error: 

no screens detected
```

X is finding the module but modprobe mach64 returns module not found.  Sorry I'm new to drivers on linux.  I've done a lot, but nothing like this before.

----------

## eccerr0r

I was alluding to this:

```
 [   798.142] (EE) Failed to load /usr/lib64/xorg/modules/extensions/libglx.so: /usr/lib64/xorg/modules/extensions/libglx.so: wrong ELF class: ELFCLASS32 
```

which should not happen unless you mixed binary types by mistake; however this shouldn't cause you to not start X11 IIRC.

As suggested by Jaglover, you should also try the vesa driver or fbdev (and make sure you have fbcon setup in your kernel), and also the "ati" driver (not "radeon").

I also noted this:

```
[   798.215] (EE) Screen 0 deleted because of no matching config section. 
```

Do you have an xorg.conf somewhere?  What happens if you delete it?

I may have to see what bitrot my ia64 box ended up with, with its ragexl onboard adaptor...

----------

