# ATI 6570 TURKS[KMS][legacy fbdev][modesetting on radeon]

## chrootman

Hola, tengo funcionando gentoo en una máquina antigua con systemd y genkernel-next, con una ati me daba problemas con xorg, pero el wiki de gentoo dice que hay que activar en el kernel:

```
Device Drivers  --->

    Graphics support  ---> 

        <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->

        <*/M> ATI Radeon

        [*] Enable modesetting on radeon by default

        -*- Support for frame buffer devices  --->

            < >   ATI Radeon display support
```

<-Ese [*] Enable modesetting on radeon by default NO LO TENGO!!!

```
Device Drivers  --->                                                       │ │  

    Graphics support  --->                                                       

           <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)  --->        

│        --- Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)            │ │  

  │ │        [ ]   DRM DP AUX Interface    

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                               

  │ │        [*]   Enable legacy fbdev support for your modesetting driver  

<-Esta es lo que tengo en su lugar "legacy fbdev", NO radeon by default.

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

        <*> ATI Radeon     

<-Si activo está me aparece CONFIG_DRM_RADEON=y, pero no KMS.                                                           │ │  

  │ │        [ ]   Always enable userptr support (NEW)      

  │ │            Frame buffer Devices  --->                                                 │ │    │ │        < > ATI Radeon display support                                                 │ │  

```

Si selecciono <*> ATI Radeon                              

aparece

CONFIG_DRM_RADEON=y

```
CONFIG_DRM_KMS_HELPER=y

  │ Symbol: DRM_KMS_HELPER [=y]                                                                                                              

  │ Type  : tristate                                                                                                                       

  │   Defined at drivers/gpu/drm/Kconfig:73                                                                                               

  │   Depends on: HAS_IOMEM [=y] && DRM [=y]                                                                                             

  │   Selected by [y]:                                                                                                                    

  │   - DRM_FBDEV_EMULATION [=y] && HAS_IOMEM [=y] && DRM [=y]                                                                            

  │   - DRM_RADEON [=y] && HAS_IOMEM [=y] && DRM [=y] && PCI [=y] && MMU [=y]                                                             

  │   - DRM_AMDGPU [=y] && HAS_IOMEM [=y] && DRM [=y] && PCI [=y] && MMU [=y]  

------------------------------------------------------------------------------------

CONFIG_DRM_RADEON=y 

     Symbol: DRM_RADEON [=y]                                                                                                               

  │ Type  : tristate                                                                                                                       

  │ Prompt: ATI Radeon                                                                                                                     

  │   Location:                                                                                                                           

  │     -> Device Drivers                                                                                                                  

  │ (1)   -> Graphics support                                                                                                             

  │   Defined at drivers/gpu/drm/Kconfig:206                                                                                               

  │   Depends on: HAS_IOMEM [=y] && DRM [=y] && PCI [=y] && MMU [=y]                                                                       

  │   Selects: FW_LOADER [=y] && DRM_KMS_HELPER [=y] && DRM_TTM [=m] && POWER_SUPPLY 

      [=y] && HWMON [=y] && BACKLIGHT_CLASS_DEVICE [=y] && │ 

CONFIG_DRM_RADEON_KMS=y 

  │ No matches found.   

                                  
```

<-Como comentaba arriba el kernel no da ni una opción para KMS

