hat zufällig irgendjemand das eHD Kernel Modul (hdshm3) im stillen Kämmerchen auf 64-bit portiert? Nur eine Frage, bevor ich's nochmal probiere (hatte mal angefangen...such immer noch die Patches von damals...)
[reelbox] [eHD] Kernel Modul auf 64-bit portiert + reelbox-plugin funktionsfähig
-
-
I did compilation without errors, but the module did not work, it seems to crash.
-
at least I'm now on the similar level, module compiles (5.10.13 64-bit) and at least started to be loaded...will investigate further by enabling bunch of debug lines...
-
the kernel module is now supporting 64-bit, get compiled and loaded (and also can be removed again...fixed a bug here) - many debug lines are currently added...
Potentially, still some bugs related to the shared structures are inside...but can't futher test currently, because "hdboot" is not detecting proper U-Boot of eHD:
Code
Alles anzeigen# hdboot -r -i linux.bin Decypher PCI BAR1: 90000000 pcimap: called with offset=90000000 pcimap: result mmap base=0x7fb83fc26000 main: map bar1=90000000 to pci_base=0x7fb83fc26000 wait_for_pciboot: called wait_for_pciboot: pci_base=0x7fb83fc26000 ffffffff Warm Reset upload_start: called with pci_base=0x7fb83fc26000 wait_for_pciboot: called wait_for_pciboot: pci_base=0x7fb83fc26000 ffffffff wait_for_pciboot: pci_base=0x7fb83fc26000 ffffffff ... Timeout: U-Boot not ready for PCI boot
Looks like something is broken with the memory mapping of "BAR1" and the trigger of the reset and the detection of the magic pattern of a successful U-Boot is therefore not successful:
Code*(volatile int*)(pci_base+CCB_REG_CCBCTRL)|=1; *(volatile int*)(pci_base+CCB_REG_CCBCTRL)&=~1; // warm reset set's SCRATCH_REG to 0 *(volatile int*)(pci_base+SEM_3_SCRATCH_REG)=0; // look for pattern, but result is ffffffff (should be at least 0 until pattern occurs) if (*(volatile int*)(pci_base+SEM_3_SCRATCH_REG)==0xb001abcd)
Current code is in a branch available:
https://github.com/pbiering/Re…/src-reelvdr/utils/hdshm3
Potentially one can support me in fixing the memory mapping in hdboot.
BAR1 value is matching "lspci" output:
Code03:00.0 Multimedia controller: Micronas USA, Inc. Device 8100 Subsystem: Micronas USA, Inc. Device 8100 Flags: medium devsel, IRQ 11 Memory at 98000000 (32-bit, non-prefetchable) [disabled] [size=4K] Memory at 90000000 (32-bit, non-prefetchable) [disabled] [size=128M] Capabilities: [40] Power Management version 2
-
I'll try this weekend.
-
some update: after creating a failsafe check in the module code it turned out that the PCI memory was not accessable at all. After overtaking part of the code from a reference implementation, which enables the PCI device proper, the shared memory inside the module is working...but now "hdboot" can't access it anymore
CodeDecypher PCI BAR1: 90000000 pcimap: called with offset=90000000 Failed to mmap PCI (Operation not permitted) main: pcimap returns pci_base=NULL
branch updated, will investigate further, but help is very welcome
-
success after rebooting kernel with "iomem=relaxed" -> hdboot executed proper
Code
Alles anzeigenDecypher PCI BAR1: 90000000 pcimap: called with offset=90000000 pcimap: result mmap base=0x7f382d359000 main: map bar1=90000000 to pci_base=0x7f382d359000 wait_for_pciboot: called wait_for_pciboot: pci_base=0x7f382d359000 b001abcd Warm Reset upload_start: called with pci_base=0x7f382d359000 wait_for_pciboot: called wait_for_pciboot: pci_base=0x7f382d359000 0 wait_for_pciboot: pci_base=0x7f382d359000 0 wait_for_pciboot: pci_base=0x7f382d359000 0 Uploading linux.bin, Length 6581368, virtual 0x7f382f35a000, MIPS 0x2001000 Detected kernel entry 8027f000 memcpy done Start CPU#0 at 8027f000 Set MTRR @ ffffffff90000000
eHD LED turned green - will continue...
-
futher progress, shmnetd successfully running (add also support to reelbox-control.sh), login to eHD successful:
CodeBusyBox v1.2.2 (2013.11.01-14:23+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. Welcome to extensionHD This image is based on SDK V1.7.2. It was built @ Пнд Май 22 00:17:03 VLAT 2017 on ua0lnjehd.
Next step is getting tftp up and running to serve "/hdplayer/hdplayer"
-
Any idea where the MIPS SDK can be pulled? Where can I also find the framework to create an updated eHD boot image?
-
original "hdplayer" is now loaded via tftp, hdcontrol tools are working, only
"hdtsplay" is still not showing anything.Current status: https://github.com/pbiering/Re…etup-ReelBox-AVRII-64-bit
-
Can't compile, ubuntu 18.04 + hwe 5.4.0-65
1.
Codemake -f ./scripts/Makefile.build obj=scripts/basic rm -f .tmp_quiet_recordmcount make -f ./scripts/Makefile.build obj=arch/x86/tools relocs make[3]: *** No rule to make target 'arch/x86/tools/relocs_32.c', needed by 'arch/x86/tools/relocs_32.o'. Stop. arch/x86/Makefile:232: recipe for target 'archscripts' failed make[2]: *** [archscripts] Error 2
fixed by replacement
$(MAKE) V=1 -C $(KERNELPATH) SUBDIRDS=$(shell pwd) modules
on
$(MAKE) V=1 -C $(KERNELPATH) M=$(shell pwd) modules
in /utils/hdshm3/x86/driver/Makefile
2.
Code
Alles anzeigenIn file included from ./include/linux/module.h:18:0, from /usr/src/ReelBoxNG/src-reelvdr/utils/hdshm3/x86/driver/hdshm.c:26: /usr/src/ReelBoxNG/src-reelvdr/utils/hdshm3/x86/driver/hd_fb.h: At top level: ./include/linux/moduleparam.h:147:27: error: expected ')' before '&' token param_check_##type(name, &(value)); \ ^ ./include/linux/moduleparam.h:127:2: note: in expansion of macro 'module_param_named' module_param_named(name, name, type, perm) ^~~~~~~~~~~~~~~~~~ /usr/src/ReelBoxNG/src-reelvdr/utils/hdshm3/x86/driver/hd_fb.h:27:1: note: in expansion of macro 'module_param' module_param(hd_dbg_mask, hexint, 0); ^~~~~~~~~~~~ ./include/linux/moduleparam.h:148:25: error: 'param_ops_hexint' undeclared here (not in a function); did you mean 'param_ops_bint'? module_param_cb(name, ¶m_ops_##type, &value, perm); \ ^ ./include/linux/moduleparam.h:225:39: note: in definition of macro '__module_param_call' = { __param_str_##name, THIS_MODULE, ops, \ ^~~ ./include/linux/moduleparam.h:148:2: note: in expansion of macro 'module_param_cb' module_param_cb(name, ¶m_ops_##type, &value, perm); \ ^~~~~~~~~~~~~~~ ./include/linux/moduleparam.h:127:2: note: in expansion of macro 'module_param_named' module_param_named(name, name, type, perm) ^~~~~~~~~~~~~~~~~~ /usr/src/ReelBoxNG/src-reelvdr/utils/hdshm3/x86/driver/hd_fb.h:27:1: note: in expansion of macro 'module_param' module_param(hd_dbg_mask, hexint, 0); ^~~~~~~~~~~~ scripts/Makefile.build:273: recipe for target '/usr/src/ReelBoxNG/src-reelvdr/utils/hdshm3/x86/driver/hdshm.o' failed make[3]: *** [/usr/src/ReelBoxNG/src-reelvdr/utils/hdshm3/x86/driver/hdshm.o] Error 1 Makefile:1757: recipe for target '/usr/src/ReelBoxNG/src-reelvdr/utils/hdshm3/x86/driver' failed make[2]: *** [/usr/src/ReelBoxNG/src-reelvdr/utils/hdshm3/x86/driver] Error 2 make[2]: Leaving directory '/usr/src/linux-headers-5.4.0-65-generic' Makefile:37: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/usr/src/ReelBoxNG/src-reelvdr/utils/hdshm3/x86/driver' Makefile:47: recipe for target 'x86' failed make: *** [x86] Error 1
I haven't found how to fix it yet.
-
Makefile issue I have to look into separatly, but the other problem is caused by "hexint" module parameter, looks like at least your kernel header files have no support for it....
Branch update with a workaround, please try
Diff
Alles anzeigen--- a/src-reelvdr/utils/hdshm3/x86/driver/hd_fb.h +++ b/src-reelvdr/utils/hdshm3/x86/driver/hd_fb.h @@ -24,7 +24,11 @@ static int has_fb = 0; module_param(has_fb, int, 0); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)) // TODO: check when "hexint" was introduced module_param(hd_dbg_mask, hexint, 0); +#else +module_param(hd_dbg_mask, int, 0); +#endif struct hde_fb { struct fb_info fb_info;
-
just a new update, got reelbox3 plugin compiled, starts but crashes after some seconds...have to debug further but assume all fixable.
-
this will be another breakthrough. Great job.
Watching with interest.
-
I made it....I have live TV withsound and can replay recordings - only one strange issue is on with still pictures during setting/shifting marks -> picture will turn into black...will publish adjusted sources next days have to check how organize the references proper.
-
I have works too.
vdr only, without xinelib yet.
vdr-2.5.1.
-
Do you know that the decoder from Micronas (firmware) is made on ffmpeg?
-
Do you know that the decoder from Micronas (firmware) is made on ffmpeg?
don't know.
here btw. the new repository with a readme file
https://github.com/pbiering/vdr-plugin-reelbox
the "utils" tree is kept outside, will push missing files next tohttps://github.com/pbiering/Re…D-64bit/src-reelvdr/utils
-> wait 1 day....
-
-
thank you, applied.
I'm done, with new mainboard I have now 2 options for output device
- reelbox plugin +eHD
- eHD kernel driver is buildable with akmods
- magic scripts got support
- related systemd files are also created
- softhddevice plugin
Major TODOs now (too much for me)
- improve OSD resolution support (currently it's SD-only and even LCARS is not really looking nice)
- fix incompatibility with skindesigner (potentially depending on OSD resolution)
- fix 1080p output problem (except hardware is not supporting at all)
Minor TODOs (will be done next)
- add debug mask option to reelbox plugin to be passed to eHD related code
- create RPM for vdr-plugin-reelbox
- add udev file for eHD kernel module package
- add some instructions to Wiki...
- test with old mainboard in untweaked AVR II
- reelbox plugin +eHD
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!