# Trouble enabling amdgpu on new install

## owen.geer

I recently installed Gentoo and I already downloaded the xorg amdgpu drivers and I'm having trouble enabling them. In my /etc/portage/make.conf I have VIDEO_CARDS="amdgpu radeonsi" (I have an RX 480). But when I run emerge --ask --changed-use @world then I get a message saying it couldn't find a video_cards setting so it sets it to the default. When I reboot it doesn't load the drivers. I am probably forgetting something or doing something wrong as I am new to Gentoo. Thank you

----------

## ali3nx

I just got one of these working last weekend so perhaps I can offer some assistance.

First i'll start by offering this post as some reference and things to consider.

https://forums.gentoo.org/viewtopic-p-8240822.html#8240822

The important things to take note of with the post above is my gpu's would not function properly until i emerged linux-firmware, compiled amdgpu into the kernel binary and made certain to include the correct amdgpu firmware into the kernel image.

Now on to a couple questions

Which portage profile are you using? Did you switch to a "desktop" portage profile? you really should do this if your considering using a DE or WM

Did you complete a full emerge xorg-x11? If you haven't emerged the xorg-x11 meta package your install may be missing several xorg packages required for xorg to function properly.

Did you install the linux-firmware package? If linux-firmware is missing your GPU definitely will not function.

Can you paste your make.conf to https://bpaste.net and reply with the bpaste link? we can compare notes  :Smile: 

If you dont know how to do this you can 

```
emerge wgetpaste && wgetpaste -s bpaste /etc/portage/make.conf
```

My system is running systemd with kde plasma installed and it's uefi booted. 

This system's sole existence is to function as a GPU crypto miner pc so the local desktop never gets used. If i ever do use kde plasma it's via x2go remote desktop.

Despite this the same setup required to make this functional should apply to your system as well. Check the below system config for reference tips.

Notes here - this system is only a hyperthreaded dual core 6th generation pentium and uses distcc against a 20 core xeon server to make life a little easier so the cflags are configured cpu specific.

Here's my kernel config from gentoo-sources 4.17

http://bpaste.net/show/c55adcc10f15

```
# These settings were set by the catalyst build script that automatically

# built this stage.

# Please consult /usr/share/portage/config/make.conf.example for a more

# detailed example.

CFLAGS="-march=silvermont -O2 -pipe"

CXXFLAGS="${CFLAGS}"

# WARNING: Changing your CHOST is not something that should be done lightly.

# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.

CHOST="x86_64-pc-linux-gnu"

# These are the USE flags that were used in addition to what is provided by the

# profile used for building.

PORTDIR="/usr/portage"

DISTDIR="${PORTDIR}/distfiles"

PKGDIR="${PORTDIR}/packages"

#FEATURES="candy fixlafiles unmerge-orphans -preserve-libs"

#MAKEOPTS="-j2"

FEATURES="distcc candy fixlafiles unmerge-orphans -preserve-libs"

MAKEOPTS="-j12 -l4"

EMERGE_DEFAULT_OPTS="--with-bdeps y --complete-graph y"

AUTOCLEAN="yes"

# lets support amdgpu and intel igpu

VIDEO_CARDS="intel i915 amdgpu radeon radeonsi"

INPUT_DEVICES="keyboard mouse evdev"

ACCEPT_LICENSE="*"

LINGUAS="en"

GRUB_PLATFORMS="efi-64"

CURL_SSL="openssl"

PHP_TARGETS="php7-1"

ABI_X86="64"

CPU_FLAGS_X86="aes mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"

APACHE2_MODULES="ratelimit lbmethod_bybusyness lbmethod_byrequests lbmethod_bytraffic lbmethod_heartbeat http2 cgid unixd authn_core authz_core authz_dbd socache_shmcb apache2_modules_unixd actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status slotmem_shm unique_id userdir usertrack vhost_alias"

APACHE2_MPMS=worker

USE="10bit 12bit bluray caps cjk client conntrack cracklib cryptsetup

     device-mapper gallium idn iproute2 ithreads lz4 lzma lzo nat netlink

     nftables opencl openssl opus pic pie posix pwquality python rar samba

     theora threads urandom user-session v4l v4l2 vaapi vdpau vulkan x265 zip"

xartin@vargur ~ $ eselect profile list

Available profile symlink targets:

  [1]   default/linux/amd64/13.0 (stable)

  [2]   default/linux/amd64/13.0/selinux (dev)

  [3]   default/linux/amd64/13.0/desktop (stable)

  [4]   default/linux/amd64/13.0/desktop/gnome (stable)

  [5]   default/linux/amd64/13.0/desktop/gnome/systemd (stable)

  [6]   default/linux/amd64/13.0/desktop/plasma (stable)

  [7]   default/linux/amd64/13.0/desktop/plasma/systemd (stable)

  [8]   default/linux/amd64/13.0/developer (stable)

  [9]   default/linux/amd64/13.0/no-multilib (stable)

  [10]  default/linux/amd64/13.0/systemd (stable)

  [11]  default/linux/amd64/13.0/x32 (dev)

  [12]  default/linux/amd64/17.0 (stable)

  [13]  default/linux/amd64/17.0/selinux (stable)

  [14]  default/linux/amd64/17.0/hardened (stable)

  [15]  default/linux/amd64/17.0/hardened/selinux (stable)

  [16]  default/linux/amd64/17.0/desktop (stable)

  [17]  default/linux/amd64/17.0/desktop/gnome (stable)

  [18]  default/linux/amd64/17.0/desktop/gnome/systemd (stable)

  [19]  default/linux/amd64/17.0/desktop/plasma (stable)

  [20]  default/linux/amd64/17.0/desktop/plasma/systemd (stable) *

  [21]  default/linux/amd64/17.0/developer (stable)

  [22]  default/linux/amd64/17.0/no-multilib (stable)

  [23]  default/linux/amd64/17.0/no-multilib/hardened (stable)

  [24]  default/linux/amd64/17.0/no-multilib/hardened/selinux (stable)

  [25]  default/linux/amd64/17.0/systemd (stable)

  [26]  default/linux/amd64/17.0/x32 (dev)

  [27]  default/linux/amd64/17.1 (exp)

  [28]  default/linux/amd64/17.1/selinux (exp)

  [29]  default/linux/amd64/17.1/hardened (exp)

  [30]  default/linux/amd64/17.1/hardened/selinux (exp)

  [31]  default/linux/amd64/17.1/desktop (exp)

  [32]  default/linux/amd64/17.1/desktop/gnome (exp)

  [33]  default/linux/amd64/17.1/desktop/gnome/systemd (exp)

  [34]  default/linux/amd64/17.1/desktop/plasma (exp)

  [35]  default/linux/amd64/17.1/desktop/plasma/systemd (exp)

  [36]  default/linux/amd64/17.1/developer (exp)

  [37]  default/linux/amd64/17.1/no-multilib (exp)

  [38]  default/linux/amd64/17.1/no-multilib/hardened (exp)

  [39]  default/linux/amd64/17.1/no-multilib/hardened/selinux (exp)

  [40]  default/linux/amd64/17.1/systemd (exp)

  [41]  hardened/linux/amd64 (stable)

  [42]  hardened/linux/amd64/selinux (stable)

  [43]  hardened/linux/amd64/no-multilib (stable)

  [44]  hardened/linux/amd64/no-multilib/selinux (stable)

  [45]  hardened/linux/amd64/x32 (dev)

  [46]  default/linux/musl/amd64 (exp)

  [47]  hardened/linux/musl/amd64 (exp)

  [48]  default/linux/musl/amd64/x32 (exp)

  [49]  hardened/linux/musl/amd64/x32 (exp)

  [50]  default/linux/amd64/17.0/musl (exp)

  [51]  default/linux/amd64/17.0/musl/hardened (exp)

  [52]  default/linux/amd64/17.0/musl/hardened/selinux (exp)

  [53]  default/linux/uclibc/amd64 (exp)

  [54]  hardened/linux/uclibc/amd64 (exp)

vargur ~ # lspci

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05)

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 05)

00:01.1 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x8) (rev 05)

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 610 (rev 04)

00:14.0 USB controller: Intel Corporation 200 Series PCH USB 3.0 xHCI Controller

00:16.0 Communication controller: Intel Corporation 200 Series PCH CSME HECI #1

00:17.0 SATA controller: Intel Corporation 200 Series PCH SATA controller [AHCI mode]

00:1b.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #17 (rev f0)

00:1c.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #1 (rev f0)

00:1c.1 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #2 (rev f0)

00:1c.4 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #5 (rev f0)

00:1c.6 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #7 (rev f0)

00:1d.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #9 (rev f0)

00:1f.0 ISA bridge: Intel Corporation 200 Series PCH LPC Controller (Z270)

00:1f.2 Memory controller: Intel Corporation 200 Series PCH PMC

00:1f.3 Audio device: Intel Corporation 200 Series PCH HD Audio

00:1f.4 SMBus: Intel Corporation 200 Series PCH SMBus Controller

00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/580] (rev e7)

01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 580]

02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/580] (rev c7)

02:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 580]

05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/580] (rev c7)

05:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 580]

06:00.0 USB controller: ASMedia Technology Inc. Device 2142

07:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/580] (rev c7)

07:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 580]

vargur ~ # lspci -k

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05)

        Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 05)

        Kernel driver in use: pcieport

        Kernel modules: shpchp

00:01.1 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x8) (rev 05)

        Kernel driver in use: pcieport

        Kernel modules: shpchp

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 610 (rev 04)

        Subsystem: ASUSTeK Computer Inc. HD Graphics 610

        Kernel driver in use: i915

00:14.0 USB controller: Intel Corporation 200 Series PCH USB 3.0 xHCI Controller

        Subsystem: ASUSTeK Computer Inc. 200 Series PCH USB 3.0 xHCI Controller

        Kernel driver in use: xhci_hcd

00:16.0 Communication controller: Intel Corporation 200 Series PCH CSME HECI #1

        Subsystem: ASUSTeK Computer Inc. 200 Series PCH CSME HECI

        Kernel driver in use: mei_me

        Kernel modules: mei_me

00:17.0 SATA controller: Intel Corporation 200 Series PCH SATA controller [AHCI mode]

        Subsystem: ASUSTeK Computer Inc. 200 Series PCH SATA controller [AHCI mode]

        Kernel driver in use: ahci

00:1b.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #17 (rev f0)

        Kernel driver in use: pcieport

        Kernel modules: shpchp

00:1c.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #1 (rev f0)

        Kernel driver in use: pcieport

        Kernel modules: shpchp

00:1c.1 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #2 (rev f0)

        Kernel driver in use: pcieport

        Kernel modules: shpchp

00:1c.4 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #5 (rev f0)

        Kernel driver in use: pcieport

        Kernel modules: shpchp

00:1c.6 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #7 (rev f0)

        Kernel driver in use: pcieport

        Kernel modules: shpchp

00:1d.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #9 (rev f0)

        Kernel driver in use: pcieport

        Kernel modules: shpchp

00:1f.0 ISA bridge: Intel Corporation 200 Series PCH LPC Controller (Z270)

        Subsystem: ASUSTeK Computer Inc. 200 Series PCH LPC Controller (Z270)

00:1f.2 Memory controller: Intel Corporation 200 Series PCH PMC

        Subsystem: ASUSTeK Computer Inc. 200 Series PCH PMC

00:1f.3 Audio device: Intel Corporation 200 Series PCH HD Audio

        Subsystem: ASUSTeK Computer Inc. 200 Series PCH HD Audio

        Kernel driver in use: snd_hda_intel

        Kernel modules: snd_hda_intel

00:1f.4 SMBus: Intel Corporation 200 Series PCH SMBus Controller

        Subsystem: ASUSTeK Computer Inc. 200 Series PCH SMBus Controller

        Kernel driver in use: i801_smbus

        Kernel modules: i2c_i801

00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V

        Subsystem: ASUSTeK Computer Inc. Ethernet Connection (2) I219-V

        Kernel driver in use: e1000e

        Kernel modules: e1000e

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/580] (rev e7)

        Subsystem: Sapphire Technology Limited Radeon RX 570

        Kernel driver in use: amdgpu

01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 580]

        Subsystem: Sapphire Technology Limited Ellesmere [Radeon RX 580]

        Kernel driver in use: snd_hda_intel

        Kernel modules: snd_hda_intel

02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/580] (rev c7)

        Subsystem: PC Partner Limited / Sapphire Technology Radeon RX 470/480

        Kernel driver in use: amdgpu

02:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 580]

        Subsystem: PC Partner Limited / Sapphire Technology Ellesmere [Radeon RX 580]

        Kernel driver in use: snd_hda_intel

        Kernel modules: snd_hda_intel

05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/580] (rev c7)

        Subsystem: PC Partner Limited / Sapphire Technology Radeon RX 470/480

        Kernel driver in use: amdgpu

05:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 580]

        Subsystem: PC Partner Limited / Sapphire Technology Ellesmere [Radeon RX 580]

        Kernel driver in use: snd_hda_intel

        Kernel modules: snd_hda_intel

06:00.0 USB controller: ASMedia Technology Inc. Device 2142

        Subsystem: ASUSTeK Computer Inc. Device 8732

        Kernel driver in use: xhci_hcd

07:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/580] (rev c7)

        Subsystem: PC Partner Limited / Sapphire Technology Ellesmere [Radeon RX 470/480/570/580]

        Kernel driver in use: amdgpu

07:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 580]

        Subsystem: PC Partner Limited / Sapphire Technology Ellesmere [Radeon RX 580]

        Kernel driver in use: snd_hda_intel

        Kernel modules: snd_hda_intel

vargur ~ # uname -a

Linux vargur 4.17.4-gentoo #2 SMP Sat Jul 7 14:10:29 CDT 2018 x86_64 Intel(R) Pentium(R) CPU G4560 @ 3.50GHz GenuineIntel GNU/Linux

vargur ~ # parted -l

Model: ATA ADATA SU800 (scsi)

Disk /dev/sda: 128GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

Number  Start   End     Size    File system     Name    Flags

 1      1049kB  538MB   537MB   fat32           ESP     boot, esp

 2      538MB   2685MB  2147MB  linux-swap(v1)  swap

 3      2685MB  128GB   125GB   ext4            rootfs

vargur ~ # blkid

/dev/sda1: UUID="EE59-4D33" TYPE="vfat" PARTLABEL="ESP" PARTUUID="186d94aa-bccb-42b3-be9d-e1bbe4b8fdce"

/dev/sda2: UUID="239e3caa-bff9-4fee-9321-34c6bb9724f9" TYPE="swap" PARTLABEL="swap" PARTUUID="7b2d198a-0129-4f41-b7a4-ec03eb67fc42"

/dev/sda3: UUID="424b94b6-146f-41a1-8d85-e65778e467a7" TYPE="ext4" PARTLABEL="rootfs" PARTUUID="086bec23-ce57-4a9c-8ed7-81d6775d9ce0"

vargur ~ # cat /etc/fstab

# /etc/fstab: static file system information.

#

# noatime turns off atimes for increased performance (atimes normally aren't

# needed); notail increases performance of ReiserFS (at the expense of storage

# efficiency).  It's safe to drop the noatime options if you want and to

# switch between notail / tail freely.

#

# The root filesystem should have a pass number of either 0 or 1.

# All other filesystems should have a pass number of 0 or greater than 1.

#

# See the manpage fstab(5) for more information.

#

# <fs>                  <mountpoint>    <type>          <opts>          <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

#

# NOTE: Even though we list ext4 as the type here, it will work with ext2/ext3

#       filesystems.  This just tells the kernel to use the ext4 driver.

#

# NOTE: You can use full paths to devices like /dev/sda3, but it is often

#       more reliable to use filesystem labels or UUIDs. See your filesystem

#       documentation for details on setting a label. To obtain the UUID, use

#       the blkid(8) command.

UUID=EE59-4D33                                          /boot/EFI               vfat            noauto,defaults         0 2

UUID=424b94b6-146f-41a1-8d85-e65778e467a7               /                       ext4            defaults                0 1

UUID=239e3caa-bff9-4fee-9321-34c6bb9724f9               none                    swap            sw                      0 0

#/dev/cdrom             /mnt/cdrom      auto            noauto,ro       0 0

# portage on tmpfs

tmpfs           /var/tmp/portage                tmpfs   size=4G,uid=portage,gid=portage,mode=775,noatime        0 2
```

