HackingVGAforFun: Unterschied zwischen den Versionen
Aus LaborWiki
Siro (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Siro (Diskussion | Beiträge) K (results) |
||
Zeile 40: | Zeile 40: | ||
* the tool outputs .dat-files, that need to be editet by hand, it contains invalid symbols | * the tool outputs .dat-files, that need to be editet by hand, it contains invalid symbols | ||
* you can use the export function to generate .raw files and use hexdump to convert them to plain/text hex | * you can use the export function to generate .raw files and use hexdump to convert them to plain/text hex | ||
=== hack the kernel module drm === | === hack the kernel module drm === | ||
Zeile 58: | Zeile 54: | ||
* patch ''drm_edid.c'' , it doesn't accept vsync_width OR hsync_width to be 0 | * patch ''drm_edid.c'' , it doesn't accept vsync_width OR hsync_width to be 0 | ||
* | == Results == | ||
Mesa 9.0 | |||
{| {{Prettytable}} | |||
! Label !! EDID Value!! Description | |||
|- | |||
|AMD RV710 | |||
|Vsync = 0 | |||
|no graphics | |||
|- | |||
|AMD RV710 | |||
|Vsync = 1 | |||
|random graphics | |||
|- | |||
|AMD RV710 | |||
|Htotal = Hactive | |||
|no graphics | |||
|- | |||
|AMD RV710 | |||
|Hsync = 0 | |||
|normal graphics* | |||
|- | |||
|AMD RV710 | |||
|Vtotal = Vactive + 2 | |||
|random graphics | |||
|- | |||
|} | |||
* patched drm_edid.c |
Version vom 18. Februar 2013, 13:58 Uhr
VGA
Video Graphics Adapter
pinouts
edid
EDID
I used EDID 1.3
Windows
- it accepts:
- standart timings
- established timings
- it looks like Windows XP doesn't like "prefered timings"
Linux
- The kernel module drm handels all the display stuff
- it accepts:
- established timings
- standart timings
- prefered timings
build a fake monitor
- Terminate the color lines with 75ohms
- Attach a 24C02 serial eeprom to the specified pins (24c04 - 24c16 is possible to )
flash a new edid
- Load the kernelmodule i2c-dev
- Get i2c-tools
- build the i2c-tools
- Become root: Sudo -s
- Add the tools folder to the PATH: PATH=$PATH:< ... >/i2c-tools/tools
- Run i2cdump to find the correct BUSID (device at 0x50 and 0x51)
- Flash new EDID with write-edid.sh
- Note the input file is plain/text with hexvalues, spaces and newlines only
create custom edid
- use Phoenix EDID Designer to create custom EDIDs
Note
- the tool outputs .dat-files, that need to be editet by hand, it contains invalid symbols
- you can use the export function to generate .raw files and use hexdump to convert them to plain/text hex
hack the kernel module drm
- install linux-source
- install linux-kernel-headers
- modify the Makefile
all: $(MAKE) -C $(KDIR) M=$(PWD) modules cp drm.ko /lib/modules/`uname -r`/kernel/drivers/gpu/drm cp drm_kms_helper.ko /lib/modules/`uname -r`/kernel/drivers/gpu/drm chmod 755 /lib/modules/`uname -r`/kernel/drivers/gpu/drm update-initramfs -u
- patch drm_edid.c , it doesn't accept vsync_width OR hsync_width to be 0
Results
Mesa 9.0
Label | EDID Value | Description |
---|---|---|
AMD RV710 | Vsync = 0 | no graphics |
AMD RV710 | Vsync = 1 | random graphics |
AMD RV710 | Htotal = Hactive | no graphics |
AMD RV710 | Hsync = 0 | normal graphics* |
AMD RV710 | Vtotal = Vactive + 2 | random graphics |
- patched drm_edid.c