```
# CONFIG_FB_RADEON is not set 

CONFIG_FRAMEBUFFER_CONSOLE=y 

Symbol: FRAMEBUFFER_CONSOLE [=y]                                                                                                      

  │  

  │ Type  : bool                                                                                                                          

  │  

  │ Prompt: Framebuffer Console support                                                                                                      

  │   Location:                                                                                                                            

  │     -> Device Drivers                                                                                                                  

  │       -> Graphics support                                                                                                              

  │ (1)     -> Console display driver support                                                                                              

  │   Defined at drivers/video/console/Kconfig:119                                                                                         

  │   Depends on: VT [=y] && FB [=y] && !UML                                                                                               

  │   Selects: VT_HW_CONSOLE_BINDING [=y] && CRC32 [=y] && FONT_SUPPORT [=y]                                                               

  │   Selected by [y]:                                                                                                                     

  │   - DRM_KMS_FB_HELPER [=y] && HAS_IOMEM [=y] && DRM_KMS_HELPER [=y] && !EXPERT 

     [=n]   

------------------------------------------------------------------------------------

CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y 

# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set

│ Symbol: FRAMEBUFFER_CONSOLE_DETECT_PRIMARY [=y]                                                                                       │  

│ Type  : bool                                                                                                                              │ Prompt: Map the console to the primary display device                                                                                 

│   Location:                                                                                                                             

│     -> Device Drivers                                                                                                                   

│       -> Graphics support                                                                                                               

│         -> Console display driver support                                                                                               

│ (1)       -> Framebuffer Console support (FRAMEBUFFER_CONSOLE [=y])                                                                   │  

│   Defined at drivers/video/console/Kconfig:128                                                                                          

│   Depends on: VT [=y] && FRAMEBUFFER_CONSOLE [=y]                                                                                       

│   Selected by [y]:                                                                                                                      

│   - DRM_KMS_FB_HELPER [=y] && HAS_IOMEM [=y] && DRM_KMS_HELPER [=y] && 

    FRAMEBUFFER_CONSOLE [=y]   

```

TURKS	HD6570 

radeon/BTC_rlc.bin radeon/TURKS_mc.bin radeon/TURKS_me.bin radeon/TURKS_pfp.bin radeon/TURKS_smc.bin radeon/SUMO_uvd.bin

Esto es lo que me entrega el wiki de radeon para HD6570, no es una sola linea sino que TODO para todas esas tarjetas entre las cuáles está la mía.

```
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Turks PRO [Radeon HD 6570/7570/8550]

01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Turks HDMI Audio [Radeon HD 6500/6600 / 6700M Series]

```

