LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (https://www.linuxquestions.org/questions/linux-software-2/)
-   -   linux 411 and fglrx not loading (https://www.linuxquestions.org/questions/linux-software-2/linux-411-and-fglrx-not-loading-4175606412/)

grail 05-21-2017 08:17 PM

linux 411 and fglrx not loading
 
So I have been battling with fglrx driver for a couple of months now. It seems to load fine under linux 49 but every version from 410 onwards seem to not be able to load the video driver properly.

I am using Manjaro, which is an Arch derivative.
Below is the output of errors (EE) in my Xorg log:
Code:

[    31.144] (EE) fglrx(0): Cannot read int vect
[    31.145] (EE) fglrx(0): Invalid video BIOS signature!
[    31.145] (EE) fglrx(0): GetBIOSParameter failed
[    31.145] (EE) fglrx(0): PreInitAdapter failed
[    31.145] (EE) fglrx(0): PreInit failed
[    31.149] (EE) Screen(s) found, but none have a usable configuration.
[    31.149] (EE)
[    31.149] (EE) no screens found(EE)
[    31.149] (EE)
[    31.149] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[    31.149] (EE)
[    31.158] (EE) Server terminated with error (1). Closing log file.

I am at a loss as what to try to get this to work with newer kernels?
I have tried installing catalyst-dkms but to no avail.

Please let me know if there is any additional information I can supply to help solve this problem?

Didier Spaier 05-22-2017 02:00 PM

In case you didn't yet,read this page.

grail 05-28-2017 11:01 PM

Yep, read through all of that now, but have found a snag :(

So I tried installing the catalyst-hook, however, on executing the scrip I get the following:
Code:

$ sudo catalyst_build_module all
+ building fglrx module for 4.11.3-1-MANJARO kernel ...
Failed!!! Check out log: /var/log/catalyst-install.log
+ building fglrx module for 4.9.30-1-MANJARO kernel ...
  ok.

The output from the log for 4.11.3-1-MANJARO is below:
Code:

--------
2017-05-29 11:51:48
Building fglrx module for 4.11.3-1-MANJARO kernel ...
--------
OsVersion says: SMP=1
file /proc/kallsyms says: SMP=1
file /usr/lib/modules/4.11.3-1-MANJARO/build/include/generated/autoconf.h says: SMP=1
file /usr/lib/modules/4.11.3-1-MANJARO/build/include/generated/autoconf.h says: MODVERSIONS=1
file /usr/lib/modules/4.11.3-1-MANJARO/build/arch/x86/include/asm/compat.h says: COMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space
make: Entering directory '/usr/lib/modules/4.11.3-1-MANJARO/build'
  CC [M]  /tmp/catalyst.AYfSCz/firegl_public.o
In file included from /tmp/catalyst.AYfSCz/firegl_public.c:207:0:
/tmp/catalyst.AYfSCz/firegl_public.h:654:21: warning: extra tokens at end of #ifndef directive
 #ifndef boot_cpu_has(X86_FEATURE_PGE)
                    ^
/tmp/catalyst.AYfSCz/firegl_public.c: In function ‘KCL_GetSignalStatus’:
/tmp/catalyst.AYfSCz/firegl_public.c:1697:12: error: implicit declaration of function ‘signal_pending’ [-Werror=implicit-function-declaration]
    return signal_pending(current);
            ^~~~~~~~~~~~~~
/tmp/catalyst.AYfSCz/firegl_public.c: At top level:
/tmp/catalyst.AYfSCz/firegl_public.c:4237:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    fault:  ip_vm_fault,
              ^~~~~~~~~~~
/tmp/catalyst.AYfSCz/firegl_public.c:4237:14: note: (near initialization for ‘vm_ops.fault’)
/tmp/catalyst.AYfSCz/firegl_public.c:4248:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    fault:  ip_vm_shm_fault,
              ^~~~~~~~~~~~~~~
/tmp/catalyst.AYfSCz/firegl_public.c:4248:14: note: (near initialization for ‘vm_shm_ops.fault’)
/tmp/catalyst.AYfSCz/firegl_public.c:4259:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    fault:  ip_vm_dma_fault,
              ^~~~~~~~~~~~~~~
/tmp/catalyst.AYfSCz/firegl_public.c:4259:14: note: (near initialization for ‘vm_pci_bq_ops.fault’)
/tmp/catalyst.AYfSCz/firegl_public.c:4270:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    fault:  ip_vm_dma_fault,
              ^~~~~~~~~~~~~~~
/tmp/catalyst.AYfSCz/firegl_public.c:4270:14: note: (near initialization for ‘vm_ctx_ops.fault’)
/tmp/catalyst.AYfSCz/firegl_public.c:4281:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    fault:  ip_vm_pcie_fault,
              ^~~~~~~~~~~~~~~~
/tmp/catalyst.AYfSCz/firegl_public.c:4281:14: note: (near initialization for ‘vm_pcie_ops.fault’)
/tmp/catalyst.AYfSCz/firegl_public.c:4292:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    fault:  ip_vm_kmap_fault,
/tmp/catalyst.AYfSCz/firegl_public.c:4292:14: note: (near initialization for ‘vm_kmap_ops.fault’)
/tmp/catalyst.AYfSCz/firegl_public.c:4303:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    fault:  ip_vm_gart_fault,
              ^~~~~~~~~~~~~~~~
/tmp/catalyst.AYfSCz/firegl_public.c:4303:14: note: (near initialization for ‘vm_gart_ops.fault’)
/tmp/catalyst.AYfSCz/firegl_public.c:4315:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    fault:  ip_vm_fault,
              ^~~~~~~~~~~
/tmp/catalyst.AYfSCz/firegl_public.c:4315:14: note: (near initialization for ‘vm_agp_bq_ops.fault’)
/tmp/catalyst.AYfSCz/firegl_public.c:6518:12: warning: ‘KCL_fpu_save_init’ defined but not used [-Wunused-function]
 static int KCL_fpu_save_init(struct task_struct *tsk)
            ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[1]: *** [scripts/Makefile.build:295: /tmp/catalyst.AYfSCz/firegl_public.o] Error 1
make: *** [Makefile:1492: _module_/tmp/catalyst.AYfSCz] Error 2
make: Leaving directory '/usr/lib/modules/4.11.3-1-MANJARO/build'

From what I was able to discover, by looking at the includes, is that 4.11 has moved some of its declarations.
For example:
Code:

/tmp/catalyst.AYfSCz/firegl_public.c: In function ‘KCL_GetSignalStatus’:
/tmp/catalyst.AYfSCz/firegl_public.c:1697:12: error: implicit declaration of function ‘signal_pending’ [-Werror=implicit-function-declaration]
    return signal_pending(current);

# 4.9
$ grep -R signal_pending /usr/lib/modules/4.9.30-1-MANJARO/build/include/*
/usr/lib/modules/4.9.30-1-MANJARO/build/include/drm/drm_os_linux.h:                if (signal_pending(current)) {                        \
/usr/lib/modules/4.9.30-1-MANJARO/build/include/linux/errno.h: * codes, signal_pending() MUST be set.  Note that ptrace can observe these
/usr/lib/modules/4.9.30-1-MANJARO/build/include/linux/wait.h:                if (signal_pending(current)) {                                \
/usr/lib/modules/4.9.30-1-MANJARO/build/include/linux/kthread.h: * @threadfn: the function to run until signal_pending(current).
/usr/lib/modules/4.9.30-1-MANJARO/build/include/linux/tracehook.h:        return fatal_signal_pending(current);
/usr/lib/modules/4.9.30-1-MANJARO/build/include/linux/sched.h:static inline int signal_pending(struct task_struct *p)
/usr/lib/modules/4.9.30-1-MANJARO/build/include/linux/sched.h:static inline int __fatal_signal_pending(struct task_struct *p)
/usr/lib/modules/4.9.30-1-MANJARO/build/include/linux/sched.h:static inline int fatal_signal_pending(struct task_struct *p)
/usr/lib/modules/4.9.30-1-MANJARO/build/include/linux/sched.h:        return signal_pending(p) && __fatal_signal_pending(p);
/usr/lib/modules/4.9.30-1-MANJARO/build/include/linux/sched.h:static inline int signal_pending_state(long state, struct task_struct *p)
/usr/lib/modules/4.9.30-1-MANJARO/build/include/linux/sched.h:        if (!signal_pending(p))
/usr/lib/modules/4.9.30-1-MANJARO/build/include/linux/sched.h:        return (state & TASK_INTERRUPTIBLE) || __fatal_signal_pending(p);
/usr/lib/modules/4.9.30-1-MANJARO/build/include/linux/sunrpc/types.h:#define signalled()                (signal_pending(current))
/usr/lib/modules/4.9.30-1-MANJARO/build/include/net/busy_poll.h:              !need_resched() && !signal_pending(current);

# 4.11
$ grep -R signal_pending /usr/lib/modules/4.11.3-1-MANJARO/build/include/*
/usr/lib/modules/4.11.3-1-MANJARO/build/include/drm/drm_os_linux.h:                if (signal_pending(current)) {                        \
/usr/lib/modules/4.11.3-1-MANJARO/build/include/linux/errno.h: * codes, signal_pending() MUST be set.  Note that ptrace can observe these
/usr/lib/modules/4.11.3-1-MANJARO/build/include/linux/sched/signal.h:static inline int signal_pending(struct task_struct *p)
/usr/lib/modules/4.11.3-1-MANJARO/build/include/linux/sched/signal.h:static inline int __fatal_signal_pending(struct task_struct *p)
/usr/lib/modules/4.11.3-1-MANJARO/build/include/linux/sched/signal.h:static inline int fatal_signal_pending(struct task_struct *p)
/usr/lib/modules/4.11.3-1-MANJARO/build/include/linux/sched/signal.h:        return signal_pending(p) && __fatal_signal_pending(p);
/usr/lib/modules/4.11.3-1-MANJARO/build/include/linux/sched/signal.h:static inline int signal_pending_state(long state, struct task_struct *p)
/usr/lib/modules/4.11.3-1-MANJARO/build/include/linux/sched/signal.h:        if (!signal_pending(p))
/usr/lib/modules/4.11.3-1-MANJARO/build/include/linux/sched/signal.h:        return (state & TASK_INTERRUPTIBLE) || __fatal_signal_pending(p);
/usr/lib/modules/4.11.3-1-MANJARO/build/include/linux/kthread.h: * @threadfn: the function to run until signal_pending(current).
/usr/lib/modules/4.11.3-1-MANJARO/build/include/linux/tracehook.h:        return fatal_signal_pending(current);
/usr/lib/modules/4.11.3-1-MANJARO/build/include/linux/sunrpc/types.h:#define signalled()                (signal_pending(current))
/usr/lib/modules/4.11.3-1-MANJARO/build/include/net/busy_poll.h:        return sk->sk_ll_usec && sk->sk_napi_id && !signal_pending(current);

Whilst the definitions are the same for both kernels, the file and directory containing them is not, hence 4.9 compiles correctly as it is
included properly, but 4.11 is not and I cannot simply change the include as that then gives me additional errors :(

ondoho 05-29-2017 01:40 AM

afaik, amd proprietary drivers are notorious for being behind current linux development; i think at some point one even needed to pin Xorg to a particular release; so what you experience doesn't surprise me.

is there a particular reason that the LTS kernel is not sufficient for you?

grail 06-11-2017 10:21 PM

Quote:

Originally Posted by ondoho
is there a particular reason that the LTS kernel is not sufficient for you?

No, not really. I do often update to only a few minor versions behind the current, mainly as habit.

After a bit more reading it turns out that ATI has a bit of a love / hate thing going on at the moment so will just have to be content with 4.9
until that is resolved :)


All times are GMT -5. The time now is 11:39 AM.