Mehmet Hanoğlu

Mehmet Hanoğlu

Full-Stack Developer

Etiketler


Bluetooh destekli klavyenizi, bilgisayarınızda iki veya daha fazla işletim sistemi ile birlikte kullanmak istiyorsanız, her işletim sistemi geçişinde klavyenizi tekrar eşleştirmeniz gerekiyor. Bu sorunu aşmak için işletim sistemlerinin birinde yapacağımız eşleştirme işlemine ait anahtarı diğerinde kullanacağız.

Öncelikle kullandığım sistemler:

  • Linux (elementaryOS 5.1 Hera / Ubuntu 18.04)
  • Windows 10

Klavye:

  • Logitech K380 (Bluetooth, Dongle yok, 3 ayrı cihaza bağlanabiliyor)

Problem 1 - Bluetooth Klavye ile Grub Boot Ekranında İşletim Sistemi Seçmek

Klavye-Bilgisayar bağlantısı dongle olmadan sağlandığı için boot sırasında çalışmıyor. Grub’un mouse desteği de olmadığı için mecburen kablolu veya dongle ile çalışan bt/wifi klavyeniz olması gerekiyor. Bu nedenle mevcut şartlarda bu işlem mümkün görünmüyor. Fakat bir yol var…

Bu sorunu aşmak için Linux sisteminiz aktif iken boot ekranında bir seferlik seçmek istediğiniz entry index’ini belirtiyoruz. Restart ettiğimizde grub seçtiğimiz entry seçili olacak şekilde açılıyor. Buradan default entry’yi değiştirmiyoruz. Bir kereye mahsus seçmek istediğimiz entry’yi belirtiyoruz. Her seferinde bu işlemi yapmamız gerekiyor.

Şimdi grub ekranı ve komuta bakıyoruz:

İndex numaraları ve girdileri yazarsak;

0 - elementary
1 - Advanced options for elementary
2 - Windows Boot Manager ...
3 - System setup

Bir sonraki başlatma esnasında Windows’un seçili gelmesini istiyorsak grub-reboot komutundan sonra index numarasını aşağıdaki gibi giriyoruz

sudo grub-reboot 2

Restart ettikten sonra bilgisayarınız Windows ile başlayacaktır. Windows’ta restart ettiğinizde varsayılan girdi olan elementary seçili olarak gelecektir.

Problem 2 — Her Sistemler Arası Geçişte Klavyeyi Tekrar Eşleştirmek

Klavye ile bilgisayar arasında eşleştirme yaptığımızda iki taraf MAC adresi ve eşleşme anahtar bilgisini saklıyor.

Diğer işletim sistemine geçiş yaptığımızda, klavyede kendinde bulunan MAC adresi ile eşleşme anahtarını bulmayı bekliyor. Fakat aynı MAC adresi olsa da eşleşme anahtarı farklı olduğu için bağlantı kuramıyor. Özetle her iki işletim sistemi aynı bilgisayarda olduğundan MAC adresi aynı bu nedenle klavye farklı cihaz olarak görmediği için son kaydettiği eşleşme anahtarını arıyor ve bulamıyor.

Bu sorunu aşmak için her ikisi sistemde aynı eşleşme anahtarını kullanmalıyız. Bu anahtar işletim sistemi tarafından oluşturulup atandığı için sistemde değişiklik yapmamız gerekecek.

İlk olarak her iki işletim sisteminizde klavyenizi bir kere eşleştirin ve Linux sisteminizi başlatın.

1) Linux'ta klavyenin otomatik bağlanmasını sağlamak

Eğer bu işlemi yaptıysanız sonraki adıma geçebilirsiniz. Fakat klavyenin MAC adresini öğrenmek için ilk komutu kullanabilirsiniz.

sudo bluetoothctl

Listede 34...D8 yanında Keyboard K380'i görüyoruz. Cihazımızın MAC adresi bu. Şimdi bu cihazı güvenilir olarak kaydederek açılış sonrasında otomatik bağlanmasını sağlayacağız. (Bilgisayar açıldıktan sonra klavyeden herhangi bir tuşa bastığınızda 2-3 sn içinde bağlanacaktır)

