# Solved   Switch from Genkernel to manual kernel

## CraigD

Im a newbie to Gentoo but I got Gentoo up and running by using Genkernel. I would like to learn more about configuring the kernel and add support for my Hauppauge QuadHD tv tuner. I believe I have figured out how to build in the necessary support for the tuner. However, my manually configured kernel boots to a CLI while the genkernel kernel boots to a graphical interface. The kernel is the only change. 

I built the manual kernel by first running make mrproper then running make menuconfig. I verified the settings listed in the handbook and built the kernel WIITHOUT trying to add the tv tuner at this point. On the plus side it boots, on the down side I can't seem to access the graphical interface (KDE)

I'm not sure what additional info to provide so I will wait until someone responds with a request for specific info.

Thanks,

CraigLast edited by CraigD on Fri Feb 26, 2021 6:13 am; edited 2 times in total

----------

## pietinger

CraigD,

can you do a login in your "cli" (probably bash) ?

Do you have systemd or OpenRC ?

Wayland or X11 ?

Do you start "sddm" ?

Your kernel config depends what you have installed right now (e.g. you need different modules when using evdev instead of libinput).

So first of all, please give us the output of "emerge --info"

In the meantime you can take a look into my german guide - only for gathering all links to our Gentoo Wiki:

https://forums.gentoo.org/viewtopic-t-1112778.html

----------

## Buffoon

CraigD,

I have Hauppauge WinTV-quadHD in my media server. My kernel was configured years ago, but I seem to recall there was at least three drivers in kernel I had to enable for this card. I dropped my config to pastebin, for you to look at. http://dpaste.com/99CGG6N96 Note, I also have Hauppauge WinTV HVR-2250 in this box, some drivers are enabled for this card and not needed for quad.

----------

## Tony0945

I have a system with a working quad4. It also supports the HVR-1600 so some of the following modules may not be needed.

[

```

CONFIG_VIDEO_CX23885=m

CONFIG_VIDEO_CX2341X=m

CONFIG_VIDEO_CX25840=m

CONFIG_VIDEO_CX18=m

CONFIG_VIDEO_CX18_ALSA=m

CONFIG_DVB_S5H1409=m

CONFIG_DVB_S5H1411=m

CONFIG_MEDIA_TUNER_TDA8290=m

CONFIG_DVB_TDA18271C2DD=m

```

----------

## Hu

It may also be useful for OP to pastebin the configuration of the genkernel-built and manually-configured kernels.  From the information available, I would guess that the manual kernel is missing some option that is required for proper operation of the X server.

----------

## Tony0945

Good point, Hu!

Also useful would be the results of "lspci -nnk". Most X failures that I have seen are lack of kernel support for the installed video card.

In my kernels, I support Radeon and Nouveau. One will be loaded and the other fail to load. It only adds a second or two to boot time. There are also Intel video and probably others.

I'm guessing the genkernel kernel supports everything.

----------

## milomak

would it not be easier for the op to copy the config file of the x booting kernel to the build folder. rename it .config. and the run the config adding the modules wanted?

----------

## NeddySeagoon

milomak,

Genkernel builds a fully modular boot anywhere kernel that demands the use of an initrd.

Its possible to both get rid of the bloat and the requirement for an initrd, for most users.

I would start with a new kernel source tree so that i could have my own possibly broken kernel on the boot loader menu beside the working kernel.

A fully modular kernel config, that you know won't work without its matching initrd may be a poor starting point. 

The method in NeddySeagoons' Rough Guide to DIY Kernels is correct but the detail has changed.

There are many more kernel options now so you need a much bigger pot of coffee. :)

Eww ... that post is nearly 16 years old.

----------

## milomak

well yes. my assumption is that op was happy with the genkernel as a start and needed to add what the op needed.

my reading of the situation was adding extra to the kernel rather than reducing it. hence why it seemed to me to use the old config file as a starting point.

edit - to say emerge -av sys-kernel/gentoo-kernel creates a config file in /boot. but i see i build with initramfs

```

sys-kernel/gentoo-kernel symlink initramfs
```

----------

## Tony0945

milomak,  always run "make oldconfig" after copying a kernel config. It may be unnecessary, but it will tell you that.

----------

## Tony0945

 *NeddySeagoon wrote:*   

