Skip to content

iMac ulkoisena näyttönä Linuxissa virtanäppäintä käyttämällä (Target Display Mode)

Notifications You must be signed in to change notification settings

Lumipyry/iMac-Target-Display-Mode-Linuxissa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 

Repository files navigation

Näin käytät iMac konetta 2-näyttönä Linuxissa

imac-target-display-mode-hero

In english: Step-by-step-instructions-for-using-iMac-in-Target-Display-Mode

Tämä on asennusohje smc_util:lle sisältäen FreekMank:n tuen virtanäppäimen käytölle.

Kohdenäyttötila (Target Display Mode = TDM) käynnistetään ja sammutetaan painamalla virtanäppäintä.

Soveltuu iMac malleihin 2009-2014. Ulkoisena näyttönä käytettävässä koneessa tulee olla sekä Linux että Apple High Sierra tai aikaisempi.

Toimii todistettavasti MiniDisplay Port kaapelilla. Ei toimi Thunderbolt kaapelilla ainakaan jos näyttö-iMac ei tue sitä (2009-2011). Testattu iMac malleilla 2009-2011. Ei varmuutta Thunderbolt kaapelin toimivuudesta myöhemmissä iMac-malleissa (kokeilemalla selviää).


Luultavasti haluat jättää kohdan 16 (rc.local) pois asennuksesta - jos ja kun haluat myös käyttää näyttökoneen Linux käyttöjärjestelmää. (rc.local käynnistää koneen suoraan kohdenäyttötilaan - ja silloin virtanäppäimen painaminen voi johtaa tyhjään näyttöön). Ilman rc.local:a kone käynnistyy ensin Linuxissa.


Asennus tapahtuu seuraavilla komennoilla käyttämällä päätettä (Terminal)

1.Lataa smc_util 2-näyttökoneen kotihakemistoon

git clone https://github.com/floe/smc_util.git

2.Siirry hakemistoon smc_util

cd smc_util

3.Käännä SmcDumpkey GCC:llä

gcc -O2 -o SmcDumpKey SmcDumpKey.c -Wall

4.Luo tiedostot tdm_toggle.sh, powerbutton, powerbutton.sh ja rc.local

touch tdm_toggle.sh powerbutton powerbutton.sh rc.local

5.Vaihda tiedoston tdm_off.sh sisältö seuraavanlaiseksi (käyttämällä päätteessä komentoa nano)

nano tdm_off.sh

tai avaamalla tiedosto tekstinkäsittelyohjelmalla

#!/bin/bash
rm -f tdm_started
./SmcDumpKey MVHR 0
sleep 1
./SmcDumpKey MVMR 2
sleep 2
DISPLAY=:0.0 xrandr --output eDP --auto

6.Vaihda tiedoston tdm_on.sh sisältö seuraavanlaiseksi

nano tdm_on.sh
#!/bin/bash
./SmcDumpKey MVHR 1
sleep 1
./SmcDumpKey MVMR 2
sleep 2
DISPLAY=:0.0 xrandr --output eDP --off
touch tdm_started

7.Luo seuraava sisältö tiedostoon tdm_toggle.sh

nano tdm_toggle.sh
#!/bin/bash
pushd $(dirname "${BASH_SOURCE[0]}")

if [[ -f "tdm_started" ]]; then
  echo "Switching off TDM"
  source tdm_off.sh
else
  echo "Switch on TDM"
  source tdm_on.sh
fi

popd

8.Luo seuraava sisältö tiedostoon powerbutton

nano powerbutton
event=button/power PBTN
action=/etc/acpi/powerbutton.sh

9.Luo seuraava sisältö tiedostoon powerbutton.sh. MUISTA VAIHTAA XXXXXXXXX omaan käyttäjänimeesi (KAHDESSA kohdassa scriptissä)

nano powerbutton.sh
#!/bin/bash

pushd $(dirname "${BASH_SOURCE[0]}")

FILE=powerbutton_pressed
NOW=$(date +%s)

if [[ -f "$FILE" ]]; then
  # Read timestamp of previous powerbutton press from file
  echo "File exists"
  typeset -i PREV=$(cat $FILE)
  echo Compare $NOW and $PREV

  # if two powerbutton presses were <1 seconds apart -> shutdown
  if [[ $(($NOW-$PREV)) -lt 2 ]]; then
    # Shutdown
    echo "Powerbutton pressed twice in a row: Shutting down"
    shutdown now
  else
    echo "Toggle TDM"
    /home/XXXXXXXXX/smc_util/tdm_toggle.sh &
  fi
else
  echo "Toggle TDM"
  /home/XXXXXXXXX/smc_util/tdm_toggle.sh &
fi

echo $NOW > $FILE

popd

10.Luo seuraava sisältö tiedostoon rc.local. MUISTA VAIHTAA XXXXXXXXX omaan käyttäjänimeesi

nano rc.local
#!/bin/bash

# Start Target Display Mode such that the pc is used as external monitor right away
# Note: The Power button toggles TDM (see /etc/acpi/events)
pushd /home/XXXXXXXXX/smc_util
./tdm_on.sh
popd

11.Poista SMC kernel ajuri konfliktien välttämiseksi

sudo rmmod applesmc

12.Muuta tdm_toggle.sh, rc.local ja powerbutton.sh suoritettaviksi (vaihda XXXXXXXX)

sudo chmod +x /home/XXXXXXXXX/smc_util/tdm_toggle.sh /home/XXXXXXXXX/smc_util/rc.local /home/XXXXXXXXX/smc_util/powerbutton.sh

13.Asenna build-essential ja acpid

sudo apt install build-essential acpid
  1. Kopioi tiedosto powerbutton hakemistoon /etc/acpi/events (vaihda XXXXXXXXXX)
sudo cp /home/XXXXXXXXX/smc_util/powerbutton /etc/acpi/events

15.Kopioi tiedosto powerbutton.sh hakemistoon /etc/acpi (vaihda XXXXXXXX)

sudo cp /home/XXXXXXXXX/smc_util/powerbutton.sh /etc/acpi

16.Kopioi tiedosto rc.local hakemistoon /etc (vaihda XXXXXXXX)

sudo cp /home/XXXXXXXXX/smc_util/rc.local /etc/rc.local

17.Käynnistä acpid uudelleen

sudo systemctl restart acpid

18.Vaihda virtanäppäimen toiminta asetusten osassa Virranhallinta seuraavanlaiseksi

Älä tee mitään


TDM:n sammutus eli "Off": Kytke ensin ulkoinen näyttö pois käytöstä pääkoneen näyttöasetuksista ja paina sitten virtanäppäintä näyttönä toimivassa iMacissa.


Vinkki: Näyttönä toimivaan iMaciin kannattaa asentaa Samba palvelin ja kytkeä koneet yhteen Ethernet-piuhalla. Näin voit käyttää näyttökoneen tiedostojärjestelmää tallennustilana ja siirtää tiedostoja koneiden välillä. Ohje löytyy täältä


About

iMac ulkoisena näyttönä Linuxissa virtanäppäintä käyttämällä (Target Display Mode)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors