System (Manjaro 22.0.0)won't boot with kernel 5.4 no network adapters or GUI

Hi there i’m new here and also new to linux. I need to use the 5.4 kerrnel in order to install drivers for my Mygica a681b ATSC usb tuner which does not support any kernel newer than 5.4 . My machine boots fine with the stock kernel 5.15 but no luck with the 5.4. I tried using startx in tty2 but got the following error:

[  1623.898] 
X.Org X Server 1.21.1.4
X Protocol Version 11, Revision 0
[  1623.898] Current Operating System: Linux ibard-manjaro 5.4.218-2-MANJARO #1 SMP PREEMPT Sat Oct 15 13:42:39 UTC 2022 x86_64
[  1623.898] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.4-x86_64 root=UUID=06ca42c6-a29a-4ff6-be5f-7f89a6da8a80 rw quiet resume=UUID=a4516f3c-1b73-40cb-b638-533939069d3f udev.log_priority=3
[  1623.899]  
[  1623.899] Current version of pixman: 0.40.0
[  1623.899] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[  1623.899] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  1623.899] (==) Log file: "/var/log/Xorg.0.log", Time: Fri Oct 21 22:48:57 2022
[  1623.899] (==) Using config directory: "/etc/X11/xorg.conf.d"
[  1623.899] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[  1623.899] (==) No Layout section.  Using the first Screen section.
[  1623.899] (==) No screen section available. Using defaults.
[  1623.899] (**) |-->Screen "Default Screen Section" (0)
[  1623.899] (**) |   |-->Monitor "<default monitor>"
[  1623.899] (==) No monitor specified for screen "Default Screen Section".
	Using a default monitor configuration.
[  1623.899] (==) Automatically adding devices
[  1623.899] (==) Automatically enabling devices
[  1623.899] (==) Automatically adding GPU devices
[  1623.899] (==) Automatically binding GPU devices
[  1623.899] (==) Max clients allowed: 256, resource mask: 0x1fffff
[  1623.899] (WW) The directory "/usr/share/fonts/OTF" does not exist.
[  1623.899] 	Entry deleted from font path.
[  1623.899] (WW) The directory "/usr/share/fonts/Type1" does not exist.
[  1623.899] 	Entry deleted from font path.
[  1623.899] (WW) The directory "/usr/share/fonts/100dpi" does not exist.
[  1623.899] 	Entry deleted from font path.
[  1623.899] (WW) The directory "/usr/share/fonts/75dpi" does not exist.
[  1623.899] 	Entry deleted from font path.
[  1623.899] (==) FontPath set to:
	/usr/share/fonts/misc,
	/usr/share/fonts/TTF
[  1623.899] (==) ModulePath set to "/usr/lib/xorg/modules"
[  1623.899] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[  1623.899] (II) Module ABI versions:
[  1623.899] 	X.Org ANSI C Emulation: 0.4
[  1623.899] 	X.Org Video Driver: 25.2
[  1623.899] 	X.Org XInput driver : 24.4
[  1623.899] 	X.Org Server Extension : 10.0
[  1623.900] (++) using VT number 2