```
# nano /etc/genkernel.conf 

Code:

######################################################################

INSTALL="yes" 

# Should we install to $BOOTDIR?  Default is "no" because genkernel is used in

# catalyst and stage building.

# ¿Deberíamos instalar en $BOOTDIR? El valor predeterminado es "no" porque se usa genkernel en catalyst y stage building.

#INSTALL="yes"

INSTALL="yes"

-----------------------------------------------------------------------------------

#OLDCONFIG="yes" 

OLDCONFIG="no"

# Run 'make oldconfig' before compiling this kernel?

# Ejecutar 'make oldconfig' antes de compilar este kernel?

OLDCONFIG="no"

-----------------------------------------------------------------------------------

MENUCONFIG="yes" 

# Run 'make menuconfig' before compiling this kernel?

# Ejecutar 'make menuconfig' antes de compilar este kernel?

MENUCONFIG="yes"

-----------------------------------------------------------------------------------

#CLEAN="yes" 

CLEAN="no" 

# Run 'make clean' before compilation?

# Ejecutar 'make clean' antes de la compilación?

# If set to NO, implies MRPROPER WILL NOT be run

# Si se establece en NO, implica que MRPROPER NO se ejecutará

# Also, if clean is NO, it won't copy over any configuration

# Además, si clean es NO, no copiará ninguna configuración

# file, it will use what's there.

# archivo, usará lo que hay allí.

#CLEAN="yes"

CLEAN="no" 

-----------------------------------------------------------------------------------

#MRPROPER="yes" 

MRPROPER="no" 

# Run 'make mrproper' before configuration/compilation?

# Ejecute 'make mrproper' antes de la configuración/compilación?

MRPROPER="no"

-----------------------------------------------------------------------------------

MOUNTBOOT="yes" 

# Mount BOOTDIR automatically if it isn't mounted?

# ¿Montar BOOTDIR automáticamente si no está montado?

MOUNTBOOT="yes"

-----------------------------------------------------------------------------------

SYMLINK="yes" 

# Make symlinks in BOOTDIR automatically?

# ¿Hacer enlaces simbólicos en BOOTDIR automáticamente?

#SYMLINK="no"

SYMLINK="yes" 

-----------------------------------------------------------------------------------

SAVE_CONFIG="yes" 

# Save the new configuration in /etc/kernels upon

# Guarda la nueva configuración en /etc/kernels en

# successfull compilation

# compilación exitosa

SAVE_CONFIG="yes"

-----------------------------------------------------------------------------------

USECOLOR="yes" 

# Use Color output in Genkernel?

USECOLOR="yes"

-----------------------------------------------------------------------------------

MAKEOPTS="-j2" 

># Genkernel uses an independent configuration for MAKEOPTS, and does not source /etc/make.conf. 

># Genkernel usa una configuración independiente para MAKEOPTS, y no usa como fuente la de /etc/make.conf.

># You can override the default setting by uncommenting and tweaking the following line. 

># Puedes sobreescribir la configuración predeterminada descomentando y ajustando la siguiente línea.

>Default setting is set up by ${GK_SHARE}/${ARCH_OVERRIDE}/config.sh. 

>La configuración predeterminada está configurada por ${GK_SHARE}/${ARCH_OVERRIDE}/config.sh. 

># The recommended value for -j argument is: <number of processors>*<number of cores per processor>+1

># El valor recomendado para el argumento -j es: <número de procesadores>*<número de núcleos por procesador> +1

#MAKEOPTS="-j2"

MAKEOPTS="-j2"

MAKEOPTS="-j3"

-----------------------------------------------------------------------------------

LVM="yes" 

# Add in LVM support from static binaries if they exist on the system, or compile static LVM binaries if static ones do not exist.

# Agregue soporte LVM de binarios estáticos si existen en el sistema, o compile binarios LVM estáticos si no existen.

#LVM="no"

LVM="yes" 

-----------------------------------------------------------------------------------

# Add in Luks support. Needs sys-fs/cryptsetup with -dynamic installed.

# Agregar soporte de Luks. Necesita sys-fs/cryptsetup con -dynamic instalado.

#LUKS="no"

EN LA COMPILACIÓN DE kernel-config-x86_64-4.9.168_p1-debian-sources-lts si aparece LUKS en Funtoo

///////////////////////////////////////////////////////////////////////////////////

--no-save-config --no-old--config --kernel-config=/var/tmp/portage/sys-kernel/debian-sources-lts-4.9.168_p1/temp/config --kernname=debian-sources-lts --build-src=var/tmp/portage/sys-kernel/

--disklabel --lvm --luks --mdadm --module-prefix=/var/tmp/portage/sys-kernel/debiansources-lts-4.9.168_p2/work/out all

///////////////////////////////////////////////////////////////////////////////////

LUKS="yes"

-----------------------------------------------------------------------------------

# Add DMRAID support.

#DMRAID="no"

DMRAID="yes" 

-----------------------------------------------------------------------------------

# Add BTRFS support.

#BTRFS="no"

BTRFS="yes"

-----------------------------------------------------------------------------------

BOOTLOADER="grub2"                      #### or grub 

# Add new kernel to grub?

BOOTLOADER="grub2"

-----------------------------------------------------------------------------------

UDEV="yes" 

NO TENGO LA OPCIÓN UDEV.

udev (user /dev) is systemd's device manager for the Linux kernel. It manages device nodes in /dev and handles all user space actions when adding or removing ...

-----------------------------------------------------------------------------------

MDADM_CONFIG="/etc/mdadm.conf" 

# Specify a custom mdadm.conf.

# Especifique un mdadm.conf personalizado.

># By default the ramdisk will be built *without* an mdadm.conf and will auto-detect arrays during bootup.  

># Por defecto, el ramdisk se construirá *sin* un mdadm.conf y detectará automáticamente los arreglos durante el arranque.

>Usually, this should not be needed.

>Por lo general, esto no debería ser necesario.

MDADM_CONFIG="/etc/mdadm.conf"

-----------------------------------------------------------------------------------

# Enable copying of firmware into initramfs

#FIRMWARE="no"

# Specify directory to pull from

FIRMWARE="yes"

# Specify directory to pull from 

#FIRMWARE_SRC="/lib/firmware" # Specify specific firmware files to include. This overrides FIRMWARE_SRC 

FIRMWARE_FILES="/lib/firmware/amd/amd_sev_fam17h_model0xh.sbin,/lib/firmware/amd-ucode/microcode_amd_fam17h.bin,/lib/firmware/amdgpu/vega10_acg_smc.bin, ........ and so on" 
```

