This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

Dell XPS 9365

From Gentoo Wiki (test)
Jump to:navigation Jump to:search

The Dell XPS 13 (9365) is a 2-in-1 convertible ultrabook released by Dell in early 2017 and has excellent Linux compatability with only two minor outstanding issues.

Hardware

The following is a list of all PCI devices connected to the machine.

root #lspci -k
00:00.0 Host bridge: Intel Corporation Device 590c (rev 02)
        Subsystem: Dell Device 077a
00:02.0 VGA compatible controller: Intel Corporation Device 591e (rev 02)
        Subsystem: Dell Device 077a
        Kernel driver in use: i915
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 02)
        Subsystem: Dell Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem
00:13.0 Non-VGA unclassified device: Intel Corporation Sunrise Point-LP Integrated Sensor Hub (rev 21)
        Subsystem: Dell Sunrise Point-LP Integrated Sensor Hub
        Kernel driver in use: intel_ish_ipc
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
        Subsystem: Dell Sunrise Point-LP USB 3.0 xHCI Controller
        Kernel driver in use: xhci_hcd
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
        Subsystem: Dell Sunrise Point-LP Thermal subsystem
        Kernel driver in use: intel_pch_thermal
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
        Subsystem: Dell Sunrise Point-LP Serial IO I2C Controller
        Kernel driver in use: intel-lpss
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
        Subsystem: Dell Sunrise Point-LP Serial IO I2C Controller
        Kernel driver in use: intel-lpss
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
        Subsystem: Dell Sunrise Point-LP CSME HECI
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 (rev f1)
        Kernel driver in use: pcieport
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
        Kernel driver in use: pcieport
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
        Kernel driver in use: pcieport
00:1d.1 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #10 (rev f1)
        Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation Device 9d4b (rev 21)
        Subsystem: Dell Device 077a
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
        Subsystem: Dell Sunrise Point-LP PMC
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
        Subsystem: Dell Sunrise Point-LP HD Audio
        Kernel driver in use: snd_hda_intel
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
        Subsystem: Dell Sunrise Point-LP SMBus
        Kernel driver in use: i801_smbus
3a:00.0 Non-Volatile memory controller: Toshiba America Info Systems Device 0116
        Subsystem: Toshiba America Info Systems Device 0001
        Kernel driver in use: nvme
3b:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
        Subsystem: Dell RTS525A PCI Express Card Reader
        Kernel driver in use: rtsx_pci
3c:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
        Subsystem: Intel Corporation Wireless 8265 / 8275
        Kernel driver in use: iwlwifi
        Kernel modules: iwlwifi

Updating the BIOS

As of July 2018, the current version of the BIOS is 1.5.0. Instructions to update the system BIOS are as follows:

Note
In this example, we will assume the EFI partition is at /dev/nvme0n1p2 and that this partition is mounted to /boot. This may change based on the chosen partition layout chosen at the time of installation.
user $lsblk --paths
NAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/nvme0n1     259:0    0 238.5G  0 disk
├─/dev/nvme0n1p1 259:1    0     8G  0 part [SWAP]
├─/dev/nvme0n1p2 259:2    0   500M  0 part /boot
├─/dev/nvme0n1p3 259:3    0    40G  0 part /
└─/dev/nvme0n1p4 259:4    0    40G  0 part /home
  1. Download the latest version of the BIOS from the Dell support website here.
  2. Copy the downloaded file to the root of the EFI System Partition.
    root #cp XPS_9365_1_5_0.exe /boot/
  3. Reboot the system, pressing the F12 button when the Dell logo appears to enter the BIOS configuration menu.
  4. On the main menu of the UEFI screen, select the red BIOS Update button.
  5. You will be presented with the Flash BIOS menu. Select Flash from file.
  6. You will be prompted to select a file using a file browser. Select the EFI system partition that you copied the update file to, and select the update file.
  7. Once you have selected the correct BIOS update file, select the blue Submit option. You will be taken back to the previous Flash BIOS menu.
  8. After verifying that the correct BIOS update file has been selected, select Update BIOS!. You will be prompted with one last confirmation. Select Confirm Update BIOS!
  9. This step will take several minutes to flash the new BIOS. The system will reboot automatically when the process has completed. Once the system has finished rebooting, you may remove the BIOS update file from the EFI partition.
    root #rm /boot/XPS_9365_1_5_0.exe
  10. You can verify that the system is running the new BIOS by rebooting once again into the BIOS configuration menu (see step 3) and the version will be displayed in the top left corner, underneath the Dell logo and model. The version will read BIOS Version 1.5.0.

UEFI Configuration

Some settings must be changed from the default UEFI settings in order for the system to function correctly.

Portage Settings

