[Pardus-kullanicilari] mkinitramfs sorunu, xen modullerimi eklemiyor
Onur Küçük
onur at pardus.org.tr
1 Ara 2007 Cmt 20:29:42 EET
> devel'den derledigim mkinitramfs simdi ekledigim moduleri dahil ediyor
> initramfs dosyasina, ancak ne hikmetse bu modullerden sadece birini
> modprobe ediyor, digerlerini etmedigi icin de disk device'larim
> calisamiyor.
Bir modülün initramfs de yüklenmesi için ya bir başka modülün
bağımlılığı olması (module alias) ya da sistemde bulunan bir aygıt
listesinde tanımlı olması (örneğin kendini belli bir PCI ID sine sahip
aygıtı çalıştırıyor olarak tanımlaması ve o PCI ID sinin açılan sanal
ya da gerçek sistemde var olması) gerekiyor. Bunun dışında modüller
gerekiyorsa initramfs betiğini değiştirip elle yüklüyoruz.
> Sorunu anlayabilmis degilim. Eger su komutlari initramfs komut
> satirinda iken elle girersem sistemim boot etmeye basliyor:
>
> modprobe xen-vbd
> modprobe xen-vnif
> mknod /dev/xvda1 b 202 1
> mknod /dev/xvda2 b 202 2
Modüller blockdevice oluşturuyor sanırım. mknod lar gerçekten
gerekiyor mu ? Bu işlemi normalde coolplug la yapıyoruz.
Modüller yüklenmeden önce ve sonra /sys/block da bir değişiklik oluyor
mu ?
> mount /dev/xvda1 /newroot
> exec switch_root /newroot sbin/init
>
> xen-platform-pci modulu, bu xen-vbd ve xen-vnif tarafindan gereksinim
> duyulan ana modul, initramfs komut satirinda lsmod diyince bu modulu
> gorebiliyorum, ancak xen-vbd ve xen-vnif calismiyor gorunuyor. Elle
> yukardaki komutlari girince sorun kalmiyor.
>
> Diger notlar:
> - mkinitramfs'in kullandigi script'i bulmaya calistim, /lib/initramfs/
> altinda init script'i buldum
Evet script doğru
>, onu elle degistirerek yeni bir
> probe_xenpv fonksiyonu ekledim, tekrar mkinitfamfs ile ramfs'i
> yaptim, ancak ne hikmetse sistem acildiginda bu degistirdigim dosyayi
> goremiyorum (initramfs prompt'ta), hep eski haliyle duruyor oluyor.
> Ama sistemi boot edip bu ramfs dosyasini cpio ile acinca ise
> gorunuyor, anlamadim derdi ne...
Birşeyleri gözden kaçırıyor olmayasınız ? mkinitramfs dosyalarını
geçici bir dizinde oluşturup eski initramfs dosyalarının üzerine
yazıyor. Karışmaması lazım.
> - initramfs'de iken modprobe ile xen-vbd ve xen-vnif modullerini
> yukledigimde, soyle bir hata mesaji aliyorum, ancak modul yukleniyor
> gene de:
> insmod: cannot insert
> '/lib/modules/2.6.18.8-86/xen_platform-pci.ko' : File exists (-1):
> File exists
Bu modül zaten hafızada yüklü demek. Yukarıdaki her iki modülün de
bağımlılığı ise birinde pci modülü yükleniyor diğerinde tekrar
yüklenmeye çalışıyor olabilir. Busybox daki modprobe bağımlılıklar daha
önceden yüklenmiş mi diye kontrol etmiyor olabilir.
> burada modul adindaki "- ve _" lerin bir onemi var mi? yani - mi
> olmali yoksa _ mi? burda mi sasiriyor acaba?
Normalde var ama busybox ı bu durumun üstesinden gelebilecek şekilde
yamaladık (fancy-modprobe.patch). Bu - ve _ sorun çıkarmamalı.
> - /bin/coolplug ne is yapar? init dosyasinin icinde gordum,
> calistirinca benim xen-platform-pci modulumu yuklemeye claisiyor
> (digerlerini yuklemeye calismiyor).
Initramfs için yazdığımız bir aygıt tanıma programı. PCI, USB, SCSI
aygıtları tarayıp varsa ilgili kernel modüllerini yüklüyor ve device
node larını oluşturuyor. Kaynak kodu şurada
http://svn.pardus.org.tr/uludag/trunk/comar/mudur/src/
--
Onur Küçük Knowledge speaks,
<onur.--.-.pardus.org.tr> but wisdom listens
Pardus-kullanicilari mesaj listesiyle ilgili
daha fazla bilgi