0 Replies Latest reply on Aug 21, 2013 6:01 PM by kmenycht

    Installing 13.8 Linux drivers on custom kernel

    kmenycht

      This is not a question, but hopefully discovere-able content by developers who might be facing or will face similar problems as I did during my effort to install the the latest AMD drivers (13.4 / 13.8 beta2) on a vanilla 3.10.0 kernel from kernel.org . This post makes no effort to fully guide you, if you are playing with the kernel you know what you are doing (hopefully).

       

      I am not sure why, but the default permissions for /proc/ati do not allow a common user (other than root) to access the subdirs/files. You experience this when you can "sudo clinfo" and it lists your adapters appropriately,  but a regular user (not root / without sudo) gets a segfault as they poke the platforms instead.

       

      You can chmod -R 755 the proc dir every time, but this doesn't sound right. You can instead add the RX permissions necessary by changing  ./fglrx/build_mod/firegl_public.c . You will find this path/file under fglrx-install.KeY after you --extract the driver .run file (you will need to run the extracted install scripts to install), or at /lib/modules/fglrx/build_mod (you will need to run /lib/modules/fglrx/make_install.sh ).  Anyway, just change :

       

      root = KCL_create_proc_dir(NULL, "ati", S_IFDIR|);    // line 824 for 13.8 beta2

      to

      root = KCL_create_proc_dir(NULL, "ati", S_IFDIR|S_IRUGO|S_IXUGO);

      and

      *dev_root = KCL_create_proc_dir(root, name, S_IFDIR); // line 850 for 13.8 beta2

      to

      *dev_root = KCL_create_proc_dir(root, name, S_IFDIR|S_IRUGO|S_IXUGO);

       

      or as you deem appropriate for your own purpose (security/accessibility permissions).  But this should let the common user access the GPUs in the system (at least with a properly initialized xorg.conf :  aticonfig -f --inital --adapter=all ; man these).  After this change I could see and access (run AMDAPP sdk apps on) my 8670D (A10-6800k APU) and 8470 as a regular user.

       

      Now I also had a compile time error with current_euid for my 3.10.0 kernel . The following patch describes a fix I roughly followed :

      http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-drivers/ati-drivers/files/linux-3.9-kuid.diff

      though I used

      include <linux/cred.h>

      rather than

      include <linux/uidgid.h>

       

      Also remember to include AGP support in your kernel configuration, or you 'll get an unresolved agp-related compile time bug. Gentoo describes other installation steps that apply for a custom / vanilla kernel http://wiki.gentoo.org/wiki/Fglrx .

       

      Good luck. If  these are hiccups unrelated to my own kernel config and witnessed by others too, I hope to see them fixed in future driver release(s).

       

      k