Skip to content

Instantly share code, notes, and snippets.

@stoneage7
Last active May 14, 2021 13:52
Show Gist options
  • Save stoneage7/25cd5a11f3e78c8c1396881aa9ffa016 to your computer and use it in GitHub Desktop.
Save stoneage7/25cd5a11f3e78c8c1396881aa9ffa016 to your computer and use it in GitHub Desktop.

Linux on Dell Inspiron 11 (3147)

This is a guide to resolve the following issues with Linux on Dell Inspiron 11 3147:

  • suspend/resume issues (cannot go to sleep, cannot wake up from sleep, reboots instead of resume)
  • freezes (gpu freezes mostly when playing video)

I'm using Fedora, but the guide should work on every distro. Adapt as necessary.

Hardware

Output of lspci:

00:00.0 Host bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register (rev 0e)
00:02.0 VGA compatible controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)
00:13.0 SATA controller: Intel Corporation Atom Processor E3800 Series SATA AHCI Controller (rev 0e)
00:14.0 USB controller: Intel Corporation Atom Processor Z36xxx/Z37xxx, Celeron N2000 Series USB xHCI (rev 0e)
00:1a.0 Encryption controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine (rev 0e)
00:1b.0 Audio device: Intel Corporation Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller (rev 0e)
00:1c.0 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 1 (rev 0e)
00:1f.0 ISA bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Power Control Unit (rev 0e)
00:1f.3 SMBus: Intel Corporation Atom Processor E3800 Series SMBus Controller (rev 0e)
01:00.0 Network controller: Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter (rev 01)

Output of /proc/cpuinfo (abridged):

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 55
model name	: Intel(R) Pentium(R) CPU  N3530  @ 2.16GHz
stepping	: 8
microcode	: 0x829
cpu MHz		: 1467.273
cache size	: 1024 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 4
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer rdrand lahf_lm 3dnowprefetch epb pti tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat
bugs		: cpu_meltdown spectre_v1 spectre_v2
bogomips	: 4331.60
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:
[cut]

Suspend/Resume

The solution I found here is to flash BIOS version A07. This is by my knowledge the most recent version that works without issues.

A word of warning: Flashing this BIOS version is insecure as it does not contain microcode updates for spectre/meltdown vulnerabilities.

You will need to follow Dell's guide on updating BIOS on Linux, section "Creating a USB Bootable Storage Device Using FreeDOS (Legacy Systems)". The 3147 needs to boot to FreeDOS and run the BIOS .exe from there. Here is a simplified step-by-step:

  • Download Dell Inspiron 3147 BIOS A07
  • Install unetbootin
  • Run unetbootin and install FreeDos 1.0 onto a flash drive
  • Copy the downloaded file 3147A07.exe onto the same flash drive.
  • (TODO: I think there is a step here that's needed to boot freedos from the flash stick as it doesn't support usb3. Either this was flipping a switch in bios or it only works from certain usb ports of the three the machine has).
  • Boot the FreeDos stick and run 3147A07.exe

Video Freezes

This is the infamout bug in Bay Trail Intels when cstates (power saving states) are enabled. The most straightforward solution here is to set maximum cstate to 1.

  • Open file /etc/default/grub and look for the line starting GRUB_CMDLINE_LINUX=.
  • Append intel_idle.max_cstate=1 as the last parameter between the quotes.
  • Regenerate grub's configuration file. This step can be different on each distro. On Fedora, run grub2-mkconfig -o /boot/grub2/grub.cfg. On others distros consult google.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment