GNU/Linux’ta Android Tableti İkinci Monitör Olarak Kullanma

02/06/2019

Merhabalar. Bu yazımda Android tabletinizi GNU/Linux yüklü bilgisayarınızın ikinci monitörü olarak kullanmayı anlatacağım.

VueJS ile çalışmaya başladığımdan beri ikinci bir ekran ihtiyacım oluştu. Bir süre monitör almaya imkanım olmadığından evimde atıl durumda bulunan tableti ikinci ekran olarak kullanmaya karar verdim. İnternetten yaptığım araştırmalarda bulduğum çözümlerin bir çoğunda yanlışlıklar vardı. Ben de paketlerin dokümanlarını inceleyerek çözümü buldum ve sizin için derledim. Ben Arch Linux üzerinden yapacağım fakat diğer dağıtımlarda da bir değişiklik olacağını sanmıyorum.

Gerekli Paketlerin Yüklenmesi

Bu yazıda aşağıdaki iki paketi kullanacağız.

xorg-xrandr: Bu paket ekran çıktılarının (monitör, projeksion cihazı, TV vb.) ayarlarını yapmak için kullanılıyor. Ayarlardan kastım ise çözünürlük, yön, gibi temel ayarlar.

x11vnc: Bu paket ise VNC server programı. VNC, açılımı Virtual Network Computing olan masaüstü paylaşım sistemi. Fakat x11vnc varolan monitörler dışında paylaşım yapmaz.

Bu iki paket Arch Linux’un official repo’sunda olduğu için doğrudan pacman ile yükledim. Farklı dağıtımlar için küçük bir google araştırması yapmanız gerekiyor.

Sanal Monitör Oluşturma ve xrandr Çıktısını Sanal Monitör ile Paylaşma

gtf 1280 800 60 komutu ile VESA standartlarını öğreniyoruz. Burada 1280 800 çözünürlük, 60 ise FPS. Tabletinizin büyüklüğüne göre bu değerleri değiştirebilirsiniz. Bu komutu yazdığınızda aşağıdakine benzer bir çıktı alacaksınız.

  # 1280x800 @ 60.00 Hz (GTF) hsync: 49.68 kHz; pclk: 83.46 MHz Modeline "1280x800_60.00" 83.46 1280 1344 1480 1680 800 801 804 828 -HSync +Vsync

Burada ikinci satırda Modeline’dan sonrasını kopyalayın. Sonra yeni Mode oluşturmak için aşağıdaki komutu çalıştırın.

  xrandr — newmode

Sonra bu modu sanal ekran olarak ekleyin. Bunun için xrandr — addmode VIRTUAL1 1280x800 komutunu çalıştırın. Artık sanal monitörümüz hazır.

Şimdi ekranımızı sanal monitör ve kendi monitörümüz ile paylaşıyoruz. Bunun için öncelikle kendi monitörümüzün adını öğreneceğiz. xrandr — listmonitors yazdığınızda karşınıza bir liste gelecek. Bu listede kendi monitörünüzün adı yazar. (Örneğin benimki eDP1)

Monitörünüzün adını öğrendikten sonra aşağıdaki komut ile ekranı paylaştırın.

  xrandr — output VIRTUAL1 — mode 1280x800 — right-of eDP1

Bu komut VIRTUAL1 monitörünü, yani sanal monitörü, eDP1 monitörünün, yani kendi monitörümüzün, sağında çalıştırmayı sağlıyor. Buraya kadar her şeyi doğru yaptıysanız artık bu sanal ekranı tablet, telefon veya başka bir bilgisayar gibi bir cihaza bağlamak kaldı. Burada devreye x11vnc giriyor.

VNC Bağlantısı

Şimdiye kadar sanal bir ekran oluşturduk ve ekranımızı bu sanal monitör ile bölüştük. Son olarak yapmamız gereken şey bu sanal ekranı x11vnc ile paylaşmak olacak. Bunun için iki yol söyleyeceğim. Biri şifreli, diğeri şifresiz. Fakat ben güvenlik açısında şifreli yöntemi seçmenizi tavsiye ederim. Çünkü ağınıza bağlı herhangi bir cihaz ilgili porta bağlanarak ekranınızı görüntüleyebilir.

Şifresiz VNC Server Kurma

x11vnc -display :0 -clip 1280x800+1600+0 komutu server’ı kurar. Muhtemelen 5900 portunda hizmet verecektir. Portu öğrenmek için komutun çıktısına bakın.

Şifreli VNC Server Kurma

x11vnc -storepasswd  komutunu çalıştırın ve sizden istediği gibi parolanızı girin. Parolayı kaydettikten sonra size nereye kaydettiğini söyleyecek. Bu dizini kopyalayın ve aşağıdaki komutu çalıştırın.

  x11vnc -display :0 -rfbauth

Eğer farklı bir şey yapmadıysanız VNC server’ımız 5900 portunda hizmet verecek.

Artık tek yapmamız gereken şey herhangi bir VNC client kullanarak bu servera bağlanmak. Bunun için öncelikle local ip adresimizi öğrenmemiz gerekiyor. Bunun için ip addr komutunu çalıştırın ve listeden local ip’nizi bulun. Kendim için örnek vermem gerekirse VNC serverım 192.168.1.108:5900 portunda hizmet veriyor. Aynı ağa bağlı bulunduğum herhangi bir cihaz ile bağlanabilirim.

VNC Client ile Bağlanma

Ben bu yazıda cep telefonu üzerinden örnek vereceğim. Android için iyi bir open-source VNC client bulamadığım için VNC Viewer uygulamasını kullanacağım. Uygulamayı indirip açtıktan sonra + butonu ile yeni bağlantı açın. Karşınıza çok basit bir ekran gelecek.

VNC Client

Address kısmına localip:port girin. Yani 192.168.1.108:5900 gibi. İsim kısmına da rastgele bir isim girebilirsiniz. Create’e tıkladığınızda karşınıza şöyle bir ekran çıkacak.

VNC Client

Eğer telefonunuzdan bilgisayarınızı kontrol etmek istemiyorsanız,sadece görüntü almak istiyorsanız View Only’i aktif hale getirin ve Connect butonu ile bağlanın. Eğer yanlış bir şey yapmadıysanız aşağıdaki sonucu alacaksınız.

VNC Client

Yazının başında söylediğim gibi VNC client olan her cihazla bağlanabilirsiniz. Telefon yalnızca örnekti. Tabii ki ikinci monitör gibi performans alamazsınız fakat idare edecek performansı sağlıyor. Son olarak bağlantıyı kestikten sonra ekranın eski haline gelmesi için xrandr --output VIRTUAL1 --off komutunu kullanın. Tekrar bağlanmak içinse xrandr --output VIRTUAL1 --mode 1280x800 --right-of eDP1komutu ile tekrar ekranı bölüştürüp x11vnc -display :0 -rfbauth <parolanın bulunduğu dizin> -clip 1280x800+0+0 komutu ile server’ı kurun.