lu.se

Datavetenskap

Lunds Tekniska Högskola

Denna sida på svenska This page in English

Varför vaknar datorn när den inte skall?

2012-03-01

Här ges hjälp att få reda på varför datorn vaknar när man inte vill att den skall

Alltsedan Mac OS X 10.6 (”Snow Leopard”) har Apple haft ett läge de kallar ”DarkWake” som innebär att delar av datorn vaknar en gång i timmen för att utföra rutinuppgifter. Ursprungligen var det bara för att se till att datorn inte tappade sin nätverksadress (10.6), men efterhand har fler uppgifter tillkommit: omkonfigurera USB_bussen vid behov (10.7) och hämta mail samt utföra TimeMachine-backup (10.8).
Under DarkWake är allt som rör ljud och grafik avstängt och därför märker man det normalt inte (fläktar samt lasern i optiska möss kan dock höras och synas på natten). DarkWake tar normalt bara några sekunder eller någon minut.

Emellertid kan man ibland få problem med att datorn är vaken när den skall sova. Lyckligtvis berättar kärnan varför den vaknar. Kör detta kommando:
syslog |grep -i "Wake reason"

Man får då en lista som följande:
Sat Jul 10 08:49:33 MacBookPro kernel[0] : Wake reason = OHC1
Sat Jul 10 17:21:57 MacBookPro kernel[0] : Wake reason = PWRB
Sun Jul 11 08:34:20 MacBookPro kernel[0] : Wake reason = EHC2
Sun Jul 16 18:25:28 MacBookPro kernel[0] : Wake reason = OHC1

Där de olika anledningarna betyder följande (det kan förekomma siffror efteråt): 

  • OHC: ”Open Host Controller”, vanligen USB eller Firewire
  • EHC: ”Enhanced Host Controller” är ett annat USB interface men kan även vara trådlösa enheter eller Bluetooth eftersom dessa sitter på USB
  • USB: en USB-enhet
  • UHC: en USB-enhet
  • LID0: locket [på en bärbar] väckte datorn
  • PWRB: ”Power Button”, alltså den fysiska knappen som man startar/sätter datorn i vila med 
  • RTC: ”Real Time Clock Alarm”, alltså datorn är inställd att vakna med hjälp av klockan

Med programmet ”IORegistryExplorer.app” kan man gräva ut vilken enhet det är. IORegistryExplorer.app ingår i Xcode-sviten, numera ligger den i ”hardware_io_tools_for_xcode.dmg”.