2010-08-12 11 views
5

Bir linux modülünün derlenmiş bir sürümüne sahibim ve sonra kaynağında yaklaşık 20 + varyasyon var. Çeşitli aptalca hatalar sayesinde, kaynağın hangi versiyonunun modülü yapmak için kullandığım gerçek versiyonunu kaybettim.modinfo srcversion: Bunu kaynağımdan nasıl oluştururum?

modinfo <module name>'un srcversion: <hash> verdiğini fark ettim ve "Modülü oluşturan kaynağın toplamı" yazan bir yerde bir açıklama buldum. Kulağa mükemmel geliyor!

Bu karma üretmek için modül kaynaklarıma ne yaparım?

cevap

7

srcversion, scripts/mod/modpost programı tarafından tanımlanmıştır. Modpost'a vermeniz gereken tam seçenekleri bilmiyorum, böylece bu alanı çıktılar. scripts/mod/modpost -a -m vmlinux you_module.o'a benzer bir şey olmalıdır (tam seçenekler için scripts/Makefile.modpost'a bakabilirsiniz). Daha sonra çıktı

için config MODULE_SRCVERSION_ALL değerini y (Enable loadable module support alt menüsünde mevcuttur) olarak ayarlamanızı öneririz, böylece srcversion, yapınızın tüm modülleri için otomatik olarak üretilir. Daha sonra kaynağınızdaki varyasyonlar arasında geçiş yapabilir, yeni kaynak varyasyonlu çekirdeğinizi yeniden oluşturabilirsiniz (sadece ilk modülünüzden sonra modülünüz yeniden oluşturulmalıdır) ve ardından drivers/path/to/your_module.mod.c dosyanızın sonunda bulunan MODULE_INFO(srcversion, "<hash>"); alanına bakarak istediğinizi bulabilirsiniz. bilgi.

İlgili konular