====== Gigabyte Aero 15X ======
* Slim, light and yet powerful and fully equipped 15" laptop.
* Targeting the gaming laptops market, but very suitable as a powerful workstation.
* Ship date: October 2017.
* [[https://www.gigabyte.com/Laptop/AERO-15X|Specifications on Gigabyte website]].
* [[https://www.notebookcheck.net/Gigabyte-Aero-15X-i7-7700HQ-GTX-1070-Max-Q-FHD-Laptop-Review.262370.0.html|Review by Notebookcheck; rated 87%]].
===== Quick summary =====
^ Device or feature ^ Status ^ Min. %%FreeBSD%% version ^ Comments ^
| Boot using BIOS | Not tested | | |
| Boot using UEFI | Works | | |
| [[#X.Org_configuration_for_Intel_GPU|Intel GPU (X.Org)]] | Works | 12-CURRENT | Needs ''%%drm-next-kmod%%'' or ''%%drm-devel-kmod%%'' port |
| NVIDIA GPU (X.Org) | Works | | |
| Toshiba NVMe SSD | Works | | Included with the laptop |
| Samsung 960 PRO NVMe SSD | Works | | Added to the extra m.2 slot |
| Network: Ethernet | Works | | Using ''%%re(4)%%'' |
| [[#Wifi|Network: Wifi]] | Works | | Using ''%%iwm(4)%%'' |
| [[#Sound|Sound]] | Works | | Needs ''%%device.hints(5)%%'' configuration |
| [[#Touchpad|Touchpad]] | Works | 11.1-STABLE, 12-CURRENT | |
| Suspend | Works | | Only when using the Intel GPU |
| Resume | Works | | Only when using the Intel GPU |
| Brightness ctrl. keys | Does not work | | |
===== Hardware specifications =====
==== Summary ====
* Intel Core i7-7700HQ (7th generation)
* 16 %%GiB%% DDR4-2400 (one slot occupied + one free slot)
* 15.6" %%FullHD%% (1920x1080) display
* GPUs:
* Integrated GPU: Intel HD Graphics 630 (Kaby Lake)
* Dedicated GPU: NVIDIA %%GeForce%% GTX 1070 %%MaxQ%% dedicated GPU (Optimus enabled)
* Storage:
* Toshiba NVMe 512 GB (THNSN5512GPU7)
* One extra free m.2 slot
* Network:
* Ethernet: %%RealTek%% 8168/8111 (''%%re(4)%%'')
* Wifi: Intel Dual Band Wireless AC 8265 (''%%iwm(4)%%'')
* Elantech touchpad
There are two display output connectors:
* HDMI (2160p at 60 Hz with HDMI 2.0 or 2160p at 30 Hz with HDMI 1.3)
* miniDisplayPort (2160p at 60 Hz with %%DisplayPort%% 1.2)
The internal display is connected to the Intel GPU through eDP. Both output connectors are **connected to the NVIDIA GPU**.
==== dmesg(8) and friends ====
%%JeanS%%ébastienPédron's laptop:
* %%FreeBSD%% 12-CURRENT installed on the Samsung 960 PRO SSD; it also works with the included Toshiba NVMe SSD.
* Dual booting with Windows 10.
* ''%%EVDEV_SUPPORT%%'' enabled in the kernel.
* X.Org server configured with ''%%xf86-video-modesetting%%'' and ''%%xf86-input-libinput%%''.
* {{laptops/gigabyte_aero_15x/dumbbell-acpidump.out.txt?linkonly|acpidump -dt}}
* {{laptops/gigabyte_aero_15x/dumbbell-devinfo.out.txt?linkonly|devinfo -v}}
* {{laptops/gigabyte_aero_15x/dumbbell-dmesg.out.txt?linkonly|dmesg}}
* {{laptops/gigabyte_aero_15x/dumbbell-dmidecode.out.txt?linkonly|dmidecode}}
* {{laptops/gigabyte_aero_15x/dumbbell-pciconf.out.txt?linkonly|pciconf -lv}}
* {{laptops/gigabyte_aero_15x/dumbbell-xorg.0.log?linkonly|Xorg.0.log}}
===== Configuration and tweaks =====
==== Wifi ====
The driver to use is ''%%iwm(4)%%''. You can load the driver from ''%%/etc/rc.onf%%'':
kld_list="iwm8265fw if_iwm"
==== Sound ====
Out-of-the-box, sound only goes to the headphones jack, even if there is nothing plugged into it, i.e. nothing comes out of the builtin speakers.
To enable the speakers, ''%%snd_hda(4)%%'' pins must be configured using ''%%device.hints(5)%%'':
# In /boot/device.hints or /boot/loader.conf.
hint.hdaa.0.nid20.config="as=1" # Speakers
hint.hdaa.0.nid33.config="as=1 seq=15" # Headphones
Node IDs ''%%nid20%%'' and ''%%nid33%%'' can be deduced from the output of {{laptops/gigabyte_aero_15x/dumbbell-sysctl-dev.hdaa.0.txt?linkonly|sysctl dev.hdaa.0}}: look for e.g. ''%%device=Headphones conn=Jack%%'' and ''%%device=Speaker conn=Fixed%%'' in this output.
**No sound on speakers after rebooting from Windows**
After rebooting from Windows, there is no sound on the speakers, even with the correct pin reconfiguration. Only a cold boot fixes the issue.
==== Touchpad ====
This is an Elantech multitouch-capable clickpad supported by %%FreeBSD%% 11.1-STABLE+. To be specific, it needs the following patches to work properly:
* [[https://svnweb.freebsd.org/base?view=revision&revision=328190|Do not check for out-of-sync packets]]
* [[https://svnweb.freebsd.org/base?view=revision&revision=328191|Do not erroneously detect trackpoint packets]] (only useful if you enable ''%%EVDEV_SUPPORT%%'')
The touchpad needs to be explicitely enabled, so add the following line to ''%%/boot/loader.conf%%'':
# In /boot/loader.conf.
hw.psm.elantech_support="1"
==== X.Org configuration for Intel GPU ====
Two drivers are available: ''%%xf86-video-modesetting%%'' (built into ''%%xorg-server%%'') and ''%%xf86-video-intel%%''.
=== xf86-video-modesetting ===
- Install ''%%drm-next-kmod%%'' to get the Intel GPU kernel driver.
- Load it from ''%%/etc/rc.conf%%'':
kld_list="/boot/modules/i915kms.ko"
- Configure X.Org with the following snippet to put in ''%%/etc/X11/xorg.conf.d/i915.conf%%'':
Section "Device"
Identifier "Card0"
Driver "modesetting"
BusID "PCI:0:2:0"
Option "AccelMethod" "glamor"
EndSection
Section "Module"
Load "dri2"
Load "glamoregl"
EndSection
Output from ''%%xrandr(1)%%'':
$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
eDP-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
1920x1080 60.01*+
1400x1050 59.98
1280x1024 60.02
1280x960 60.00
1024x768 60.04 60.00
960x720 60.00
928x696 60.05
896x672 60.01
800x600 60.00 60.32 56.25
700x525 59.98
640x512 60.02
640x480 60.00 59.94
512x384 60.00
400x300 60.32 56.34
320x240 60.05
DP-1 disconnected (normal left inverted right x axis y axis)
=== xf86-video-intel ===
(to be described)
==== X.Org configuration for NVIDIA GPU ====
The NVIDIA %%GeForce%% GTX 1070 %%MaxQ%% GPU is supported by the ''%%x11/nvidia-driver%%'' port. This port provides a kernel module (''%%nvidia-modeset.ko%%''), an X.Org DDX driver (''%%nvidia%%''), an NVIDIA-specific proprietary %%OpenGL%%/EGL/GLES implementation and a VDPAU backend module.
==== X.Org input with libinput ====
To use ''%%libinput%%'' and ''%%xf86-input-libinput%%'' as the input driver on X.Org:
- Rebuild your kernel with ''%%EVDEV_SUPPORT%%''.
- Enable ''%%evdev%%'' in ''%%/etc/sysctl.conf%%'':
# evdev support.
# bit 0: is set enables sysmouse
# bit 1: is set enables kbdmux
# bit 2: is set enables ums
# bit 3: is set enables atkbd, ukbd
kern.evdev.rcpt_mask=12
- Make sure the patch from [[https://reviews.freebsd.org/D13998|D13998]] is committed.
- Use an X.Org configuration snippet such as {{laptops/gigabyte_aero_15x/dumbbell-xorg.conf.d-inputs.conf?linkonly|/etc/X11/xorg.conf.d/inputs.conf}}. It is probably suboptimal (too many rules) but it works.
==== Battery life ====
%%JeanS%%ébastienPédron says:
Out-of-the-box, I can get between 3h30 and 4 hours of battery life:
Design capacity: 6200 mAh
Last full capacity: 6200 mAh
Technology: secondary (rechargeable)
Design voltage: 15200 mV
Capacity (warn): 620 mAh
Capacity (low): 248 mAh
Low/warn granularity: 62 mAh
Warn/full granularity: 0 mAh
Model number: Aero 15
Serial number:
Type: LI-ION
OEM info: GIGABYTE
State: discharging
Remaining capacity: 88%
Remaining time: 3:26
Present rate: 1604 mA (25461 mW)
Present voltage: 15874 mV
On the go, I don't need the NVIDIA GPU (which drives the external monitor connectors) so I can turn it off. To do that, I use the ''%%sysutils/acpi_call%%'' port and the following command line:
acpi_call -p '\_SB.PCI0.PEG0.PEGP._OFF' -o i
After turning it off, the battery life almost doubles, I get between 6h30 and 7h:
Design capacity: 6200 mAh
Last full capacity: 6200 mAh
Technology: secondary (rechargeable)
Design voltage: 15200 mV
Capacity (warn): 620 mAh
Capacity (low): 248 mAh
Low/warn granularity: 62 mAh
Warn/full granularity: 0 mAh
Model number: Aero 15
Serial number:
Type: LI-ION
OEM info: GIGABYTE
State: discharging
Remaining capacity: 89%
Remaining time: 6:42
Present rate: 828 mA (13304 mW)
Present voltage: 16068 mV
The NVIDIA can even be turned on again without rebooting by using the following command:
acpi_call -p '\_SB.PCI0.PEG0.PEGP._ON' -o i
==== Enabling kernel core dump ====
Beside configuring ''%%dumpdev%%'' and enabling ''%%ddb_enable%%'' in ''%%/etc/rc.conf%%'' as usual, you need to set two sysctls in ''%%/etc/sysctl.conf%%'':
debug.debugger_on_panic=0
dev.drm.skip_ddb=1
After rebooting or setting them manually, you can try to run the following command to verify it's working:
sysctl debug.kdb.panic=1
If everything is fine, you should have a core dump saved during the next boot.
----
{{tag>Laptop}}