rhgndf / fl2000_drm

Linux kernel FL2000DX dongle DRM driver VGA only
GNU General Public License v2.0
9 stars 3 forks source link

Unknown symbol in module with Linux version 5.15.126-1-pve ? #1

Open bigrck64 opened 10 months ago

bigrck64 commented 10 months ago

First, thanks for making this VGA driver version for recent kernel :) My distrib is using kernel Linux version 5.15.126-1-pve, so I compiled it successfully with the following commands:

git clone https://github.com/rhgndf/fl2000_drm git log -n 10 --oneline git reset --hard f25190c make

But when I'm trying to insert it into kernel I got this error

insmod /usr/src/fl2000_drm/fl2000.ko insmod: ERROR: could not insert module /usr/src/fl2000_drm/fl2000.ko: Unknown symbol in module

Do you have any idea how I can fix this ? Thanks !

rhgndf commented 10 months ago

Paste the output of dmesg showing the unknown symbol. You probably need to run modprobe drm_shmem_helper.

bigrck64 commented 10 months ago

Thanks for replying :)

Here is my dmesg logs:

[517327.186836] fl2000: Unknown symbol drm_kms_helper_poll_fini (err -2) [517327.186870] fl2000: Unknown symbol drm_gem_fb_end_cpu_access (err -2) [517327.186888] fl2000: Unknown symbol drm_kms_helper_poll_init (err -2) [517327.186901] fl2000: Unknown symbol drm_fb_helper_lastclose (err -2) [517327.186930] fl2000: Unknown symbol drm_atomic_helper_shutdown (err -2) [517327.186938] fl2000: Unknown symbol drm_gem_simple_kms_cleanup_shadow_fb (err -2) [517327.186984] fl2000: Unknown symbol drm_atomic_helper_commit (err -2) [517327.186991] fl2000: Unknown symbol drm_atomic_helper_check (err -2) [517327.186997] fl2000: Unknown symbol drm_atomic_helper_connector_destroy_state (err -2) [517327.187023] fl2000: Unknown symbol drm_gem_simple_kms_destroy_shadow_plane_state (err -2) [517327.187036] fl2000: Unknown symbol drm_mode_config_helper_suspend (err -2) [517327.187052] fl2000: Unknown symbol drm_atomic_helper_damage_merged (err -2) [517327.187058] fl2000: Unknown symbol drm_gem_simple_kms_prepare_shadow_fb (err -2) [517327.187070] fl2000: Unknown symbol drm_gem_fb_create_with_dirty (err -2) [517327.187121] fl2000: Unknown symbol drm_fbdev_generic_setup (err -2) [517327.187128] fl2000: Unknown symbol drm_atomic_helper_connector_duplicate_state (err -2) [517327.187135] fl2000: Unknown symbol drm_simple_display_pipe_init (err -2) [517327.187156] fl2000: Unknown symbol drm_gem_simple_kms_duplicate_shadow_plane_state (err -2) [517327.187164] fl2000: Unknown symbol drm_gem_fb_begin_cpu_access (err -2) [517327.187170] fl2000: Unknown symbol drm_kms_helper_hotplug_event (err -2) [517327.187184] fl2000: Unknown symbol drm_helper_probe_single_connector_modes (err -2) [517327.187198] fl2000: Unknown symbol drm_gem_simple_kms_reset_shadow_plane (err -2) [517327.187205] fl2000: Unknown symbol drm_atomic_helper_connector_reset (err -2) [517327.187216] fl2000: Unknown symbol drm_mode_config_helper_resume (err -2)

So I try to modprobe drm_shmem_helper

modprobe drm_shmem_helper modprobe: FATAL: Module drm_shmem_helper not found in directory /lib/modules/5.15.126-1-pve

But I don't have such module :)

find /lib/modules/5.15.126-1-pve |grep drm /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/nouveau /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/nouveau/nouveau.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/i2c /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/i2c/tda998x.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/i2c/tda9950.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/i2c/sil164.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/i2c/ch7006.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/gud /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/gud/gud.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/mgag200 /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/mgag200/mgag200.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/drm_vram_helper.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/udl /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/udl/udl.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/bridge /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/bridge/analogix /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/bridge/analogix/analogix_dp.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/bridge/analogix/analogix-anx78xx.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/drm_kms_helper.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/ast /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/ast/ast.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/vkms /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/vkms/vkms.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/i915 /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/i915/gvt /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/i915/gvt/kvmgt.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/i915/i915.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/hyperv /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/hyperv/hyperv_drm.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/scheduler /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/scheduler/gpu-sched.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/amd /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/amd/amdgpu /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/virtio /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/virtio/virtio-gpu.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/ttm /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/ttm/ttm.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/drm.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/xen /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/xen/drm_xen_front.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/vgem /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/vgem/vgem.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/qxl /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/qxl/qxl.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/gma500 /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/gma500/gma500_gfx.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny/repaper.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny/bochs.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny/ili9486.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny/cirrus.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny/st7735r.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny/hx8357d.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny/simpledrm.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny/st7586.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny/ili9225.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny/mi0283qt.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny/ili9341.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/tiny/gm12u320.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/drm_ttm_helper.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/drm_mipi_dbi.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/panel /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/panel/panel-widechips-ws2401.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/radeon /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/radeon/radeon.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/vboxvideo /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/vboxvideo/vboxvideo.ko /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/vmwgfx /lib/modules/5.15.126-1-pve/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko

rhgndf commented 10 months ago

You will need to find the modules associated with the functions and modprobe them. Maybe try drm and drm_kms_helper? I didn't need to do that so I'm not sure which modules are needed.

bigrck64 commented 10 months ago

Good call, I can now insert the module in kernel !

modprobe drm drm_kms_helper insmod /usr/src/fl2000_drm/fl2000.ko

dmesg

[698290.893515] usb 2-4: new SuperSpeed USB device number 4 using xhci_hcd [698290.916595] usb 2-4: config 1 interface 1 altsetting 0 has a duplicate endpoint with address 0x81, skipping [698290.916604] usb 2-4: config 1 interface 1 altsetting 0 has a duplicate endpoint with address 0x1, skipping [698290.916608] usb 2-4: config 1 interface 1 altsetting 1 has a duplicate endpoint with address 0x81, skipping [698290.916612] usb 2-4: config 1 interface 1 altsetting 1 has a duplicate endpoint with address 0x1, skipping [698290.916616] usb 2-4: config 1 interface 1 altsetting 2 has a duplicate endpoint with address 0x81, skipping [698290.916620] usb 2-4: config 1 interface 1 altsetting 2 has a duplicate endpoint with address 0x1, skipping [698290.916624] usb 2-4: config 1 interface 1 altsetting 3 has a duplicate endpoint with address 0x81, skipping [698290.916627] usb 2-4: config 1 interface 1 altsetting 3 has a duplicate endpoint with address 0x1, skipping [698290.916631] usb 2-4: config 1 interface 1 altsetting 4 has a duplicate endpoint with address 0x81, skipping [698290.916634] usb 2-4: config 1 interface 1 altsetting 4 has a duplicate endpoint with address 0x1, skipping [698290.916638] usb 2-4: config 1 interface 1 altsetting 5 has a duplicate endpoint with address 0x81, skipping [698290.916642] usb 2-4: config 1 interface 1 altsetting 5 has a duplicate endpoint with address 0x1, skipping [698290.916646] usb 2-4: config 1 interface 1 altsetting 6 has a duplicate endpoint with address 0x81, skipping [698290.916649] usb 2-4: config 1 interface 1 altsetting 6 has a duplicate endpoint with address 0x1, skipping [698290.916655] usb 2-4: New USB device found, idVendor=1d5c, idProduct=2000, bcdDevice= 2.00 [698290.916659] usb 2-4: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [698290.934188] [drm] Initialized fl2000_drm 1.0.1 20181001 for 2-4 on minor 0 [698290.953179] usb 2-4: [drm] Cannot find any crtc or sizes [698290.953296] usb-storage 2-4:1.3: USB Mass Storage device detected [698290.953370] usb 2-4: [drm] Cannot find any crtc or sizes [698290.953412] scsi host6: usb-storage 2-4:1.3 [698291.961025] scsi 6:0:0:0: Direct-Access A001 PQ: 0 ANSI: 4 [698291.961164] sd 6:0:0:0: Attached scsi generic sg1 type 0 [698291.961350] sd 6:0:0:0: [sdb] 2047 4096-byte logical blocks: (8.38 MB/8.00 MiB) [698291.961471] sd 6:0:0:0: [sdb] Write Protect is off [698291.961474] sd 6:0:0:0: [sdb] Mode Sense: 03 00 00 00 [698291.961589] sd 6:0:0:0: [sdb] No Caching mode page found [698291.961592] sd 6:0:0:0: [sdb] Assuming drive cache: write through [698291.964499] sdb: [698291.964955] sd 6:0:0:0: [sdb] Attached SCSI disk