> Eww ... that post is nearly 16 years old.

 

happy Birthday, Sweet Sixteen!

----------

## CraigD

Thanks for all the input. I believe I have responded with requested info below.  I like NeddySeagoons' Rough Guide to DIY Kernels and I am going through the kernel using make xconfig 

pietinger

I am using OpenRC, X11, sddm. With genkernel the boot is directly to KDE login via sddm

emerge --info

```

craig@gentoo ~ $ emerge --info

Portage 3.0.13 (python 3.8.7-final-0, default/linux/amd64/17.1/desktop/plasma, gcc-9.3.0, glibc-2.32-r6, 5.4.97-gentoo-x86_64 x86_64)

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

System uname: Linux-5.4.97-gentoo-x86_64-x86_64-Intel-R-_Core-TM-_i5-6600T_CPU_@_2.70GHz-with-glibc2.2.5

KiB Mem:     8092616 total,   4996408 free

KiB Swap:   16777212 total,  16777212 free

Timestamp of repository gentoo: Sat, 20 Feb 2021 00:45:01 +0000

Head commit of repository gentoo: c2fba747786131f48b94f9c8c99f3fa5552fc9d8

sh bash 5.0_p18

ld GNU ld (Gentoo 2.35.1 p2) 2.35.1

app-shells/bash:          5.0_p18::gentoo

dev-lang/perl:            5.30.3::gentoo

dev-lang/python:          3.8.7-r1::gentoo, 3.9.1-r1::gentoo

dev-util/cmake:           3.18.5::gentoo

sys-apps/baselayout:      2.7::gentoo

sys-apps/openrc:          0.42.1-r1::gentoo

sys-apps/sandbox:         2.20::gentoo

sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r5::gentoo

sys-devel/automake:       1.16.2-r1::gentoo

sys-devel/binutils:       2.35.1-r1::gentoo

sys-devel/gcc:            9.3.0-r2::gentoo

sys-devel/gcc-config:     2.3.2-r1::gentoo

sys-devel/libtool:        2.4.6-r6::gentoo

sys-devel/make:           4.3::gentoo

sys-kernel/linux-headers: 5.4-r1::gentoo (virtual/os-headers)

sys-libs/glibc:           2.32-r6::gentoo

Repositories:

 

gentoo

    location: /var/db/repos/gentoo

    sync-type: rsync

    sync-uri: rsync://rsync.gentoo.org/gentoo-portage

    priority: -1000

    sync-rsync-verify-metamanifest: yes

    sync-rsync-verify-jobs: 1

    sync-rsync-extra-opts: 

    sync-rsync-verify-max-age: 24

 

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="@FREE MPEG-4"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=native -O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-march=native -O2 -pipe"

DISTDIR="/var/cache/distfiles"

ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"

FCFLAGS="-march=native -O2 -pipe"

FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"

FFLAGS="-march=native -O2 -pipe"

GENTOO_MIRRORS="http://www.gtlib.gatech.edu/pub/gentoo rsync://rsync.gtlib.gatech.edu/gentoo https://gentoo.osuosl.org/ http://gentoo.osuosl.org/ http://gentoo.mirrors.pair.com/ https://mirrors.rit.edu/gentoo/ http://mirrors.rit.edu/gentoo/ ftp://mirrors.rit.edu/gentoo/ rsync://mirrors.rit.edu/gentoo/ http://gentoo.mirrors.tds.net/gentoo http://gentoo.cs.utah.edu/"

LANG="en_US.utf8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

MAKEOPTS="-j5"

PKGDIR="/var/cache/binpkgs"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"

PORTAGE_TMPDIR="/var/tmp"

USE="X a52 aac acl acpi activities alsa amd64 base berkdb bluetooth branding bzip2 cairo cdda cdr cli crypt cups dbus declarative dri dts dvd dvdr elogind emboss encode exif flac fortran gdbm gif gpm gtk gui iconv icu ipv6 jpeg kde kipi kwallet lcms libglvnd libnotify libtirpc mad minimal mng mount mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf phonon plasma png policykit ppds pulseaudio qml qt5 readline redistributable sddm sdl seccomp semantic-desktop spell split-usr ssl startup-notification svg tcpd tiff truetype udev udisks unicode upower usb vorbis widgets wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_8" PYTHON_TARGETS="python3_8" RUBY_TARGETS="ruby26" USERLAND="GNU" VIDEO_CARDS="intel i915" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
```

