Jump to content

# Dell Latitude 3500

From ArchWiki

Hardware | PCI/USB ID | Working?
--- | --- | ---
Touchpad |  | Yes
Keyboard |  | Yes
GPU | `8086:3ea0` | Yes
Webcam | `1bcf:2b98` | Yes
Ethernet | `10ec:8168` | Yes
Bluetooth | `8087:0aaa` | Yes
SD-card reader | `8086:9dc4` | Yes
Audio | `8086:9dc8` | Yes
Wireless | `8086:9df0` | Yes
Fingerprint reader | `27c6:530c` | Yes
TPM |  | Untested

## Installation

RAID mode is enabled by default. AHCI mode must be used, otherwise the disks will be invisible[1]. Using RAID mode will trigger a relevant log message in the journal.

## Accessibility

The appearance of the BIOS is pretty simple and not very colorful, so it might work well with OCR software. However, it requires the user to use a mouse.

Note: Blind users should request the help of a sighted person to change BIOS settings

This device has a diagnostic LED which may visualize beep codes in some cases. See the "Diagnostic LED" section in the service manual for more details. The service manual also contains shortcuts which are needed to trigger certain features, such as the boot menu and settings (`F12`).

## Firmware

Note: This device does not have a BIOS speaker and uses the built-in speakers instead. Beeps can be louder than expected.

fwupd does not support this device yet.

### Secure Boot

The BIOS accepts .auth files and supports custom keys well.

### Firmware data path

The BIOS stores logs and recovery images in `esp/EFI/dell`. Recovery images are stored in `esp/EFI/dell/bios/recovery` and are 14 MB in size. It appears that there will only be two images at the same time, `BIOS_CUR.rcv` and `BIOS_PRE.rcv`. Those files will be created when the BIOS was updated.

#### Logs

`esp/EFI/dell/logs` contains XML files which contain diagnostics data (SupportAssist). It appears that there will only be two logs at the same time, `diags_previous.xml` and `diags_current.xml`. Those files will be created when an error happened.

Example log (`diags_previous.xml`):

    diags_previous.xml

    <?xml version="1.0" encoding="UTF-8"?>
      <SupportAssistPrebootDiagnosticLog>
        <Schema>1.0.0</Schema>
        <LogNumber>2</LogNumber>
        <LogTimeStamp>02/05/2020 00:06:43</LogTimeStamp>
        <ePSA_Data>
          <Result>Not Reported</Result>
          <ReturnCode>BOOT_F2</ReturnCode>
          <ePSAFullVersion>2.55</ePSAFullVersion>
          <ePSAInvocationCount>2</ePSAInvocationCount>
        </ePSA_Data>
        <BIOS_Data>
          <ErrorCategory>DISPLAY_ONLY</ErrorCategory>
          <ErrorMessage><![CDATA[Time-of-day not set - please run SETUP program.
    ]]></ErrorMessage>
          <SOS_Available>FALSE</SOS_Available>
          <TimeOutSeconds>0</TimeOutSeconds>
        </BIOS_Data>
      </SupportAssistPrebootDiagnosticLog>

Another example log (`diags_current.xml`):

    diags_current.xml

    <?xml version="1.0" encoding="UTF-8"?>
      <SupportAssistPrebootDiagnosticLog>
        <Schema>1.0.0</Schema>
        <LogNumber>1</LogNumber>
        <LogTimeStamp>04/17/2020 09:41:58</LogTimeStamp>
        <ePSA_Data>
          <Result>Abort</Result>
          <ReturnCode>BOOT_HOST_OS</ReturnCode>
          <DevicesTested>Memory, Hard Drive</DevicesTested>
          <ePSAFullVersion>2.51</ePSAFullVersion>
          <ePSAInvocationCount>1</ePSAInvocationCount>
        </ePSA_Data>
        <BIOS_Data>
          <ErrorCategory>NO_BOOT</ErrorCategory>
          <ErrorMessage><![CDATA[No bootable devices found.
    ]]></ErrorMessage>
          <Flags>BIOSCONNECT_ENABLED</Flags>
          <SOS_Available>FALSE</SOS_Available>
          <TimeOutSeconds>0</TimeOutSeconds>
        </BIOS_Data>
      </SupportAssistPrebootDiagnosticLog>

## Fingerprint reader

Install libfprint-2-tod1-xps9300-binAUR.

The fingerprint reader requires a proprietary driver.[2]

## Bluetooth

Bluetooth works out of the box. Append `--plugin=*` to `bluetoothd`'s arguments to fix some problems with headset buttons.

    /etc/systemd/system/bluetooth.service.d/override.conf

    [Service]
    ExecStart=
    ExecStart=/usr/lib/bluetooth/bluetoothd --plugin=*

After suspending, especially when using #Unmarked keybinds, Bluetooth may stop working. Restart `bluetooth.service` to fix it.

## Power management