----------

## owen.geer

https://bpaste.net/show/499be85e3fef

Thank you so much for your help. I downloaded xorg-x11 and I am still not getting it to work. When I update the @world use flags then it recognises that I changed it, but I get this news message every time https://www.gentoo.org/support/news-items/2016-04-24-default-video-cards.html

----------

## ali3nx

 *owen.geer wrote:*   

> https://bpaste.net/show/499be85e3fef
> 
> Thank you so much for your help. I downloaded xorg-x11 and I am still not getting it to work. When I update the @world use flags then it recognises that I changed it, but I get this news message every time https://www.gentoo.org/support/news-items/2016-04-24-default-video-cards.html

 

Your make.conf file is basic but there's nothing incorrect about it. the problem your experiencing must be from another contributing issue such as perhaps your kernel config. did you compile your own Linux kernel or use genkernel? 

You may need to if you haven't configure and compile your own kernel config to ensure the amdgpu driver and firmware are included in the kernel image

There's little information you've provided so far to go on for reference other than guessing based on common issues many people may experience.

If you do have the video_cards configured in make.conf that config should be used by portage when building xorg relevant packages. Why it's not is curious.

The xorg drivers alone are not enough to make a graphics card function however. You must also have the correct Linux kernel configuration.

Even if the default video_cards setting in make.conf was set to defaults or undefined that would not prevent the rest of a correctly configured Gentoo system with a graphics card matching a default type setting from functioning.