lspci -nnk 

```
 

00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers [8086:191f] (rev 07)

        Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers [1043:8694]

        Kernel driver in use: skl_uncore

00:01.0 PCI bridge [0604]: Intel Corporation 6th-9th Gen Core Processor PCIe Controller (x16) [8086:1901] (rev 07)

        Kernel driver in use: pcieport

00:14.0 USB controller [0c03]: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller [8086:a12f] (rev 31)

        Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller [1043:8694]

        Kernel driver in use: xhci_hcd

        Kernel modules: xhci_pci

00:16.0 Communication controller [0780]: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1 [8086:a13a] (rev 31)

        Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family MEI Controller [1043:8694]

        Kernel driver in use: mei_me

        Kernel modules: mei_me

00:17.0 SATA controller [0106]: Intel Corporation Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode] [8086:a102] (rev 31)

        Subsystem: ASUSTeK Computer Inc. Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode] [1043:8694]

        Kernel driver in use: ahci

        Kernel modules: ahci

00:1c.0 PCI bridge [0604]: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #5 [8086:a114] (rev f1)

        Kernel driver in use: pcieport

00:1c.7 PCI bridge [0604]: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #8 [8086:a117] (rev f1)

        Kernel driver in use: pcieport

00:1d.0 PCI bridge [0604]: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #9 [8086:a118] (rev f1)

        Kernel driver in use: pcieport

00:1f.0 ISA bridge [0601]: Intel Corporation H110 Chipset LPC/eSPI Controller [8086:a143] (rev 31)

        Subsystem: ASUSTeK Computer Inc. H110 Chipset LPC/eSPI Controller [1043:8694]

00:1f.2 Memory controller [0580]: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller [8086:a121] (rev 31)

        Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family Power Management Controller [1043:8694]

00:1f.3 Audio device [0403]: Intel Corporation 100 Series/C230 Series Chipset Family HD Audio Controller [8086:a170] (rev 31)

        Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family HD Audio Controller [1043:86c7]

        Kernel driver in use: snd_hda_intel

        Kernel modules: snd_hda_intel

00:1f.4 SMBus [0c05]: Intel Corporation 100 Series/C230 Series Chipset Family SMBus [8086:a123] (rev 31)

        Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family SMBus [1043:8694]

        Kernel driver in use: i801_smbus

        Kernel modules: i2c_i801

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series] [1002:68f9]

        Subsystem: VISIONTEK Cedar [Radeon HD 5000/6000/7350/8350 Series] [1545:5450]

        Kernel driver in use: radeon

        Kernel modules: radeon

01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Cedar HDMI Audio [Radeon HD 5400/6300/7300 Series] [1002:aa68]

        Subsystem: VISIONTEK Cedar HDMI Audio [Radeon HD 5400/6300/7300 Series] [1545:aa68]

        Kernel driver in use: snd_hda_intel

        Kernel modules: snd_hda_intel

02:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD Black 2018 / PC SN520 NVMe SSD [15b7:5003] (rev 01)

        Subsystem: Sandisk Corp WD Black 2018 / PC SN520 NVMe SSD [15b7:5003]

        Kernel driver in use: nvme

        Kernel modules: nvme

03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)

        Subsystem: ASUSTeK Computer Inc. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [1043:8677]

        Kernel driver in use: r8169

        Kernel modules: r8169

04:00.0 PCI bridge [0604]: Pericom Semiconductor PI7C9X2G304 EL/SL PCIe2 3-Port/4-Lane Packet Switch [12d8:2304] (rev 05)

        Kernel driver in use: pcieport

05:01.0 PCI bridge [0604]: Pericom Semiconductor PI7C9X2G304 EL/SL PCIe2 3-Port/4-Lane Packet Switch [12d8:2304] (rev 05)

        Kernel driver in use: pcieport

05:02.0 PCI bridge [0604]: Pericom Semiconductor PI7C9X2G304 EL/SL PCIe2 3-Port/4-Lane Packet Switch [12d8:2304] (rev 05)

        Kernel driver in use: pcieport

06:00.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb [14f1:8880] (rev 04)

        Subsystem: Hauppauge computer works Inc. WinTV-quadHD [0070:6a18]

07:00.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb [14f1:8880] (rev 04)

        Subsystem: Hauppauge computer works Inc. CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb [0070:6b18]

gentoo /usr/src/linux # 

```