make.conf

The following are required or recommended settings for portage.

#
# /etc/portage/make.conf
#
# configuration for portage and make.
#
# an example can be found at
# /usr/share/portage/config/make.conf.example
#

# set the host machine type
CHOST="x86_64-pc-linux-gnu"

# GCC compiler settings
CFLAGS="-O2 -pipe -march=native"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j4"
EMERGE_DEFAULT_OPTS="--ask" # automatically add '--ask' to all emerge invocations
CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"

# set language of build output
LC_MESSAGES=C

# enable amd64 keyword by default
# and disable ~amd64
ACCEPT_KEYWORDS="amd64"

# portage directories
PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"

# global USE flags
USE="${USE} xft"                       # fontconfig
USE="${USE} v4l"                       # required for webcam
USE="${USE} pulseaudio"                # pulseaudio support
USE="${USE} systemd -consolekit dbus"  # systemd and dbus support
USE="${USE} bluetooth"                 # bluetooth support
USE="${USE} -bindist"                  # allow non-distributable binaries
USE="${USE} xinerama"                  # multi-monitor support

# xorg settings
VIDEO_CARDS="intel i965"
INPUT_DEVICES="libinput"

Kernel Configuration

The following kernel configuration is based on the 4.17.10 Linux kernel, available from sys-kernel/gentoo-sources. This configuration is based on the default set of options, meaning any options not specified are assumed to be left as default.

Note
A ready-to-go configuration file with based on the configuration below has been made available here.
KERNEL
[*] Enable the block layer --->
    Partition Types --->
        [*] Advanced partition selection
            [ ] Acorn partition support
            [ ] AIX basic partition table support
            [ ] Alpha OSF partition support
            [ ] Amiga partition table support
            [ ] Atari partition table support
            [ ] Macintosh partition table support
            [ ] PC BIOS (MSDOS partition tables) support
            [ ] Windows Logical Disk Manager (Dynamic Disk) support
            [ ] SGI partition support
            [ ] Ultrix partition table support
            [ ] Sun partition tables support
            [ ] Karma Partition support
            [*] EFI GUID Partition support
            [ ] SYSV68 partition table support
            [ ] Command line partition support

Processor type and features --->
    [*] Intel Low Power Subsystem Support
    [*] CPU microcode loading support
        [*] Intel microcode loading support
        [ ] AMD microcode loading support
    [*] EFI runtime service support
        [*] EFI stub support ***TODO: IF STUB-LOADING NEEDED***
            [ ] EFI mixed-mode support

Power management and ACPI options --->
    [*] Suspend to RAM and standby
    [*] Hibernation (aka 'suspend to disk')
    [*] ACPI (Advanced Configuration and Power Interface) Support --->
        <*> AC Adapter
        <*> Battery
        -*- Button
        -*- Video
        <*> Fan
        [*] Dock
        -*- Processor
        <*> Thermal Zone
    -*- CPU Frequency scaling --->
        Default CPUFreq governor (performance) --->
            (x) Performance
            ( ) Powersave
            ( ) userspace
            ( ) ondemand
            ( ) conservative
            ( ) schedutil
        -*- 'performance' governor
        <*> 'powersave' governor
        < > 'userspace' governor for userspace frequency scaling
        < > 'ondemand' cpufreq governor
        < > 'conservative' cpufreq governor
        [ ] 'schedutil' cpufreq governor
        -*- Intel P state control
        < > ACPI Processor P-States driver
    [*] Cpuidle Driver for Intel Processors

Bus options (PCI etc.) --->
    [*] PCI support
    [*] PCI Express Port Bus support
    [*]     PCI Express Hotplug driver
    [*] Support for PCI Hotplug --->
        [*] ACPI PCI Hotplug driver
        [*] SHPC PCI Hotplug driver

-*- Networking support --->
    -*- Wireless --->
    <*> Bluetooth subsystem support --->
        [*] Bluetooth Classic (BR/EDR) features
        <M>     RFCOMM protocol support
        <*>     HIDP protocol support
        [*]     Bluetooth High Speed (HS) features
        [*] Bluetooth Low Energy (LE) features
        Bluetooth device drivers --->
            <*> HCI USB driver

