d0023r / linux_kernel_15khz Goto Github PK
View Code? Open in Web Editor NEW15kHz video support with additional features for Linux
License: GNU General Public License v3.0
15kHz video support with additional features for Linux
License: GNU General Public License v3.0
Hello,
it's more a question than an issue.
My (SCART) CRT TV is connected to PC with VGA and I can boot a linux-kernel-15 khz (from groovyarcade) with parameter video=VGA-1:640x480ieS
. I tried with a cable that converts RGBHV from VGA into RGBS (composite sync) for the SCART : it works perfectly.
But now I need to setup this with a "normal" cable, with "composite sync" forced by the cable.
Ideally, I would like to add it a kernel parameter at boot time. It seems supported by vanilla kernel, only if you have a Matrox device : https://www.kernel.org/doc/html/latest/fb/matroxfb.html
But maybe there is more universal way or your patch allows it for any device ?
If it's not possible at boot time, I think I can at least add the keyword "composite" in Modeline definition for xrandr or xorg.conf.
So I guess to match resolution 640x480iSe I just have to tweak the output of
$ cvt 640 480 60 Modeline "640x480_60.00" 23.75 640 664 720 800 480 483 487 500 -hsync +vsync
by adding the keywords composite and interlace: Modeline "640x480_60.00" 23.75 640 664 720 800 480 483 487 500 -hsync +vsync composite interlace
Thanks for your help.
I'm trying to get the scanout position in Linux for a personal project. Is the code in linux_15khz_scanoutpos.patch
the easiest way to get that, or do you know if there are other userspace methods for acquiring this information?
I patched a debian stretch with 15khz patch on https://github.com/D0023R/linux_kernel_15khz in kernel 5.4 and 5.6. My hardware is intel i3-8100 with integrated i915 graphics card and Asrock H310CM-HDV/M.2 main board.
I builded the cable from VGA to CGA arcade monitor with picture in attachment but I did not obtain an image.I edited the grub boot options with:
kernel 5.4 -> vga=785 video=DP-1:640x480ec
kernel 5.6 -> vga=785 video=DP-1:640x480ieS
and generate the xorg modeline with:
/usr/local/bin/lrmc 640 480 60 -cga -i
# 640x480x60.00 @ 15.750kHz
Modeline "640x480x30.00" 12.096000 640 656 720 768 480 488 494 525 -HSync -VSync interlace
but after boot I connected in ssh and obtain in dmes with output below and without
[ 2.976458] [drm] Found a low dotclock mode for 640x480 (interlace: 1)
[ 2.976460] ------------[ cut here ]------------
[ 2.976464] WARN_ON(len <= 0)
[ 2.976521] WARNING: CPU: 3 PID: 8 at drivers/gpu/drm/i915/display/intel_dp.c:1839 intel_dp_max_link_rate+0x5a/0x70 [i915]
[ 2.976523] Modules linked in: intel_rapl_msr intel_rapl_common snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic x86_pkg_temp_thermal ledtrig_audio intel_powerclamp msr coretemp kvm_intel i915 kvm irqbypass crc32_pclmul nls_ascii ghash_clmulni_intel nls_cp437 drm_kms_helper vfat aesni_intel fat cec snd_hda_intel libaes crypto_simd snd_intel_dspcfg snd_hda_codec drm cryptd snd_hda_core glue_helper snd_hwdep snd_pcm intel_cstate iTCO_wdt snd_timer intel_uncore i2c_algo_bit evdev mei_me serio_raw iTCO_vendor_support efi_pstore snd intel_rapl_perf mei pcspkr efivars soundcore watchdog ie31200_edac acpi_pad button parport_pc ppdev lp parport efivarfs ip_tables x_tables autofs4 ext4 hid_generic crc16 mbcache usbhid jbd2 hid crc32c_generic xhci_pci nvme crc32c_intel xhci_hcd psmouse nvme_core t10_pi crc_t10dif e1000e crct10dif_generic usbcore crct10dif_pclmul crct10dif_common ptp i2c_i801 pps_core usb_common video
[ 2.976547] CPU: 3 PID: 8 Comm: kworker/u8:0 Not tainted 5.6.14-15khzpatch #1
[ 2.976548] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./H310CM-HDV/M.2, BIOS P4.20 05/14/2019
[ 2.976552] Workqueue: events_unbound async_run_entry_fn
[ 2.976589] RIP: 0010:intel_dp_max_link_rate+0x5a/0x70 [i915]
[ 2.976591] Code: 00 eb 10 8b 32 89 c1 48 83 ea 04 83 e8 01 41 39 f0 7d 1f 85 c0 75 ec 48 c7 c6 3b d4 a5 c0 48 c7 c7 a8 d0 a5 c0 e8 01 3f ad e9 <0f> 0b b8 d0 78 02 00 c3 83 e9 01 48 63 c9 8b 84 8f 84 00 00 00 c3
[ 2.976593] RSP: 0018:ffffaf53c008fbd0 EFLAGS: 00010286
[ 2.976595] RAX: 0000000000000000 RBX: ffff8a04212ef000 RCX: 0000000000000000
[ 2.976596] RDX: 0000000000000011 RSI: ffffffffaba3e391 RDI: 0000000000000246
[ 2.976597] RBP: ffff8a0421397f00 R08: ffffffffaba3e380 R09: 000000000002c480
[ 2.976598] R10: 0000000e058f4a34 R11: 0000000000000008 R12: ffff8a04212f0000
[ 2.976599] R13: 00000000000a4cb8 R14: ffff8a04212ef120 R15: 0000000000003330
[ 2.976601] FS: 0000000000000000(0000) GS:ffff8a0427d80000(0000) knlGS:0000000000000000
[ 2.976602] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2.976603] CR2: 000055d077ac3008 CR3: 00000002620a4002 CR4: 00000000003606e0
[ 2.976605] Call Trace:
[ 2.976641] intel_dp_mode_valid+0xa5/0x270 [i915]
[ 2.976650] drm_helper_probe_single_connector_modes+0x4e8/0x7b0 [drm_kms_helper]
[ 2.976669] drm_client_modeset_probe+0x275/0x1370 [drm]
[ 2.976673] ? __switch_to_asm+0x34/0x70
[ 2.976674] ? __switch_to_asm+0x40/0x70
[ 2.976676] ? __switch_to_asm+0x34/0x70
[ 2.976677] ? __switch_to_asm+0x40/0x70
[ 2.976679] ? __switch_to_asm+0x34/0x70
[ 2.976680] ? __switch_to_asm+0x40/0x70
[ 2.976682] ? __switch_to_asm+0x34/0x70
[ 2.976683] ? __switch_to_asm+0x40/0x70
[ 2.976685] ? __switch_to_asm+0x34/0x70
[ 2.976686] ? __switch_to_asm+0x40/0x70
[ 2.976688] ? __switch_to_asm+0x34/0x70
[ 2.976694] __drm_fb_helper_initial_config_and_unlock+0x44/0x490 [drm_kms_helper]
[ 2.976697] ? __switch_to_xtra+0x125/0x4d0
[ 2.976698] ? __switch_to_asm+0x34/0x70
[ 2.976733] intel_fbdev_initial_config+0x14/0x30 [i915]
[ 2.976736] async_run_entry_fn+0x39/0x160
[ 2.976738] process_one_work+0x1ad/0x370
[ 2.976740] worker_thread+0x30/0x390
[ 2.976741] ? create_worker+0x1a0/0x1a0
[ 2.976743] kthread+0x112/0x130
[ 2.976744] ? kthread_park+0x80/0x80
[ 2.976746] ret_from_fork+0x35/0x40
[ 2.976748] ---[ end trace 4ee384bcf4edecc1 ]---
from remote ssh session with xrandr i saw these output:
$ xrandr -q
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
DP1 connected primary (normal left inverted right x axis y axis)
1368x768 59.88
1360x768 59.80
1280x800 59.81
1152x864 60.00
1280x720 59.86
1024x768 60.00
1024x576 59.90
960x540 59.63
800x600 60.32
640x480 59.94
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
but:
$ xrandr --output DP1 --mode 640x480
xrandr: Configure crtc 0 failed
I generated the modeline for xorg.conf with switchres and forced with xrandr or configuration but always "xrandr: Configure crtc 0 failed":
$ switchres 640 480 60 --edid
SwitchRes: Monitor type not specified. Using "generic_15"
ModeLine "640x480x60.00" 13.004160 640 664 728 832 480 482 488 521 -HSync -VSync interlace
$ xrandr --newmode "TEST" 13.004160 640 664 728 832 480 482 488 521 -HSync -VSync interlace
$ xrandr --addmode DP1 "TEST"
$ xrandr --output DP1 --mode "TEST"
xrandr: Configure crtc 0 failed
I tried to use an edid from "https://github.com/Ansa89/linux-15khz-patch/tree/master/edid" but xrand didn't find any video connection and always "Cannot find any crtc or sizes":
GRUB_CMDLINE_LINUX_DEFAULT="video=DP-1:e drm.edid_firmware=DP-1:edid/edid_arcade15.bin"
$ xrandr -q
xrandr: Output DP1 is not disconnected but has no modes
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
DP1 connected primary (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
[ 3.488208] i915 0000:00:02.0: [drm] Cannot find any crtc or sizes
[ 5.489351] platform DP-1: firmware: direct-loading firmware edid/edid_arcade15.bin
[ 5.489410] [drm] Got external EDID base block and 0 extensions from "edid/edid_arcade15.bin" for connector "DP-1"
[ 5.756359] ------------[ cut here ]------------
[ 5.756360] WARN_ON(len <= 0)
[ 5.756407] WARNING: CPU: 3 PID: 491 at drivers/gpu/drm/i915/display/intel_dp.c:1839 intel_dp_max_link_rate+0x5a/0x70 [i915]
[ 5.756408] Modules linked in: intel_rapl_msr intel_rapl_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_hda_codec_hdmi kvm_intel kvm snd_hda_codec_realtek irqbypass snd_hda_codec_generic crc32_pclmul ledtrig_audio msr ghash_clmulni_intel snd_hda_intel aesni_intel snd_intel_dspcfg nls_ascii libaes nls_cp437 snd_hda_codec crypto_simd cryptd i915 snd_hda_core vfat glue_helper snd_hwdep fat snd_pcm intel_cstate efi_pstore intel_uncore snd_timer drm_kms_helper snd iTCO_wdt cec evdev iTCO_vendor_support serio_raw efivars pcspkr watchdog intel_rapl_perf soundcore drm mei_me mei i2c_algo_bit ie31200_edac acpi_pad button parport_pc ppdev lp parport efivarfs ip_tables x_tables autofs4 hid_generic ext4 usbhid hid crc16 mbcache jbd2 crc32c_generic xhci_pci xhci_hcd crc32c_intel nvme e1000e psmouse nvme_core usbcore t10_pi ptp crc_t10dif pps_core crct10dif_generic i2c_i801 crct10dif_pclmul crct10dif_common usb_common video
[ 5.756427] CPU: 3 PID: 491 Comm: Xorg Tainted: G W 5.6.14-15khzpatch #1
[ 5.756428] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./H310CM-HDV/M.2, BIOS P4.20 05/14/2019
[ 5.756455] RIP: 0010:intel_dp_max_link_rate+0x5a/0x70 [i915]
[ 5.756456] Code: 00 eb 10 8b 32 89 c1 48 83 ea 04 83 e8 01 41 39 f0 7d 1f 85 c0 75 ec 48 c7 c6 3b 34 bc c0 48 c7 c7 a8 30 bc c0 e8 01 df b6 c8 <0f> 0b b8 d0 78 02 00 c3 83 e9 01 48 63 c9 8b 84 8f 84 00 00 00 c3
[ 5.756457] RSP: 0018:ffffae3e4038fc08 EFLAGS: 00010286
[ 5.756458] RAX: 0000000000000000 RBX: ffff953623a23000 RCX: 0000000000000000
[ 5.756459] RDX: 0000000000000011 RSI: ffffffff8ac3e391 RDI: 0000000000000246
[ 5.756460] RBP: ffff953624158900 R08: ffffffff8ac3e380 R09: 000000000002c480
[ 5.756460] R10: 0000001055f2ecc6 R11: 00000000000001eb R12: ffff953626540000
[ 5.756461] R13: 00000000000a4cb8 R14: ffff953623a23120 R15: 00000000000032c8
[ 5.756462] FS: 00007f9d04200f00(0000) GS:ffff953627d80000(0000) knlGS:0000000000000000
[ 5.756463] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 5.756463] CR2: 000055dd67c13910 CR3: 0000000263bbe006 CR4: 00000000003606e0
[ 5.756464] Call Trace:
[ 5.756492] intel_dp_mode_valid+0xa5/0x270 [i915]
[ 5.756500] drm_helper_probe_single_connector_modes+0x4e8/0x7b0 [drm_kms_helper]
[ 5.756518] drm_mode_getconnector+0x3de/0x400 [drm]
[ 5.756533] ? drm_connector_property_set_ioctl+0x60/0x60 [drm]
[ 5.756542] drm_ioctl_kernel+0xac/0xf0 [drm]
[ 5.756552] drm_ioctl+0x201/0x3a0 [drm]
[ 5.756565] ? drm_connector_property_set_ioctl+0x60/0x60 [drm]
[ 5.756569] ksys_ioctl+0x86/0xc0
[ 5.756571] __x64_sys_ioctl+0x16/0x20
[ 5.756573] do_syscall_64+0x52/0x170
[ 5.756575] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 5.756577] RIP: 0033:0x7f9d04930427
[ 5.756578] Code: 00 00 90 48 8b 05 69 aa 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 39 aa 0c 00 f7 d8 64 89 01 48
[ 5.756579] RSP: 002b:00007fffeb9cb7d8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[ 5.756580] RAX: ffffffffffffffda RBX: 000055dd67c13980 RCX: 00007f9d04930427
[ 5.756581] RDX: 00007fffeb9cb860 RSI: 00000000c05064a7 RDI: 000000000000000d
[ 5.756581] RBP: 00007fffeb9cb860 R08: 00007fffeb9e4090 R09: 0000000000000000
[ 5.756582] R10: 0000000000000a8a R11: 0000000000000246 R12: 00000000c05064a7
[ 5.756582] R13: 000000000000000d R14: 000000000000000b R15: 000055dd67c13880
[ 5.756584] ---[ end trace 924cf694da40839c ]---
I tried one live linux with "GroovyArcade live-CD New Release 2020" option in line 16 ([DP-1 15khz]) but without output!! I heard the sound change and I watched keyboard blinking
Only a question...but the integrated i915 graphics card (i3 processor 8th serires) is supported with 15khz kernel patch?
AMD PRO A6-8500B CPU with integrated Radeon R5 graphics. Codename "Carrizo", based on this dmesg
line:
[ 8.807969] [drm] initializing kernel modesetting (CARRIZO 0x1002:0x9874 0x103C:0x805B 0xC5).
I have a VGA cable going from the computer to this VGA->component converter. From there I've been alternating testing through a RetroTINK 2X Pro into a modern flat screen monitor via HDMI, and also a real CRT television with component inputs.
Arch Linux using kernel 6.2x. All provided patches have been applied to the kernel (01 through 05).
I'm using the AMDGPU driver, which I'm pretty certain is correct based on this table ("Carrizo" == GCN 3) and the Arch documentation (GCN 3 and later == AMDGPU), however I've also tried the "ATI" driver, as well as neither driver, with the same results.
I'm able to boot into 240p through KMS, however when running X it fails to detect any outputs and defaults to 1024x768, which results in no output. Additionally, after exiting X it seems that DRM no longer detects the VGA output at all, although I still have video like usual.
Before starting X:
[cameron@crt ~]$ lspci -v | grep -A1 -e VGA -e 3D
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Wani [Radeon R5/R6/R7 Graphics] (rev c5) (prog-if 00 VGA controller])
DeviceName: Onboard IGD
[cameron@crt ~]$ cat /sys/class/drm/card0-DP-3/{enabled,status,modes}
enabled
connected
640x480
320x240
Attempt to start X. Relevant lines excerpted from full attached Xorg log:
[ 192.028] (II) AMDGPU(0): Output DisplayPort-0 has no monitor section
[ 192.028] (II) AMDGPU(0): Output DisplayPort-1 has no monitor section
[ 192.028] (II) AMDGPU(0): Output DisplayPort-2 has no monitor section
[ 192.028] (II) AMDGPU(0): EDID for output DisplayPort-0
[ 192.028] (II) AMDGPU(0): EDID for output DisplayPort-1
[ 192.028] (II) AMDGPU(0): EDID for output DisplayPort-2
[ 192.028] (II) AMDGPU(0): Output DisplayPort-0 disconnected
[ 192.028] (II) AMDGPU(0): Output DisplayPort-1 disconnected
[ 192.028] (II) AMDGPU(0): Output DisplayPort-2 disconnected
[ 192.028] (WW) AMDGPU(0): No outputs definitely connected, trying again...
[ 192.028] (II) AMDGPU(0): Output DisplayPort-0 disconnected
[ 192.029] (II) AMDGPU(0): Output DisplayPort-1 disconnected
[ 192.029] (II) AMDGPU(0): Output DisplayPort-2 disconnected
[ 192.029] (WW) AMDGPU(0): Unable to find connected outputs - setting 1024x768 initial framebuffer
I am certain that DisplayPort-2
is the VGA output since I tested connecting the VGA cable directly to my monitor and saw the relevant successful Xorg logs.
I'm going xorg.conf
-less for this. I've also tried writing custom xorg.conf
but it made no difference: it still saw all outputs as being disconnected.
Even though I couldn't see anything I was able to execute xrandr
blind in xterm. Here's the output:
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 16384 x 16384
DisplayPort-0 disconnected primary (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
DisplayPort-2 disconnected (normal left inverted right x axis y axis)
After exiting X:
[cameron@crt ~]$ cat /sys/class/drm/card0-DP-3/{enabled,status,modes}
enabled
disconnected
It no longer seems to think I have a display connected, but I still have 240p video output.
Thanks for taking the time to read all this, and thanks so much for writing and maintaining these patches. It's vital and important work for supporting a small and dedicated enthusiast community; work that takes a rare skill set, and I greatly appreciate it.
Hello !
Thank you for continue working on the 15kHz patchs ^^
I've successfully compile somes kernels, and it's work when it is enable in the selection of the desired video mode during the boot process (boot loader grub), but in the unique resolution of "640x480", in console command line mode (320x240 and 800x600 not working).
…
Here is my compile routine :
################################
# compilation de kernel 15 KHz #
################################
1 — installer debian 10 Buster :
——————————————————————————
apt install build-essential bc kmod cpio flex libncurses5-dev dpkg-dev debconf-utils debhelper fakeroot zlib1g-dev rsync
2 — Préparatifs :
———————————
Le récupérer les sources et les extraire dans un dossier de travail : /home/user/kernel5.0
mkdir /home/user/kernel5.0
cd /home/user/kernel5.0
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar.gz
tar xvf linux-5.0.1.tar.gz
Se rendre dans le dossier crée :
cd linux-5.0.1
Configurer le kernel :
make olddefconfig
Cette commande va chercher la configuration du kernel actuel (booté) et met toutes les nouvelles options en « par défaut »
Editer le fichier .config, afin de vérifier que cette ligne ne contient rien entre les guillemets (sinon la compilation plantera dés les premières minutes) :
CONFIG_SYSTEM_TRUSTED_KEYS = ""
Exécuter ce script permet de ne pas compiler un noyau de debug, et donc de gagner du temps :
./scripts/config -d CONFIG_DEBUG_INFO
4 — Patcher :
———————
Récupérer les patchs 15kHz :
cd /home/user/
wget https://github.com/D0023R/linux_kernel_15khz/archive/master.zip
Les extraires :
unzip master.zip
Tester les patchs :
cd /home/user/kernel5.0/linux-5.0.1/
patch -p1 --dry-run < ../../linux_kernel_15khz-master/linux-5.0/01_ati_9200_pllfix.diff
patch -p1 --dry-run < ../../linux_kernel_15khz-master/linux-5.0/02_arcadevga_3000.diff
patch -p1 --dry-run < ../../linux_kernel_15khz-master/linux-5.0/03_linux_15khz.diff
patch -p1 --dry-run < ../../linux_kernel_15khz-master/linux-5.0/04_linux_15khz_scanoutpos.diff
patch -p1 --dry-run < ../../linux_kernel_15khz-master/linux-5.0/05_linux_15khz_interlaced_mode_fix.diff
Patcher les sources :
patch -p1 < ../../linux_kernel_15khz-master/linux-5.0/01_ati_9200_pllfix.diff
patch -p1 < ../../linux_kernel_15khz-master/linux-5.0/02_arcadevga_3000.diff
patch -p1 < ../../linux_kernel_15khz-master/linux-5.0/03_linux_15khz.diff
patch -p1 < ../../linux_kernel_15khz-master/linux-5.0/04_linux_15khz_scanoutpos.diff
patch -p1 < ../../linux_kernel_15khz-master/linux-5.0/05_linux_15khz_interlaced_mode_fix.diff
5 - Compilation du kernel :
—————————————————————
make -j$(nproc) bindeb-pkg LOCALVERSION=-"$(dpkg --print-architecture)"-patched15khz
Après plusieurs minutes/heures, on obtiens alors ces packets :
linux-5.0.1-amd64-patched15khz_5.0.1-amd64-patched15khz-1_amd64.buildinfo
linux-5.0.1-amd64-patched15khz_5.0.1-amd64-patched15khz-1_amd64.changes
linux-headers-5.0.1-amd64-patched15khz_5.0.1-amd64-patched15khz-1_amd64.deb
linux-image-5.0.1-amd64-patched15khz_5.0.1-amd64-patched15khz-1_amd64.deb
linux-image-5.0.1-amd64-patched15khz-dbg_5.0.1-amd64-patched15khz-1_amd64.deb
linux-libc-dev_5.0.1-amd64-patched15khz-1_amd64.deb
(Sauf le packet « -dbg_ » si la compilation du noyau débug a été désactivée)
6 - Installation du kernel :
——————————————————————
dpkg -i linux-image-5.0.1-amd64-patched15khz_5.0.1-amd64-patched15khz-1_amd64.deb
Here is my Xorg.conf working great with my old Debian Jessie Kernel 3.2.55 Patched 15kHz :
Section "Device"
Identifier "ATI"
Driver "radeon"
EndSection
Section "Monitor"
Identifier "TV"
HorizSync 15.0 - 20.0
VertRefresh 50.0 - 60.0
## modelines TV @15kHz
Modeline "320x240" 6.452 320 338 368 412 240 242 245 264 -HSync -VSync
EndSection
Section "Screen"
Identifier "Default Screen"
Device "ATI"
Monitor "TV"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "320x240"
EndSubSection
EndSection
Hello @D0023R thanks for the great job made on porting this fix over the newer kernels. As you seems to understand more than I do this topic, do you think it's possible to port this patch over the amdgpu driver as well ? This could be an interesting option for newer AMD GPU or APU.
Hey!
I'm currently trying to assemble a custom build of Recalbox with your 15KHz patches to make the OS fully 15KHz compatible.
Recalbox uses buildroot to build the OS, where one can set paths to patch folders with the BR2_LINUX_KERNEL_PATCH variable.
The thing is the linux.mk file only applies files that are have the .patch file extension. The ones here use .diff.
I'd have to write a script that renames the file endings from .diff to .patch which is not a problem in it self. But I wondered if you'd be willing to rename the file extensions to .patch so people can use your repo via git submodules and just apply the patches automatically without modifying anything.
Thanks!
Hi Doozer,
sorry for misusing this feature, but I had no idea how else I could get in contact with you.
I stumbled upon you on the arcadecontrols forum while I was searching for a way to get the scanout position. For my Bachelors Thesis, knowing the position of the scanout would be very helpful. If you could answer some questions for me, I would be very thankful.
Since I don't want to continue misusing the issues page, please respond to my university email address: [email protected].
Thank you in advance for your consideration
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.