pastebin of genkernel config

https://pastebin.com/9skJ9aMR

pastebin of manual .config

[url]

https://pastebin.com/mmQtfFwd[/url]

----------

## CraigD

As I was looking at the output of lspci -nnk I realized the genkernel config had radeon drivers in a kernel module. I believe I was trying to install with a "y" rather than module and having the kernel fail to boot. I changed my original .config file to include radeon in a module. make -j4 && make modules_install && make install && grub-mkconfig -o /boot/grub/grub.cfg && reboot, select new kernel and boot into GUI KDE. 

Thanks for everyones help,

Now to add my TV card

Craig

----------

## NeddySeagoon

CraigD,

```
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series] [1002:68f9]

        Subsystem: VISIONTEK Cedar [Radeon HD 5000/6000/7350/8350 Series] [1545:5450]

        Kernel driver in use: radeon

        Kernel modules: radeon 
```

That video card requires firmware. At least 

```
ls /lib/firmware/radeon/CE* 

/lib/firmware/radeon/CEDAR_me.bin   /lib/firmware/radeon/CEDAR_rlc.bin

/lib/firmware/radeon/CEDAR_pfp.bin  /lib/firmware/radeon/CEDAR_smc.bin
```

The firmware is loaded when the kernel driver is initialised. Hold that thought.

When the driver is configured as =y, that's before root is mounted, so /lib/firmware is not accessible.

With =m, the driver is loaded  from the root filesystem anyway, so /lib/firmware is there too.

Both ways can be made to work. 

The kernel firmware loading thing is general, for all drivers that try to load firmware.

USB devices are popular firmware consumers.

The effects of not providing the required firmware vary, from no observable effect to total non operation.

dmesg will tell you all about missing firmware, one file at a time.

----------

## pietinger

 *NeddySeagoon wrote:*   

> The firmware is loaded when the kernel driver is initialised. Hold that thought.
> 
> When the driver is configured as =y, that's before root is mounted, so /lib/firmware is not accessible.
> 
> With =m, the driver is loaded  from the root filesystem anyway, so /lib/firmware is there too.
> ...

 

Let me add something to clarify:

If you have some firmware blob (e.g. for graphics OR for your CPU) configured - NOT as module - in your kernel (as described in some of our gentoo wiki pages), you MUST do a "make all" and install your new kernel again, because the firmware blob will NOT be loaded from /lib/firmware at BOOTTIME - only when you are doing a "make all"; the firmware blob is then BUILT IN the kernel.

So, if you get for example a NEW "sys-firmware/intel-microcode" it is not enaugh to just emerge it. You MUST do a "make all" and install the new kernel to have the new microcode loaded.

----------

## NeddySeagoon

pietinger,

Good point. 

I update my kernel last, so that my firmware updates have been installed in /lib/firmware before the kernel build.

----------

## Buffoon

'make' and 'make all' do the same, in other words, make without any targets defaults to 'make all'.

----------

## Tony0945

pietinger, 

Interesting and useful information. The pitfall of building everything in the kernel is that you HAVE to rebuild the kernel when  firmware is updated. I build everything essential for boot in the kernel (=y) so that I don't need initramfs. But stuff that can be loaded after root is mounted like the TV cards, USB and the like are modules so I don't have to build in the firmware and can add or subtract. I do have a basic video driver built-in, VESA, I think so that the screen is not blank when booting. But I can see the screen jump and change slightly when RADEON or NOUVEAU loads.  And, of course, nvidia-drivers is another one that needs firmware. I'm glad I only needed that when my cards were new.

Your quad4 needs firmware. I advise building modules for it as I posted earlier.

----------

## pietinger

 *Tony0945 wrote:*   

> [...]The pitfall of building everything in the kernel is that you HAVE to rebuild the kernel when  firmware is updated.[...]

 

Tony,

yes, you are right. The only reason for me to have a monolithic kernel is security. You can either disable modules support or you have to do this:

https://wiki.gentoo.org/wiki/Signed_kernel_module_support