----------

## owen.geer

I used genkernel to make the kernel. But amdgpu firmware should have been included in that right? Perhaps I need to add something else to my make.conf

----------

## ali3nx

 *owen.geer wrote:*   

> I used genkernel to make the kernel. But amdgpu firmware should have been included in that right? Perhaps I need to add something else to my make.conf

 

I can confirm your make.conf file has no config errors. 

I tested my system utilizing both setups to try and get opencl compute to work last weekend by compiling amdgpu kernel driver into the kernel image including firmware and as module then tried to load gpu firmware from userland and it did not work. loading a module and firmware from userland should have worked but it did not.

Based on many years of using Linux and Gentoo having drivers or software load on demand is ideal but it does not always work out as well as you hoped it could under some unusual circumstances. Sometimes the entire opposite is true where using a kernel module is more ideal such as configuring the linux kernel for alsa sound.  

Compiling the amdgpu driver into my kernel image and including the firmware in this circumstance fixed the issues with the gpu entirely.

Try it and see if it helps. One other thing i can offer is while Genkernel is a beneficial and useful tool to aid with building a functional kernel you should never assume the default configuration genkernel offers will be correct or adequate for your specific system.

Genkernel is and always has been at best a good starting guide and additional kernel config customization is more often than not beneficial or necessary.

Learning many of these things just takes time or testing what works for your hardware or use case.

----------

## owen.geer

Ok I'll give it a shot. Does this mean I have to install Gentoo again? Or I just make a new kernel config and load it?

----------

## ali3nx

 *owen.geer wrote:*   

> Ok I'll give it a shot. Does this mean I have to install Gentoo again? Or I just make a new kernel config and load it?

 

One of the great things with gentoo is if you already have a functional install you should never need to start from scratch unless something is very broken or you let your install go so far out of date that updating would be more difficult than reinstalling from scratch. In your situation there should be nothing seriously broken enough to need a full reinstall.

Just adjust your kernel config and recompile then test your results after a reboot. just be certain to update your bootloader config before rebooting so the new kernel is available and your functional backup if the new kernel config doesn't boot for whatever reasons that can happen.

----------

## owen.geer

Ok. How do I edit the kernel configuration? Can I edit it with menuconfig?

----------

## ali3nx

 *owen.geer wrote:*   

> Ok. How do I edit the kernel configuration? Can I edit it with menuconfig?

 

I've not personally used genkernel in eons but i am fairly certain there is an option flag you can use with genkernel to trigger menuconfig to load. You could as well absolutely just configure your own kernel config with gentoo sources using the "manual" native Linux kernel methods. The Linux kernel itself requires no third party tools to configure and build a kernel.  

