booting system... standby
This is my simple blog. My intention is to ramble about things that amuse me. One day it might develop some structure, until then…
- 19 Aug 2014 » Linux + Radeon HD 4200 + Reduced Blanking
- 28 Jul 2014 » Quick Benchmarks of dm-cache / lvmcache
- 25 Jul 2014 » Simple and Fast Random Data Generator
- 10 Jul 2014 » Use Funtoo's Keychain Instead of GNOME Keyring
- 30 Jun 2014 » Flash Crashes When Network Interfaces Change
- 28 Apr 2014 » Poor pv and splice() Performance
- 24 Apr 2014 » Ubuntu 14.04 LTS on OpenVZ + ufw and iptables Firewall
- 21 Apr 2014 » Two Factor (2FA) SSH Authentication Using YubiKey
- 31 Mar 2014 » Pragmatic Backups
- 20 Feb 2014 » SSH Reverse Tunnel on Linux with systemd
- 07 Jan 2014 » Opt-out of Junk Snail Mail
- 30 Dec 2013 » Time Warner Cable aka RoadRunner TLS and SSL Mail Fail
- 14 Dec 2013 » Long Range Zip Musings
- 29 Sep 2013 » Using Native IPv6 via Comcast in San Francisco
- 26 Aug 2013 » Where have I been?
- 14 Jul 2013 » FSSH part 2: Tmux and Vim
- 07 Jul 2013 » Dying Gigabyte Motherboard
- 30 Jun 2013 » SSD Caching Using dm-cache Tutorial
- 20 Jun 2013 » SSH Reverse Tunnel on Mac OS X
- 17 Jun 2013 » Ubuntu 13.04 Bandwidth Shaping and Traffic Control using HTB
- 16 Jun 2013 » Leveraging Upstart for User Jobs
- 15 Jun 2013 » Remote ssh copy paste buffers using fssh
- 09 Jun 2013 » Use imapfilter to filter SPAM - part 2
- 02 Jun 2013 » Android CA Certificates
- 01 Jun 2013 » Parse eMMC Extended CSD (ECSD) Registers with Python
- 30 May 2013 » Manage LXCs with Docker
- 28 May 2013 » Ting
- 27 May 2013 » SSD let me down again
- 27 May 2013 » BitTorrent Sync
- 26 May 2013 » Use imapfilter to filter SPAM - part 1
- 13 May 2013 » GNOME Keyring Access for Python
- 12 May 2013 » Lua popen3() Implementation
- 12 May 2013 » Btrfs filesystem trips up
- 09 May 2013 » Linux SSD caching part 2
- 08 May 2013 » Epson WorkForce WF-3520 + Ubuntu 13.04
- 06 May 2013 » GNOME Keyring Daemon Breaks My GPG Encrypted Backups
- 05 May 2013 » Issue with my SSD + btrfs + discard
- 26 Apr 2013 » Issues with Ubuntu's UFW on OpenVZ VPS
- 20 Apr 2013 » Linux SSD caching
- 10 Apr 2013 » My Wi-Fi access point revisited
- 01 Jan 2013 » New job, moving cross country
- 06 Sep 2012 » Ubuntu 12.04 LTS Minimal GUI
- 05 Sep 2012 » The smoking gun
- 29 Aug 2012 » A story about a car...
- 07 Aug 2012 » Managing /etc with etckeeper
- 06 Aug 2012 » Hello World
Linux + Radeon HD 4200 + Reduced Blanking
August 19, 2014
HDMI Display Timing Adventure
I finally installed Arch Linux on my HTPC which has an integrated Radeon HD 4200. The goal is to run Kodi (formerly XBMC) for movies, podcasts, audio and some other random things. In the past I ran Windows 7 Media Center and things just worked.
However, XBMC and my desktop apps would constantly glitch with static on the screen or dropped HDMI audio. Sigh. Very unlikely to be the cables or AV receiver in the middle since nothing changed between booting Windows 7, which works fine, and Linux. So, this must be a driver problem. I asked Google, but it looked at me like I was silly.
I had this feeling that maybe it’s a timing issue and reviewed the EDID data from my receiver, but everything looked ok. I messed around some mroe and stumbled on “CVT Reduced Blanking” as a timing hack to reduce bandwidth for high resolution displays over traditional cabling. Hack out some
Modeline in my Xorg config and boom, it works.
Gist with details:
A Window to What Works?
I booted back into Windows to attempt to determine if it was doing the same thing but could never find an app that gave me the impression that it was giving me actual timing info and not EDID data. Maybe I’ll find one, maybe not.
If I get really ambitious I might also see if the same issue occurred with OpenElec (don’t recall seeing it though) and perhaps can blame a recent driver Arch has granted me the privilege of using. If that’s the case, I can hope that it might fix itself in a new kernel or Xorg driver, but that would require me to remember to remove the reduced blanking mode line.
Until then, reduced blanking is the way to extend the life of this cheap HTPC rig for a year or so.
The reduced blanking is working great as I don’t think I’ve observed a single stick after 10+ hours half watching / half listening. Previously an error would be observed in less than 1 hour of XBMC / Kodi usage.
Meanwhile, I stumbled on some interesting commits that might make their way in to 3.17 on the dri-devel mailing list for “older ASICs (RV6xx, RS80, RV70)”. Oh, interesting, but what’s the name of the ASIC behind the “Radeon HD 4200” branding and is it relavent to my chip?
$ lspci | grep VGA 01:05.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RS880 [Radeon HD 4200]
Confirmed as relavent. This patch (fdeaa939ce91c770b615ebe35cc1348756e09c5e) in particular is interesting because the comment says:
/* the first reloc of an UVD job is the msg and that must be in - VRAM, also but everything into VRAM on AGP cards to avoid - image corruptions */ + VRAM, also but everything into VRAM on AGP cards and older + IGP chips to avoid image corruptions */
Do I care enough to recompile my kernel and mess with the ucode now? Nope, reduced blanking works. This primarily serves as a mental note for me to check at some point in the future. This blog is essentially a collection of semi-coherent mental notes…