Installing Linux on the Asus GM501GS-XS74:
If you are dual booting, install Windows first, and partition from there with a tool such as Minitool. You'll only need two partitions, one for root and optionally, a small one for swap (say, 8GB). Partition them as appropriate, and when done, reboot into the UEFI menu and ensure that:
(a). Secure boot is disabled (otherwise you won't be able to load up proprietary drivers needed for the Nvidia GPU).
(b). Confirm that you're booting in UEFI mode ONLY. This is the default. CSM should remain disabled. Here's why.
(c). Ensure that SATA mode in the BIOS is set strictly to AHCI. RAID mode will NOT work with Linux.
The standard Ubuntu 18.04LTS ISOs will not work, for two reasons:
The desktop edition acts up badly with both the touchpad and external mice, so even if you get to load the live environment (after blacklisting the nouveau driver via the pre-boot grub option
blacklist=nouveau), you won't be able to proceed with the next steps such as guided partitioning, etc.
The Ubuntu server image offered on the main download page disallows the use of existing partitions on your SSDs, which could be detrimental if you're dual booting. And this is where the alternate ISO comes in. Fetch it from here: http://cdimage.ubuntu.com/releases/18.04/release/
Then, create a bootable flash drive using etcher.io . If you can get Rufus to work with your flash drives (I had no such luck), you can use that too. When done, leave the USB drive plugged in and reboot to your UEFI (firmware settings). The shortcut is F2. Therein, go to the exit menu, boot override, and select your flash drive's partition with Linux on it. It will be listed as
At this point, you'll also want to ensure that you have a plugged in Ethernet cable at the ready. The installer will be able to configure it as appropriate (select DHCP, its' the fastest option when you get to that point).
Start the Ubuntu server installer as you would, and take note of the custom partitioning settings:
(a). For the partition designated for root, set its' file-system as ext4, mount point
(b). The swap partition will be automatically recognized, if you so chose to have one.
(c). The ESP, where the UEFI-based installation boots from, will also be automatically detected and mounted as needed. This is that 100MB~ partition that the Windows installer creates and is marked as 'SYSTEM RESERVED'. Read more about it here.
The rest should be pretty straight-forward, even if you're new to Linux. The guided installer is driven primarily by keyboard input, needs no mice and you won't run into any modesetting issues. Use this as a refresher.
When done, reboot. You'll notice that grub will be the default boot manager. Go back to Linux so we can finish setting up the desktop.
When done booting, log in (with the username and password you set up earlier) and install the latest updates first. Remember that ethernet cable you had to plug in? That interface was configured by the installer, and its' configuration remains persistent , thanks to a new abstraction layer in 18.04LTS named netplan.io.
Now, update your system:
sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade
Next, install the Ubuntu desktop via tasksel:
sudo tasksel install ubuntu-desktop
You can see the list of alternate environments by running:
For example, if you want KDE, you could run:
sudo tasksel install kubuntu-desktop
When you're done with that step, proceed to the next bit: The drivers for your GPUs.
Next, add the NVIDIA proprietary driver repository and Oibaf's PPAs as shown:
sudo add-apt-repository ppa:graphics-drivers/ppa -y && sudo add-apt-repository ppa:oibaf/graphics-drivers
Then update your software sources:
sudo apt-get update
Followed by an upgrade (to deploy the latest FOSS GPU drivers for your Intel card):
sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade
And now, install the latest NVIDIA driver (R415 as of the time of writing):
sudo apt-get -y install nvidia-driver-415
For Conky, install the
sudo apt install conky-all
When done, make the following changes to your grub configuration file, ensuring that the line below looks exactly as shown (under
/etc/default/grub, use your preferred editor):
GRUB_CMDLINE_LINUX_DEFAULT="acpi_osi=! acpi_osi='Windows 2017.2' blacklist=nouveau elevator=deadline drm.debug=0xe quiet splash i8042.reset"
The important options there are as follows:
acpi_osisetting ensures that you won't hang on reboot, or get stuck with
lspci. It compensates for how Linux handles ACPI table parsing on these newer models.
Blacklist nouveau here because that module, if loaded, will lock up your system.
elevator=deadlineoption selects the deadline scheduler for all block devices on the system. Ideal for SSDs.
drm.debug=0xeis important for catching any issues with Direct Rendering early on in the kernel log (dmesg). You can safely omit it.
i8042.resetoption will allow the touchpad to be detected.
Now, generate new grub configs by running:
And reboot at this stage.
When you boot up, you'll be greeted by the fruits of your labor as shown below: A clean, minimalist Ubuntu desktop that you can tweak to your heart's content.
So far, no show stoppers encountered so far.
Here's the boot log with the ACPI
_OSI override above enabled:
[ 0.314578] ACPI: Core revision 20180810 [ 0.781723] PM: Registering ACPI NVS region [mem 0x6a42c000-0x6a541fff] (1138688 bytes) [ 0.784222] ACPI: bus type PCI registered [ 0.784222] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5 [ 0.785058] ACPI: Disabled all _OSI OS vendors [ 0.785058] ACPI: Added _OSI(Module Device) [ 0.785058] ACPI: Added _OSI(Processor Device) [ 0.785058] ACPI: Added _OSI(3.0 _SCP Extensions) [ 0.785058] ACPI: Added _OSI(Processor Aggregator Device) [ 0.785058] ACPI: Added _OSI(Linux-Dell-Video) [ 0.785058] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio) [ 0.785058] ACPI: Added _OSI(Windows 2017.2) [ 0.785058] ACPI: EC: EC started [ 0.785058] ACPI: EC: interrupt blocked [ 0.785058] ACPI: \: Used as first EC [ 0.785058] ACPI: \: GPE=0x27, EC_CMD/EC_SC=0x66, EC_DATA=0x62 [ 0.785058] ACPI: \: Used as boot ECDT EC to handle transactions [ 0.861884] ACPI: 11 ACPI AML tables successfully acquired and loaded [ 0.892135] ACPI: Dynamic OEM Table Load: [ 0.892142] ACPI: SSDT 0xFFFF8CB229AF0000 0005BE (v02 PmRef Cpu0Ist 00003000 INTL 20160527) [ 0.892914] ACPI: \_SB_.PR00: _OSC native thermal LVT Acked [ 0.895370] ACPI: Dynamic OEM Table Load: [ 0.895376] ACPI: SSDT 0xFFFF8CB2290C1400 000400 (v02 PmRef Cpu0Cst 00003001 INTL 20160527) [ 0.896663] ACPI: Dynamic OEM Table Load: [ 0.896672] ACPI: SSDT 0xFFFF8CB229197000 000EF1 (v02 PmRef ApIst 00003000 INTL 20160527) [ 0.898522] ACPI: Dynamic OEM Table Load: [ 0.898528] ACPI: SSDT 0xFFFF8CB2290C4800 00030A (v02 PmRef ApCst 00003000 INTL 20160527) [ 0.901261] ACPI: Interpreter enabled [ 0.901313] ACPI: (supports S0 S3 S4 S5) [ 0.901314] ACPI: Using IOAPIC for interrupt routing [ 0.901366] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug [ 0.903309] ACPI: Enabled 9 GPEs in block 00 to 7F [ 0.911265] ACPI: Power Resource [PG00] (on) [ 0.921746] ACPI: Power Resource [USBC] (on) [ 0.926563] ACPI: Power Resource [V0PR] (on) [ 0.926846] ACPI: Power Resource [V1PR] (on) [ 0.927121] ACPI: Power Resource [V2PR] (on) [ 0.933970] ACPI: Power Resource [WRST] (on) [ 0.943034] ACPI: Power Resource [PIN] (off) [ 0.943683] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe]) [ 0.978417] ACPI: PCI Interrupt Link [LNKA] (IRQs) *0 [ 0.978469] ACPI: PCI Interrupt Link [LNKB] (IRQs) *1 [ 0.978519] ACPI: PCI Interrupt Link [LNKC] (IRQs) *0 [ 0.978568] ACPI: PCI Interrupt Link [LNKD] (IRQs) *0 [ 0.978617] ACPI: PCI Interrupt Link [LNKE] (IRQs) *0 [ 0.978666] ACPI: PCI Interrupt Link [LNKF] (IRQs) *0 [ 0.978715] ACPI: PCI Interrupt Link [LNKG] (IRQs) *0 [ 0.978763] ACPI: PCI Interrupt Link [LNKH] (IRQs) *0 [ 0.983313] ACPI: EC: interrupt unblocked [ 0.983313] ACPI: EC: event unblocked [ 0.983313] ACPI: \_SB_.PCI0.LPCB.EC0_: GPE=0x27, EC_CMD/EC_SC=0x66, EC_DATA=0x62 [ 0.983313] ACPI: \_SB_.PCI0.LPCB.EC0_: Used as boot DSDT EC to handle transactions and events [ 0.983505] ACPI: bus type USB registered [ 1.003596] PCI: Using ACPI for IRQ routing [ 1.091155] pnp: PnP ACPI init [ 1.091453] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active) [ 1.091477] pnp 00:01: Plug and Play ACPI device, IDs PNP0b00 (active) [ 1.091615] system 00:02: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active) [ 1.091839] pnp 00:03: Plug and Play ACPI device, IDs ATK3001 PNP030b (active) [ 1.092119] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active) [ 1.092456] system 00:05: Plug and Play ACPI device, IDs PNP0c02 (active) [ 1.092898] system 00:06: Plug and Play ACPI device, IDs PNP0c02 (active) [ 1.094501] system 00:07: Plug and Play ACPI device, IDs PNP0c02 (active) [ 1.095812] pnp: PnP ACPI: found 8 devices [ 2.131521] ACPI: AC Adapter [AC0] (on-line) [ 2.131607] ACPI: Lid Switch [LID] [ 2.131670] ACPI: Sleep Button [SLPB] [ 2.131702] ACPI: Power Button [PWRB] [ 2.131742] ACPI: Power Button [PWRF] [ 2.133359] ACPI: Thermal Zone [THRM] (52 C) [ 2.143621] battery: ACPI: Battery Slot [BAT0] (battery present) [ 3.117448] [drm:intel_opregion_setup [i915]] Public ACPI methods supported [ 3.119365] [drm:intel_opregion_setup [i915]] Found valid VBT in ACPI OpRegion (Mailbox #4) [ 3.157152] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no) [ 3.157531] ACPI: Video Device [PEGP] (multi-head: no rom: yes post: no) [ 3.361558] ata1.00: ACPI cmd ef/10:06:00:00:00:00 (SET FEATURES) succeeded [ 3.361560] ata1.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out [ 3.361561] ata1.00: ACPI cmd b1/c1:00:00:00:00:00 (DEVICE CONFIGURATION OVERLAY) filtered out [ 3.367131] ata1.00: ACPI cmd ef/10:06:00:00:00:00 (SET FEATURES) succeeded [ 3.367133] ata1.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out [ 3.367134] ata1.00: ACPI cmd b1/c1:00:00:00:00:00 (DEVICE CONFIGURATION OVERLAY) filtered out [ 7.707528] ACPI Warning: \_SB.IETM._TRT: Return Package has no elements (empty) (20180810/nsprepkg-96) [ 7.744101] ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20180810/nsarguments-66)
Continue on to system monitoring with conky below.
See the conky script below. Note that you'll need to set hddtemp in daemon mode if you want HDD temps in the app:
For hard drive temperature, ensure that hddtemp is running as a daemon. You can do that by editing
/etc/default/hddtemp and ensuring that
RUN_DAEMON is set to
TRUE. When done, restart the hddtemp unit service by:
sudo systemctl restart hddtemp.service
On autostart: https://wiki.archlinux.org/index.php/conky#Autostart