「System76 Oryx Pro」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎ドライバー: == OEM software == を挿入)
(→‎Graphics: 一部翻訳)
 
(同じ利用者による、間の3版が非表示)
6行目: 6行目:
   
 
== OEM software ==
 
== OEM software ==
  +
 
 
System76 develops a special distribution (Pop!_OS) for their computers, and it comes with many tweaks and tools to ensure a seamless end-user experience. Arch does not have these out of the box; and unfortunately, sometimes their computers do not work right without them. Thankfully, it is possible to get the same first-class hardware support in Arch Linux that you have in Pop!_OS -- it just takes a little elbow grease.
 
System76 develops a special distribution (Pop!_OS) for their computers, and it comes with many tweaks and tools to ensure a seamless end-user experience. Arch does not have these out of the box; and unfortunately, sometimes their computers do not work right without them. Thankfully, it is possible to get the same first-class hardware support in Arch Linux that you have in Pop!_OS -- it just takes a little elbow grease.
  +
 
 
=== Packages ===
 
=== Packages ===
  +
 
 
All necessary packages can be found in the [[AUR]]. It is recommended to install everything in the list below.
 
All necessary packages can be found in the [[AUR]]. It is recommended to install everything in the list below.
  +
 
 
; Modules
 
; Modules
 
* {{AUR|system76-dkms}}
 
* {{AUR|system76-dkms}}
 
* {{AUR|system76-acpi-dkms}}
 
* {{AUR|system76-acpi-dkms}}
 
* {{AUR|system76-io-dkms}}
 
* {{AUR|system76-io-dkms}}
  +
 
 
; Daemons
 
; Daemons
 
* {{AUR|system76-driver}}
 
* {{AUR|system76-driver}}
 
* {{AUR|system76-power}} <small>(needed for System76 switchable graphics)</small>
 
* {{AUR|system76-power}} <small>(needed for System76 switchable graphics)</small>
 
* {{AUR|system76-firmware-daemon}} <small>(seems to be needed for things like audio to work right)</small>
 
* {{AUR|system76-firmware-daemon}} <small>(seems to be needed for things like audio to work right)</small>
  +
 
 
; Other
 
; Other
 
* {{AUR|system76-firmware}} <small>(required if you want to update your BIOS)</small>
 
* {{AUR|system76-firmware}} <small>(required if you want to update your BIOS)</small>
 
* {{AUR|firmware-manager}} <small>(required if you want to know when there is a BIOS update available)</small>
 
* {{AUR|firmware-manager}} <small>(required if you want to know when there is a BIOS update available)</small>
 
