I managed to get it to work by downgrading both X and the kernel version. It was based on this answer. I know the solution isn't optimal, and it's probably gonna bring me some headache in the future, but nothing else worked.
If anyone else is having this problem, here's what I found. Please only do this as a last resource, since it is risky. Procede with care.
This problem happens with "old" AMD cards (before GCN), like mine. The open-source drivers do not support 21:9 resolution with the old cards (not sure if they work properly with new cards). The proprietary drivers work fine.
The problem is, there are two main versions of proprietary drivers: fglrx, for pre-GCN cards, and amdgpu, for GCN cards. Support for fglrx has been dropped, and because Debian 9 uses a new kernel that uses a more recent Xserver version, that version is not compatible with fglrx.
So my solution was downgrading X. Here's how it went:
First, you need to add the old versions to the sources so aptitude can find it easily. To do this, create the file
/etc/apt/sources.list.d/jessie-versions.list, with this content:
deb http://httpredir.debian.org/debian/ jessie main contrib non-free
deb-src http://httpredir.debian.org/debian/ jessie main contrib non-free
This will tell aptitude to also search for the versions of all packages that were available in jessie. It won't break anything, since those versions are all older than the current ones so won't be installed.
To make the old versions of X and the kernel preferred to the new version, create the file
/etc/apt/preferences.d/old-X, with this content:
Package: xserver* xorg* linux-image-* glx-diversion*
Pin: release a=oldstable
This tells aptitude that the jessie version of all xserver, xorg , kernel stuff is preferred to the new version. Using a priority above 1000 makes downgrades possible.
Now comes the risky part. Running
aptitude update and
aptitude upgrade should downgrade all necessary packages. Check everything aptitude says it is installing, downgrading, upgrading and removing to make sure everything is all right. It is also gonna confirm with you if you want to mess with the kernel.
If it doesn't go perfectly at first (it didn't for me), here's the main things that should be happening:
- linux-image-* being downgraded from 4.9+80 to 3.16+63
- xorg and xserver-xorg being downgraded from 1:1.7.7+19 to 1:1.7.7+7
- xserver-xorg-core being downgraded from 2:1.19.2-1 to 2:1.16.4-1
When these packages are in their intended versions, installing fglrx should work without any conflicts (
aptitude install fglrx-driver), and the screen should work fine after rebooting the computer.
Since we changed the preferences, aptitude and apt-get should not bother you about updating those packages again.
For me, at least, doing this erased
/usr/bin/X and so it didn't work at first. I just reinstalled all X stuff (
aptitude reinstall xorg xserver-xorg xserver-xorg-core) and it worked after that.