Brief how-to for getting radeonkms working using drm-next

Beeblebrox zaphod at berentweb.com
Sun Apr 30 14:07:51 UTC 2017


This e-mail is to share my experience getting a radeonkms card working with the drm-next kernel under development. My GPU is Radeon HD-4250.

* The drm-next repo (as of writing) does not build clang40 from base but uses the clang40 port. For this reason, if you use poudriere to build packages you need to track 12-Current/head in a separate repo. To get both repos working, I found that:
+ do two buildworlds (src & src-drm-next). make installworld from src, and repeat make installworld for src-drm-next. Run mergemaster afterwards.
+ Do the same as above for the poudriere jail (delete the @clean snapshot then re-snapshot). Can also use the "poudriere jail -u" feature, but the /usr/local/etc/poudriere.d/jails/<name>/method file will have to be temporarily modified to src-drm-next before invoking jail update for the second run.
+ For kernel modules built by poudriere (like virtualbox-ose-kmod), poudriere.d/jails/<name>/srcpath will have to be src-drm-next, otherwise you will get a version mismatch error when kldloading such modules. This is assuming you used the -S flag while creating the poudriere jail.

* The system gained quite a bit of stability when I reverted the emulators/linux_base (and all compat/linux) layer from C7 to C6. Don't know why, just is.

* I disabled the unlocker for the 4th core of my AMD-AthlonII-X3 cpu. The unlock seems to make the fonts go wild, spews font error messages and character display is a mess.

* Currently radeonkms leaks memory something awful, but whether this happens depends on the particular app. I found that slim login manager for example did very poorly, while gdm did not cause this problem. Java based apps seem to trigger the condition as well, although I do not have a concise list of bad-behaving. Generally, file managers, text editors, browsers are working without problem and I'm even able to use Gnome3!

Other Considerations:
* Generate a dbus machine-id if /etc/machine-id does not exist (mine was not auto-generated for some reason): "# /usr/local/bin/dbus-uuidgen"
* If you have sub-optimal screen resolution that was not detected by xorg start-up, follow this excellent guide to set it manually or by script: https://wiki.archlinux.org/index.php/Xrandr (under Troubleshooting / Adding undetected resolutions). Modifying xorg.conf will not work for this problem.
* Kep track of your memory status with "$ swapinfo", reboot when it gets critical.
* Goes without saying, re-build all your ports.

Hope this helps

-- 
FreeBSD_amd64_12-Current_RadeonKMS
Please CC my email when responding, mail from list is not delivered.


More information about the freebsd-x11 mailing list