if you want to be secure against rootkits using modules. And I am very lazy and dont want to do this signing ... and I dont must do a "make modules_install" ...  :Wink: 

(BTW: I update my kernel very often; sometimes every minor version, so a new firmware for my intel gpu and my intel cpu gets into the kernel very soon)

----------

## pietinger

 *Buffoon wrote:*   

> 'make' and 'make all' do the same, in other words, make without any targets defaults to 'make all'.

 

Yes, thanks (I knew). I wrote this only to make clear I mean the "make" for the kernel  :Smile: 

----------

## CraigD

WOW, lots or great information to take in....

I have the TV card up and running.

I built the kernel TV related pieces as modules for now....

I hope I understood I NeddySeagoon in that I added a link to /lib/firmware/radeon in /usr/src/linux

Actually, my card does not require drivers. 

[url]https://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-quadHD_(ATSC_ClearQAM)#Firmware[/url]

Best.

Craig

----------

## NeddySeagoon

CraigD,

You need to populate CONFIG_EXTRA_FIRMWARE= and CONFIG_EXTRA_FIRMWARE_DIR= so that the kernel build process pulls in the listed files. 

I have

```
CONFIG_EXTRA_FIRMWARE="amdgpu/polaris11_ce.bin amdgpu/polaris11_ce_2.bin amdgpu/polaris11_k2_smc.bin amdgpu/polaris11_k_mc.bin amdgpu/polaris11_k_smc.bin amdgpu/polaris11_mc.bin amdgpu/polaris11_me_2.bin amdgpu/polaris11_me.bin amdgpu/polaris11_mec2.bin amdgpu/polaris11_mec2_2.bin  amdgpu/polaris11_mec.bin amdgpu/polaris11_mec_2.bin amdgpu/polaris11_pfp.bin amdgpu/polaris11_pfp_2.bin amdgpu/polaris11_rlc.bin amdgpu/polaris11_sdma1.bin amdgpu/polaris11_sdma.bin amdgpu/polaris11_smc.bin amdgpu/polaris11_smc_sk.bin amdgpu/polaris11_uvd.bin amdgpu/polaris11_vce.bin amd-ucode/microcode_amd.bin amd-ucode/microcode_amd_fam15h.bin amd-ucode/microcode_amd_fam16h.bin "

CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware/"
```

Ugly, isn't it?

----------

## Tony0945

 *CraigD wrote:*   

> Actually, my card does not require drivers. 
> 
> [url]https://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-quadHD_(ATSC_ClearQAM)#Firmware[/url]
> 
> Craig

 

The link indicates it does. See my post above for the exact kernel configs that build them.

What it doesn't need is firmware, not drivers. 

BTW, what are you going to use for channel tuning and recording software?

----------

## CraigD

Tony0945

 *Quote:*   

> What it doesn't need is firmware, not drivers. 

 

Good eye, I meant firmware. The drivers are in modules

I plan on using NextPVR for recording. I am currently using it with Arch. The tuners load, I scanned and found channels but I am unable to record. I am attempting to trouble shoot now. 

What do you use for tuning and recording?

NeddySeagoon,

Is your last post for building everything in the kernel vs modules? Sorry, I learning but have a long way to go.

Craig

----------

## NeddySeagoon

CraigD,

I only build things into the kernel required at boot. 

That huge list of firmware files, is my CPU micocode and firmware for my graphics card.

The graphics card is all the amdgpu/polaris11* files.

My loadable modules are 