-----------------------------------------------------------------------------------

 *Quote:*   

> >genkernel-next firmware does not load when using FIRMWARE_FILES option
> 
> >El firmware genkernel-next no se carga cuando se usa la opción FIRMWARE_FILES
> 
> FIRMWARE="yes"
> ...

 

Por lo tanto lo deje así:

```
# Enable copying of firmware into initramfs

#FIRMWARE="no"

# Specify directory to pull from

FIRMWARE_SRC="/lib/firmware"

# Specify specific firmware files to include. This overrides FIRMWARE_SRC

# FIRMWARE_FILES=""

-----------------------------------------------------------------------------------

FIRMWARE_SRC="/lib/firmware/" 

# FIRMWARE_SRC="/lib/firmware"

# Specify specific firmware files to include. 

# Especifique archivos de firmware específicos para incluir. 

This overrides FIRMWARE_SRC

Esto sobreescribe FIRMWARE_SRC

# FIRMWARE_FILES=""

FIRMWARE_SRC="/lib/firmware/" 

-----------------------------------------------------------------------------------

FIRMWARE_FILES=" Your Firmware"   ####  Your Firmware

TMPDIR="/var/tmp/genkernel" 

# Set genkernel's temporary work directory.  

# Establece el directorio de trabajo temporal de genkernel. 

Default is /var/tmp/genkernel

El valor predeterminado es /var/tmp/genkernel

#TMPDIR="/var/tmp/genkernel"

TMPDIR="/var/tmp/genkernel"

-----------------------------------------------------------------------------------

BOOTDIR="/boot" 

># Set the boot directory, default is /boot

># Establece el directorio de arranque, el valor predeterminado es /boot

#BOOTDIR="/boot"

BOOTDIR="/boot"

-----------------------------------------------------------------------------------

GK_SHARE="${GK_SHARE:-/usr/share/genkernel}" 

# Default share directory location

GK_SHARE="${GK_SHARE:-/usr/share/genkernel}"

-----------------------------------------------------------------------------------

CACHE_DIR="/var/cache/genkernel" 

# Location of the default cache

CACHE_DIR="/usr/share/genkernel"

-----------------------------------------------------------------------------------

DISTDIR="/var/lib/genkernel/src" 

# Location of DISTDIR, where our source tarballs are stored

# Ubicación de DISTDIR, donde se almacenan nuestros tarballs de origen

DISTDIR="${CACHE_DIR}/src"

-----------------------------------------------------------------------------------

LOGFILE="/var/log/genkernel.log" 

# Log output file

LOGFILE="/var/log/genkernel.log"

-----------------------------------------------------------------------------------

LOGLEVEL=4 

# Debug Level

LOGLEVEL=1

Lo cambie a 4

LOGLEVEL=4 

-----------------------------------------------------------------------------------

DEFAULT_KERNEL_SOURCE="/usr/src/linux" 

# Default location of kernel source

DEFAULT_KERNEL_SOURCE="/usr/src/linux"

-----------------------------------------------------------------------------------

COMPRESS_INITRD="yes" 

# Compress generated initramfs

#COMPRESS_INITRD="yes"

COMPRESS_INITRD="yes" 

-----------------------------------------------------------------------------------

># Types of compression: best, xz, lzma, bzip2, gzip, lzop, fastest "best" selects the best available compression method "fastest" selects the fastest available compression method

># Tipos de compresión: best, xz, lzma, bzip2, gzip, lzop, más rápido "mejor" selecciona el mejor método de compresión disponible "más rápido" selecciona el método de compresión más rápido disponible

#COMPRESS_INITRD_TYPE="best"

COMPRESS_INITRD_TYPE="best"

-----------------------------------------------------------------------------------

REAL_ROOT="/dev/sdxx"                ##### your root 

# Specify a default for real_root=

# Especifique un valor predeterminado para real_root =

#REAL_ROOT="/dev/one/two/gentoo"

REAL_ROOT="/dev/sda5"

REAL_ROOT="/dev/sdc3" (gentoo)

=================================================================

*         >> Appending auxilary cpio data ...

*                 >> Copying '/usr/share/genkernel/defaults/linuxrc' to '/init' ...

*                 >> Copying '/usr/share/genkernel/defaults/initrd.scripts' to '/etc/initrd.scripts' ...

*                 >> Copying '/usr/share/genkernel/defaults/initrd.defaults' to '/etc/initrd.defaults' ...

*                 >> Setting REAL_ROOT to '/dev/sda3' in '/etc/initrd.defaults' ...

*                 >> Copying keymaps ...

=================================================================
```