I made a youtube video some time ago that details the required steps to configure and build a Linux kernel with Gentoo that may be useful reference

----------

## NeddySeagoon

owen.geer,

Pass genkernel the --menuconfig option ... it might just be one '-'

```
genkernel -h
```

may be useful.

----------

## owen.geer

So I used genkernel --menuconfig and when I try to enable the kernel settings on https://wiki.gentoo.org/wiki/AMDGPU some of them aren't there. Some are, some aren't. I looked everywhere and tried everything but some of the options aren't there. I compiled it anyway and amdgpu still doesn't work. Do I have to do a non genkernel compile for these options to show up? Thanks

----------

## NeddySeagoon

owen.geer,

What kernel are you using?

AMDGPU changed a lot at kernel 4.15.0

menuconfig hides options that have unsatisfied dependencies. It removes clutter.

In menuconfig, press 'z' to turn on the display of hidden options.

Now the search will find them and you can read the Depends On: for the hidden option you need.

The Depends on must evaluate to true before the option can be selected.

----------

## ali3nx

 *owen.geer wrote:*   

> So I used genkernel --menuconfig and when I try to enable the kernel settings on https://wiki.gentoo.org/wiki/AMDGPU some of them aren't there. Some are, some aren't. I looked everywhere and tried everything but some of the options aren't there. I compiled it anyway and amdgpu still doesn't work. Do I have to do a non genkernel compile for these options to show up? Thanks

 

If you are experiencing challenges or difficulties you could use the kernel config from my amdgpu based system as a template. Once you know how to backup your kernel config and replace that config file in a kernel source directory anyone can use anyone else's linux kernel config as a functional example and make any desired or necessary changes.

The linux kernel config file relevant to any linux kernel source directory is always located at 

```
/usr/src/linux-<version>/.config
```

Backing up that file to 

```
/usr/src/config-<version>
```

can effectively create a config backup relevant to that kernel source version.

Here's the kernel config for gentoo-sources 4.17.x from my amdgpu based system. This pc runs an intel z270-a asus motherboard and 6th generation pentium cpu so perhaps any necessary changes may be minimal.

https://bpaste.net/show/c55adcc10f15

----------

## jburns

Try using a 4.17 version of the kernel.  

In your mahe.conf file change VIDEO_CARDS="amdgpu radeonsi radeon" to VIDEO_CARDS="amdgpu radeonsi"

If xf86-video-ati is installed remove it.

You may need to add x11-libs/libdrm video_cards_radeon to package.use

----------

## Hazzerath

In the kernel some settings are dependent.

Searching the config with / key you can usually type in the config name.

This will usually bring up the location in the kernel menu and what triggers it to appear or hide.

----------

## owen.geer

How do I install the newer kernel? (4.17). I tried using emerge gentoo-sources but it just installs 4.14.

