Bu belgede, Android çekirdeği (Generic Kernel Image - GKI çekirdeği olarak da bilinir) hakkında sık sorulan sorular yer almaktadır. GKI ve GKI çekirdek terminolojisi hakkında bilginiz yoksa Kernel overview (Çekirdeğe genel bakış) başlıklı makaleyi inceleyin.
Kararlı bir çekirdekte Kernel Module Interface (KMI) sembol listeleri değiştirilebilir mi?
Mevcut KMI'yi etkilemeyen değişiklikler, dondurulmuş çekirdeklere eklenebilir. Bu değişiklikler, yeni dışa aktarılan işlevleri ve sembol listesi girişlerini içerir. Ayrıntılı bilgi için Sembol listelerini yönetme başlıklı makaleye bakın.
Kararlı bir çekirdekte tedarikçi modülleri tarafından kullanılan yapıları değiştirebilir miyim?
KMI arayüzünün parçası olan yapılar, KMI'nin dondurulduğu çekirdeklerde değiştirilemez. KMI dondurulmadan önce bu yapılar değiştirilebilir.
İkili veya kaynak uyumluluğunu bozmadığım sürece çekirdeği değiştirebilir miyim?
KMI'yi etkilemeyen değişiklikler, Android'e özel yamalarda açıklandığı şekilde yapılabilir.
GKI, çekirdek yapılandırmasını nasıl ele alır?
Çekirdek yapılandırması hakkında bilgi için Changes to gki_defconfig başlıklı makaleyi inceleyin.
Mevcut GKI modüllerinin üzerine yazma işlemleri için yukarı akış hata düzeltmelerini nasıl ele alırım?
Android Ortak Çekirdeği (ACK)'ndeki bir sürücüye dayalı bir tedarikçi modülü oluşturursanız yukarı akıştan ve ACK'den gelen hata düzeltmelerinin modülünüze aktarılmasını sağlamak sizin sorumluluğunuzdadır. Genel olarak, bu güncellemelerin Google tarafından tutarlı bir şekilde sağlanması için GKI çekirdeğini ve GKI modüllerini değişiklik yapmadan kullanmanız sizin yararınıza olur.
GKI'ya özel testler var mı?
Sertifikalı bir GKI derlemesinin yüklendiğini doğrulayan ve yayın başına GKI gereksinimlerini zorunlu kılan Tedarikçi Test Paketi (VTS) testleri vardır. Örneğin, başlatma üstbilgisi v3 için Android 12 VTS testleri ve 5.10 çekirdeği çalıştıran bir cihazda gerekli bölümlerin varlığını doğrulamak için testler vardır.
Cihaz derlemeleri için proje defconfig parçası dosyasını nasıl oluşturabilirim?
GKI ile uyumlu birçok cihaz, satıcı modüllerini oluşturmak için gki_defconfig
'ya ek olarak gereken yapılandırma seçeneklerini açıklamak üzere bir yapılandırma parçası kullanır.
ACK kod tabanının parçası olan örnekler arasında Cuttlefish ve DB845c yer alır.
Parçayı optimize etmek için yapılandırma seçeneklerinin manuel olarak incelenmesini tamamen önlemenin bir yolu yoktur. Ancak scripts/diffconfig
, gki_defconfig
ve gki_defconfig+device.fragment
sonuçlarını karşılaştırmak için çekirdek kaynaklarından yararlanmak faydalı olabilir.
modprobe'un - ve _ karakterlerini eşdeğer olarak ele almasıyla ilgili geçici bir çözüm var mı?
modprobe man sayfası şu açıklamayı içerir: "modprobe
bir modülü Linux çekirdeğine akıllıca ekler veya bu çekirdekten kaldırır: Kolaylık sağlamak için modül adlarında _ ile - arasında fark olmadığını unutmayın (otomatik alt çizgi dönüştürme işlemi gerçekleştirilir)." GKI ekibi, standart yukarı akış kuralına uyar. Bu nedenle, tedarikçi araçları veya modül adlandırma kuralları bu uyumu dikkate almalıdır.
Dahili kullanım için debugfs'yi nasıl etkinleştirebilirim?
debugfs'nin etkinleştirilmesiyle ilgili ayrıntılar için intrusive downstream debug features başlıklı makaleyi inceleyin.
GKI çekirdeği ile belirli bir modül yapılandırması etkinleştirilmiş arasındaki ABI'lerin eşleşmemesi sorununu nasıl çözebilirim?
GKI çekirdeği ile modül yapılandırması arasındaki ABI'lerin eşleşmemesi, örtülü bir modül yapılandırma bağımlılığını temsil eder. Bu durumda, bir modülün etkinleştirilmesi, sonuçtaki çekirdek görüntüsüne ikili yapılandırmanın yerleştirilmesine neden olur. İlerlemek için bir yol belirlemek üzere Android çekirdek ekibiyle (kernel-team@android.com) iletişime geçin. Sembol listesi belirlendikten sonra Issue Tracker'da bir hata oluşturun ve sembol listesinde değişiklik yapın.