[  1623.902] (II) systemd-logind: took control of session /org/freedesktop/login1/session/_31
[  1623.904] (--) PCI:*(0@0:2:0) 8086:4e61:0000:0000 rev 1, Mem @ 0x6000000000/16777216, 0x4000000000/268435456, I/O @ 0x00003000/64, BIOS @ 0x????????/131072
[  1623.904] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[  1623.904] (II) LoadModule: "glx"
[  1623.904] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[  1623.906] (II) Module glx: vendor="X.Org Foundation"
[  1623.906] 	compiled for 1.21.1.4, module version = 1.0.0
[  1623.906] 	ABI class: X.Org Server Extension, version 10.0
[  1623.906] (==) Matched modesetting as autoconfigured driver 0
[  1623.906] (==) Matched fbdev as autoconfigured driver 1
[  1623.906] (==) Matched vesa as autoconfigured driver 2
[  1623.906] (==) Assigned the driver to the xf86ConfigLayout
[  1623.906] (II) LoadModule: "modesetting"
[  1623.906] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[  1623.906] (II) Module modesetting: vendor="X.Org Foundation"
[  1623.906] 	compiled for 1.21.1.4, module version = 1.21.1
[  1623.906] 	Module class: X.Org Video Driver
[  1623.906] 	ABI class: X.Org Video Driver, version 25.2
[  1623.906] (II) LoadModule: "fbdev"
[  1623.906] (WW) Warning, couldn't open module fbdev
[  1623.907] (EE) Failed to load module "fbdev" (module does not exist, 0)
[  1623.907] (II) LoadModule: "vesa"
[  1623.907] (WW) Warning, couldn't open module vesa
[  1623.907] (EE) Failed to load module "vesa" (module does not exist, 0)
[  1623.907] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[  1623.907] (EE) open /dev/dri/card0: No such file or directory
[  1623.907] (WW) Falling back to old probe method for modesetting
[  1623.907] (EE) open /dev/dri/card0: No such file or directory
[  1623.907] (EE) Screen 0 deleted because of no matching config section.
[  1623.907] (II) UnloadModule: "modesetting"
[  1623.907] (EE) Device(s) detected, but none match those in the config file.
[  1623.907] (EE) 
Fatal server error:
[  1623.907] (EE) no screens found(EE) 
[  1623.907] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[  1623.907] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[  1623.907] (EE) 
[  1623.912] (EE) Server terminated with error (1). Closing log file.

can anyone please suggest how to fix this problem. Or is it that the kernel is just too old to support my hardware?
My Hardware

tibard-manjaro
    description: Computer
    width: 64 bits
    capabilities: smp vsyscall32
  *-core
       description: Motherboard
       physical id: 0
     *-memory
          description: System memory
          physical id: 0
          size: 16GiB
     *-cpu
          product: Intel(R) Celeron(R) N5105 @ 2.00GHz
          vendor: Intel Corp.
          physical id: 1
          bus info: cpu@0
          size: 2800MHz
          capacity: 2900MHz
          width: 64 bits
          capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp x86-64 constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch cpuid_fault epb cat_l2 cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms rdt_a rdseed smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req umip waitpkg gfni rdpid movdiri movdir64b md_clear flush_l1d arch_capabilities cpufreq
     *-pci
          description: Host bridge
          product: Intel Corporation
          vendor: Intel Corporation
          physical id: 100
          bus info: pci@0000:00:00.0
          version: 00
          width: 32 bits
          clock: 33MHz
        *-display
             description: VGA compatible controller
             product: JasperLake [UHD Graphics]
             vendor: Intel Corporation
             physical id: 2
             bus info: pci@0000:00:02.0
             version: 01
             width: 64 bits
             clock: 33MHz
             capabilities: vga_controller bus_master cap_list rom
             configuration: driver=i915 latency=0
             resources: iomemory:600-5ff iomemory:400-3ff irq:143 memory:6000000000-6000ffffff memory:4000000000-400fffffff ioport:3000(size=64) memory:c0000-dffffype 

The linux driver is developed by a community and they seem to be keeping up to date with the latest kernels.

You may have some luck compiling a driver for kernel 6.0 or 5.19 or 5.15, or someone has already done so, then you can keep your linux system up to date.

More info at:

https://linuxtv.org/

Thanks for the tip. I will check out the site. Unfortunately i don’t have much experience in compiling drivers. I just followed the instructions on the manufacturers site.

i would need help to compile the driver for a newer kernel as I literally would’nt know where to start. Are you aware of this device’s driver being compiled for newer kernels by anyone out there in the wider linux community. From the screenshot from the above posted on the manufacturer forum it does not seem so.

Compiling manufacturer’s driver

Those comments about missing source code seem unpromising.

I was looking at linuxtv.org, and noticed two things:

  • most of the drivers were pushed into the main linux kernel, which raises the possibility you don’t need the driver from the manufacturer.

  • the media_build repo has been mothballed but should be retrievable.

Another thing I found is in the AUR (Arch User Rep) there is a package linuxtv-dvb-apps to install linuxtv apps and utils.

I couldn’t help myself, I tried to install it, and it’s broken, but only a little bit broken. One of the included patches fails a checksum test.

After fixing and rebuilding the package, it installed a bunch of files. Here is a summary from it’s README …

Linux DVB API applications and utilities.

All applications support the DVB-S, DVB-C, DVB-T, and ATSC standards.

Main User Applications:
util/scan	- Scan for channels on your digital TV device.
util/gnutv	- Tune, watch and stream your TV.

General Utilities:
util/dvbdate	- Set your clock from digital TV.
util/dvbnet	- Control digital data network interfaces.
util/dvbtraffic	- Monitor traffic on a digital device.
util/femon	- Monitor the tuning on a digital TV device.
util/zap	- *Just* tunes a digital device - really intended for developers.
util/gotox	- Simple Rotor control utility
util/alevt	- Teletext capture and display utility

Hardware Specific Utilities:
util/av7110_loadkeys	- Load remote keys into an av7110 based card
util/dib3000-watch	- Monitor DIB3000 demodulators
util/dst-utils		- Utilities for DST based cards.
util/ttusb_dec_reset	- Reset a TechnoTrends TTUSB DEC device.

Libraries:
lib/libdvbapi	- Interface library to digital TV devices.
lib/libdvbcfg	- Library to parse/create digital TV channel configuration files.
lib/libdvbsec	- Library for Satellite Equipment Control operations.
lib/libucsi	- Fast MPEG2 Transport Stream SI table parsing library.
lib/libdvben50221- Complete implementation of a Cenelec EN 50221 CAM stack.
lib/libdvbmisc	- Miscellaneous utilities used by the other libraries.

When I ran scan -c and czap -l I got an error

failed to open '/dev/dvb/adapter0/frontend0'

which makes sense, since I don’t have the device myself :stuck_out_tongue:

What next?

Can you boot into a recent-ish kernel, such as 5.15 from the Manjaro downloads, plug in your TV tuner, and see if this is created?

ls /dev/ | grep dvb

If the device does get set up there, I’ll step you through installing that AUR package, and maybe that’s all is needed.

If it doesn’t magically appear, I’ll spend a bit more time on the driver and see if there is more to discover.

As for getting kernel 5.4 working, I’m unfamiliar with those errors from X-org, hopefully someone else will jump in.

Im currently running on Linux 5.19.0-3-rt10-MANJARO.
No magic :disappointed: unfortunately the device was not recognized.
Thanks for the help I really appreciate you taking time out of your day to assist.
I have been researching this tuner and found a potential lead. From the following sites:

I learnt that the tuner uses the mxl603/mxl608 chipset. It seems as though some effort was being made to compile an open source driver. Please have a look if this information helps.

mishmosh
Could you please

Ive done more research and have visually verifed that the tuner is a mxl692

which according to the above is supported in the newer kernels.
I would really appreciate the help to get this sorted.

Hi again @rs4eva

I’ve had slow progress here, mostly due to internet being either off or unreliable – I’ve fixed the latter.

Cloning the kernel git repo was fun, 9 million objects and 7.5 million deltas – it took a while!

kernel module

Sounds awesome! Here’s what you can do with the module:

# get the module to show its socks
$ modinfo mxl692

# load the module into the kernel
$ sudo modprobe mxl692

# list installed modules
$ lsmod

# remove the module from the kernel
$ sudo rmmod mxl692 

Try loading the module and plug in your device, or vice versa.

AUR package of tools

EDIT - I recommend applying today’s big update before starting these steps.

# install header files for your kernel, for compiling stuff
$ pamac install linux519-rt-headers

# create a directory for building in
$mkdir aur-pkg-manual
$cd aur-pkg-manual

# download the PKGBUILD file
$ curl -o PKGBUILD "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=linuxtv-dvb-apps"

# edit the file PKGBUILD
$ nano PKGBUILD

# while editing the file, replace the last checksum with SKIP

# make the package, the SKIP should prevent failure
$ makepkg

# it should create a bunch of files, including linuxtv-dvb-apps-1505-2-x86_64.pkg.tar.zst

# install the package
$ sudo pacman -U ./linuxtv-dvb-apps-1505-2-x86_64.pkg.tar.zst

In pamac, once you refresh databases, the AUR package linuxtv-dvb-apps shows as installed. Selecting it will show the files it has put on your system.

