Genel çekirdek görüntüsü (GKI),
bir cihazın bölümleri ekleyebilmesini sağlar. Bir cihazın bölümleri ekleyebilmesini ve
başlatmaya devam etmek için birinci aşama init
,
Çekirdek modüllerinin hazırlanması. Ramdisk genel ve
çok iyi olur. Tedarikçi firma çekirdek modülleri tedarikçi firma RAM'inde depolanır. İlgili içeriği oluşturmak için kullanılan
çekirdek modüllerinin yüklenme sırası yapılandırılabilir.
Modül konumu
Ramdisk, ilk aşama init,
ve diğer başlangıç aşamalarının dosya sistemidir.
A/B ve sanal A/B cihazlarında kurtarma/hızlı başlatma görüntüsü. Bu bir
initramfs
,
bootloader'ı tıklayın. Tedarikçi firma ramdisk'i olarak depolanan ilk cpio arşivi
bölümünde, aşağıdaki bileşenleri içerir:
- Şu konumda bulunan ilk aşama
init
tedarikçi çekirdek modülleri:/lib/modules/
. /lib/modules/
konumunda bulunanmodprobe
yapılandırma dosyası:modules.dep
,modules.softdep
,modules.alias
,modules.options
.- Hangi modüllerin yükleneceğini gösteren bir
modules.load
dosyası hangi sırayla gerçekleştiğine/lib/modules/
. - A/B ve Sanal A/B cihazları için tedarikçi kurtarma çekirdek modüllerini
/lib/modules/
. - Yüklenecek modüllerin gösterildiği
modules.load.recovery
ve A/B ve Sanal A/B cihazları için, A/B ve Sanal A/B cihazları için,/lib/modules
.
GKI ile birlikte sağlanan ikinci cpio arşivi
boot.img'in ramdisk'i olarak ayarlanır ve
ilk olarak first_stage_init
öğesini ve bağlı olduğu kitaplıkları içerir.
İlk aşamada modül yükleme
İlk aşama init
, modprobe yapılandırmasını okuyarak başlar
/lib/modules/
dosyalarını ramdiskte bulabilirsiniz. Ardından, listeyi okur
/lib/modules/modules.load
içinde belirtilen modüllerin sayısı (veya
(/lib/modules/modules.load.recovery
) geri bildirim verir ve
Bu modüllerin her birini
emin olun. İstenen sıra - arasında değiştirilebilir.
ya da yumuşak bağımlılıkları
karşılamaktan bahsedeceğiz.
Destek oluşturma, ilk aşama
Tedarikçi firma ramdisk cpio'ya kopyalanacak çekirdek modüllerini belirtmek için,
BOARD_VENDOR_RAMDISK_KERNEL_MODULES
içinde görüntüleyin. Derlemenin çalıştırılması
depmod
ekler ve elde edilen modprobe yapılandırmasını uygular
dosyalarını kullanabilirsiniz.
Derleme ayrıca bir modules.load
dosyası oluşturur ve bunu
ramdisk cpio'dur. Varsayılan olarak Google Cloud Platform'da listelenen tüm modülleri içerir.
BOARD_VENDOR_RAMDISK_KERNEL_MODULES
gösterildiği gibi BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD
kullanın
bu örnekte:
BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := \ device/vendor/mydevice-kernel/first.ko \ device/vendor/mydevice-kernel/second.ko \ device/vendor/mydevice-kernel/third.ko
Derleme desteği, tam Android
Android 10 ve önceki sürümlerde olduğu gibi, çekirdek modülleri
BOARD_VENDOR_KERNEL_MODULES
, Android platformu tarafından kopyalanır
/vendor/lib/modules
adresindeki tedarikçi firma bölümünde derlenir. İlgili içeriği oluşturmak için kullanılan
platform derlemesi bu modüllerde depmod
üzerinde çalışır ve
depmod
çıkış dosyalarını aynı anda tedarikçi firma bölümüne
konum. /vendor
üzerindeki çekirdek modüllerini yükleme mekanizması
önceki Android sürümleriyle aynıdır. Bu sizin kararınız
yüklemenin yolu genellikle Search Ads 360'ta nasıl
init.rc
komut dosyası.
Joker karakterler ve entegre çekirdek derlemeleri
Cihaz çekirdek derlemelerini Android platformu derlemesiyle birleştiren sağlayıcılar
için yukarıda belirtilen BOARD
makrolarının kullanılmasıyla ilgili bir sorunla karşılaşabilirsiniz:
cihaza kopyalanacak çekirdek modüllerini belirtin. Tedarikçi web sitesinden satın almak
çekirdek modüllerini cihazın platform derleme dosyalarında listelediği için,
($(wildcard device/vendor/mydevice/*.ko
). Joker karakterin
entegre çekirdek derlemesi durumunda çalışır, çünkü oluşturucu çağrıldığında ve
makrolar oluşturma dosyalarında genişletilir, çekirdek modülleri oluşturulmamıştır; bu nedenle makrolar
boştur.
Tedarikçi, bu sorunu çözmek için çekirdeğinin bir zip dosyası oluşturmasını sağlayabilir.
her bölüme kopyalanacak çekirdek modüllerini içeren arşiv.
Bu zip arşivinin yolunu BOARD_*_KERNEL_MODULES_ARCHIVE
içinde belirleyin
Burada *
, bölümün adıdır (ör.
BOARD_VENDOR_KERNEL_MODULES_ARCHIVE
). Android platformu derlemesi
bu zip arşivini uygun konuma çıkarır ve depmod
komutunu çalıştırır.
üzerine konuşacağız.
Çekirdek modülü ZIP arşivinde, platformun derlemesi gerektiğinde arşivi oluşturabilir.
Kurtarma
Önceki Android sürümlerinde, kurtarma için gereken çekirdek modülleri
BOARD_RECOVERY_KERNEL_MODULES
içinde belirtilir. Android 12'de
kurtarma için gereken çekirdek modüllerini
bu makro kullanılarak belirtilir. Ancak kurtarma çekirdek modülleri
satıcı ramdisk cpio'yu kullanmalıdır. Varsayılan olarak tümü
BOARD_RECOVERY_KERNEL_MODULES
konumunda listelenen çekirdek modülleri yüklendi
ilk aşamada init
. Bunların yalnızca bir alt kümesini istiyorsanız
modüllerin içeriğini kullanıyorsanız, bu alt kümenin içeriğini
BOARD_RECOVERY_KERNEL_MODULES_LOAD
İlgili belgeler
Tedarikçi firma başlatma bölümü (tedarikçi firma başlatma bölmesi) bu sayfada bahsedilen ramdisk), bkz. Bot bölümleri bulunur.