trust 34:88:5D:A3:DA:D8

Komutu ile cihazı trusted olarak kaydediyoruz.

Artık otomatik bağlanmak için hazır.

2) Linux'ta eşleştirme yaparak eşleşme anahtarını almak

Klavyenizi çalışacak şekilde bağlayınız. Gerekirse önceki eşleştirme kaydınızı silebilirsiniz. Linux’ta yaptığımız son eşleşme anahtarını kullanacağımız için problem olmayacaktır.

Tüm işlemleri Root olarak yapmamız gerekiyor.

İlk komut ile bağlı Bluetooth cihazları listeleyeceğiz

ll /var/lib/bluetooth/

Komutu ile bilgisayarımızdaki BT cihazının MAC adresini göreceğiz. ilk adımda [NEW] Controller 3C:58:C2:F8:12:71 mypc [default] olarak görmüştük.

Bu klasörün de içine girip tekrar listeleyeceğiz.

cd 3C\:58\:C2\:F8\:12\:71/

Burada bağlı olan 2 cihaz görünüyor. 34...D8 olanın klavye olduğunu ilk adımda öğrenmiştik. Bu klasörün de içine girip info bilgisine bakacağız.

cd 34\:88\:5D\:A3\:DA\:D8/

Ardından

cat info

Komutu ile dosya içeriğini ekrana yazdırıyoruz.

Ekran görüntüsündeki gibi LinkKey tabından Key bilgisini kopyalıyoruz. (Windows'ta bu bilgiyi kullanacağız. Ulaşabileceğiniz bir yere kaydediniz)

3) Eşleşme anahtarını Windows'a kaydetmek

İlk öğrendiğimiz yöntem ile veya kablolu klavye yardımıyla Windows’u başlatıyoruz. Eğer başka bir klavyeniz yoksa ekran klavyesini kullanabilirsiniz.

Fakat işlemler biraz uzun süreceği için ekran klavyesi ile zor olabilir.

3.1) PsTools'u indirip zip arşivinden çıkartıyoruz. (HKEY_LOCAL_MACHINE\SYSTEM içerisini görüntüleyebilmek için gerekiyor)

https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

3.2) Yönetici olarak CMD veya PowerShell'i açıyoruz. cd komutu ile ZIP arşivini çıkarttığımız dizine gidiyoruz.

Ardından aşağıdaki komut ile Regedit'i başlatıyoruz.

.\PsExec64.exe -s -i regedit

3.3) Açılan Registry Editor'de ilk olarak aşağıdaki adrese gidiyoruz. (Pencerenin üstündeki adres satırına tıklayarak verdiğim adresleri yapıştırabilirsiniz)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys

Eğer herhangi bir kayıt görünmüyorsa, aşağıdaki adrese gitmeyi deneyebilirsiniz.

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\BTHPORT\Parameters\Keys

Gördüğümüz gibi Linux'taki klasör yapısı ile oldukça benzer. Windows'ta 34885da3dad8 karşılığı olan c4 21 8c 34 ... değer eşleşme anahtarıdır.

3.4) Klavyeye ait key'e sağ tıklayarak Modify Binary Data seçeneğine tıklıyoruz. Linux'tan kopyaladığımız LinkKey değerini burada tamamı küçük harfli olacak şekilde giriyoruz. OK'a tıklayıp pencereleri kapatıyoruz.

Son olarak klavyenizden bir kaç tuşa dokunduğunuzda otomatik olarak bağlantı kuracaktır. Artık Windows giriş ekranında klavyenizi kullanabilirsiniz.

Ayrıca iki işletim sistemi için sadece bir cihaz hakkımızı kullanmış olduk. Klavyenizi hala farklı iki cihazla daha eşleştirebilirsiniz.

Kaynaklar

How can I tell GRUB I want to reboot into Windows—before I reboot?

Bluetooth Pairing on Dual Boot of Windows & Linux Mint/Ubuntu - Stop having to Pair Devices