```
$ lsmod

Module                  Size  Used by

isofs                  45056  0

udf                    94208  0

crc_itu_t              16384  1 udf

nfsv3                  28672  1

nfs                   155648  2 nfsv3

lockd                  77824  2 nfsv3,nfs

grace                  16384  1 lockd

sunrpc                237568  6 lockd,nfsv3,nfs

nfs_ssc                16384  1 nfs

sata_sil               16384  0

fuse                  110592  2

pl2303                 20480  0

usbserial              28672  1 pl2303

asus_atk0110           20480  0

k10temp                16384  0

vboxnetflt             28672  0

vboxdrv               389120  1 vboxnetflt

snd_usb_audio         212992  0

snd_usbmidi_lib        28672  1 snd_usb_audio

snd_rawmidi            28672  1 snd_usbmidi_lib

snd_seq_device         16384  1 snd_rawmidi

pwc                    73728  0

videobuf2_vmalloc      16384  1 pwc

videobuf2_memops       16384  1 videobuf2_vmalloc

videobuf2_v4l2         24576  1 pwc

videobuf2_common       36864  2 videobuf2_v4l2,pwc

videodev              155648  2 videobuf2_v4l2,pwc

uas                    24576  0

usb_storage            61440  1 uas

snd_hda_codec_via      20480  1

snd_hda_codec_generic    69632  1 snd_hda_codec_via

ledtrig_audio          16384  1 snd_hda_codec_generic

snd_hda_codec_hdmi     53248  1

snd_hda_intel          24576  7

snd_intel_dspcfg       16384  1 snd_hda_intel

snd_hda_codec          86016  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_via

snd_hwdep              16384  2 snd_usb_audio,snd_hda_codec

snd_hda_core           53248  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_via

snd_pcm                77824  6 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_hda_core

snd_timer              28672  2 snd_pcm

snd                    65536  24 snd_hda_codec_generic,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_timer,snd_hda_codec_via,snd_pcm,snd_rawmidi

mousedev               20480  1

hid_logitech_dj        24576  0

usbhid                 32768  1 hid_logitech_dj

hid_logitech_hidpp     36864  0

hid_logitech           24576  0

```

and a few other things not loaded at the moment.

----------

## Tony0945

 *CraigD wrote:*   

> What do you use for tuning and recording?

 

MythTV seems to be a standard but I don't like the navigation.  I use SageTV. It's an old Windows/Linux client-server application that I used a pay application from SageTV4 through SageTV7. They sold out to Google just weeks before I was going to buy a license for the Linux version. After a year or so, Google, who only wanted the patents, allowed the original developers to to promulgate an Open Source version as long as they coded around the patented part (see how dumb software patents are?). This is SageTV 9, available as FOSS for both Windows and Linux. I don't know anything about Java so I haven't gotten around to writing a source based ebuild. I do have my own ebuilds for the compiled code (-bin version). Plural because there is a server that runs on the machine(s) with the card(s) and a client that runs anywhere.  One usage is back bedroom that has no RG-6 cable. An old laptop connects wirelessly to the Gentoo recorder machine (the one with the quad4) and projects it onto an old TV with a DVI input. I should buy a wireless mouse, then one needn't even get up to change the channel or view the schedule. Yes, I'm a couch potato. Ever read Heinlein's parable of the lazy man?

Somewhere on that forum link is a link to the source code.  If you can code java, we might collaborate on an ebuild.

EDIT:

Got a link on NextPVR?

EDIT2:  When they (SageTV) first went open source on Linux they intended to use Gentoo but, as with  Palemoon, some dev pissed them off badly so know they explicitly support only Ubuntu but translating Ubuntu into a /opt binary is pretty easy.  In the case of Palemoon, the same thing happened to them with FreeBSD. Their main developer (Palemoon) is a foul-mouthed obnoxious @#$%^& who I will relieve of his teeth if ever meet him in person, which is unlikely because he's in the UK.  Why do so many misanthropes develop code? Can't get a date?

----------

## CraigD

Tony0945

mythtv and tvheadend are both masked. When I first started using linux, only a little over a year ago, I tried mythtv but couldn't get it running so I switched to tvheadend.  Tvheadend issomewhat of a pain to set up but once going I liked it. My most recent experiance is with NextPVR. It is aimed toward Debian based distributions but I have used it with Arch and Fedora. I managed to get NextPVR installed and did a successful search for channels but I am getting an error that I think is related to dotnet when trying to record. 

NextPVR taken from https://forums.nextpvr.com/showthread.php?tid=59390

Manual Installation

The latest files can be downloaded from

http://nextpvr.com/stable/linux/NPVR.zip

Installing the Pre-Requisites

NextPVR needs a current .NET Core 3.1 runtime to be installed. You can find download install information at: https://dotnet.microsoft.com/download/dotnet-core/3.1

Other packages you'll probably need include:

```
mediainfo

libmediainfo-dev

glibc

libgdiplus

dtv-scan-tables

ffmpeg
```

I'm not sure how necessary but I couldn't find these in Gentoo. 

```
dvb-tools

libdvbv5-0
```

Installing and running NextPVR