After waking up the device from suspend, input lag will occur for approximately 5-10 seconds. Sometimes it will even repeat a key press for up to 32 times but only within this timespan. There is no known fix for this.

### Power buttons

This article or section is a candidate for merging with Help:Laptop page guidelines#Capturing function keys.

Notes: This section and the next one duplicate the explanation of how to capture keys. They seem to have been copied and pasted blindly on many other laptop pages since this one is cited as a reference in Help:Laptop page guidelines. (Discuss in Talk:Dell Latitude 3500)

This device has two detected power buttons and one sleep button.

    $ loginctl seat-status

    ├─/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
    │ input:input3 "Power Button"
    ├─/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input6
    │ input:input6 "Video Bus"
    ├─/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
    │ input:input1 "Power Button"
    ├─/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
    │ input:input0 "Lid Switch"
    ├─/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input2
    │ input:input2 "Sleep Button"
    [...]

In this case, `LNXPWRBN:00` (`/dev/input/event3`) is the "real", physical power button. You can verify this by inhibiting the handling of the power button

    # systemd-inhibit --what=handle-power-key sleep 1h

and recording the events:

    # stdbuf -o0 evemu-record /dev/input/event3 > event3

Pressing the power button should log an event.

The other detected power button seems to be a virtual, firmware-handled button. This power button will be triggered when your device runs out of battery. The firmware will send many power button presses, so your machine will most likely only take a few seconds to power off because systemd kills the process/unit it is waiting for when the power button is pressed.

See logind.conf(5) for more information on handling specific keys.

### Sleep button

There is also a sleep button/suspend key. It is a virtual, firmware-handled key and will be triggered when using one of the #Unmarked keybinds, which would suspend your device. Use this to inhibit the handling of the suspend key.

    # systemd-inhibit --what=handle-suspend-key sleep 1h

## Function keys

Key | Visible?1 | Marked?2 | Effect
--- | --- | --- | ---
`Fn+Esc` | No | Yes | Enables Fn lock
`Fn+F1` | Yes | Yes | `XF86AudioMute`
`Fn+F2` | Yes | Yes | `XF86AudioLowerVolume`
`Fn+F3` | Yes | Yes | `XF86AudioRaiseVolume`
`Fn+F4` | Yes | Yes | `XF86AudioPrev`
`Fn+F5` | Yes | Yes | `XF86AudioPlay`
`Fn+F6` | Yes | Yes | `XF86AudioNext`
`Fn+F7` | No | No | See #Unmarked keybinds
`Fn+F8` | Yes | Yes | Inputs `Super+p`
`Fn+F9` | Yes | Yes | `XF86Search`
`Fn+F10` | No | Yes | Enables/disables keyboard backlight
`Fn+F11` | Yes | Yes | `XF86MonBrightnessDown`
`Fn+F12` | Yes | Yes | `XF86MonBrightnessUp`
`Fn+Print` | Yes3 | Yes | `XF86RFKill`, will hard-block wifi and soft-block Bluetooth. Press again to disable
`Fn+Ins` | Yes3 | No | `XF86Sleep`, see #Unmarked keybinds
`Fn+NumPad0` | Yes3 | No | `XF86Sleep`, see #Unmarked keybinds
`Fn+q`, `Fn+w`, `Fn+e` | Yes | No | `XF86Launch3`
`Fn+t`, `Fn+a`, `Fn+d` | Yes | No | `XF86Launch3`
`Fn+f`, `Fn+g` | Yes | No | `XF86Launch3`
`Fn+r` | Yes | No | `Print`
`Fn+s` | Yes | No | `Scroll_Lock`
`Fn+b` | Yes | No | `Pause`
`Fn+Up` | Yes | No | `Prior`
`Fn+Down` | Yes | No | `Next`
`Fn+Left` | Yes | No | `Home`
`Fn+Right` | Yes | No | `End`
`Fn+KP_Multiply` | Yes3 | No | `XF86RFKill`

1. The key is visible to `xev` and similar tools
2. The physical key has a symbol on it, which describes its function
3. systemd-logind handles this by default

### Unmarked keybinds

There are several keybinds handled by the BIOS:

Key | Effect
--- | ---
`Fn+F7` | Unobtrusive mode. Has to be enabled in the BIOS in order to work. Deactivates all LEDs and turns off display and sound. Press again to disable.
`Fn+Ins` | Suspends device. See #Sleep button. Can not be disabled/configured
`Fn+NumPad0` | Same as `Fn+Ins`[3]. May be an unintended feature

## See also

- Setup and specifications guide: https://dl.dell.com/topicspdf/latitude-15-3500-laptop_owners-manual2_en-us.pdf
- Official service manual: https://dl.dell.com/topicspdf/latitude-15-3500-laptop_owners-manual3_en-us.pdf
- https://certification.ubuntu.com/hardware/201812-26716

Category:

- Dell

Hidden category:

- Pages or sections flagged with Template:Merge