Hardware/Apple: Difference between revisions
imported>Keithy Added auto-restart code |
m Add category hardware |
||
| (6 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
{{Hardware/breadcrumb}} | |||
{{DISPLAYTITLE:Apple}} | |||
== Identifying your computer == | == Identifying your computer == | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="console"> | ||
$ cat /sys/devices/virtual/dmi/id/product_{family,name} | $ cat /sys/devices/virtual/dmi/id/product_{family,name} | ||
MacBook | MacBook | ||
| Line 10: | Line 12: | ||
== Auto Restart == | == Auto Restart == | ||
Older Apple hardware had an elegent solution to enable automatic restart on power failure. The physical power button, when depressed, could be rotated through 90 degrees and in this position it remained permanently on. This function is now handled through software setting registers in the PMU, except that in some models this setting does not persist | Older Apple hardware had an elegent solution to enable automatic restart on power failure. The physical power button, when depressed, could be rotated through 90 degrees and in this position it remained permanently on. This function is now handled through software setting registers in the PMU, except that in some models this setting does not persist across reboots. the following may be of help if you are looking to use a Mac-Mini as a server | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
| Line 22: | Line 24: | ||
register = | register = | ||
{ | { | ||
" | "mini_white_intel+nVidia" = "00:03.0 0x7b.b=0x19"; | ||
" | "mini_white_intel" = "0:1f.0 0xa4.b=0"; | ||
" | "mini_unibody_intel" = "0:3.0 -0x7b=20"; | ||
" | "mini_unibody_M1" = "?"; | ||
}; | }; | ||
| Line 31: | Line 33: | ||
{ | { | ||
options.hardware. | options.hardware.macVariant = mkOption { | ||
type = types.enum attrNames register; | type = types.enum (attrNames register); | ||
default = elemAt (attrNames register) 0; | default = elemAt (attrNames register) 0; | ||
example = elemAt (attrNames register) 0; | example = elemAt (attrNames register) 0; | ||
| Line 43: | Line 45: | ||
# Needs to run every reboot | # Needs to run every reboot | ||
config.systemd.services.enable-autorestart = { | config.systemd.services.enable-autorestart = { | ||
script = "/run/current-system/sw/bin/setpci -s " + getAttr | script = ("/run/current-system/sw/bin/setpci -s " + (getAttr config.hardware.macVariant register)) ; | ||
wantedBy = [ "default.target" ]; | wantedBy = [ "default.target" ]; | ||
after = [ "default.target" ]; | after = [ "default.target" ]; | ||
| Line 50: | Line 52: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Category:Hardware]] | |||