bigrck64 commented 10 months ago

I got another question :) Now the driver seems to be ok, is there a way to display the linux console on VGA output ?

rhgndf commented 10 months ago

Not sure what it takes to get this working though. There is fbdev code inside already.

rhgndf commented 9 months ago

I think I might have found a solution for the virtual console issue. Might want to look into the con2fbmap command. From what I see, the syntax is con2fbmap 1 1 to switch to the second framebuffer, which is likely the fl2000, and con2fbmap 1 0 to switch back.

bigrck64 commented 9 months ago

Thank you for finding this ! So I installed the con2fbmap binary with the debian package "apt-get install fbset"

But it's not working here:

root@pdm999:/usr/src/fl2000_drm# con2fbmap 1 1 open /dev/fb0: No such file or directory

In fact I don't have any framebuffer active :(

l /dev/fb ls: cannot access '/dev/fb': No such file or directory

There is something wrong with the fl2000 kernel module, it doesn't export his framebuffer into /dev/fb* for me Here is my dmesg:

[ 717.775504] [drm] Initialized fl2000_drm 1.0.1 20181001 for 4-2 on minor 0 [ 717.793889] usb 4-2: [drm] Cannot find any crtc or sizes [ 717.793923] usbcore: registered new interface driver fl2000_usb [ 717.794119] usb 4-2: [drm] Cannot find any crtc or sizes [ 717.945088] usb 4-2: is sink event 1 [ 717.945163] usb 4-2: interrupt [ 718.344943] Console: switching to colour frame buffer device 240x67 [ 718.361494] xhci_hcd 0000:2c:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0011 address=0xfe000000 flags=0x0000] [ 718.361498] xhci_hcd 0000:2c:00.3: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0011 address=0xfe001000 flags=0x0000] [ 718.364499] usb 4-2: [drm] fb0: fl2000_drmdrmfb frame buffer device [ 718.465537] ------------[ cut here ]------------ [ 718.465538] [CRTC:33:crtc-0] vblank wait timed out [ 718.465547] WARNING: CPU: 3 PID: 7146 at drivers/gpu/drm/drm_atomic_helper.c:1533 drm_atomic_helper_wait_for_vblanks.part.0+0x282/0x290 [drm_kms_helper] [ 718.465563] Modules linked in: fl2000(O) drm_kms_helper cec rc_core fb_sys_fops syscopyarea sysfillrect sysimgblt uas usb_storage nfsv3 nfs_acl rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs lockd grace fscache netfs ebtable_filter ebtables ip_set ip6table_raw iptable_raw ip6table_filter ip6_tables iptable_filter bpfilter cls_u32 sch_htb nf_tables bonding tls softdog nfnetlink_log nfnetlink ppdev intel_rapl_msr intel_rapl_common edac_mce_amd kvm_amd kvm irqbypass crct10dif_pclmul ghash_clmulni_intel aesni_intel crypto_simd cryptd input_leds rapl wmi_bmof efi_pstore parport_pc pcspkr ccp k10temp parport mac_hid zfs(PO) zunicode(PO) zzstd(O) zlua(O) zavl(PO) icp(PO) zcommon(PO) znvpair(PO) spl(O) vhost_net vhost vhost_iotlb tap ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi nct6775 hwmon_vid drm sunrpc ip_tables x_tables autofs4 btrfs blake2b_generic xor zstd_compress raid6_pq simplefb hid_generic usbkbd usbmouse dm_thin_pool dm_persistent_data [ 718.465602] dm_bio_prison dm_bufio libcrc32c usbhid hid xhci_pci crc32_pclmul xhci_pci_renesas r8169 i2c_piix4 realtek ahci xhci_hcd libahci wmi gpio_amdpt gpio_generic [ 718.465609] CPU: 3 PID: 7146 Comm: kworker/3:0 Tainted: P O 5.15.131-2-pve #1 [ 718.465611] Hardware name: Micro-Star International Co., Ltd. MS-7D95/PRO B550M-P GEN3 (MS-7D95), BIOS 1.50 06/27/2023 [ 718.465612] Workqueue: events drm_fb_helper_damage_work [drm_kms_helper] [ 718.465622] RIP: 0010:drm_atomic_helper_wait_for_vblanks.part.0+0x282/0x290 [drm_kms_helper] [ 718.465631] Code: 00 00 48 83 c7 08 e8 6d 24 28 c4 45 85 ff 0f 85 c6 fe ff ff 49 8b 54 24 20 41 8b 74 24 60 48 c7 c7 f8 98 2b c1 e8 4d c3 e4 c4 <0f> 0b e9 a9 fe ff ff e8 92 3b ef c4 66 90 0f 1f 44 00 00 f6 46 10 [ 718.465632] RSP: 0018:ffffb123e468bc10 EFLAGS: 00010282 [ 718.465633] RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff92369eae0588 [ 718.465634] RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffff92369eae0580 [ 718.465635] RBP: ffffb123e468bc88 R08: 0000000000000026 R09: 0000000088634118 [ 718.465636] R10: ffffffffffffffff R11: 0000000000000001 R12: ffff922f14976638 [ 718.465636] R13: ffff9227c13ad900 R14: 0000000000000000 R15: 0000000000000000 [ 718.465637] FS: 0000000000000000(0000) GS:ffff92369eac0000(0000) knlGS:0000000000000000 [ 718.465638] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 718.465639] CR2: 00000048d77cf800 CR3: 000000010cd90000 CR4: 0000000000750ee0 [ 718.465640] PKRU: 55555554 [ 718.465641] Call Trace: [ 718.465642] [ 718.465643] ? show_regs.cold+0x1a/0x1f [ 718.465647] ? drm_atomic_helper_wait_for_vblanks.part.0+0x282/0x290 [drm_kms_helper] [ 718.465655] ? __warn+0x8c/0x100 [ 718.465657] ? drm_atomic_helper_wait_for_vblanks.part.0+0x282/0x290 [drm_kms_helper] [ 718.465665] ? report_bug+0xa4/0xd0 [ 718.465669] ? handle_bug+0x39/0x90 [ 718.465670] ? exc_invalid_op+0x19/0x70 [ 718.465672] ? asm_exc_invalid_op+0x1b/0x20 [ 718.465674] ? drm_atomic_helper_wait_for_vblanks.part.0+0x282/0x290 [drm_kms_helper] [ 718.465682] ? wait_woken+0x70/0x70 [ 718.465685] drm_atomic_helper_commit_tail+0x75/0x90 [drm_kms_helper] [ 718.465693] commit_tail+0x10c/0x180 [drm_kms_helper] [ 718.465701] ? drm_atomic_helper_swap_state+0x20f/0x370 [drm_kms_helper] [ 718.465709] drm_atomic_helper_commit+0x12b/0x150 [drm_kms_helper] [ 718.465718] drm_atomic_commit+0x4a/0x60 [drm] [ 718.465735] drm_atomic_helper_dirtyfb+0x199/0x270 [drm_kms_helper] [ 718.465744] drm_fb_helper_damage_work+0x1aa/0x340 [drm_kms_helper] [ 718.465753] process_one_work+0x22b/0x3d0 [ 718.465755] worker_thread+0x53/0x420 [ 718.465757] ? process_one_work+0x3d0/0x3d0 [ 718.465758] kthread+0x12a/0x150 [ 718.465760] ? set_kthread_struct+0x50/0x50 [ 718.465762] ret_from_fork+0x22/0x30 [ 718.465765] [ 718.465765] ---[ end trace a707933c2fd4d3bc ]--- [ 728.513507] [drm:drm_crtc_commit_wait [drm]] ERROR flip_done timed out [ 728.513535] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] ERROR [CRTC:33:crtc-0] commit wait timed out root@pdm999:/usr/src/fl2000_drm# l /dev/fb ls: cannot access '/dev/fb': No such file or directory

Question: Do you have on your side one FrameBuffer available in /dev with this kernel module ? Thanks :)

bigrck64 commented 9 months ago

Maybe linux change something with /dev/fb in newer kernel.

With the same hardware + one real graphic nvidia pci card:

EDIT - OK bad idea:

Assuming some form of display is attached, then the kernel DRM subsystem will create a framebuffer. No connected displays, not framebuffer device. I try to make /dev/fb0 displayed again by adding CONFIG_DRM_KMS_FB_HELPER=y into /boot/config-5.15.131-1-pve, but it's no more working.

Anyway, the /deb/fb0 should spawn when connecting fl2000 with vga adapter, and unfortunatly it's not working here. (see preview dmes)

rhgndf commented 9 months ago

AMD-Vi IO_PAGE_FAULT

See #2. I also have an AMD system but I couldn't reproduce the issue so I'm not sure what's causing the kernel error.

CONFIG_DRM_KMS_FB_HELPER=y

You will need to recompile the kernel for that. I have /dev/fb* on linux kernel 6.6. You could also try kmscon for the console output, which probably works without recompilation.