Device Drivers --->
    NVME Support --->
        <*> NVM Express block device
    Misc devices --->
        <*> Realtek PCI-E card reader
    I2C support --->
        I2C Hardware Bus support --->
            <*> Intel 82801 (ISH/PCH)
    Network device support --->
        [*] Wireless LAN --->
            [ ] AMDtek devices
            [ ] Atheros/Qualcomm devices
            [ ] Atmel devices
            [ ] Broadcom devices
            [ ] Cisco devices
            [*] Intel devices
            < >     Intel PRO/Wireless 2100 Network Connection
            < >     Intel PRO/Wireless 2200BG and 2915ABG Network Connection
            < >     Intel Wireless WiFi 4965AGN (iwl4965)
            < >     Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)
            <*>     Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
            < >         Intel Wireless WiFi DVM Firmware support
            <M>         Intel Wireless WiFi MVM Firmware support
            [ ] Intersildevices
            [ ] Marvell devices
            [ ] MediaTek devices
            [ ] Ralink devices
            [ ] Realtek devices
            [ ] Redpine Signals Inc devices
            [ ] STMicroelectronics devices
            [ ] Texas Instrument devices
            [ ] ZyDAS devices
            [ ] Quantenna wireless cards support
            < > Aviator/Raytheon 2.4GHz wireless support
            < > Planet WL3501 PCMCIA Cards
            < > Simulated radio testing tool for mac80211
            < > Wireless RNDIS USB support
    -*- Generic Thermal sysfs driver --->
        (0) Emergency poweroff delay in milli-seconds
        [*] Expose thermal sensors as hwmon device
        -*- Enable writable trip points
        Default Thermal governor (step_wise) --->
            (x) step_wise
            ( ) fair_share
            ( ) user_space
            ( ) Power_allocator
        [*] Fair-share thermal governor
        -*- Step_wise thermal governor
        [*] Bang Bang thermal governor
        -*- User_space thermal governor
        [ ] Thermal emulation mode support
        <M> Intel PowerClamp idle injection driver
        <M> X86 package temperature thermal driver
        < > Intel SoCs DTS thermal driver
        ACPI INT340X thermal drivers --->
            <*> ACPI INT340X thermal drivers
        <*> Intel PCH Thermal Reporting Driver
    Multifunction device drivers --->
        <*> Intel Low Power Subsystem support in PCI mode
    <*> Multimedia support --->
        [*] Cameras/video grabbers support
        [*] Media USB Adapters --->
            [*] USB Video Class (UVC)
        [*] Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)
    Graphics support --->
        <*> /dev/agpart (AGP Support) --->
            < > AMD Opteron/Athlon64 on-CPU GART support
            <*> Intel 440LX/BX/GX, I8xx and E7x05 chipset support
            < > SiS chipset support
            < > VIA chipset support
        [ ] Laptop Hybrid Graphics - GPU switching support
        <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
            [*] Enable legacy fbdev support for your modesetting driver
            [ ] Allow to specify an EDID data set instead of probing for it
            < > ATI Radeon
            < > AMD GPU
            < > Nouveau (NVIDIA) cards
            <*> Intel 8xx/9xx/G3x/G4x/HD Graphics
            -*- Backlight & LCD device support --->
            [ ] Bootup logo ---
    <*> Sound card support --->
        <*> Advanced Linux Sound Architecture --->
            [*] PCI sound devices --->
            HD-Audio --->
                <*> HD Audio PCI
                <*> Build Realtek HD-audio codec support
                -*- Enable generic HD-audio codec parser
                (0) Default time-out for HD-audio power-save mode
    HID support --->
        -*- HID bus support
        [*]     Battery level reporting for HID devices
                Special HID drivers --->
                    < > DISABLE ALL UNNEEDED DEVICES
                    <*> HID Multitouch panels
            (2048) Pre-allocated buffer size for HD-audio driver
    [*] USB support --->
        <*> xHCI HCD (USB 3.0) support
        < > EHCI HCD (USB 2.0) support
        < > OHCI HCD (USB 1.1) support
    <*> MMC/SD/SDIO card support --->
        <*> Realtek PCI-E SD/MMC Card Interface Driver
    [*] Generic powercap sysfs driver --->
        <*> Intel RAPL Support

Firmware Drivers --->
    EFI (Extensible Firmware Interface) Support --->
        <*> EFI Variable Support via sysfs

File systems --->
    < > Second extended fs support
    < > The Extended 3 (ext3) filesystem
    <*> The Extended 4 (ext4) filesystem
    < > Reiserfs support
    < > JFS filesystem support
    < > XFS filesystem support
    < > GFS2 file system support
    < > Btrfs filesystem support
    < > NILFS2 file system support
    < > F2FS filesystem support
    < > JFS filesystem support
    DOS/FAT/NT Filesystems --->
        <*> MSDOS fs support
        <*> VFAT (Windows-95) fs support
    Pseudo filesystems --->
        <*> EFI Variable filesystem
    [ ] Miscellaneous filesystems ---
    [*] Network File Systems --->

Gentoo Linux --->
    Support for init systems, system and service managers --->
        [*] OpenRC, runit, and other script based systems and managers
        [*] Systemd