extract the NPVR.zip to a directory like /home/craig/NPVR

```

cd NPVR

find . -name DeviceHostLinux -exec chmod 755 {} \;

dotnet ./NextPVRServer.dll
```

Craig

----------

## Tony0945

Dotnet. Ugh.

Surprised about mythTV. it's been around for ages. I was still a young man!  (OK, middle-aged man. seems young now)

Oh. I see 

```
 (masked by: ~amd64 keyword)
```

 If one adds "media-tv/mythtv ~amd64" to package.accept_keywords, it should emerge.

No, then elogind is required. Elogind and systemd didn't even exist for at least a decade after mythtv came out. I fail to see why they are required.

Here are my ebuilds if you want to create a local overlay

 pastebin of sageserver-bin-9.2.2.268-r3.ebuild

 pastebin of files/11sageserver-bin

 pastebin of files/sageserver-init

 pastebin of files/sageserver-conf

 pastebin of sageclient-bin-9.2.2.268-r3.ebuild

 pastebin of files/11sageclient-bin

 pastebin of files/sagetv

 pastebin of files/sagetv.desktop

Somewhere on the sagetV forum is a script for building from source. It doesn't follow the config/compile/install model of ebuilds. It's for Ubuntu. it did work on Ubuntu.

----------

## Hu

 *Tony0945 wrote:*   

> Oh. I see 
> 
> ```
>  (masked by: ~amd64 keyword)
> ```
> ...

 As of my last sync, elogind is not required by the mythtv ebuild.  Perhaps mythtv is pulling in a package that pulls in Xorg, which in turn would pull in elogind (if the default flags are in effect).  If you care to pursue it, emerge --pretend --verbose --tree media-tv/mythtv should show why elogind is wanted.  Alternatively, if you dislike the elogind approach enough that you are sure you do not want to use it, add it to a local package.mask to make sure it stays out, and as a happy side effect, when the mask stops it, then Portage will explain the dependency path that pulls it in.

----------

## Tony0945

```
~ $ emerge --pretend --verbose --tree media-tv/mythtv

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!

!!! The ebuild selected to satisfy ">=sys-auth/polkit-0.110" has unmet requirements.

- sys-auth/polkit-0.118::gentoo USE="gtk introspection (-elogind) -examples -jit -kde -nls -pam (-selinux) -systemd -test" ABI_X86="(64)"

  The following REQUIRED_USE flag constraints are unsatisfied:

    exactly-one-of ( elogind systemd )

(dependency required by "sys-fs/udisks-2.9.1::gentoo" [ebuild])

(dependency required by "media-tv/mythtv-31.0-r5::gentoo[dvd,-bluray]" [ebuild])

(dependency required by "media-tv/mythtv" [argument])

```

Udisks, polkit, why is any of that crap required? And when you do get it installed you have a clunky user interface that you navigate with obscure keycodes instead of arrow keys and mouse clicks.

EDIT:

last synced and updated Wednesday. About to sync again.

----------

## NeddySeagoon

Tony0945,

Try ripping out udisks ...

```
   bluray? (

                dev-libs/libcdio:=

                media-libs/libbluray:=[java?]

                sys-fs/udisks:2

        )

        dvd? (

                 dev-libs/libcdio:=

                media-libs/libdvdcss

                sys-fs/udisks:2

        )
```

I suspect that automounting needs it.

... or set 

```
USE="-bluray -dvd"
```

 but then you lose DVD support altogether.

----------

## Tony0945

USE="-dvd" does it.  Why should dvd support depend on udisks? I have neither udisks nor polkit and the DVD drive (blueray!) works just fine. makemkv can read it fine and IIRC so can xine.

----------

## Hu

USE=dvd would enable package-specific support for DVDs.  In this case, it probably enables smoother access to playing video DVDs directly from MythTV.  I don't know why udisks would be involved, but since DVDs are block devices and block devices are often not world-readable, udisks might be used to mediate/grant the required access for the unprivileged MythTV user to access the disc.

----------

## NeddySeagoon

Tony0945,

That drops media-libs/libdvdcss and dev-libs/libcdio too. Is that OK?

Well, unless they are installed for other reasons.

----------

## Tony0945

For myself, I'm not interested in myth because of having to memorize control codes (or print them and post them) instead of using my mouse.

----------

