news post: E6400 XFR and nvidia variants
parent
07915f03d5
commit
2694bb99e8
|
@ -5,15 +5,16 @@ x-toc-enable: true
|
||||||
|
|
||||||
<div class="specs">
|
<div class="specs">
|
||||||
<center>
|
<center>
|
||||||
Dell Latitude E6400
|
<img tabindex=1 alt="Dell Latitude E6400" class="p" src="https://av.libreboot.org/e6400/e6400-seabios.jpg" /><span class="f"><img src="https://av.libreboot.org/e6400/e6400-seabios.jpg" /></span> <img tabindex=1 alt="Dell Latitude E6400 XFR" class="p" style="max-width:24em" src="https://av.libreboot.org/e6400/e6400xfr-seabios.jpg" /><span class="f"><img src="https://av.libreboot.org/e6400/e6400xfr-seabios.jpg" /></span>
|
||||||
</center>
|
</center>
|
||||||
|
|
||||||
| ***Specifications*** | |
|
| ***Specifications*** | |
|
||||||
|----------------------------|------------------------------------------------|
|
|----------------------------|------------------------------------------------|
|
||||||
| **Manufacturer** | Dell |
|
| **Manufacturer** | Dell |
|
||||||
| **Name** | Latitude E6400 |
|
| **Name** | Latitude E6400 |
|
||||||
|
| **Variants** | E6400, E6400 XFR and E6400 ATG are supported |
|
||||||
| **Released** | 2009 |
|
| **Released** | 2009 |
|
||||||
| **Chipset** | Intel Cantiga GM45 |
|
| **Chipset** | Intel Cantiga GM45(Intel GPU)/PM45(Nvidia GPU) |
|
||||||
| **CPU** | Intel Core 2 Duo (Penryn family). A Quad-core
|
| **CPU** | Intel Core 2 Duo (Penryn family). A Quad-core
|
||||||
mod exists, replacing the Core 2 Duo with a Core Quad |
|
mod exists, replacing the Core 2 Duo with a Core Quad |
|
||||||
| **Graphics** | Intel GMA 4500MHD (and NVidia Quadro NVS 160M
|
| **Graphics** | Intel GMA 4500MHD (and NVidia Quadro NVS 160M
|
||||||
|
@ -24,7 +25,7 @@ Dell Latitude E6400
|
||||||
| **EC** | SMSC MEC5035 with proprietary firmware |
|
| **EC** | SMSC MEC5035 with proprietary firmware |
|
||||||
| **Original boot firmware** | Dell BIOS |
|
| **Original boot firmware** | Dell BIOS |
|
||||||
| **Intel ME/AMD PSP** | Present. Can be completely disabled. |
|
| **Intel ME/AMD PSP** | Present. Can be completely disabled. |
|
||||||
| **Flash chip** | SOIC-8 4MiB or 2MiB+4MiB (Upgradable to 16MiB) |
|
| **Flash chip** | SOIC-8 4MiB or 2MiB+4MiB |
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -39,7 +40,8 @@ P*: Partially works with blobs
|
||||||
| ***Features*** | |
|
| ***Features*** | |
|
||||||
|---------------------------------------------------|----|
|
|---------------------------------------------------|----|
|
||||||
| **Internal flashing with original boot firmware** | W+ |
|
| **Internal flashing with original boot firmware** | W+ |
|
||||||
| **Display** | W+ |
|
| **Display (if Intel GPU)** | W+ |
|
||||||
|
| **Display (if Nvidia GPU)** | W* |
|
||||||
| **Audio** | W+ |
|
| **Audio** | W+ |
|
||||||
| **RAM Init** | W+ |
|
| **RAM Init** | W+ |
|
||||||
| **External output** | W+ |
|
| **External output** | W+ |
|
||||||
|
@ -54,6 +56,11 @@ P*: Partially works with blobs
|
||||||
Introduction
|
Introduction
|
||||||
============
|
============
|
||||||
|
|
||||||
|
Known supported variants: E6400, E6400 XFR and E6400 ATG. This page has
|
||||||
|
been updated to include information about Nvidia GPU variants. See news post:
|
||||||
|
[Dell Latitude E6400 XFR support confirmed, plus experimental Nvidia GPU
|
||||||
|
support on E6400 variants](../../news/e6400nvidia.md).
|
||||||
|
|
||||||
**To install Libreboot, see: [E6400 installation
|
**To install Libreboot, see: [E6400 installation
|
||||||
instructions](../install/e6400.md)**
|
instructions](../install/e6400.md)**
|
||||||
|
|
||||||
|
@ -61,10 +68,6 @@ ROM images for Dell Latitude E6400 are available for flashing in the Libreboot
|
||||||
release 20230423 onwards, or you can compile a ROM image for installation via
|
release 20230423 onwards, or you can compile a ROM image for installation via
|
||||||
lbmk, see: [build instructions](../build/)
|
lbmk, see: [build instructions](../build/)
|
||||||
|
|
||||||
We believe all models with iGPU are GM45 and will work perfectly. We suspect
|
|
||||||
that the dGPU models are PM45 and won't work yet, because Libreboot currently
|
|
||||||
supports just the iGPU (Intel graphics) on these machines.
|
|
||||||
|
|
||||||
There are two possible flash chip sizes for the E6400: 4MiB (32Mbit) or 2+4MiB
|
There are two possible flash chip sizes for the E6400: 4MiB (32Mbit) or 2+4MiB
|
||||||
(16Mbit+32MBit). Libreboot presently supports the 4MiB version, and provides
|
(16Mbit+32MBit). Libreboot presently supports the 4MiB version, and provides
|
||||||
8MiB images for those who upgrade their flash to 8MiB or 16MiB. There appears
|
8MiB images for those who upgrade their flash to 8MiB or 16MiB. There appears
|
||||||
|
@ -89,7 +92,7 @@ functionality, though this configuration has not yet been encountered.
|
||||||
|
|
||||||
Most people will want to use the 4MiB images.
|
Most people will want to use the 4MiB images.
|
||||||
|
|
||||||
Blob-free setup (no-ME possible)
|
Intel GPU: Blob-free setup (no-ME possible)
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
This is a GM45/PM45 platform, so completely libre initialisation in
|
This is a GM45/PM45 platform, so completely libre initialisation in
|
||||||
|
@ -111,3 +114,71 @@ 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:
|
executable). libreboot disables and removes it by using a modified descriptor:
|
||||||
see [../install/ich9utils.md](../install/ich9utils.md)*
|
see [../install/ich9utils.md](../install/ich9utils.md)*
|
||||||
(contains notes, plus instructions)
|
(contains notes, plus instructions)
|
||||||
|
|
||||||
|
Issues pertaining to Nvidia GPU variants
|
||||||
|
========================================
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
More information about Nvidia E6400 models is written in
|
||||||
|
the [regular E6400 hardware page](../docs/hardware/e6400.md). The reason it's
|
||||||
|
in a WIP branch is because, on this day, more testing is needed; the Linux
|
||||||
|
nouveau driver crashed when I tried to start xorg (tested in Debian
|
||||||
|
Stable, 11.6, with default kernel and mesa - use of `nomodeset` kernel option
|
||||||
|
at boot time makes Xorg work just fine, when I tested it, but this means that
|
||||||
|
all video is being rendered in software) - this is being
|
||||||
|
investigated, and when a fix is made, either to nouveau and/or coreboot, this
|
||||||
|
variant of the E6400 will become available in Libreboot's master branch, and
|
||||||
|
subsequent releases.
|
||||||
|
|
||||||
|
The same Video BIOS Option ROM is used by Dell's boot firmware, and Xorg works
|
||||||
|
just fine there under Linux, with the same nouveau driver. A trace could be
|
||||||
|
performed, to see where Nouveau crashes.
|
||||||
|
|
||||||
|
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 works perfectly,
|
||||||
|
including 2D and 3D acceleration. I *wholeheartedly* recommend OpenBSD in
|
||||||
|
general, but it works *especially* well on these machines.
|
||||||
|
|
||||||
|
<img tabindex=1 class="l" style="max-width:35%" src="https://av.libreboot.org/openbsd.jpg" /><span class="f"><img src="https://av.libreboot.org/openbsd.jpg" /></span>
|
||||||
|
|
||||||
|
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 a competent OS for many purposes,
|
||||||
|
and works very well on laptops. I use it myself for all sorts of things. If
|
||||||
|
you're already familiar with Linux-based systems, OpenBSD will immediately
|
||||||
|
feel familiar, and it has *the best* documentation. You can configure the
|
||||||
|
entire system by just reading the FAQ page and *manpages*, and it's very easy
|
||||||
|
to get a basic setup really quickly. A lot of the packages you might be familiar
|
||||||
|
with in Linux are available in *ports*. You may have heard that Linux-based
|
||||||
|
systems are *unix-like*, but BSD systems *are* Unix, by code heritage.
|
||||||
|
|
||||||
|
You can find information in Libreboot about BSD operating systems on the
|
||||||
|
main guide:
|
||||||
|
|
||||||
|
* [BSD Operating Systems](../docs/bsd/)
|
||||||
|
|
||||||
|
FreeBSD and newer Linux (e.g. Archlinux) untested!
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
[Testers needed! Please get in touch!](../docs/maintain/testing.html)
|
||||||
|
|
||||||
|
**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.
|
||||||
|
|
|
@ -29,7 +29,8 @@ libreboot currently supports the following systems in this release:
|
||||||
|
|
||||||
### Laptops (Intel, x86)
|
### Laptops (Intel, x86)
|
||||||
|
|
||||||
- **[Dell Latitute E6400](e6400.md) (easy to flash, no disassembly, similar
|
- **[Dell Latitute E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel
|
||||||
|
GPU](e6400.md) (easy to flash, no disassembly, similar
|
||||||
hardware to X200/T400)**
|
hardware to X200/T400)**
|
||||||
- ThinkPad X60 / X60S / X60 Tablet
|
- ThinkPad X60 / X60S / X60 Tablet
|
||||||
- ThinkPad T60 (with Intel GPU)
|
- ThinkPad T60 (with Intel GPU)
|
||||||
|
|
|
@ -11,11 +11,20 @@ Initial flashing instructions for the E6400.
|
||||||
**ROM images are available in the [Libreboot 20230423
|
**ROM images are available in the [Libreboot 20230423
|
||||||
release](../../news/libreboot20230423.md), and subsequent releases.**
|
release](../../news/libreboot20230423.md), and subsequent releases.**
|
||||||
|
|
||||||
|
**Variants with Nvidia GPUs are NOT supported in Libreboot 20230423. Please
|
||||||
|
see below for further guidance (experimental support available in `lbmk.git`).**
|
||||||
|
|
||||||
This guide is for those who want libreboot on their Latitude E6400 while
|
This guide is for those who want libreboot on their Latitude E6400 while
|
||||||
they still have the original Dell BIOS present. This guide can also be
|
they still have the original Dell BIOS present. This guide can also be
|
||||||
followed (adapted) if you brick your E6400, to know how to recover.
|
followed (adapted) if you brick your E6400, and you want to recover it.
|
||||||
|
|
||||||
Blob-free initialisation!
|
Variants (nvidia or intel graphics)
|
||||||
|
========
|
||||||
|
|
||||||
|
Dell E6400, E6400 XFR and E6400 ATG are all believed to work. The flashing
|
||||||
|
instructions are identical, on all of them.
|
||||||
|
|
||||||
|
Blob-free initialisation (on Intel GPU variants)
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
This board can boot entirely blob-free in the flash. The hardware is similar
|
This board can boot entirely blob-free in the flash. The hardware is similar
|
||||||
|
@ -36,11 +45,17 @@ Policy](../../news/policy.md) but this board run reasonably well without them.
|
||||||
A note about GPUs
|
A note about GPUs
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
We *believe* the dGPU models are PM45, and therefore will require a VGA
|
We *confirm that* the Nvidia models are PM45, and therefore will require a VGA
|
||||||
blob for initialisation. This is currently unsupported in Libreboot.
|
blob for initialisation. This is [experimentally
|
||||||
|
supported](../../news/e6400nvidia.md) in Libreboot. - **A Video BIOS Option
|
||||||
|
ROM is used, in this configuration, which is a binary blob. Libreboot's
|
||||||
|
build system automatically downloads this at build time, or it can handle that
|
||||||
|
for you in the same way if it was scrubbed from a release ROM.**
|
||||||
|
|
||||||
Models with iGPU (Intel graphics) are GM45, and fully supported in Libreboot
|
Models with Intel graphics are GM45, and fully supported in Libreboot
|
||||||
with native initialisation.
|
with native initialisation; ROM images are available since Libreboot 20230423.
|
||||||
|
**The Intel video initialisation is libre, implemented with publicly available
|
||||||
|
source code via libgfxinit, from the coreboot project.**
|
||||||
|
|
||||||
Flash chip size {#flashchips}
|
Flash chip size {#flashchips}
|
||||||
===============
|
===============
|
||||||
|
@ -55,11 +70,134 @@ provided for people who wish to upgrade.
|
||||||
MAC address {#macaddress}
|
MAC address {#macaddress}
|
||||||
===========
|
===========
|
||||||
|
|
||||||
|
The MAC address is part of the ROM image that you're flashing. You can change
|
||||||
|
it at any time, before or after you've flashed Libreboot; you can also change
|
||||||
|
it in the *Dell* BIOS, if you really want to. This is for the onboard gigabit
|
||||||
|
ethernet device.
|
||||||
|
|
||||||
Refer to [mac\_address.md](../hardware/mac_address.md).
|
Refer to [mac\_address.md](../hardware/mac_address.md).
|
||||||
|
|
||||||
|
It is recommended that you run *nvmutil*. See:
|
||||||
|
|
||||||
|
[nvmutil usage manual](nvmutil.md)
|
||||||
|
|
||||||
|
The `nvmutil` software is specifically designed for changing MAC addresses,
|
||||||
|
and it implements a few more safeguards (e.g. prevents multicast/all-zero
|
||||||
|
MAC addresses) and features (MAC address randomisation, ability to correct or
|
||||||
|
intententionally corrupt(disable) GbE sections if you wish, swap GbE parts,
|
||||||
|
etc). You can *also* run ich9gen, if you wish:
|
||||||
|
|
||||||
|
[ich9gen usage manual](ich9utils.md)
|
||||||
|
|
||||||
|
Intel GPU: libre video initialisation available
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
Libreboot uses coreboot's native `libgfxinit` on this platform, for
|
||||||
|
variants with Intel graphics.
|
||||||
|
|
||||||
|
For Intel GPU variants, Libreboot 20230423 and up have full support. Simply
|
||||||
|
flash a release ROM, if you wish.
|
||||||
|
|
||||||
|
Nvidia GPU: Video BIOS Option ROM required
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
This is *unavailable* in Libreboot 20230423, but a future release will contain
|
||||||
|
support for these variants; for now, you must compile Libreboot from Git.
|
||||||
|
|
||||||
|
Download the Libreboot build system, lbmk, like so:
|
||||||
|
|
||||||
|
git clone https://codeberg.org/libreboot/lbmk
|
||||||
|
|
||||||
|
When you clone the Libreboot git repository `lbmk.git`, go in there and do
|
||||||
|
this:
|
||||||
|
|
||||||
|
git checkout e6400nvidia_wip
|
||||||
|
|
||||||
|
Actual installation is the same as with regular E6400 (Intel GPU) variants.
|
||||||
|
Refer to the [E6400 flashing instructions](../docs/install/e6400.md).
|
||||||
|
|
||||||
|
The `e6400nvidia_wip` is used, because this version is still under development.
|
||||||
|
Refer to [development discussion](https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758) for more information - [testers needed!](../maintain/testing.md)
|
||||||
|
|
||||||
|
Obtaining the VGA Option ROM (Nvidia)
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
Libreboot does not (and will not) directly distribute the Nvidia ROM, but this
|
||||||
|
WIP branch has logic added to `blobutil`, which automatically fetches Dell
|
||||||
|
update files and extracts the Video BIOS from it. This is inserted during
|
||||||
|
the build process, *automatically*. Everything has been figured out *for you*,
|
||||||
|
as is the purpose of Libreboot's [automated build system](../docs/maintain/).
|
||||||
|
|
||||||
|
In Libreboot release ROMs after Libreboot 20230423, this Video BIOS ROM will
|
||||||
|
*not* be present, but you'll be able to run the same script that lbmk uses, to
|
||||||
|
manually re-download and re-add it. The Libreboot build system scrubs certain
|
||||||
|
binary blobs, in the scripts from lbmk that create release archives.
|
||||||
|
|
||||||
|
Libreboot's `blobutil`, while in the `e6400nvidia_wip` branch, can be
|
||||||
|
executed like so:
|
||||||
|
|
||||||
|
./blobutil download e6400nvidia_4mb
|
||||||
|
|
||||||
|
*The above command is executed automatically, when Libreboot's build system
|
||||||
|
is called, to build the full E6400 ROM image like so:*
|
||||||
|
|
||||||
|
./build boot roms e6400nvidia_4mb
|
||||||
|
|
||||||
|
The `download` command (see above) pulls down Dell's BIOS update (A34 release),
|
||||||
|
and extracts the VGA ROM from that. This is then saved to `pciroms/` under
|
||||||
|
lbmk.
|
||||||
|
|
||||||
|
The `./build boot roms` command (see above) automatically inserts this PCI
|
||||||
|
ROM, and it is downloaded automatically if the PCI ROM is missing; if
|
||||||
|
downloading and/or extraction (of the Option ROM) fails, the entire build
|
||||||
|
process will fail (non-zero exit status). DO NOT flash it until you confirm
|
||||||
|
that the build weth successfully. For example, try:
|
||||||
|
|
||||||
|
make -BC coreboot/default/util/cbfstool/cbfstool
|
||||||
|
cp coreboot/default/util/cbfstool/cbfstool .
|
||||||
|
|
||||||
|
Then check the E6400 ROM under `bin/`. Let's say the ROM was
|
||||||
|
named `libreboot.rom`, you would do:
|
||||||
|
|
||||||
|
./cbfstool libreboot.rom print
|
||||||
|
|
||||||
|
This would print the files that have been inserted into the ROM image (rom
|
||||||
|
stage, car, payloads etc), and it should list the PCI option ROM as the
|
||||||
|
following file, by name: `pci10de,06eb.rom`.
|
||||||
|
|
||||||
|
DO NOT flash it unless that file is present. If you've confirmed that the ROM
|
||||||
|
has compiled successfully, you can flash it.
|
||||||
|
|
||||||
|
**BEFORE** you flash it, please know that support for Nvidia variants is
|
||||||
|
a **work in progress**. Known issues exist. For more information, please
|
||||||
|
read the [E6400 info page](../hardware/e6400.md), [E6400 nvidia news
|
||||||
|
page](../../news/e6400nvidia.md) and the [development discussion via
|
||||||
|
codeberg](https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758).
|
||||||
|
|
||||||
How to flash internally (no diassembly)
|
How to flash internally (no diassembly)
|
||||||
=======================================
|
=======================================
|
||||||
|
|
||||||
|
Warning for BSD users
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
BSD *boots* and works properly on these machines, but take note:
|
||||||
|
|
||||||
|
Nicholas's [e6400-flash-unlock](https://browse.libreboot.org/lbmk.git/plain/util/e6400-flash-unlock/e6400_flash_unlock.c)
|
||||||
|
utility has not yet been ported to BSD systems. The `flashrom` software is
|
||||||
|
available on BSD systems. Libreboot's build system has not yet been ported to
|
||||||
|
the BSDs.
|
||||||
|
|
||||||
|
BSD users could run Linux from USB to run `flashrom` and `e6400-flash-unlock`.
|
||||||
|
Virtualisation is available in BSDs, where it should be feasible to run the
|
||||||
|
Libreboot build system, in Linux, under virtualisation.
|
||||||
|
|
||||||
|
Flashing from Linux
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
MAKE SURE you boot with this Linux kernel parameter: `iomem=relaxed` - this
|
||||||
|
disables memory protections, permitting `/dev/mem` access needed by flashrom.
|
||||||
|
The flash is memory mapped and flashrom accesses it via `/dev/mem`.
|
||||||
|
|
||||||
You can flash Libreboot directly from the vendor (Dell) BIOS, without taking
|
You can flash Libreboot directly from the vendor (Dell) BIOS, without taking
|
||||||
the machine apart. It can be done entirely from Linux. It will probably also
|
the machine apart. It can be done entirely from Linux. It will probably also
|
||||||
work on BSD systems, but it has only been testing on Linux thus far.
|
work on BSD systems, but it has only been testing on Linux thus far.
|
||||||
|
@ -89,6 +227,36 @@ It also bypasses the SMM BIOS lock protection by disabling SMIs, and Dell's
|
||||||
BIOS doesn't set any other type of protection either such as writing to
|
BIOS doesn't set any other type of protection either such as writing to
|
||||||
Protected Range registers.
|
Protected Range registers.
|
||||||
|
|
||||||
|
When you flash it, you can use this command:
|
||||||
|
|
||||||
|
flashrom -p internal -w libreboot.rom
|
||||||
|
|
||||||
|
Where `libreboot.rom` is your E6400 ROM. *Make sure* it's the right one.
|
||||||
|
If flashrom complains about multiple flash chips detected, just pick one of
|
||||||
|
them (doesn't matter which one). On *most* Dell machines, the most correct
|
||||||
|
would probably be this option in flashrom: `-c MX25L3205D/MX25L3208D`.
|
||||||
|
|
||||||
|
So:
|
||||||
|
|
||||||
|
flashrom -p internal -w libreboot.rom -c MX25L3205D/MX25L3208D
|
||||||
|
|
||||||
|
When you see flashrom say `VERIFIED` at the end, that means the flash was
|
||||||
|
successful. If you don't see that, or you're unsure, please [contact the
|
||||||
|
Libreboot project via IRC](../../contact.md).
|
||||||
|
|
||||||
|
BACK UP THE FACTORY BIOS
|
||||||
|
========================
|
||||||
|
|
||||||
|
The `-w` option flashes `libreboot.rom`. You may consider *backing up* the
|
||||||
|
original Dell BIOS first, using the -r option:
|
||||||
|
|
||||||
|
flashrom -p internal -r backup.rom -c MX25L3205D/MX25L3208D
|
||||||
|
|
||||||
|
Do this while in a flashable state, after the 2nd run of `e6400-flash-unlock`.
|
||||||
|
|
||||||
|
Make sure the `backup.rom` file gets backed up to an external storage media,
|
||||||
|
not the E6400 itself.
|
||||||
|
|
||||||
With this method, you can probably flash it within 5 minutes. Again, zero
|
With this method, you can probably flash it within 5 minutes. Again, zero
|
||||||
disassembly required!
|
disassembly required!
|
||||||
|
|
||||||
|
@ -105,3 +273,4 @@ low, which can interfere with programmers such as the Raspberry Pi. See
|
||||||
|
|
||||||
Have a look online for videos showing how to disassemble, if you wish to
|
Have a look online for videos showing how to disassemble, if you wish to
|
||||||
externally re-flash.
|
externally re-flash.
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,9 @@ desirable for you to use an external/add-on graphics card
|
||||||
|
|
||||||
#### vesafb (vgarom)
|
#### vesafb (vgarom)
|
||||||
|
|
||||||
high resolution VESA framebuffer used on startup
|
high resolution VESA framebuffer used on startup. This is equivalent
|
||||||
|
to `corebootfb` (high resolution framebuffer), but for setups where a VGA
|
||||||
|
Option ROM is used.
|
||||||
|
|
||||||
#### txtmode (vgarom)
|
#### txtmode (vgarom)
|
||||||
|
|
||||||
|
@ -95,7 +97,11 @@ int10h text mode is used on startup
|
||||||
|
|
||||||
### normal
|
### normal
|
||||||
|
|
||||||
int10h text mode startup is implied here.
|
NOTE: Dell Latitude E6400 Nvidia variant uses this.
|
||||||
|
|
||||||
|
int10h text mode startup is implied here. The `vesafb` mode is unavailable here.
|
||||||
|
For `vesafb` mode, please use init type `vgarom`; most useful for GRUB payloads
|
||||||
|
or perhaps Tianocore.
|
||||||
|
|
||||||
In this setup, coreboot is neither implementing libgfxinit / native graphics
|
In this setup, coreboot is neither implementing libgfxinit / native graphics
|
||||||
initialization nor is it finding/loading/executing VGA option ROMs. In this
|
initialization nor is it finding/loading/executing VGA option ROMs. In this
|
||||||
|
|
|
@ -780,6 +780,14 @@ Where certain binary blobs like Intel ME or MRC are needed on a given board,
|
||||||
this script is called automatically by the build system, to download the files
|
this script is called automatically by the build system, to download the files
|
||||||
for insertion.
|
for insertion.
|
||||||
|
|
||||||
|
Specific binary blobs handled are:
|
||||||
|
|
||||||
|
* Intel ME images (via `me_cleaner`)
|
||||||
|
* Intel MRC (haswell boards)
|
||||||
|
* VGA option ROMs (currently just [Dell Latitude
|
||||||
|
E6400 Nvidia variants](../../news/e6400nvidia.md))
|
||||||
|
* KBC1126 EC firmware (HP laptops)
|
||||||
|
|
||||||
resources/scripts/blobs/extract
|
resources/scripts/blobs/extract
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
|
@ -791,12 +799,34 @@ to flash.
|
||||||
Dumping the original firmware is *always* recommended, regardless of what you
|
Dumping the original firmware is *always* recommended, regardless of what you
|
||||||
want to do.
|
want to do.
|
||||||
|
|
||||||
|
Specific binary blobs handled are:
|
||||||
|
|
||||||
|
* Intel ME images (via `me_cleaner`)
|
||||||
|
|
||||||
|
TODO, NOT YET HANDLED BY `extract` (only handled by `download` and `inject`):
|
||||||
|
|
||||||
|
* Intel MRC (haswell boards)
|
||||||
|
* KBC1126 EC firmware (HP laptops)
|
||||||
|
* VGA option ROMs (currently just [Dell Latitude
|
||||||
|
E6400 Nvidia variants](../../news/e6400nvidia.md))
|
||||||
|
|
||||||
|
The `extract` method is useful for offline installation, where such files
|
||||||
|
are required, and available.
|
||||||
|
|
||||||
resources/scripts/blobs/inject
|
resources/scripts/blobs/inject
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
Where a blob is provided, via the `extract` or `download` method, *this*
|
Where a blob is provided, via the `extract` or `download` method, *this*
|
||||||
script *inserts* a blob (ME, MRC etc) into a given target image.
|
script *inserts* a blob (ME, MRC etc) into a given target image.
|
||||||
|
|
||||||
|
Specific binary blobs handled are:
|
||||||
|
|
||||||
|
* Intel ME images (via `me_cleaner`)
|
||||||
|
* Intel MRC (haswell boards)
|
||||||
|
* VGA option ROMs (currently just [Dell Latitude
|
||||||
|
E6400 Nvidia variants](../../news/e6400nvidia.md))
|
||||||
|
* KBC1126 EC firmware (HP laptops)
|
||||||
|
|
||||||
resources/scripts/build/
|
resources/scripts/build/
|
||||||
========================
|
========================
|
||||||
|
|
||||||
|
@ -1135,6 +1165,13 @@ within them, requiring manual insertion by the user post-release. See:
|
||||||
[Insert binary blobs
|
[Insert binary blobs
|
||||||
on Sandybridge/Ivybridge/Haswell](../install/ivy_has_common.md)
|
on Sandybridge/Ivybridge/Haswell](../install/ivy_has_common.md)
|
||||||
|
|
||||||
|
resources/scripts/download/bios\_utilities
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
This downloads and patches `bios_utilities`.
|
||||||
|
|
||||||
|
Command: `./download bios_utilities`
|
||||||
|
|
||||||
resources/scripts/download/coreboot
|
resources/scripts/download/coreboot
|
||||||
===================================
|
===================================
|
||||||
|
|
||||||
|
@ -1310,7 +1347,15 @@ resources/seabios/config/vgarom
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
This version is for normal SeaBIOS configurations, where `libgfxinit` is not
|
This version is for normal SeaBIOS configurations, where `libgfxinit` is not
|
||||||
to be used.
|
to be used; coreboot itself handles VGA ROM initialisation.
|
||||||
|
|
||||||
|
resources/seabios/config/normal
|
||||||
|
===============================
|
||||||
|
|
||||||
|
This version is for normal SeaBIOS configurations, where `libgfxinit` is not
|
||||||
|
to be used; coreboot itself does *not* handle VGA ROM initialisation, and it
|
||||||
|
is assumed that SeaBIOS payload will be used in text mode. In this setup,
|
||||||
|
SeaBIOS executes VGA ROMs.
|
||||||
|
|
||||||
resources/seabios/patches/
|
resources/seabios/patches/
|
||||||
==========================
|
==========================
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
e6400nvidia.md
|
||||||
libreboot20230423.md
|
libreboot20230423.md
|
||||||
hp_elitebooks.md
|
hp_elitebooks.md
|
||||||
e6400.md
|
e6400.md
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
% Leah Rowe
|
% Leah Rowe
|
||||||
% 19 April 2023
|
% 19 April 2023
|
||||||
|
|
||||||
|
**UPDATE (9 May 2023): Libreboot confirmed working on variants such as
|
||||||
|
[E6400 XFR, and experiment Nvidia GPU variant support now
|
||||||
|
available](e6400nvidia.md).**
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
============
|
============
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,144 @@
|
||||||
|
% Dell Latitude E6400 XFR support confirmed, plus experimental Nvidia GPU support on E6400 variants
|
||||||
|
% Leah Rowe
|
||||||
|
% 9 May 2023
|
||||||
|
|
||||||
|
<img tabindex=1 class="r" style="max-width:35%" src="https://av.libreboot.org/e6400/e6400xfr-seabios.jpg" /><span class="f"><img src="https://av.libreboot.org/e6400/e6400xfr-seabios.jpg" /></span>
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
============
|
||||||
|
|
||||||
|
[Dell Latitude E6400 *with Intel GMA 4500MHD* graphics](e6400.md) was added, and
|
||||||
|
included in the recent Libreboot 20230423 release. *Today*, [experimental
|
||||||
|
support](https://browse.libreboot.org/lbmk.git/log/?h=e6400nvidia_wip) is now
|
||||||
|
available for variants with GPU: Nvidia Quadro NVS 160M. The Dell Latitude 6400
|
||||||
|
XFR (rugged variant) was also tested today (Intel graphics) and confirmed
|
||||||
|
working in Libreboot 20230423.
|
||||||
|
|
||||||
|
The *Nvidia* variants are *not* supported in Libreboot 20230423. Support is
|
||||||
|
available in an experimental branch of Libreboot. Read the rest of this article
|
||||||
|
to learn more.
|
||||||
|
|
||||||
|
Dell Latitude E6400 with Nvidia GPU
|
||||||
|
===================================
|
||||||
|
|
||||||
|
This section *also* applies to E6400 XFS and ATG models. [Testers are
|
||||||
|
needed!](../docs/maintain/testing.md).
|
||||||
|
|
||||||
|
*Some* models of Dell Latitude E6400 have Nvidia Quadro NVS 160M graphics
|
||||||
|
device, instead of Intel GMA 4500MHD. The *initial* Libreboot port of Dell
|
||||||
|
E6400 *only* supported models with Intel graphics, but experimental support
|
||||||
|
for Nvidia graphics now exists, in a WIP branch of Libreboot.
|
||||||
|
|
||||||
|
<img tabindex=1 class="l" style="max-width:25%" src="https://av.libreboot.org/e6400/e6400-seabios.jpg" /><span class="f"><img src="https://av.libreboot.org/e6400/e6400-seabios.jpg" /></span>
|
||||||
|
|
||||||
|
The Libreboot documentation has been updated, to cover these models. Refer
|
||||||
|
to Dell Latitude E6400 documentation in Libreboot; specifically,
|
||||||
|
the [E6400 info page](../docs/hardware/e6400.md) and [E6400 flashing
|
||||||
|
guide](../docs/install/e6400.md).
|
||||||
|
|
||||||
|
Nicholas Chin, author of the original Dell E6400 port, has been helping me and
|
||||||
|
I've been working on this experimental branch of Libreboot under his
|
||||||
|
guidance:
|
||||||
|
|
||||||
|
* <https://browse.libreboot.org/lbmk.git/log/?h=e6400nvidia_wip>
|
||||||
|
|
||||||
|
*These* patches were already merged in Libreboot's master branch, which the
|
||||||
|
changes in the WIP branch rely upon:
|
||||||
|
|
||||||
|
* Import the `bios_extract` utilities in lbmk: <https://browse.libreboot.org/lbmk.git/commit/?id=6d0ff0286451dc43d32428a44a68d07bc13c058a>
|
||||||
|
* Bug fixes from Nicholas for `bios_extract`: <https://browse.libreboot.org/lbmk.git/commit/?id=2e64f6397556b7e6fff8a7a305a5eaa1095acfc1>
|
||||||
|
* blobutil: support downloading VGA ROM for Nvidia E6400: <https://browse.libreboot.org/lbmk.git/commit/?id=5a197b4ff160a348179a3350af266c6b87a3aa04>
|
||||||
|
|
||||||
|
Ongoing development discussion is available, on the Libreboot bug tracker. See:
|
||||||
|
|
||||||
|
* <https://codeberg.org/libreboot/lbmk/issues/14>
|
||||||
|
|
||||||
|
For more information about the *Nvidia GPU* variants, please review the
|
||||||
|
following pages (which have been updated, while publishing this news article):
|
||||||
|
|
||||||
|
* [Dell Latitude E6400 hardware information](../docs/hardware/e6400.md)
|
||||||
|
* [Dell Latitude E6400 flashing instructions](../docs/install/e6400.md)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
More information about Nvidia E6400 models is written in
|
||||||
|
the [regular E6400 hardware page](../docs/hardware/e6400.md). The reason it's
|
||||||
|
in a WIP branch is because, on this day, more testing is needed; the Linux
|
||||||
|
nouveau driver crashed when I tried to start xorg (tested in Debian
|
||||||
|
Stable, 11.6, with default kernel and mesa - use of `nomodeset` kernel option
|
||||||
|
at boot time makes Xorg work just fine, when I tested it, but this means that
|
||||||
|
all video is being rendered in software) - this is being
|
||||||
|
investigated, and when a fix is made, either to nouveau and/or coreboot, this
|
||||||
|
variant of the E6400 will become available in Libreboot's master branch, and
|
||||||
|
subsequent releases.
|
||||||
|
|
||||||
|
The same Video BIOS Option ROM is used by Dell's boot firmware, and Xorg works
|
||||||
|
just fine there under Linux, with the same nouveau driver. A trace could be
|
||||||
|
performed, to see where Nouveau crashes.
|
||||||
|
|
||||||
|
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 works perfectly,
|
||||||
|
including 2D and 3D acceleration. I *wholeheartedly* recommend OpenBSD in
|
||||||
|
general, but it works *especially* well on these machines.
|
||||||
|
|
||||||
|
<img tabindex=1 class="l" style="max-width:35%" src="https://av.libreboot.org/openbsd.jpg" /><span class="f"><img src="https://av.libreboot.org/openbsd.jpg" /></span>
|
||||||
|
|
||||||
|
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 a competent OS for many purposes,
|
||||||
|
and works very well on laptops. I use it myself for all sorts of things. If
|
||||||
|
you're already familiar with Linux-based systems, OpenBSD will immediately
|
||||||
|
feel familiar, and it has *the best* documentation. You can configure the
|
||||||
|
entire system by just reading the FAQ page and *manpages*, and it's very easy
|
||||||
|
to get a basic setup really quickly. A lot of the packages you might be familiar
|
||||||
|
with in Linux are available in *ports*. You may have heard that Linux-based
|
||||||
|
systems are *unix-like*, but BSD systems *are* Unix, by code heritage.
|
||||||
|
|
||||||
|
You can find information in Libreboot about BSD operating systems on the
|
||||||
|
main guide:
|
||||||
|
|
||||||
|
* [BSD Operating Systems](../docs/bsd/)
|
||||||
|
|
||||||
|
FreeBSD and newer Linux (e.g. Archlinux) untested!
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
[Testers needed! Please get in touch!](../docs/maintain/testing.html)
|
||||||
|
|
||||||
|
**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.
|
||||||
|
|
||||||
|
Dell Latitude E6400 ATG model
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
[Testers needed! Please get in touch!](../docs/maintain/testing.html)
|
||||||
|
|
||||||
|
We also found out about this model; it's another rugged design, assumed to
|
||||||
|
be the same board as regular E6400, but testing is needed. If it's anything to
|
||||||
|
go by, this model shares the same service manual as the regular E6400. If you
|
||||||
|
have this board, please [get in touch](../docs/maintain/testing.md)!
|
||||||
|
|
||||||
|
ATG is basically just a thicker chassis. It seems to use the same/similar
|
||||||
|
heatsink compared to E6400 XFR.
|
||||||
|
|
||||||
|
Were you expecting more?
|
||||||
|
|
||||||
|
Well, that's all for now.
|
||||||
|
|
||||||
|
Stay tuned for further development.
|
Loading…
Reference in New Issue