2014-07-01 31 views
5

Şu anda Ext4'ü akademik amaçlı olarak ekliyorum (yalnızca linux/fs/ext4/*, dosya.c, ioctl.c, ext4.h gibi). QEMU sanal makinesinde çalışıyorum ve tüm süreci hızlandırmak için Ext4'ü bir çekirdek modülü olarak derlemeyi seçtim. Sorun, make modules ARCH=x86 && make modules_install ARCH=x86'u çalıştırdığım ve makineyi yeniden başlattığım (/ Ext4) olsa bile, yeni değişiklikleri sınama söz konusu olduğunda ortaya çıkıyor, tüm çekirdeği yeniden derlemediğim sürece görünür değiller.Kernel modülü olarak Ext4 kodlama ve derleme

  1. Bu kadar yapılandırılır:

    $ grep EXT4 .config 
    CONFIG_EXT4_FS=m 
    
  2. Bu modül olarak derlemek gelmez Ext4 bir modül olarak derlenmiş edildiğini ben işaretleri bir çeşitlilik var gibi biraz garip:

    $ make modules ARCH=x86 
    (...) 
    CC [M] fs/ext4/ioctl.o 
    LD [M] fs/ext4/ext4.o 
    Building modules, stage 2. 
    MODPOST 3 modules 
    LD [M] fs/ext4/ext4.ko 
    
  3. $ make modules_install ARCH=x86 sonra /lib/modules/3.13.3/kernel/fs/ dosyaları uygun bir zaman damgası var. Nihayet

  4. : Ben değişiklikleri görmek için $ make all ARCH=x86 yapmak zorunda Nedense

    $ lsmod 
    Module     Size Used by 
    ext4     340817 1 
    (...) 
    

zamanında görünür. Neyi özledim? Teşekkürler!

cevap

4

En çizme işlemleri çekirdek bir şey yapmak mümkün yüklemek için ihtiyaç duyduğu tüm çekirdek modüllerini içeren bir "ramdisk'i" (initrd) kullanan - sonuçta bir Ext4 dosya sisteminden dosyaları okumak için, çekirdek gereken bir Bu dosya sistemi için sürücü ve sürücü, söz konusu dosya sistemi üzerinde ise, ...

Bu nedenle, tüm bu dosyaları bir arşive (başlangıç ​​ramdisk) paketlemek ve liste olarak sabit disk bloklarını kaydetmek önyükleyicideki sayıların Daha sonra blokları doğrudan yüklemek, sürücüleri çıkarmak ve yüklemek için ilkel bir IDE/SATA sürücüsü kullanabilir.

initrd'nin nasıl güncelleneceğini öğrenmek için linux dağıtımınızın belgelerine bakın. Ubuntu Linux'umda, mkinitramfs.

İlgili:

+0

sayesinde tabii cevap olduğunu! Bunu düşünebilirdim :) –