----------

## NeddySeagoon

owen.geer,

You keyword it to tell portage that this testing package is permitted.

----------

## ali3nx

owen.geer just be certain to use the package.accept_keywords method for keywording the kernel sources. You really should avoid keyword accepting every testing package in the portage tree by not using  

```
ACCEPT_KEYWORDS="~amd64"
```

in make.conf

If you were feeling challenged already keyword accepting every testing package surely will make thing much more challenging  :Smile: 

Here's the contents of the package.accept_keywords file from my amdgpu miner.

```
vargur ~ # cat /etc/portage/package.accept_keywords

sys-kernel/gentoo-sources

sys-kernel/linux-firmware

# opencl

dev-libs/amdgpu-pro-opencl

dev-util/clinfo

# x2go

net-misc/x2goserver

net-misc/nx
```

----------

## owen.geer

So do I remove ACCPET_KEYWORDS="~amd64" from my make.conf or keep it? I already installed the new kernel, but it only installed 4.17.5. Is there any way I can install 4.17.8?

----------

## ali3nx

 *owen.geer wrote:*   

> So do I remove ACCPET_KEYWORDS="~amd64" from my make.conf or keep it? I already installed the new kernel, but it only installed 4.17.5. Is there any way I can install 4.17.8?

 

```
ACCEPT_KEYWORDS="~amd64"
```

will unmask every testing package in the portage tree. This could be unwise for several reasons one of the most significant being that this could also upgrade glibc and the compiler toolchain to unstable testing versions. glibc when upgraded cannot be safely or easily downgraded without many packages breaking due to missing c library symbols that likely would not be available in an older more stable version of glibc.  

Managing a fully unmasked gentoo install can be very challenging even for experienced users. Just use stable default portage keywording and unmask unstable or testing packages on a per package as needed basis.

I believe this is the default portage keywording for amd64 gentoo

```
ACCEPT_KEYWORDS="amd64"
```

https://packages.gentoo.org/packages/sys-kernel/gentoo-sources

It appears that 4.17.8 is in the portage tree and the ebuild was added today. you may need to emerge --sync to make the new ebuild version available on your system.

----------

## owen.geer

My package.accept_keywords file becomes blank every time I edit it, and it doesn't work. Any fix?

----------

## ali3nx

 *owen.geer wrote:*   

> My package.accept_keywords file becomes blank every time I edit it, and it doesn't work. Any fix?

 

which console text editor are you using? If your using vim i find that can overcomplicate matters when all you want to do is create or edit a simple text document with a console terminal. Nano works best for this  :Smile: 

You also must create and edit that file as the root user

----------

## owen.geer

Hey, sorry for asking so many questions. I'm new to gentoo and I'm not finding very useful information for some things on the wiki and internet.

Do you know how I can use your kernel configuration, while I'm in CLI mode? I can't access the internet except using lynks, is there a way I can copy it from there?

----------

## ali3nx

 *owen.geer wrote:*   

> Hey, sorry for asking so many questions. I'm new to gentoo and I'm not finding very useful information for some things on the wiki and internet.
> 
> Do you know how I can use your kernel configuration, while I'm in CLI mode? I can't access the internet except using lynks, is there a way I can copy it from there?

 

This should get you a local copy of the kernel config from my bpaste.  

```
wget https://bpaste.net/raw/c55adcc10f15 -O config-gentoo-sources-4.17
```

----------

## owen.geer

How do I load the config? And do I need to add anything into grub?

----------

## NeddySeagoon

owen.geer,

The .config is found as .config at the top level of your kernel tree.

Do not use it as is, its unlikely to work.  Open it with less in a window beside your own 

```
make menuconfig
```

 and use the video settings, around DRM and amdgpu to guide you.

You can search for the symbol names shown by less with / in menuconfig. Omit the CONFIG_

IF you do this in a new kernel, your grub menu will need to be updated. If you overwrite an existing kernel, the old grub menu entry will load the new kernel.

----------

