Dell Latitude 14 5495 & Linux (Ubuntu 18.04)
Instructions to boot Linux on the AMD Mobile Ryzen based Dell Latitude 14 5495:
- Connect a bootable Linux USB Device (e.g. Optical Drive, Stick, HDD, etc..)
- Boot
- Rejoice, Linux will run fine
Okay, it was not so easy. I had trouble with getting the UEFI to boot from my USB device (the IODD). The UEFI just ignored the device and booted into Win10 from the internal SATA SSD, even when the SSD and the Win bootloader were both disabled in the boot manager. In the end I added manually the EFI bootloader from the Live-CD to the bootmanager by choosing "Add boot option" (or so) and then navigating to the *.efi boot loader on the device. Then I was able to boot via the boot manager. Afterwards I removed the boot entry. Might be an issue with the IODD.
Update 2018-10-07
Okay, there are more issues:
Boot Medium not found after Linux
This is rather weird, when (re-boot) after using the installed Ubuntu 18.04, the UEFI/BIOS cannot find the boot medium and I have to enter the UEFI setup. Without changing anything, on the next boot, everything is okay again, and the notebook will boot the default UEFI boot entry (which is WIndows). I have no clue what is causing this.
PCIe Power Management Log Entry
Seems that the PCIe Power Management does not only cause issues with audio output, NVMes do not like it, too:
Touchpad scrolling does not always work
Haven't found a real solution for this yet. Sometimes scrolling with two fingers on the touchpad does not work. After a reboot it may (or may not) work again.
Update 2018-12-06
The list grows longer and I renamed this article as booting is no problem, but there are still other issues.
Okay, I tried to do a backup of my windows partition from my installed Ubuntu and a few seconds after pushing over 100MB/s through netcat, the transfer stalled. More precisely, the network connection was dead. Device was up, but nothing went through. In the kernel log I found the entries below. This was reproducible, it also happed in clonezilla, which I tried before and thought the failing connection was a clonezilla issue. Solution or workaround is iommu=soft which was also recommended as alternative workaround for the Lenovo E485 issue. Why can't things just work???
Dec 3 23:27:00 notebook kernel: [ 162.778572] ------------[ cut here ]------------ Dec 3 23:27:00 notebook kernel: [ 162.778604] NETDEV WATCHDOG: enp2s0 (tg3): transmit queue 0 timed out Dec 3 23:27:00 notebook kernel: [ 162.778631] WARNING: CPU: 5 PID: 0 at /build/linux-Y38gIP/linux-4.15.0/net/sched/sch_generic.c:323 dev_watchdog+0x221/0x230 Dec 3 23:27:00 notebook kernel: [ 162.778632] Modules linked in: ccm rfcomm arc4 cmac bnep nls_iso8859_1 snd_hda_codec_realtek dell_laptop joydev snd_hda_codec_hdmi snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm ath10k_pci snd_seq_midi ath10k_core snd_seq_midi_event edac_mce_amd snd_rawmidi btusb ath dell_wmi kvm_amd mac80211 kvm dell_smbios snd_seq irqbypass input_leds hid_multitouch btrtl dcdbas btbcm wmi_bmof sparse_keymap serio_raw btintel dell_wmi_descriptor bluetooth snd_seq_device k10temp snd_t imer ecdh_generic snd cfg80211 soundcore rtsx_pci_ms memstick shpchp ucsi_acpi typec_ucsi typec dell_rbtn dell_smo8800 mac_hid sch_fq_codel parport_pc ppdev lp parport ip_tables x_tables autofs4 xfs libcrc32c algif_skcipher af_alg dm_crypt amdkfd rtsx_pci_sdmmc amd_iommu _v2 crct10dif_pclmul crc32_pclmul Dec 3 23:27:00 notebook kernel: [ 162.778705] ghash_clmulni_intel pcbc amdgpu aesni_intel chash aes_x86_64 i2c_algo_bit crypto_simd ttm glue_helper cryptd drm_kms_helper ahci syscopyarea sysfillrect libahci psmouse sysimgblt fb_sys_fops tg3 drm nvme ptp i2c_piix4 nvme_core rtsx_pci pps_core wmi video i2c_hid hid Dec 3 23:27:00 notebook kernel: [ 162.778735] CPU: 5 PID: 0 Comm: swapper/5 Tainted: G W 4.15.0-42-generic #45-Ubuntu Dec 3 23:27:00 notebook kernel: [ 162.778737] Hardware name: Dell Inc. Latitude 5495/09H2MJ, BIOS 1.2.3 06/20/2018 Dec 3 23:27:00 notebook kernel: [ 162.778740] RIP: 0010:dev_watchdog+0x221/0x230 Dec 3 23:27:00 notebook kernel: [ 162.778742] RSP: 0018:ffff88719f743e58 EFLAGS: 00010286 Dec 3 23:27:00 notebook kernel: [ 162.778745] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000 Dec 3 23:27:00 notebook kernel: [ 162.778746] RDX: 0000000000040400 RSI: 00000000000000f6 RDI: 0000000000000300 Dec 3 23:27:00 notebook kernel: [ 162.778748] RBP: ffff88719f743e88 R08: 0000000000000001 R09: 0000000000000458 Dec 3 23:27:00 notebook kernel: [ 162.778749] R10: ffff88719f743ee0 R11: 0000000000000000 R12: 0000000000000005 Dec 3 23:27:00 notebook kernel: [ 162.778751] R13: ffff88719d0cc000 R14: ffff88719d0cc478 R15: ffff88719d0c1580 Dec 3 23:27:00 notebook kernel: [ 162.778753] FS: 0000000000000000(0000) GS:ffff88719f740000(0000) knlGS:0000000000000000 Dec 3 23:27:00 notebook kernel: [ 162.778755] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Dec 3 23:27:00 notebook kernel: [ 162.778756] CR2: 00005556bcadd018 CR3: 000000041952c000 CR4: 00000000003406e0 Dec 3 23:27:00 notebook kernel: [ 162.778758] Call Trace: Dec 3 23:27:00 notebook kernel: [ 162.778761] <IRQ> Dec 3 23:27:00 notebook kernel: [ 162.778767] ? dev_deactivate_queue.constprop.33+0x60/0x60 Dec 3 23:27:00 notebook kernel: [ 162.778773] call_timer_fn+0x30/0x130 Dec 3 23:27:00 notebook kernel: [ 162.778775] run_timer_softirq+0x3fb/0x450 Dec 3 23:27:00 notebook kernel: [ 162.778779] ? ktime_get+0x43/0xa0 Dec 3 23:27:00 notebook kernel: [ 162.778783] ? lapic_next_event+0x20/0x30 Dec 3 23:27:00 notebook kernel: [ 162.778787] __do_softirq+0xe4/0x2bb Dec 3 23:27:00 notebook kernel: [ 162.778792] irq_exit+0xb8/0xc0 Dec 3 23:27:00 notebook kernel: [ 162.778794] smp_apic_timer_interrupt+0x79/0x130 Dec 3 23:27:00 notebook kernel: [ 162.778797] apic_timer_interrupt+0x84/0x90 Dec 3 23:27:00 notebook kernel: [ 162.778798] </IRQ> Dec 3 23:27:00 notebook kernel: [ 162.778804] RIP: 0010:cpuidle_enter_state+0xa7/0x2f0 Dec 3 23:27:00 notebook kernel: [ 162.778805] RSP: 0018:ffff95c50196be68 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff11 Dec 3 23:27:00 notebook kernel: [ 162.778808] RAX: ffff88719f762880 RBX: 00000025e65b82c5 RCX: 000000000000001f Dec 3 23:27:00 notebook kernel: [ 162.778809] RDX: 00000025e65b82c5 RSI: fffffff86bc6ac80 RDI: 0000000000000000 Dec 3 23:27:00 notebook kernel: [ 162.778810] RBP: ffff95c50196bea8 R08: 00000000000b5a00 R09: 00000000000f13ac Dec 3 23:27:00 notebook kernel: [ 162.778812] R10: ffff95c50196be38 R11: 00000000000b3abe R12: ffff88719cdf5800 Dec 3 23:27:00 notebook kernel: [ 162.778813] R13: 0000000000000002 R14: ffffffffb17806f8 R15: 0000000000000000 Dec 3 23:27:00 notebook kernel: [ 162.778817] ? cpuidle_enter_state+0x97/0x2f0 Dec 3 23:27:00 notebook kernel: [ 162.778820] cpuidle_enter+0x17/0x20 Dec 3 23:27:00 notebook kernel: [ 162.778824] call_cpuidle+0x23/0x40 Dec 3 23:27:00 notebook kernel: [ 162.778827] do_idle+0x18c/0x1f0 Dec 3 23:27:00 notebook kernel: [ 162.778829] cpu_startup_entry+0x73/0x80 Dec 3 23:27:00 notebook kernel: [ 162.778832] start_secondary+0x1ab/0x200 Dec 3 23:27:00 notebook kernel: [ 162.778836] secondary_startup_64+0xa5/0xb0 Dec 3 23:27:00 notebook kernel: [ 162.778838] Code: 38 00 49 63 4e e8 eb 92 4c 89 ef c6 05 b9 d7 d8 00 01 e8 83 35 fd ff 89 d9 48 89 c2 4c 89 ee 48 c7 c7 f8 98 39 b1 e8 df 95 80 ff <0f> 0b eb c0 90 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 Dec 3 23:27:00 notebook kernel: [ 162.778880] ---[ end trace 6b2996ceccee82db ]--- Dec 3 23:27:00 notebook kernel: [ 162.778887] tg3 0000:02:00.0 enp2s0: transmit timed out, resetting Dec 3 23:27:00 notebook kernel: [ 165.372272] tg3 0000:02:00.0 enp2s0: 0x00000000: 0x168714e4, 0x20100406, 0x02000010, 0x00000000 Dec 3 23:27:00 notebook kernel: [ 165.372285] tg3 0000:02:00.0 enp2s0: 0x00000010: 0xe022000c, 0x00000000, 0xe021000c, 0x00000000 Dec 3 23:27:00 notebook kernel: [ 165.372291] tg3 0000:02:00.0 enp2s0: 0x00000020: 0xe020000c, 0x00000000, 0x00000000, 0x08141028 Dec 3 23:27:00 notebook kernel: [ 165.372297] tg3 0000:02:00.0 enp2s0: 0x00000030: 0x00000000, 0x00000048, 0x00000000, 0x000001ff Dec 3 23:27:00 notebook kernel: [ 165.372302] tg3 0000:02:00.0 enp2s0: 0x00000040: 0x00000000, 0xea000000, 0xc8035001, 0x16002008 Dec 3 23:27:00 notebook kernel: [ 165.372308] tg3 0000:02:00.0 enp2s0: 0x00000050: 0x00005803, 0x00000000, 0x0086a005, 0x00000000 Dec 3 23:27:00 notebook kernel: [ 165.372313] tg3 0000:02:00.0 enp2s0: 0x00000060: 0x00000000, 0x00000000, 0xf1000298, 0x01f802d1 [... 1000s of lines...]
Also in the news: VIDEO_TDR_FAILURE BSODs in Windows while browsing the internet with a chromium based browser.. Given enough time all devices become terrible..
Comments
Re: Getting Linux to boot on Dell Latitude 14 5495
I have installed Gentoo on the Latitude 5495 which I got from work. I summarized my experience here:
https://wiki.gentoo.org/wiki/Dell_Latitude_5495 (still a bit work in progress)
Messing up the boot order seems to be a common problem with Dell laptops after changes to the internal storage.
Re: Getting Linux to boot on Dell Latitude 14 5495
Thanks for the comment and the wiki entry. I can confirm some of your findings as I saw the same issues. The Touchpad issues seems to be random.AFAIR sometimes it works.
For the boot menu issue, after replacing the SATA(!) M2 with a real NVMe, cloning the original installation to this NVME and installing Linux I haven't changed anything. Still I have the problem, Reboot from Linux -> No bootloader found. Shutting down from Linux and then power up the notebook No issue is found, both bootloaders are bootable.
Re: Getting Linux to boot on Dell Latitude 14 5495
Ok, I now found out why the touchpad never worked for me. And maybe also why it works only sometimes for you.
To access this touchpad at all, an AMD MP2 I2C driver which is not in mainline yet is required. Ubuntu has patched their kernel with this driver. Gentoo has not.
But Ubuntu are shipping a fairly old version of the patch, which has problems with multiple I2C buses ("randomly fail about half of the time"[1] sounds familiar?)
What will probably make it work is patching the kernel with the latest version of the AMD MP2 I2C driver[2]. I will give it a try next week.
[1] https://bugs.launchpad.net/ubuntu/+source/linux-oem/+bug/1773940 comment 10
[2] https://lore.kernel.org/patchwork/project/lkml/list/?submitter=24972
Re: Getting Linux to boot on Dell Latitude 14 5495
Thanks for your analysis. I will have a look at it when I have time. :-(
Re: Getting Linux to boot on Dell Latitude 14 5495
It seems that some more tinkering is necessary. Affter applying the latest AMD MP2 I2C patch, I get this:
[ 29.866608] i2c_amd_mp2: AMD(R) PCI-E MP2 I2C Controller Driver Version: 1.0
[ 29.866611] i2c_amd_mp2 0000:04:00.7: MP2 device found [1022:15e6] (rev 0)
[ 29.866623] i2c_amd_mp2 0000:04:00.7: enabling device (0000 -> 0002)
[ 29.866753] i2c_amd_mp2 0000:04:00.7: MP2 device registered.
[ 29.869498] smo8800 SMO8810:00: failed to obtain IRQ
[ 29.869560] smo8800: probe of SMO8810:00 failed with error -22
[ 29.876200] i2c_hid i2c-DELL0814:00: HID over i2c has not been provided an Int IRQ
[ 29.876754] i2c_hid: probe of i2c-DELL0814:00 failed with error -22
Some casual googling suggests that this can be caused by broken ACPI DSDT. Question is, how did this ever work on Ubuntu? I will try older versions of the patch and/or check what else is different between Ubuntu and mainline kernel.
Re: Getting Linux to boot on Dell Latitude 14 5495
Just booted Ubuntu, scrolling with the touchpad works fine, Zooming does not work, but I am not sure if that ever worked with Linux. My old Notebook still had a scroll bar on the side of the touchpad, so I am used to zoom with Ctrl-"Mouse Wheel".
Kernel is 4.15.0-36-generic, haven't updated in a while. How do your i2c log entries and detected busses look like?
[ 1.829003] i2c_hid i2c-DELL0814:00: i2c-DELL0814:00 supply vdd not found, using dummy regulator
[ 2.391485] Modules linked in: amdkfd rtsx_pci_sdmmc amd_iommu_v2 crct10dif_pclmul crc32_pclmul amdgpu ghash_clmulni_intel pcbc chash i2c_algo_bit ttm drm_kms_helper aesni_intel aes_x86_64 syscopyarea crypto_simd sysfillrect glue_helper sysimgblt cryptd fb_sys_fops nvme psmouse ahci drm tg3 libahci i2c_piix4 ptp rtsx_pci nvme_core pps_core wmi video i2c_hid hid
[ 20.484233] input: DELL0814:00 044E:120A Mouse as /devices/platform/AMDI0011:00/i2c-0/i2c-DELL0814:00/0018:044E:120A.0001/input/input9
[ 20.484331] input: DELL0814:00 044E:120A Touchpad as /devices/platform/AMDI0011:00/i2c-0/i2c-DELL0814:00/0018:044E:120A.0001/input/input10
[ 20.484424] input: DELL0814:00 044E:120A UNKNOWN as /devices/platform/AMDI0011:00/i2c-0/i2c-DELL0814:00/0018:044E:120A.0001/input/input11
[ 20.484510] input: DELL0814:00 044E:120A UNKNOWN as /devices/platform/AMDI0011:00/i2c-0/i2c-DELL0814:00/0018:044E:120A.0001/input/input12
[ 20.484584] input: DELL0814:00 044E:120A UNKNOWN as /devices/platform/AMDI0011:00/i2c-0/i2c-DELL0814:00/0018:044E:120A.0001/input/input13
[ 20.484659] hid-multitouch 0018:044E:120A.0001: input,hidraw0: I2C HID v1.00 Mouse [DELL0814:00 044E:120A] on i2c-DELL0814:00
[ 34.421983] crct10dif_pclmul crc32_pclmul amdgpu ghash_clmulni_intel pcbc chash i2c_algo_bit ttm drm_kms_helper aesni_intel aes_x86_64 syscopyarea crypto_simd sysfillrect glue_helper sysimgblt cryptd fb_sys_fops nvme psmouse ahci drm tg3 libahci i2c_piix4 ptp rtsx_pci nvme_core pps_core wmi video i2c_hid hid
[ 122.173862] i2c_hid i2c-DELL0814:00: i2c_hid_get_input: incomplete report (30/2)
i2cdetect -l
i2c-3 smbus SMBus PIIX4 adapter port 3 at 0b00 SMBus adapter
i2c-1 smbus SMBus PIIX4 adapter port 0 at 0b00 SMBus adapter
i2c-11 i2c dmdc I2C adapter
i2c-8 i2c AMDGPU DM i2c hw bus 2 I2C adapter
i2c-6 i2c dmdc I2C adapter
i2c-4 smbus SMBus PIIX4 adapter port 4 at 0b00 SMBus adapter
i2c-2 smbus SMBus PIIX4 adapter port 2 at 0b00 SMBus adapter
i2c-0 i2c i2c_dev-i2c-platform I2C adapter
i2c-9 i2c dmdc I2C adapter
i2c-10 i2c AMDGPU DM i2c hw bus 3 I2C adapter
i2c-7 i2c AMDGPU DM i2c hw bus 1 I2C adapter
i2c-5 i2c AMDGPU DM i2c hw bus 0 I2C adapter
Re: Getting Linux to boot on Dell Latitude 14 5495
I found the issue, it was pinctrl_amd driver necessary to load first. Ubuntu has it built-in so it gets loaded first always. I reported a bug on github: https://github.com/Syniurge/i2c-amd-mp2/issues/3
Now the touchpad works for me.
Add new comment