I hope it all works!

mishmosh

Thanks for the advice the package installed without any errors.
Unfortunately the usb tuner still has not been detected. I got the same output
scan -c >> scan.txt  1 ✘ using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' main:2745: FATAL: failed to open '/dev/dvb/adapter0/frontend0': 2 No such file or directory

the modprobe output

this is proving to be a very hard nut to crack.

here is the tuner itself

If you can think of any other solutions it would be much appreciated.

Does the device show in the list returned by:

lsusb
Bus 002 Device 003: ID 05e3:0749 Genesys Logic, Inc. SD Card Reader and Writer
Bus 002 Device 002: ID 05e3:0626 Genesys Logic, Inc. Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 001 Device 005: ID 046d:c216 Logitech, Inc. F310 Gamepad [DirectInput Mode]
Bus 001 Device 008: ID 4037:2804  2.4G Composite Devic
Bus 001 Device 006: ID 1f4d:692f G-Tek Electronics Group USB Stick
Bus 001 Device 004: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 003: ID 0c45:5101 Microdia 2.4G Wireless Device [Rii MX3]
Bus 001 Device 002: ID 0573:1573 Zoran Co. Personal Media Division (Nogatech) USB Audio and HID
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

maybe its that G-Tek Electronics i’m going to plug out and run again to confirm

Bus 002 Device 003: ID 05e3:0749 Genesys Logic, Inc. SD Card Reader and Writer
Bus 002 Device 002: ID 05e3:0626 Genesys Logic, Inc. Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 001 Device 005: ID 046d:c216 Logitech, Inc. F310 Gamepad [DirectInput Mode]
Bus 001 Device 008: ID 4037:2804  2.4G Composite Devic
Bus 001 Device 004: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 003: ID 0c45:5101 Microdia 2.4G Wireless Device [Rii MX3]
Bus 001 Device 002: ID 0573:1573 Zoran Co. Personal Media Division (Nogatech) USB Audio and HID
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

it is the G-Tek

Try this for more detail:

lsusb -v -d "1f4d:692f"
   ~  lsusb -v -d "1f4d:692f"                                                       ✔ 


Bus 001 Device 010: ID 1f4d:692f G-Tek Electronics Group USB Stick
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1f4d G-Tek Electronics Group
  idProduct          0x692f 
  bcdDevice            8.00
  iManufacturer           1 Gen
  iProduct                2 USB Stick
  iSerial                 3 2017.12.09
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x002e
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    ~                                                                                

Thanks, I had no idea this extra info would be so … leaf mulch …

After I get some sleep I’ll take another look at the kernel repo and figure out why it swallowed the afl1 dvb repo.

Just in case this would be of any assistance here is the manufacturer’s download link for the driver
https://file.geniatech.com/mygica/Driver/win_pc_linux_driver_for_ubuntu_20.04.1(20210309).zip

I’m trying to build the driver, but gets stopped by a whole bunch of problems.

One was, the build script pulls from the git repo ‘media_build’, but the last commit on the repo deletes most of the files and adds a message about no longer supported.

Now I’m stuck with errors about kernel patches failing … this is a very slow-paced challenge!

Hi again, I’m understanding more on how kernel drivers fit together.

Possibly this driver already includes support for mxl692, can you try it?

sudo modprobe tuner

Cross fingers, would it be so easy? haha

EDIT - also try this one …

sudo modprobe dvb-core

@mishmosh I loaded up both tuner and dvb-core. Unfortunately the device is still not recognized :slightly_frowning_face:

Tuner gave the following output

    ~  lsmod | grep tuner                                                         PIPE|2 ✘ 
tuner                  28672  0
videodev              278528  4 v4l2_async,ov13858,videobuf2_common,tuner
mc                     65536  7 v4l2_async,videodev,snd_usb_audio,ov13858,dvb_core,videobuf2_common,tuner

but scan-c yeilds the same result

   ~  scan -c
using ‘/dev/dvb/adapter0/frontend0’ and ‘/dev/dvb/adapter0/demux0’
main:2745: FATAL: failed to open ‘/dev/dvb/adapter0/frontend0’: 2 No such file or director