My attempt to give a meaningful purpose to a 20-inch 2006 iMac 4.1 choked on an odd Xorg problem. Tried FreeBSD 13.0 Release/amd64 and elementaryOS 6.0 Odin as up-to-date systems with their respective Xorg packages. Using the radeon driver (only under Linux, as this driver was not present under FreeBSD, nor was it available as a separate package or in ports) seems to provide the correct graphics mode with the native resolution of the built-in LCD screen. Windows, icons, panels look all fine, but the background picture (or the desktop background in general, even as a solid colour) shows broken artifacts.Its peculiarity is that ONLY the background is drawn flawed, and any GUI object over that looks perfectly fine, including translucent windows, menubars, icons, etc.Using the modesetting driver seems to be unable to render the graphics screen properly, with the entire display drawn with off-shifted lines.
As the modesetting driver exists (and behaves exactly the same way) on both FreeBSD and Linux (talking about recent releases as in late 2021), and also being the obvious way forward, I would prefer to get this working instead of relying on radeon.So, I started by extracting the native resolution details from the EDID data of this 2006 iMac's built-in LCD.
Those with the triple hashtag comments, do not work well with the modesetting driver. They switch the display into an unreadable line-shifted mode as shown on the 3rd picture above. The last two lines were not produced by PowerStrip data, those were assembled by me manually, using one of the above lines but altering one detail or two in the hope that I can get the native resolution working.Interestingly, the native resolution of 1680x1050 never seems to work using the modesetting driver. Not even the modeline that is read from EDID, which is what Windows 10, Mac OS X, and the radeon Xorg driver under Linux use successfully.Also interesting that the \"1664x1040\" and \"1696x1060\" modes work perfectly, giving a nice, flicker free, solid display. These are one smaller, and larger resolutions than the native 1680x1050 while keeping the 16:10 aspect ratio. I am surprised that the 1696x1060 works fine too (obviously, the last few pixels are off screen, hence not visible, but the display is solid without any shifted/running lines).
The Xorg.0.log from both FreeBSD and Linux, using either the radeon or the modesetting driver, shows nothing wrong. As far as Xorg is concerned, everything runs fine. The problem is that my human eyes see something I am not able to process (shown on the 3rd picture above).xrandr --verbose (radeon/Linux)xrandr --verbose (modesetting/FreeBSD)Xorg.0.log (radeon/Linux)Xorg.0.log (modesetting/Linux)
As I am unable to get the native 1680x1050 working with modesetting (failing the same way under FreeBSD and Linux), while the same settings are known to work with the proprietary ATI driver under Windows 10 and Mac OS X, plus the open source radeon driver under Linux, my conclusion is that something may be wrong with the modesetting driver (or the radeonkms module).
Do you have any suggestion on what to try in order to get the native resolution working with the modesetting driverAlternatively, what would be the proper channel to report this issue to the developers of the modesetting driver (or the radeonkms module)
The radeon driver supports the activation of a heads-up display (HUD) which can draw transparent graphs and text on top of applications that are rendering, such as games. These can show values such as the current frame rate or the CPU load for each CPU core or an average of all of them. The HUD is controlled by the GALLIUM_HUD environment variable, and can be passed the following list of parameters among others:
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a \"ZaphodHeads\" option which allows you to bind a specific device section to an output of your choice:
The radeon driver will probably enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, try the vblank_mode=0 environment variable or create /.drirc (edit it if it already exists) and add the following:
If the cursor becomes corrupted (e.g. repeating itself vertically after the monitor(s) comes out of sleep) set \"SWCursor\" \"True\" in the \"OutputClass\" section of the /etc/X11/xorg.conf.d/20-radeon.conf configuration file.
If you use 390X (or perhaps similar models) and the 4k output from DP, you may experiencing occasional horizontal artifacts / flickering (i.e. every half an hour or so, a horizontal strip of pixels with a height of 100 pixels across the whole screen's width shaking up and down for a few seconds). This might be a bug of the radeon driver. Changing to AMDGPU seems to fix it.
This card is supported in Linux with the open source radeon driver x86-video-ati. The big issue with the EFI firmware of the laptop is that it does not expose the video bios. This is a problem for Linux since the radeon driver does not support UMS anymore and KMS can not find the necessary information so it stalls. This can be worked around by booting with nomodeset which in return will prevent any graphical interface because of the missing UMS support.The only workaround I have found to be worthwhile and applicable in reality was to patch the kernels radeon driver support to read the video bios from a dump file placed in /lib/firmware/radeon/ and compile myself. Actually somewhere it's mentioned to dump int10.bin as well but the function from the patch actually doesn't include that file Having the benefit of being able to include extended kernel support for apple hardware built in, the resulting kernel works as expected with a lot of functionality out of the box (like keyboard backlight control e.g.).
which does nothing. I tried to boot with every parameter of acpi_backlight where vendor, radeon and native would do nothing and none would render the screen black after starting xorg (I guess that was to be expected but it still surprised me as it seems to affect something where the other parameters didn't).I also tried to boot with video.only_lcd=0 without any change either. I should probably mention that I use runit instead of systemd but from what I see/read it should not make any difference. The problem, to me it appears, lies in the hand over of the outdated EFI.
Description:I start ubuntu 18.04 LTS (Kernel 22.214.171.124) in textmode;-> as soon as the kernel-module radeon.ko is loaded the screen starts flickeringwhen starting the grafic-mode the flickering continues; so the screen is unusable.
when setting the option \"radeon.modeset=0\" (thus: not use radeon drivers) the screen does not flickerbut the resolution is limited to 1400x1050 (instead of natural 1680x1050)so I can not use this as work-around
when booting UBUNTU \"14.04.5 LTS, Trusty Tahr\" kernel 3.13.0-160-generic-> the screen is fine in text-mode and in grafic-mode; NO flickering.boot-messages say:[drm] Initialized radeon 2.36.0 ...
BUT,when booting UBUNTU \"18.04.1 LTS (Bionic Beaver)\" kernel 4.15.0-36-generic-> the screen starts heavy flickering as soon as the kernel-module \"radeon.ko\"is loaded. The flickering continues in grafic-mode.here the boot-messages say:[drm] Initialized radeon 2.50.0 ...so: this seems to be a new version of radeon.ko.
- I attached 2 dmesg-listings; booting Ubuntu14.04, Kernel3.13 -> screen is o.k.; no flickering booting Ubuntu18.04, Kernel4.15 -> screen flickers.- no Xorg log since the flickering happens already in text-mode- I did the following test (on Ubuntu18.04): . boot with radeon.modeset=0 (thus: disable radeon driver) -> screen o.k.; NO flickering . then sudo modprobe -v radeon modeset=1 -> and the flickering starts ...
thank you for your tip, but radeon.new_pll=0 gives me... radeon: unknown parameter 'new_pll' ignoredAnd: I cannot find 'new_pll' in 'modinfo -p radeon';So new_pll seems to be (no longer) a radeon parameter.
Someone said:\"I tried this with a Ubuntu 17.10 and could not boot. I had to use a rescue boot and remove the lines again to get it up and running.\"from: -04-ati-mobility-radeon-x1600-full-resolution-flickeringSo, try with care!
I tried the glamor / tearfree - advice, but: with NO success; still flickering.And, btw.: I don't think the flickering is an Xorg-issue;it starts in \"textmode\" (!!) as soon as the radeon-kernel-driver loads. I think the kernel-driverdoes NOT read Xorg-configurations.
Just for fun, I've tested different systems:System kernel radeon.ko resultUBUNTU-14.04.5 3.13.0-164 2.36.0 O.Kpuppy_slacko-6.3.2 3.14.55 2.37.0 O.K.UBCD 3.16.0 2.39.0 FLICKERUBUNTU 14.04.5 4.4.0-133 2.43.0 FLICKERUBUNTU 18.04.1 4.15.0-42 2.50.0 FLICKER
.. as recommended I tried 3.14.79-031479-generic;giving me radeon.ko version 2.37.0 and the screen is o.k. No flickering.btw. I had the same result e.g. with \"puppy_tahr 6.0.5 boot CD\" which has the same radeon-version (2.37.0).My guess: the flickering-problem starts with radeon 2.39.0 upward. See my table above (a little messed-up due to lacking blanks). 1e1e36bf2d