macOS için yeni USB port yapılandırması

Durum
Mesaj gönderimine kapalı.
Anakart ile birlikte gelen USB portlarının macOS altında düzgün çalışması için kullanılan Custom USB SSDT oluşturma yöntemi tüm bu USB portlarını yapılandırma işlemini oldukça kolaylaştırıyor. Fakat birçok kullanıcı için Apple’ın uyguladığı anlamsız 15 port limiti baş ağrıtıyor. Hem bu limit içinde kalabilmek, hem de eldeki portları en iyi şekilde kullanabilmek için için çoğu zaman mevcut portlardan birkaçını “kaybetmeyi” göze almak gerekiyor. Dahası, kullanılan USB portlarının hepsi aynı türde değil. Bu yüzden yapılandırmayı yaparken bunu da hesaba katmak gerekmekte.

@headkaze adında çok yetenekli bir yazılım mühendisi ve Tonymacx86'deki başka bir üye, bu yapılandırmayı yaparken karşılaşılan bir ton sıkıcı işi ve beyin jimnastiğini Hackintool adında çok kullanışlı bir araç ile ortadan kaldırıyor. Bu muhteşem uygulamanın bir kısmı da USB port yapılandırmasına ayrılmış.

macOS Catalina da çıktığına göre artık Apple bu konuda yeni bir yola girmeyi hedefliyor diyebiliriz.

Buna göre artık 32-bit uygulamalar kullanamayacağız. Ayrıca üçüncü parti kext ve sürücülerin neler yapabileceği ile ilgili çok katı sınırlamalar getirilmiş durumda.

Önceki rehberde izlenen yol ile yeni Hackintool aracı birleştirildiğinde USB port yapılandırması için ortaya çok daha kolay bir yöntem çıkıyor. Böylece yukarıda bahsedilen sınırlamalara da ayak uydurmuş oluyoruz.

  • Yeni Rehber
O zaman başlayalım. Rehberi tam anlamıyla uygulayabilmek için ortalama 30 dakika zaman ayırmanızı tavsiye ederiz.

Çok basit Mini-ITX bir model bile olsa anakartınızda muhtemelen Apple’ın bugüne kadar ürettiği cihazların hiçbirinde olmadığı kadar USB portu vardır. Sahip olduğumuz sayıyı macOS’in beklediği miktar ile eşleşene dek azaltmalı, elde kalanları da uygun hızda ve güçte çalıştırdığımızdan ve son olarak da tak çıkar işlemlerinin veri güvenliği açısından sorunsuz çalıştığından emin olmalıyız.

İlk iş ihtiyacımız olan araçları toparlamak olacaktır:
Bu rehberde config.plist dosyamızı doğrudan değiştiriyor olacağız. Açıklayıcı olması adına yaptığımız değişiklikleri kullanılabilecek 3 farklı editörde gösteriyor olacağız. Böylece işinize gelen editörü seçip devam edebilirsiniz. Birçok kişi PlistEdit Pro gibi işinizi görecek seviyede ücretsiz deneme sürümü sunan sade bir metin editörü kullanmayı tercih ediyor. Ek #1’e bakın.

  • Adım 1 - USBInjectAll.kext'yi yükleyin, sonrasında da bir port kaldırma yaması kurun
Anakarttan kullanabileceğimiz kadar USB portunu tek tek yapılandırmamız gerekiyor.

Gizli EFI bölümünüzü mount etmek için önce disk tanımlamasının ne olduğunu kontrol etmeniz gerekiyor. Bunun için Disk Utility uygulamasını çalıştırın ve Device kısmını not alın:

DU.jpg


EFI klasörü, tüm GUID/GPT disklerde herhangi bir APFS kapsayıcısından(container) ve hatta ana diskten bile önce gelecektir. Yukarıdaki görüntü işleri kolaylaştırmak için High Sierra'dan alındı. EFI bölümünü henüz görememize rağmen, normalde ana bölümden önce konumlanır. Bu örnekte diskteki ana bölüm “disk0s2” olduğundan EFI bölümü disk0s1 olacak. (Ekran görüntüsünde listelenen diğer disk, kişisel bir harici depolamadır. Görmezden geliyoruz.)

Disk tanımlamasını da bildiğimize göre artık gizli EFI bölümünü sihirli Terminal komutlarıyla mount edebiliriz:
Kod:
sudo mkdir /Volumes/EFI
sudo mount -t msdos /dev/disk0s1 /Volumes/EFI
Hangi Bootloader'ı kullandığınıza göre EFI bölümünün içinde ne bulacağınız değişir. Clover ya da OpenCore. İkisi de olur.