```
user /usr/src/linux # cp /usr/src/linux/.config /root/config

user /usr/src/linux # cd /root/

genkernel --menuconfig --install --kernel-config=/root/config --bootloader=grub all
```

Esto fue lo único que funcionó.

```
user ~ # genkernel -menuconfig all

grub-install /dev/sda

grub-mkconfig -o /boot/grub/grub.cfg

# cat /boot/grub/grub.cfg 

radeon.modeset=0

emerge --ask sys-kernel/linux-firmware

x11-drivers/xf86-video-ati

#emerge --ask --changed-use --deep @world

# emerge -a -uDU --with-bdeps=y @world --autounmask-write --autounmask-backtrack=y --keep-going --backtrack=50

```

Todo funciona, pero no recuerdo bien que hizo la diferencia entre antes y después del error de KMS con xorg al ejecutar $startx.

----------

## pcmaster

```
 <-Ese [*] Enable modesetting on radeon by default NO LO TENGO!!! 
```

Intenta poner el driver radeon incluído en el kernel (*) y no como módulo (M) ya que para activar el Kernel Mode Settings ha de estar disponible el driver durante el arranque.

----------

## chrootman

 *pcmaster wrote:*   

> 
> 
> ```
>  <-Ese [*] Enable modesetting on radeon by default NO LO TENGO!!! 
> ```
> ...

 

Sí el error era similar a este:

https://forums.gentoo.org/viewtopic-t-1028976-start-0.html

https://forums.gentoo.org/viewtopic-t-1071724-start-0.html#8139530

```
[   489.169] (II) [KMS] drm report modesetting isn't supported.

[   489.169] (II) [KMS] drm report modesetting isn't supported. 

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

[   489.169] (II) UnloadModule: "radeon" 

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

[   489.169] (EE) 

Fatal server error: 

[   489.169] (EE) no screens found(EE) 
```

Siempre lo pongo el driver radeon incluído en el kernel (*) y no como módulo (M). Me pasó lo mismo en funtoo y también recompilé y volvió a funcionar, pero no tengo claro cual es la mala acción para no repetirla.

No tengo CONFIG_DRM_RADEON_KMS=y, si  CONFIG_DRM_RADEON=y. También puede ser que me faltaba un update o algo antes de llegar a ese punto o hago antes algo que se debió hacer después.

----------

## quilosaq

 *chrootman wrote:*   

> ...
> 
> ```
> Device Drivers  --->
> 
> ...

 

https://wiki.gentoo.org/wiki/Xorg/Guide#AMD.2FATI

En una nota en el artículo del enlace pone:

 *Quote:*   

> Note
> 
> Linux kernel >= 3.9 does not have the Enable modesetting on radeon by default since it is already implied by default. Do not be alarmed if you find this option missing in new kernels.

 

----------

## chrootman

Con esto desde el arranque aparece con res 1366x378.

```
    | |   |   | |   "attached-gpu-control-path" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/pci-bridge@1/IOPP/GFX0@0/ATY,AMD,RadeonFramebuffer@0/ATIFramebufferNI/AGPM"

    | |   |   | |   "name" = "ATY_GPU"