* {{AUR|sys76-kb}} <small>(if you want to change your keyboard's backlight color)</small>
 
* {{AUR|sys76-kb}} <small>(if you want to change your keyboard's backlight color)</small>
  +
 
 
(There are also "-git" versions of many of these packages, if you wish to stay bleeding edge.)
 
(There are also "-git" versions of many of these packages, if you wish to stay bleeding edge.)
  +
 
 
=== Settings ===
 
=== Settings ===
  +
 
 
Once you have installed the above, you will need to tell your computer to use them.
 
Once you have installed the above, you will need to tell your computer to use them.
  +
 
 
==== Services ====
 
==== Services ====
  +
 
 
Enable the following services with {{ic|systemctl enable}}: ([https://www.reddit.com/r/System76/comments/mijm9i/arch_linux_on_system76_laptop_with_switchable/gtcl3o4/?utm_source=share&utm_medium=web2x&context=3 source])
 
Enable the following services with {{ic|systemctl enable}}: ([https://www.reddit.com/r/System76/comments/mijm9i/arch_linux_on_system76_laptop_with_switchable/gtcl3o4/?utm_source=share&utm_medium=web2x&context=3 source])
 
* {{ic|system76}}
 
* {{ic|system76}}
 
* {{ic|system76-firmware-daemon}}
 
* {{ic|system76-firmware-daemon}}
 
* {{ic|system76-power}}
 
* {{ic|system76-power}}
  +
 
 
==== Drivers ====
 
==== Drivers ====
  +
 
 
To make sure all drivers are being loaded correctly, run {{ic|system76-driver-cli}}; this will automatically add necessary rules to {{ic|/etc/modprobe.d}}, and execute {{ic|mkinitcpio}}.
 
To make sure all drivers are being loaded correctly, run {{ic|system76-driver-cli}}; this will automatically add necessary rules to {{ic|/etc/modprobe.d}}, and execute {{ic|mkinitcpio}}.
  +
 
 
{{Note|However, as of 2021-04-06, [https://github.com/pop-os/system76-driver/issues/197 this creates a malformed s76-i915-mkinitcpio.conf file], and a redundant (if you have {{ic|system76-power.conf}}) {{ic|system76-driver_i2c-nvidia-gpu.conf}} file. As such, this step may be skippable, for the time-being.}}
 
{{Note|However, as of 2021-04-06, [https://github.com/pop-os/system76-driver/issues/197 this creates a malformed s76-i915-mkinitcpio.conf file], and a redundant (if you have {{ic|system76-power.conf}}) {{ic|system76-driver_i2c-nvidia-gpu.conf}} file. As such, this step may be skippable, for the time-being.}}
  +
 
 
==== Switchable graphics ====
 
==== Switchable graphics ====
  +
 
 
To enable switchable graphics, run {{ic|system76-power graphics hybrid}} once; and then put {{ic|prime-run}} before every application you want to start with your dGPU. Note that this will only work for applications that use [https://gitlab.freedesktop.org/glvnd/libglvnd GLVND]. ([https://github.com/pop-os/system76-power#readme source])
 
To enable switchable graphics, run {{ic|system76-power graphics hybrid}} once; and then put {{ic|prime-run}} before every application you want to start with your dGPU. Note that this will only work for applications that use [https://gitlab.freedesktop.org/glvnd/libglvnd GLVND]. ([https://github.com/pop-os/system76-power#readme source])
  +
 
 
{{Note|
 
{{Note|
 
* Officially, you need to reboot your device every time you change your switchable graphics setting; but it seems possible to switch to {{ic|compute}} graphics from {{ic|hybrid}} without rebooting.
 
* Officially, you need to reboot your device every time you change your switchable graphics setting; but it seems possible to switch to {{ic|compute}} graphics from {{ic|hybrid}} without rebooting.
 
* Switching from {{ic|hybrid}} to {{ic|integrated}} will display as {{ic|compute}} until you restart. This seems to be intended behavior.  <small>(This note is here because [https://aur.archlinux.org/packages/system76-power/#comment-796800 at least one person] was confused by this.)</small> <small>(There is a GitHub issue to change this [https://github.com/pop-os/system76-power/issues/242 here].)</small>
 
* Switching from {{ic|hybrid}} to {{ic|integrated}} will display as {{ic|compute}} until you restart. This seems to be intended behavior.  <small>(This note is here because [https://aur.archlinux.org/packages/system76-power/#comment-796800 at least one person] was confused by this.)</small> <small>(There is a GitHub issue to change this [https://github.com/pop-os/system76-power/issues/242 here].)</small>
 
}}
 
}}
  +
 
 
To verify whether switchable graphics is working, run {{ic|glxinfo}} and {{ic|prime-run glxinfo}}. These commands should succeed and have different vendors. If the latter command fails, go to [[#prime-run not working]]. (Note that you can limit the output to just the relevant information by appending {{ic| {{!}} grep -i vendor}} to the aforementioned commands.)
 
To verify whether switchable graphics is working, run {{ic|glxinfo}} and {{ic|prime-run glxinfo}}. These commands should succeed and have different vendors. If the latter command fails, go to [[#prime-run not working]]. (Note that you can limit the output to just the relevant information by appending {{ic| {{!}} grep -i vendor}} to the aforementioned commands.)
  +
 
 
==== Keyboard RGBs ====
 
==== Keyboard RGBs ====
  +
 
 
You can control the brightness and color of your keyboard's LEDs. To do so, simply run {{ic|sys76-kb set -b $B -c $C}}, with {{ic|$B}} being how bright you want the keyboard (on a scale of 0-255) and {{ic|$C}} being a 6-digit color hex (''eg'', "ffffff"). Since the keyboard's LEDs are controlled from the commandline, it is possible to script patterns and light shows.
 
You can control the brightness and color of your keyboard's LEDs. To do so, simply run {{ic|sys76-kb set -b $B -c $C}}, with {{ic|$B}} being how bright you want the keyboard (on a scale of 0-255) and {{ic|$C}} being a 6-digit color hex (''eg'', "ffffff"). Since the keyboard's LEDs are controlled from the commandline, it is possible to script patterns and light shows.
  +
 
 
Note that these settings are not maintained across boots; so you will need to reapply them on startup.
 
Note that these settings are not maintained across boots; so you will need to reapply them on startup.
  +
 
 
=== BIOS updates ===
 
=== BIOS updates ===
  +
 
 
To check your current BIOS version and whether there is a new version available, run {{ic|firmware-manager}} as root. Keep in-mind that this is a GTK application, so you need to be running X or Wayland for it to run. (It has no CLI -- it does not even respond to {{ic|--help}}.)
 
To check your current BIOS version and whether there is a new version available, run {{ic|firmware-manager}} as root. Keep in-mind that this is a GTK application, so you need to be running X or Wayland for it to run. (It has no CLI -- it does not even respond to {{ic|--help}}.)
   
== ドライバー ==
+
== Graphics ==
   
  +
このノートパソコンには内蔵 ([[Intel]]) と外部 ([[Nvidia]]) グラフィックカードが同梱されています。外部ポート (DP over Mini-DP, DP over USB-C, HDMI) は外部 nvidia カードに接続されています。
System76 Oryx Pro には Linux で Oryx Pro が上手く動作するように補助を行うようカスタマイズされたユーティリティやデーモンが存在します。ドライバー (グラフィカル, io, ファン) の設定やファームウェアのアップデート、LED 制御などが含まれます。
 
   
  +
* '''System76''': If you want to use the hybrid graphics mode developed by System76, follow the instructions in [[#OEM software]]. This seems to use [[PRIME]] behind the scenes.
System76 では、マシンにプリインストールされる Pop OS! という名前のディストリビューションを開発しています。ドライバーやグラフィカル設定を Pop OS! と揃えることで、一番良い設定を得ることができるでしょう。
 
  +
* '''Bumblebee''': Some users have reported getting success with Bumblebee. Your mileage may vary if you are using a more complete DE like [[GNOME]]; this has only been tested with {{Pkg|i3-wm}}.
  +
* '''NVIDIA''': When in doubt, [[NVIDIA]]'s proprietary drivers should always work.
   
  +
== Audio ==
ドライバーは AUR からインストールできます:
 
   
  +
Audio seems to work out of the box with a USB headset; however, [https://github.com/pop-os/system76-driver/issues/198 it does not relay audio to the onboard speaker]. The Pop!_OS kernel is patched to work with Realtek PCI's quirks; Arch's, are not. The following parameters can be added to {{ic|/etc/modprobe.d/clevo-p950.conf}} to resolve this issue: {{ic|1=options snd-hda-intel model=clevo-p950}}. This workaround provides headphone and speaker audio, but headset mics may not work. ([https://www.reddit.com/r/System76/comments/hc9zb0/internal_audio_in_arch_linux source])
* {{AUR|system76-driver}}
 
  +
{{Note|This issue seems to be new to the oryp7; the oryp6 and earlier have audio that works out of the box.}}
* {{AUR|system76-dkms}}
 
  +
* {{AUR|system76-io-dkms}}
 
  +
== Suspend/hibernate ==
* {{AUR|system76-firmware-daemon}}
 
  +
* {{AUR|system76-power}}
 
  +
Out of the box, Arch Linux does not resume a previously suspended or hibernated session. To support hibernation, ensure that you have swap space equal to or greater than your system memory (RAM), and add "resume" to your {{ic|/etc/mkinitcpio.conf}} file, per [[Mkinitcpio#Common_hooks|the instructions here]].
  +
  +
: ''NOTE: hibernation has yet to be tested on this device; but suspension seems to work... sometimes.''
  +
  +
== Function keys ==
  +
  +
: ''Only keys with known functions are shown.''
  +
<div style="display: flex; flex-wrap: wrap;"><div style="margin: 0 1rem 1rem 0;">
  +
{| class="wikitable" style="margin: unset;"
  +
|+ style="text-align: left;" | Multimedia keys
  +
|-
  +
! Key
  +
!title="The key is visible to `xev` and similar tools."| Visible?
  +
!title="The physical key has a symbol on it, which describes its function."| Marked?
  +
! Effect
  +
|-
  +
| {{ic|Fn+`}} || {{Yes}} || {{Yes}} || {{ic|XF86AudioPlay}}
  +
|-
  +
| {{ic|Fn+F3}} || {{Yes}} || {{Yes}} || {{ic|XF86AudioMute}}
  +
|-
  +
| {{ic|Fn+F5}} || {{Yes}} || {{Yes}} || {{ic|XF86AudioLowerVolume}}
  +
|-
  +
| {{ic|Fn+F6}} || {{Yes}} || {{Yes}} || {{ic|XF86AudioRaiseVolume}}
  +
|}
  +
</div><div style="margin: 0 1rem 1rem 0;">
  +
{| class="wikitable" style="margin: unset;"
  +
|+ style="text-align: left;" | Display keys
  +
|-
  +
! Key
  +
!title="The key is visible to `xev` and similar tools."| Visible?
  +
!title="The physical key has a symbol on it, which describes its function."| Marked?
  +
! Effect
  +
|-
  +
| {{ic|Fn+F2}} || {{No}} || {{Yes}} || Toggles power to the display
  +
|-
  +
| {{ic|Fn+F8}} || {{Yes}} || {{Yes}} || {{ic|XF86MonBrightnessDown}}
  +
|-
  +
| {{ic|Fn+F9}} || {{Yes}} || {{Yes}} || {{ic|XF86MonBrightnessUp}}
  +
|}
  +
</div><div style="margin: 0 1rem 1rem 0;">
  +
{| class="wikitable" style="margin: unset;"
  +
|+ style="text-align: left;" | Misc toggle keys
  +
|-
  +
! Key
  +
!title="The key is visible to `xev` and similar tools."| Visible?
  +
!title="The physical key has a symbol on it, which describes its function."| Marked?
  +
! Effect
  +
|-
  +
| {{ic|Fn+1}} || {{No}} || {{No}} || [https://github.com/system76/ec/issues/181#issuecomment-825674311 Toggles max state of fans]
  +
|-
  +
| {{ic|Fn+F1}} || {{Yes}} || {{Yes}} || {{ic|XF86TouchpadToggle}}
  +
|-
  +
| {{ic|Fn+F10}} || {{No}} || {{Yes}} || Toggles power to the webcam
  +
|-
  +
| {{ic|Fn+F11}} || {{Yes}} || {{Yes}} || {{ic|XF86RFKill}}
  +
|-
  +
| {{ic|Fn+F12}} || {{No}} || {{Yes}} || Suspends the computer
  +
|}
  +
</div><div style="margin: 0 1rem 1rem 0;">
  +
{| class="wikitable" style="margin: unset;"
  +
|+ style="text-align: left;" | Keyboard backlight keys
  +
|-
  +
! Key
  +
!title="The key is visible to `xev` and similar tools."| Visible?
  +
!title="The physical key has a symbol on it, which describes its function."| Marked?
  +
! Effect
  +
|-
  +
| {{ic|Fn+NumDivide}} || {{No}} || {{Yes}} || Changes keyboard color
  +
|-
  +
| {{ic|Fn+NumMultiply}} || {{No}} || {{Yes}} || Toggles power to keyboard backlight
  +
|-
  +
| {{ic|Fn+NumMinus}} || {{No}} || {{Yes}} || Dims keyboard backlight
  +
|-
  +
| {{ic|Fn+NumPlus}} || {{No}} || {{Yes}} || Brightens keyboard backlight
  +
|}
  +
</div><div style="margin: 0 1rem 1rem 0;">
  +
{| class="wikitable" style="margin: unset;"
  +
|+ style="text-align: left;" | Broken keys
  +
|-
  +
! Key
  +
!title="The key is visible to `xev` and similar tools."| Visible?
  +
!title="The physical key has a symbol on it, which describes its function."| Marked?
  +
! Effect
  +
|-
  +
| {{ic|Fn+F7}} || {{Yes}} || {{Yes}} || Keydown: {{ic|semicolon}}.<br/>Keyup: {{ic|Super_L}}.
  +
|-
  +
| {{ic|Fn+PrintScreen}} || {{Yes}} || {{Yes}} || Passes through; should be {{ic|SysRq}}.
  +
|-
  +
| {{ic|Fn+Insert}} || {{Yes}} || {{Yes}} || Passes through; should be {{ic|ScrollLock}}.
  +
|-
  +
| {{ic|Fn+PageUp}} || {{Yes}} || {{Yes}} || Passes through; should be {{ic|Pause}}.
  +
|-
  +
| {{ic|Fn+PageDown}} || {{Yes}} || {{Yes}} || Passes through; should be {{ic|Break}}.
  +
|}
  +
</div></div>
  +
  +
== Troubleshooting ==
  +
  +
=== Bad thermals / excessive throttling ===
  +
  +
The oryp7, as with all System76 computers, comes with [https://github.com/system76/ec/issues/9#issuecomment-608632102 a fan curve designed to minimize noise]. By default, your fans will only reach 100% at 90°C; but by the time you have reached that temperature, the CPU is already throttling hard. By setting a custom fan curve that reaches 100% at 70°C, you can easily avoid such unnecessary throttling. However, in order to customize the fan curve, you have to compile and flash the [https://github.com/system76/ec EC] to your BIOS. Make sure to not set your lowest fan speed below 25% on the oryp7, as doing so will cause rattling (see [https://github.com/system76/ec/pull/163 #163]);
  +
  +
There is also (as of 2021-04-20) a [https://github.com/system76/ec/pull/177 pull request] to sync the CPU and GPU fans, which should maximize cooling (since both lie on the same heatpipe).
  +
  +
Both of these considerations have been merged into a pull request just for oryp7 computers [https://github.com/system76/ec/pull/179 here].
  +
  +
Note that even with these changes, your computer will still run very hot. You will need to repaste the oryp6/7 if you intend to use the CPU for long periods of time.
  +
  +
Another thing you can try is [[Undervolting CPU|undervolting]]. However, due to [https://plundervolt.com Plundervolt], undervolting has been disabled in the firmware. There is [https://github.com/system76/firmware-open/issues/201 an issue on GitHub] requesting a toggle for this mitigation.
  +
  +
=== fancontrol not working ===
  +
  +
{{Aur|system76-acpi-dkms}} does not currently support runtime configuration of fan speeds, so {{ic|pwmconfig}} and {{ic|fancontrol}} will not work. There ''is'' an open [https://github.com/pop-os/system76-acpi-dkms/issues/9 feature request] for this, though.
  +
  +
In the meantime, a custom fan curve ''can'' be configured by those willing to compile their BIOS manually. [https://github.com/pop-os/system76-acpi-dkms/issues/9#issuecomment-817880599 Quoth] one of the devs: "The fan speed is controlled by the fan curve in the firmware: [https://github.com/system76/ec/blob/16778e4a41477498eaf5791cae57ae404515973e/src/board/system76/oryp7/board.mk system76/ec@16778e4/src/board/system76/oryp7/board.mk]. You can change the fan curve by changing the values in that file before you build [https://github.com/system76/firmware-open firmware-open]." You do not actually have to build {{ic|firmware-open}}, though -- you can simply build and flash the [https://github.com/system76/ec ec] itself. The command to flash is {{ic|1=make BOARD=system76/oryp7 flash_internal}}.
  +
  +
=== Keyboard colors are set at random ===
  +
  +
Set your keyboard brightness to 100%. There is a [https://github.com/system76/ec/issues/174 known issue] with the firmware on oryp6/oryp7 when the brightness is less than 100%.
  +
  +
=== prime-run not working ===
  +
  +
Try creating {{ic|/etc/X11/xorg.conf.d/90-intel-nvidia.conf}} and adding the following to it:
  +
([https://forum.manjaro.org/t/nvidia-prime-run-returns-error/49711/18 source])
  +
  +
Section "ServerLayout"
  +
Identifier "layout"
  +
Screen 0 "iGPU"
  +
EndSection
  +
  +
Section "Device"
  +
Identifier "iGPU"
  +
Driver "modesetting"
  +
BusID "PCI:0:2:0"
  +
EndSection
  +
  +
Section "Screen"
  +
Identifier "iGPU"
  +
Device "iGPU"
  +
EndSection
  +
  +
Section "Device"
  +
Identifier "dGPU"
  +
Driver "nvidia"
  +
BusID "PCI:1:0:0"
  +
EndSection
  +
  +
Change the {{ic|BusID}} fields above to match the first field in the output of this command: {{ic|<nowiki>lspci | egrep "VGA | 3D"</nowiki>}} (you can omit leading zeroes). You will need to restart your X server for this to take effect.
  +
  +
=== Xorg fails to start with "No devices detected" ===
  +
  +
If you find (normally after an update & restart) that launching X (via {{ic|startx}} or otherwise) does not work, you may confirm that the {{ic|nvidia}} device is installed and working by doing the following:
  +
  +
Confirm the error in {{ic|~/.local/share/xorg/Xorg.0.log}}. The {{ic|nvidia}} kernel module should successfully load. You may also confirm the error with {{ic|dmesg}} or {{ic|journalctl}}.
  +
  +
Check whether both integrated and discrete graphics cards are available:
  +
  +
# lspci | grep VGA
  +
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
  +
01:00.0 VGA compatible controller: NVIDIA Corporation TU106M [GeForce RTX 2070 Mobile] (rev a1)
  +
  +
If you do not see the second entry (or some similar NVIDIA card), make sure the card has been turned on by {{AUR|system76-power}} (use {{ic|--help}} to explore options):
  +
  +
# system76-power graphics
  +
  +
Check whether the discrete NVIDIA graphics card is powered on using {{AUR|system76-power}}:
  +
  +
# system76-power graphics power
  +
  +
To power the discrete NVIDIA graphics card on, supply "on" as an argument (i.e. {{ic|system76-power graphics power on}}). After doing so and querying again, you should see:
  +
  +
# system76-power graphics power
  +
on (discrete)
  +
  +
Once the card is powered on, it should show up in the output of {{ic|lspci}}, and be detectable by Xorg, given that the appropriate NVIDIA driver is installed.
  +
  +
=== system76-firmware: EFI mount point not found ===
  +
  +
If using the new (replacement) EFI mount point {{ic|/efi}}, ensure you have the mount present in {{ic|etc/fstab}}. You may find the appropriate device to mount by using a combination of lsblk and fdisk -l.
   
  +
# fdisk -l # List disks (one device will be designated as "EFI System")
上記のパッケージの -git 版も存在します。最新バージョンが必要な場合はそちらをインストールしてください。
 
  +
# lsblk # List devices and mount points, you should see the EFI system device, and confirm whether it is mounted/unmounted
  +
# mount ''device'' /efi
  +
#
  +
# genfstab -U / # (optional) print fstab configuration for inclusion/merging into /etc/fstab
   
  +
After doing the above, it might be a good idea to schedule a firmware update:
== グラフィカル ==
 
   
  +
# system76-firmware-cli schedule
このノートパソコンには内蔵 (intel) と外部 (nvidia) グラフィックカードが同梱されています。外部ポート (DP over Mini-DP, DP over USB-C, HDMI) は外部 nvidia カードに接続されています。Bumblebee で動作するという報告が存在します。
 
   
  +
==== With grub ====
上手く動かない場合、bumblebee を削除して nvidia のプロプライエタリドライバーをインストールしてみてください。
 
   
  +
After scheduling a firmware update, ensure that [[GRUB]] is set to use the EFI partition like so:
i3 で動作を確認しているため、GNOME などのデスクトップ環境では挙動が変わるかもしれません。
 
   
  +
# grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=grub
== オーディオ ==
 
  +
# cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
  +
# grub-mkconfig -o /boot/grub/grub.cfg
   
  +
Restart to trigger the firmware update.
USB ヘッドセットで問題なく動作しますが、オンボードスピーカーに音声を流しません。このセクションは書き途中です。
 
   
  +
== 参照 ==
== サスペンド/ハイバネート ==
 
   
  +
* [https://tech-docs.system76.com/models/oryp7/README.html System76 技術文書]
デフォルトでは Arch Linux はサスペンド・ハイバネートされたセッションを復元しません。このセクションは書き途中です。
 

2021年7月9日 (金) 15:29時点における最新版

起動

System76 Oryx Pro には2つの NVMe M.2 スロットと2.5インチ SSD/HDD 用の空間が存在します。NVMe からの起動には EFI の使用が不可欠で、SATA/AHCI での起動はできません。基本的にこのノートパソコンでは EFI を使うのが安全です。

OEM software

System76 develops a special distribution (Pop!_OS) for their computers, and it comes with many tweaks and tools to ensure a seamless end-user experience. Arch does not have these out of the box; and unfortunately, sometimes their computers do not work right without them. Thankfully, it is possible to get the same first-class hardware support in Arch Linux that you have in Pop!_OS -- it just takes a little elbow grease.

Packages

All necessary packages can be found in the AUR. It is recommended to install everything in the list below.

Modules
Daemons
Other
  • system76-firmwareAUR (required if you want to update your BIOS)
  • firmware-managerAUR (required if you want to know when there is a BIOS update available)
  • sys76-kbAUR (if you want to change your keyboard's backlight color)

(There are also "-git" versions of many of these packages, if you wish to stay bleeding edge.)

Settings

Once you have installed the above, you will need to tell your computer to use them.

Services

Enable the following services with systemctl enable: (source)

  • system76
  • system76-firmware-daemon
  • system76-power

Drivers

To make sure all drivers are being loaded correctly, run system76-driver-cli; this will automatically add necessary rules to /etc/modprobe.d, and execute mkinitcpio.

ノート: However, as of 2021-04-06, this creates a malformed s76-i915-mkinitcpio.conf file, and a redundant (if you have system76-power.conf) system76-driver_i2c-nvidia-gpu.conf file. As such, this step may be skippable, for the time-being.

Switchable graphics

To enable switchable graphics, run system76-power graphics hybrid once; and then put prime-run before every application you want to start with your dGPU. Note that this will only work for applications that use GLVND. (source)

ノート:
  • Officially, you need to reboot your device every time you change your switchable graphics setting; but it seems possible to switch to compute graphics from hybrid without rebooting.
  • Switching from hybrid to integrated will display as compute until you restart. This seems to be intended behavior.  (This note is here because at least one person was confused by this.) (There is a GitHub issue to change this here.)

To verify whether switchable graphics is working, run glxinfo and prime-run glxinfo. These commands should succeed and have different vendors. If the latter command fails, go to #prime-run not working. (Note that you can limit the output to just the relevant information by appending | grep -i vendor to the aforementioned commands.)

Keyboard RGBs

You can control the brightness and color of your keyboard's LEDs. To do so, simply run sys76-kb set -b $B -c $C, with $B being how bright you want the keyboard (on a scale of 0-255) and $C being a 6-digit color hex (eg, "ffffff"). Since the keyboard's LEDs are controlled from the commandline, it is possible to script patterns and light shows.

Note that these settings are not maintained across boots; so you will need to reapply them on startup.

BIOS updates

To check your current BIOS version and whether there is a new version available, run firmware-manager as root. Keep in-mind that this is a GTK application, so you need to be running X or Wayland for it to run. (It has no CLI -- it does not even respond to --help.)

Graphics

このノートパソコンには内蔵 (Intel) と外部 (Nvidia) グラフィックカードが同梱されています。外部ポート (DP over Mini-DP, DP over USB-C, HDMI) は外部 nvidia カードに接続されています。

  • System76: If you want to use the hybrid graphics mode developed by System76, follow the instructions in #OEM software. This seems to use PRIME behind the scenes.
  • Bumblebee: Some users have reported getting success with Bumblebee. Your mileage may vary if you are using a more complete DE like GNOME; this has only been tested with i3-wm.
  • NVIDIA: When in doubt, NVIDIA's proprietary drivers should always work.

Audio

Audio seems to work out of the box with a USB headset; however, it does not relay audio to the onboard speaker. The Pop!_OS kernel is patched to work with Realtek PCI's quirks; Arch's, are not. The following parameters can be added to /etc/modprobe.d/clevo-p950.conf to resolve this issue: options snd-hda-intel model=clevo-p950. This workaround provides headphone and speaker audio, but headset mics may not work. (source)

ノート: This issue seems to be new to the oryp7; the oryp6 and earlier have audio that works out of the box.

Suspend/hibernate

Out of the box, Arch Linux does not resume a previously suspended or hibernated session. To support hibernation, ensure that you have swap space equal to or greater than your system memory (RAM), and add "resume" to your /etc/mkinitcpio.conf file, per the instructions here.

NOTE: hibernation has yet to be tested on this device; but suspension seems to work... sometimes.

Function keys

Only keys with known functions are shown.
Multimedia keys
Key Visible? Marked? Effect
Fn+` Yes Yes XF86AudioPlay
Fn+F3 Yes Yes XF86AudioMute
Fn+F5 Yes Yes XF86AudioLowerVolume
Fn+F6 Yes Yes XF86AudioRaiseVolume
Display keys
Key Visible? Marked? Effect
Fn+F2 No Yes Toggles power to the display
Fn+F8 Yes Yes XF86MonBrightnessDown
Fn+F9 Yes Yes XF86MonBrightnessUp
Misc toggle keys
Key Visible? Marked? Effect
Fn+1 No No Toggles max state of fans
Fn+F1 Yes Yes XF86TouchpadToggle
Fn+F10 No Yes Toggles power to the webcam
Fn+F11 Yes Yes XF86RFKill
Fn+F12 No Yes Suspends the computer
Keyboard backlight keys
Key Visible? Marked? Effect
Fn+NumDivide No Yes Changes keyboard color
Fn+NumMultiply No Yes Toggles power to keyboard backlight
Fn+NumMinus No Yes Dims keyboard backlight
Fn+NumPlus No Yes Brightens keyboard backlight
Broken keys
Key Visible? Marked? Effect
Fn+F7 Yes Yes Keydown: semicolon.
Keyup: Super_L.
Fn+PrintScreen Yes Yes Passes through; should be SysRq.
Fn+Insert Yes Yes Passes through; should be ScrollLock.
Fn+PageUp Yes Yes Passes through; should be Pause.
Fn+PageDown Yes Yes Passes through; should be Break.

Troubleshooting

Bad thermals / excessive throttling

The oryp7, as with all System76 computers, comes with a fan curve designed to minimize noise. By default, your fans will only reach 100% at 90°C; but by the time you have reached that temperature, the CPU is already throttling hard. By setting a custom fan curve that reaches 100% at 70°C, you can easily avoid such unnecessary throttling. However, in order to customize the fan curve, you have to compile and flash the EC to your BIOS. Make sure to not set your lowest fan speed below 25% on the oryp7, as doing so will cause rattling (see #163);

There is also (as of 2021-04-20) a pull request to sync the CPU and GPU fans, which should maximize cooling (since both lie on the same heatpipe).

Both of these considerations have been merged into a pull request just for oryp7 computers here.

Note that even with these changes, your computer will still run very hot. You will need to repaste the oryp6/7 if you intend to use the CPU for long periods of time.

Another thing you can try is undervolting. However, due to Plundervolt, undervolting has been disabled in the firmware. There is an issue on GitHub requesting a toggle for this mitigation.

fancontrol not working

system76-acpi-dkmsAUR does not currently support runtime configuration of fan speeds, so pwmconfig and fancontrol will not work. There is an open feature request for this, though.

In the meantime, a custom fan curve can be configured by those willing to compile their BIOS manually. Quoth one of the devs: "The fan speed is controlled by the fan curve in the firmware: system76/ec@16778e4/src/board/system76/oryp7/board.mk. You can change the fan curve by changing the values in that file before you build firmware-open." You do not actually have to build firmware-open, though -- you can simply build and flash the ec itself. The command to flash is make BOARD=system76/oryp7 flash_internal.

Keyboard colors are set at random

Set your keyboard brightness to 100%. There is a known issue with the firmware on oryp6/oryp7 when the brightness is less than 100%.

prime-run not working

Try creating /etc/X11/xorg.conf.d/90-intel-nvidia.conf and adding the following to it: (source)

   Section "ServerLayout"
       Identifier "layout"
       Screen 0 "iGPU"
   EndSection
   
   Section "Device"
       Identifier "iGPU"
       Driver "modesetting"
       BusID "PCI:0:2:0"
   EndSection
   
   Section "Screen"
       Identifier "iGPU"
       Device "iGPU"
   EndSection
   
   Section "Device"
       Identifier "dGPU"
       Driver "nvidia"
       BusID "PCI:1:0:0"
   EndSection

Change the BusID fields above to match the first field in the output of this command: lspci | egrep "VGA | 3D" (you can omit leading zeroes). You will need to restart your X server for this to take effect.

Xorg fails to start with "No devices detected"

If you find (normally after an update & restart) that launching X (via startx or otherwise) does not work, you may confirm that the nvidia device is installed and working by doing the following:

Confirm the error in ~/.local/share/xorg/Xorg.0.log. The nvidia kernel module should successfully load. You may also confirm the error with dmesg or journalctl.

Check whether both integrated and discrete graphics cards are available:

# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
01:00.0 VGA compatible controller: NVIDIA Corporation TU106M [GeForce RTX 2070 Mobile] (rev a1)

If you do not see the second entry (or some similar NVIDIA card), make sure the card has been turned on by system76-powerAUR (use --help to explore options):

# system76-power graphics 

Check whether the discrete NVIDIA graphics card is powered on using system76-powerAUR:

# system76-power graphics power

To power the discrete NVIDIA graphics card on, supply "on" as an argument (i.e. system76-power graphics power on). After doing so and querying again, you should see:

# system76-power graphics power
on (discrete)

Once the card is powered on, it should show up in the output of lspci, and be detectable by Xorg, given that the appropriate NVIDIA driver is installed.

system76-firmware: EFI mount point not found

If using the new (replacement) EFI mount point /efi, ensure you have the mount present in etc/fstab. You may find the appropriate device to mount by using a combination of lsblk and fdisk -l.

# fdisk -l # List disks (one device will be designated as "EFI System")
# lsblk    # List devices and mount points, you should see the EFI system device, and confirm whether it is mounted/unmounted
# mount device /efi
#
# genfstab -U / # (optional) print fstab configuration for inclusion/merging into /etc/fstab

After doing the above, it might be a good idea to schedule a firmware update:

# system76-firmware-cli schedule

With grub

After scheduling a firmware update, ensure that GRUB is set to use the EFI partition like so:

# grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=grub
# cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
# grub-mkconfig -o /boot/grub/grub.cfg

Restart to trigger the firmware update.

参照