lbwww/site/docs/hardware/e6400.md

12 KiB

This is a GM45/PM45 platform, so completely libre initialisation in coreboot is possible, provided by default in Libreboot.

Management Engine (ME) firmware removed

This port in Libreboot makes use of ich9gen from ich9utils, which you can read about in the ich9utils manual - this creates a no-ME setup. The Intel Management Engine firmware (ME) is completely removed, and the ME disabled, just like on ThinkPad X200, T400 and so on.

The E6400 laptops may come with the ME (and sometimes AMT in addition) before flashing libreboot. Dell also sold configurations with the ME completely disabled, identifiable by a yellow sticker reading "3 ME Disabled" inside the bottom panel. This config sets the MeDisable bit in the IFD and sets the ME region almost entirely to 1's, with the occasional 32-bit value (likely not executable). libreboot disables and removes it by using a modified descriptor: see ../install/ich9utils.md (contains notes, plus instructions)

Issues pertaining to Nvidia GPU variants

Copper shim for GPU cooling

NOTE: this section does not apply to XFR or ATG variants of E6400, which have a much beefier heatsink by default.

The default heatsink in Nvidia variants of E6400 (regular model) has thermal paste for the CPU, and a thermal pad for the GPU. This pad is woefully inadequate, but replacing it with paste is a bad idea, because of the gap there would be between heatsink plate and GPU die.

A solution for this would be to use a copper shim, with paste on each side, to replace the thermal pad.

This eBay seller seems to make and sell a lot of copper shims, specifically for E6400:

SELLER LINK REMOVED. - one will not be re-added. Putting ebay links on the Libreboot site is folly, because they disappear. Just search for it and see if you can find one for purchase. It's literally just a small bit of copper cut smooth to just the right size. Actually, there's a lot of engineering behind that, but installation is very simple, and any decent seller will provide guidance.

If you buy one of those, could you measure it? Tell Libreboot the dimensions. Get in touch with us. It would be nice to know precise specs, but that seller provides what you need. If you find similar listings elsewhere, please also let us know.

The shim will greatly reduce GPU temperatures, and probably improve performance due to less GPU throttling as a result of heat.

Nouveau(in Linux) currently broken

Nouveau is the libre driver in Linux, for Nvidia graphics. Nvidia themselves do not provide binary drivers anymore, for these GPUs. It crashes in Linux, when you try to start Xorg (Wayland is untested).

If you're booting an Nvidia variant in Linux, boot Linux with the nomodeset kernel option at boot time. This means that graphics are rendered in software.

Development discussion, for Nvidia variants of E6400, is available here:

https://codeberg.org/libreboot/lbmk/issues/14

OpenBSD's Nvidia driver works perfectly

OpenBSD 7.3 was tested, on my Nvidia-model E6400, and Xorg works OK with the nv driver.

See: https://www.openbsd.org/

OpenBSD is a complete free 4.4BSD Unix operating system focused on portability, security and code correctness. It's quite useable for most day to day tasks.

You can find information in Libreboot about BSD operating systems on the main guide:

FreeBSD and newer Linux (e.g. Archlinux) untested!

FreeBSD has not yet been tested, as far as we know, but it should work.

Testers needed! Please get in touch!

At the time of writing this post, FreeBSD and newer Linux have not yet been tested (I plan to test Arch Linux), but the older Linux/Mesa version in Debian 11.6 works just fine in the Dell BIOS, and I've confirmed that it uses the exact same Video BIOS Option ROM.

Desktop environment / window manager on OpenBSD + Performance notes

TODO: This section could probably be moved to its own section. It's not really relevant to Libreboot per se, but it may help a few people.

Again, Linux's nouveau driver is currently broken. I've been playing with my E6400 (nvidia model) for a while and I've found that these things are a must for performance (the machine otherwise lags, openbsd's nv driver isn't quite as good as nouveau, when the nouveau one works that is):

  • Use a lightweight desktop environment like LXQt, or lightweight window manager (OpenBSD has cwm in base, and it's excellent)
  • Install obsdfreqd which scales down the CPU speed during idle state; the GPU has a poor thermal pad for cooling and so if the CPU is running hot, that doesn't bode well for GPU temperatures either, and the GPU is likely lagging due to heat:

How to install obsdfreqd:

pkg_add obsdfreqd
rcctl enable obsdfreqd

Now, before you start it, make sure apmd is disabled; it can be used, but not with the -A flag:

rcctl stop apmd
rcctl disable apmd

Now start obsdfreqd:

rcctl start obsdfreqd

You will be well served to perform the copper shim mod, for GPU cooling. With obsdfreqd, your laptop will run much cooler. This is generally a good idea anyway, especially on laptops, to save electricity.

Of course, there are many tweaks that you can do to OpenBSD but the key is: don't use heavy bloated software. The term lightweight is misleading anyway; if the software does its job efficiently, and you're happy with it, then it is by definition superior for your purposes. So, "lightweight" is simply a word for "efficient" in many contexts. We should encourage the use and development of highly efficient software that runs more smoothly on old machines. The elitist attitude of just buy a new computer is quite damaging; re-use is always better, when that is feasible and safe. The power of BSD (and Linux) is precisely that you can tweak it to get the most use out of older hardware..

Another nice hint: higher resolution video like 1080p 60fps or above won't play smoothly at all in a web browser. In testing at least on OpenBSD 7.3, Firefox seems to have the best performance among all the web browsers, at least when I used it. Anything 720p 30/60fps will work ~OK.

For YouTube, you could use yt-dlp, which is available in ports, and use mpv to stream via yt-dlp. Or download manually with yt-dlp and play offline. See:

https://github.com/yt-dlp/yt-dlp

https://mpv.io/

Another hint: for watching youtube in the browser, Invidious works quite well. It's a frontend that lets you view it by proxy, and there are many instances of it online. For a list of instances, see:

https://redirect.invidious.io/

Unlike youtube.com, watching youtube via invidious works even with JavaScript turned off in the browser. You can use it to also search YouTube, and then paste the youtube.com link into yt-dlp or mpv; Invidious websites themselves also often provide a download button for videos.

The yt-dlp software may also work on a few other websites besides YouTube. Running with JavaScript turned off is generally recommended for performance, especially on slower machines, turning it on only when you need it. Many websites are just full of junk nowadays.