```

```
Device (PCI0)

        {

            Name (_HID, EisaId ("PNP0A03"))

            Name (_ADR, Zero)

            Name (_UID, One)

            Name (_BBN, Zero)

            Device (PEG0)

            {

                Device (GFX0)

                {

                    Method (_DSM, 4, NotSerialized)

                    {

                        Store (Package (0x0E)

                            {

                                "@3,connector-type", 

                                Buffer (0x04)

                                {

                                    0x00, 0x08, 0x00, 0x00

                                }, 

                                "device-id", 

                                Buffer (0x04)

                                {

                                    0xD9, 0x68, 0x00, 0x00

                                }, 

                                "@0,name", 

                                Buffer (0x1A)

                                {

                                    "ATY,AMD,RadeonFramebuffer"

                                }, 

                                "@1,name", 

                                Buffer (0x1A)

                                {

                                    "ATY,AMD,RadeonFramebuffer"

                                }, 

                                "@2,name", 

                                Buffer (0x1A)

                                {

                                    "ATY,AMD,RadeonFramebuffer"

                                }, 

                                "model", 

                                Buffer (0x13)

                                {

                                    "AMD Radeon HD 6570"

                                }, 

                                "hda-gfx", 

                                Buffer (0x0A)

                                {

                                    "onboard-1"

                                }

                            }, Local0)

                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

                        Return (Local0)

                    }

                }

                Device (HDAU)

                {

                    Name (_ADR, One)

                    OperationRegion (HDAH, PCI_Config, Zero, 0x40)

                    Field (HDAH, ByteAcc, NoLock, Preserve)

                    {

                        VID0,   16, 

                        DID0,   16

                    }

                    Method (_DSM, 4, NotSerialized)

                    {

                        Store (Package (0x06)

                            {

                                "hda-gfx", 

                                Buffer (0x0A)

                                {

                                    "onboard-2"

                                }, 

                                "layout-id", 

                                Buffer (0x04)

                                {

                                    0x01, 0x00, 0x00, 0x00

                                }, 

                                "PinConfigurations", 

                                Buffer (0x04)

                                {

                                    0xE0, 0x00, 0x56, 0x28

                                }

                            }, Local0)

                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

                        Return (Local0)

                    }

                }

            }
```

```
# cd Downloads/

# mkdir -p kernel/firmware/acpi

# cp dsdt.aml SSDT.aml kernel/firmware/acpi

# find kernel | cpio -H newc --create > acpi_override

40 blocks

# ls -lia acpi_override 

1320314 -rw-r--r-- 1 root root 20480 Mar 21 04:35 acpi_override

# sudo mount /boot

# sudo cp acpi_override /boot
```

/etc/default/grub

```
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 ipv6.disable=1 resume=UUID=cb6c09hb-7ha4-4c41-89la-c67c807h7202"

GRUB_CMDLINE_LINUX="rootfstype=ext4 init=/usr/lib/systemd/systemd real_root=UUID=c76539db9y-6fba-380b-854c-d28edb8796jo"

GRUB_EARLY_INITRD_LINUX_CUSTOM=acpi_override
```

```
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
```

```
# dmesg | grep DSDT

[    0.018472] ACPI: DSDT ACPI table found in initrd [kernel/firmware/acpi/dsdt.aml]

# dmesg | grep SSDT

[    0.018475] ACPI: SSDT ACPI table found in initrd [kernel/firmware/acpi/SSDT.aml]
```

https://forums.gentoo.org/viewtopic-t-122145-start-0.html

https://forums.gentoo.org/viewtopic-t-924110-start-50.html

https://forums.gentoo.org/viewtopic-t-1098226-highlight-dsdt.html

https://forums.gentoo.org/viewtopic-t-1088712-start-0.html

https://gist.github.com/javanna/38d019a373085e1ba0c784597bc7ec73

----------

