The provided kernel patches enable the 15kHz video output with additional features for Linux.
Current:
Untested experimental:
Filename | Description |
---|---|
01_linux_15khz.patch | main patch for 15 kHz support |
02_linux_15khz_interlaced_mode_fix.patch | necessary for radeon driver, fix the vertical blank interrupt |
03_linux_15khz_dcn1_dcn2_interlaced_mode_fix.patch | necessary for amdgpu driver, enable interlaced mode on standalone graphic cards and APU |
04_linux_15khz_dce_interlaced_mode_fix.patch | necessary for amdgpu driver, enable interlaced mode on standalone graphic cards and APU |
05_linux_15khz_amdgpu_pll_fix.patch | necessary for amdgpu driver, fix PLL calculation |
06_linux_switchres_kms_drm_modesetting.patch | KMS modesetting manipulation for X-less switchres KMS usage, groovyarcade kms enabler |
07_linux_15khz_fix_ddc.patch | kernel 6.7+ only, fix kernel oops when probing DDC and no adapter is connected |
For the latest stable release, please use the folder named Linux-X.Y
from the root folder which is corresponding to your kernel version.
The repository will now be updated to the mainline stable releases only. Older kernel released will be available inside the unmaintained
folder.
The patch enable the selection of the desired video mode during the boot process. The parameters must be provided as kernel parameters via your boot loader (grub, syslinux, ...).
You can specify interlace "640x480" or progressive "320x240" resolution at boot by adding either video=VGA-1:640x480ieS
or video=VGA-1:320x240eS
to the kernel line.
- 15kHz modes:
- "320x240" /* 320x240 60.00 Hz */
- "384x288" /* 384x288 50.00 Hz */
- "640x240" /* 640x240 60.00 Hz */
- "640x480i" /* 640x480 60.00 Hz */
- "648x480i" /* 648x480 60.00 Hz */
- "720x480i" /* 720x480 59.95 Hz */
- "768x576i" /* 768x576 50.00 Hz */
- "800x576i" /* 800x576 50.00 Hz */
- "1280x480i" /* 1280x480 60.00 Hz */
- 25kHz modes:
- "512x384" /* 512x384 58.59 Hz */
- "800x600i" /* 800x600 60.00 Hz */
- "1024x768i" /* 1024x768 50.00 Hz */
- "1024x240" /* 1024x240 60.00 Hz */
- "1280x240" /* 1280x240 60.00 Hz */
- 31kHz modes:
- "640x480" /* 640x480 60.00 Hz */
E.g. for syslinux.cfg:
append root=/dev/sda1 rw vga=785 <...other parameters...> video=VGA-1:640x480ieS
You can specify "640x480" or "800x600" resolution at boot by adding either "video=VGA-1:640x480ec" or "video=VGA-1:800x600ez" to the kernel line.
E.g. for syslinux.cfg:
append root=/dev/sda1 rw vga=785 <...other parameters...> video=VGA-1:640x480ec
It is possible to set a custom EDID at boot via the drm module.
(Note: starting from kernel 4.15 the drm_kms_helper.edid_firmware parameter has been deprecated in favor of the drm.edid_firmware parameter. Backward compatibility for drm_kms_helper.edid_firmware is still present in kernel 5.3)
Put your edid custom file in the /lib/firmware/edid directory and add the following in your boot manager configuration on the kernel parameter line.
append root=/dev/sda1 <...other parameters...> video=VGA-1:e drm.edid_firmware=VGA-1:edid/<edid_filename>
The parameter video=VGA-1:e is needed to enable the connector. The drm.edid_firmware=VGA-1:edid/
NOTES:
On previous kernel use drm_kms_helper.edid_firmware instead of drm.edid_firmware.
If you are using early KMS with initramfs, the custom EDID file must be included or the kernel will not find it.
Using the custom EDID method, X server will start in the EDID defined configuration. No need to specify any modeline.