Tedarikçi modülleri için KMI'nin istikrarlı olmasını sağlamak çok önemlidir. GKI çekirdeği olarak oluşturulur ve gönderilir. Tedarikçi firma tarafından yüklenebilen modüller ayrı bir ağaç. Ortaya çıkan GKI çekirdeği ve tedarikçi modülleri şu şekilde çalışmalıdır: birlikte inşa edilmiş olmalarına rağmen.
Linux topluluğu genellikle çekirdek içi ABI istikrarı konusunda endişeli ana hat çekirdeğinin temelini oluşturuyor. Araç zincirleri, yapılandırmalar, ve sürekli gelişen bir Linux ana çekirdek çekirdeğine sahip bir ana hatta istikrarlı KMI'dir. Ancak KMI'nin sabit kalmasını sağlamak, son derece kısıtlı GKI ortamına geçeriz.
Tek bir yapılandırma (
gki_defconfig
) ile kernel'e gidin.KMI, bir çekirdeğin yalnızca aynı LTS ve Android sürümünde kararlı çalışır.
android13-5.10
,android12-5.10
veyaandroid13-5.15
gibi.android-mainline
için KMI kararlılığı sağlanmaz.
AOSP'de yalnızca belirli Clang araç zinciri sağlanır ve çekirdek ve modül derlemek için kullanılır.
Yalnızca simge listesinde belirtilen şekilde modüller tarafından kullanıldığı bilinen simgeler Kararlılık açısından izlenir ve KMI sembolleri olarak kabul edilir.
- Bu nedenle, tedarikçi modüllerinde yalnızca KMI sembolleri kullanılmalıdır. Bu KMI simgeleri olmayan simgeler, yüklemelerde başarısız olduğu için gereklidir.
KMI dalı dondurulduktan sonra değişikliklere izin verilir ancak KMI'yı bozamaz. Bu değişiklikler aşağıdakileri içerir:
- Yapılandırma değişiklikleri
- Çekirdek kodu değişiklikleri
- Araç zinciri değişiklikleri (güncellemeler dahil)
Hermetik derleme işlemini ve LLVM araç zincirini kullanma
Hermetik derleme süreci,repo
kernel/manifest
, derleme ortamını tam olarak açıklar. Örneğin,
android13-5.15
manifesti
araç zincirini, derleme komut dosyalarını ve bir komut dosyası oluşturmak için gereken
Genel Kernel Görüntü (GKI) çekirdeği. İlgili build.config
yapılandırması
GKI derleme yapılandırması build.config.gki.aarch64
gibi dosyalar oluşturun.
Tutarlı derleme oluşturmak için eklenen araçların doğru şekilde kullanıldığından emin olun
sonuç.
Hermetik derleme işlemi kullanmak,
ağaç, Google tarafından üretilip üretilmediğine bakılmaksızın tutarlıdır (örneğin,
abi_gki_aarch64.xml
(android13-5.15
için) veya tedarikçi firmayı içeren yerel bir ağaçta oluşturulur.
modüllerinde yer alır. İlgili içeriği oluşturmak için kullanılan
ABI açıklamasını oluşturma ve karşılaştırma araçları
Ayrıca depoda ayrıca, Kernel Module Interface (KMI) için de
manifest dosyasında açıklanmıştır.
GKI çekirdeğini oluşturmak için kullanılan araç zinciri, tedarikçi firma modüllerini oluşturmak için kullanılan araç zinciridir. Android itibarıyla 10. Tüm Android çekirdekleri geliştirilmelidir. olduğu anlamına gelir. GKI ile, ürün geliştirmek için kullanılan LLVM araç zinciri çekirdeklerin ve tedarikçi firma modüllerinin, LLVM araç zinciriyle aynı ABI'yı AOSP ve iş ortakları, KMI'nin GKI çekirdeğiyle uyumlu olduğundan emin olmalıdır. Kapsamlı bir yapılandırma sunulduğundan dolayı, sağlanan derleme araçlarının emin olun.
Sırada ne var?
Hermetik derleme işlemini kullanarak çekirdeği oluşturma ve LLVM araç zinciri, Çekirdekleri oluşturun.
ABI'yi izleme ve sorunları düzeltme ile ilgili talimatlar için Android Kernel ABI İzleme