Clover için - USBInjectAll.kext'yi EFI/CLOVER/kexts/Other altına kopyalayın.
OpenCore için - USBInjectAll.kext'yi OC/Kexts altına kopyalayın ve config.plist dosyasına yeni bir kext bölümü ekleyin. Eski bir OpenCore kullanıcısıysanız her bir kext için o kext dosyasına ait dizini ve çalıştırılabilir dosyalarını vb. tanımlamanız gerektiğini biliyorsunuzdur. (Alttaki ekran görüntüsüne bakın.)

Port Limiti Kaldırma Yaması:

Port Limiti Kaldırma Yamalarına (bundan böyle PLRP diyeceğiz) Rehberler bölümünden ulaşabilirsiniz.

Ek #2'ye bakın.


Clover için -
config.plist dosyasına PLRP'yı girin. Catalina için Clover Configurator görüntüsü:

PLRP-1.png


Örnek olması açısından, aynı yamanın PlistEdit Pro (Ek #1'e bakın) ile eklenen sürümü. Gördüğünüz gibi 5 adet KextsToPatch girdisi ile birlikte listenin en üstünde 2 adet Catalina PLR yaması bulunuyor.

PLPRo2.jpg


OpenCore için - Quirks altından XhciPortLimit değerini /true yapın. OpenCore Configurator'da görünen hali:

H7s.jpg


Aynı Quirk'in PlistEdit Pro ile düzenlenmiş hali. Epey basit:

PLRP-OC.jpg


Değişiklikleri kaydedin ve yeniden başlatın.


  • Adım 2 - Hangi USB portlarına sahip olduğunuzu kontrol edin
Hackintool'u çalıştırın ve menüdeki USB simgesini seçin:

H1.png


Farklı yonga setlerinde farklı sayıda port bulunur ama yukarıdaki görsel oldukça sık rastlanan bir örnek. Yonga setinin Z370 olduğunu mavi renkle vurgulanan çubukta görebilirsiniz.

Ek #3'e bakın.


  • Adım 3 - Port keşfi
Anakartınızda hangi USB portlarını kullanıp yapılandırabileceğinizi tespit edebilmek için her bir portu bir USB flash-disk ile test etmeniz ve Hackintool'daki çıktıda nerede belirdiğini görmeniz gerekmektedir.

Aynı port için ilk olarak USB 2.0 disk ile sonra da USB 3.0/3.1 disk ile yapılan bir test:

H2.jpg
H3.jpg


Fiziksel portlar hep aynı olacaktır ama nasıl numaralandırıldıkları ne tür bir cihaz takılı olduğuna göre değişir. HS** portu USB2.0 ve SS** portu da USB 3.0/3.1'dir. Yani gördüğünüz gibi tek bir fiziksel USB3 portu, bizim 15 limitine göre 2 port sayılacaktır çünkü iki tip cihaz da bu porta takılabilir.

Bu işlemi anakartınızdaki her bir port için tekrarlayın ve bir yerde kaydını tutun.

Z370M-D3H model anakart için yapılan plan bu şekilde:

BP-3.jpg
MB-4.png


Bununla birlikte artık Hackintool listesindeki ihtiyacımız olmayan portları kaldırarak Apple'ın öngördüğü sihirli 15 port numarasına ulaşmış olacağız. Bunu yapmak için ihtiyacımız olmayan her bir portu cmd+fare metodu ile seçelim:

H4.jpg


Bunu yaptıktan sonra kırmızı ile işaretlenen Sil butonuna basıyorsunuz. Bu işlem kullanmak veya yapılandırmak istemediğimiz portları kaldırmaktadır.

Son liste bu şekilde:

H5_2.jpg



  • Adım 4 - Yapılandırma dosyasını dışa aktarın
Yapılandırmayı dışa aktarmak için yukarıda kırmızı çember ile işaretlenen butona tıklayın. Ortaya çıkan dosyalardan USBPorts.kext olanı istediğimiz dosya. Diğer dosyalar farklı yapılandırma yöntemleri için kullanışlı fakat şu anda onlara ihtiyacımız yok:

H6.jpg



  • Adım 5 - Yapılandırmayı yükleyip ortalığı temizleyelim
EFI bölümü mount edilmiş bir şekilde bekliyorsa yapabilecekleriniz:

Clover için - USBInjectAll.kext dosyasını silin ve EFI/CLOVER/kexts/Other içindeki USBPorts.kext ile değiştirin. PLR yamalarını config.plist içinden ya düzenleyerek ya da Clover Configurator ile Disable kutucuklarına tıklayarak kaldırın.

OpenCore için - USBInjectAll.kext dosyasını silin ve OC/Kexts içindeki USBPorts.kext ile değiştirin. config.plist içindeki kext adını değiştirmeyi unutmayın! PLR yamalarını da düzenleyerek /false yapın ya da Quirks altından XhciPortLimit tikini kaldırın.

Değişiklikleri kaydedin ve yeniden başlatın.


  • Adım 6 - İşlem tamam, kontrol edin
Ya Hackintool'u çalıştırın ve portları görebilmek için USB simgesine tıklayın ya da IORegistryExplorer'ı çalıştırın ve XHC kısmına gelene kadar sol paneli aşağı kaydırın:

IOR2.jpg


Bu kadar. USB port yapılandırmanızı tamamladınız!

Ek #1
  • conlig.plist dosyası salt yazıdan oluşan XML formatındadır ve bu dosyayı düzenleyebilmek için bir metin editörüne ihtiyacınız vardır. Hangi editörü seçeceğiniz size bağlıdır. Birçok kişi PlistEdit Pro önerirken bazıları da Apple'ın Xcode editörünü öneriyor. Bunun dışında birçok alternatif var fakat seçeceğiniz editör düzenlemeyi salt metin şeklinde yapmalıdır. Zengin vb. formatta düzenleme yapılmamalıdır. Nasıl ayarlayacağınızı bilirseniz macOS'in TextEdit editörü bile işinizi görür.
  • Rehberde Clover Configurator ve OpenCore Configurator ile örnekler gösterilse de bunlar kompleks yazılımlardır ve zaman zaman bazı şeyleri sık sık güncellenmelerine rağmen bozabilirler. Bu yüzden bu iki yazılıma sırtınızı tamamen dayamayın. Yaptığınız işi iki kez kontrol ederek ilerleyin ve ilerleme kaydettikçe yedek alın.
Ek #2
  • Port Limiti Kaldırma Yamaları'nın kalıcı bir yöntem olmadığı aklınızda bulunsun. Çünkü bu yamalar Apple'ın bu iş için ayırdığı belleğin üstüne yazma işlemi yapar ve ayrılmış alanın dışına çıkar. USB portlarınızı kutudaki altılık iki sırada bir düzine yumurtaya benzetin. Kutu tam dolu olduğunda kapak kapak sorunsuz bir şekilde kapanır ama üstüne 5 yumurta daha ekeyim derseniz belki bunun için kutuda yer bulursunuz ama kapak kapanmayabilir. Kapağı kapatacağım derken de yumurtaları kırabilirsiniz.

    Yani, uzun vadeli yama kullanımı, veri kaybına ve sistem çöküşlerine bir sakal uzaklığındasınız anlamına gelir.
Ek #3
  • Rehber, tüm modern Intel yonga setlerinin sahip olduğu XHCI kontrolcüsüne odaklanmaktadır. Bazı eski anakartlar eski EHCI standardına ve yeni XHCI standardına sahip yonga setleri içerebilir. Hatta bazılarının iki EHCI kontrolcüsü bile olabilir. Eğer Hackintool'un üst panelinde ikisi EHC, biri XHC olan üç satır görürseniz doğrudan XHC'ye odaklanın zira USB 3.0 buradan gelmektedir. Sadece iki adet EHC görürseniz sisteminiz USB 2.0'a mahkum demektir ama bu portları bir sonraki aşamaya geçtikçe kullanabilirsiniz. Bunun için eski rehberden yardım alarak config.plist dosyasında bazı isimleri yeniden düzenlemeniz gerekecektir.

Son teknik not: Apple hangi 3. parti Kext'lerin yüklenip yüklenemeyeceğine hükmettiğinden dolayı ACPI/USB portlarını düzenlemek için herhangi bir Kext kurulumu ileride engellenebilir. Fakat biz USBPorts.kext dosyamızı EFI/ veya OC/ klasörüne yerleştirdiğimizden macOS bunu göremiyor. Dahası, Terminal'den kextstat çalıştırdığınızda diğer Kext'lerin macOS tarafından algılandığını fakat USBPorts.kext'nin algılanmadığını görebilirsiniz. Bu, kapsayıcısında(container) çalıştırılabilir bir dosya bulunmadığından olabilir.

Emeği geçenler

Hackintool'u yapabilmek için gösterdiği özenli çalışmadan ötürü @headkaze'e teşekkürler.

USBInjectAll.kext'yi en son anakart ve yonga setleri için elden geçirdiği için @Sniki'ye teşekkürler.

Kaynak: The New Beginner's Guide to USB Port Configuration
 
Durum
Mesaj gönderimine kapalı.

Geri
Yukarı