V současné době musím překompilovat ovladač bezdrátové sítě ze zdroje pokaždé, když dostanu nové vydání jádra. Myslel jsem si, že by bylo strašně hackerské automatizovat tento proces, a tak jsem svůj Bash build skript propojil do /etc/kernel/postinst.d
. Ověřil jsem, že ve skutečnosti běží, když je nainstalována nejnovější aktualizace jádra, ale jedna věc zůstává jako problém:ovladač se zkompiluje pro stávající běžící verzi jádra.
Pokud například používám 3.0.0-14-generic a apt-get dist-upgrade
do jádra 3.0.0-15-generic, pak se to zkompiluje pro jádro 3.0.0-14-generic, což mi ve skutečnosti vůbec nepomůže.
Existuje způsob, jak zjistit z mého postinst skriptu jádra, která verze jádra byla nainstalována, abych ji mohl předat svému make
call, aby mohl být zkompilován pro nově nainstalované jádro?
Přijatá odpověď:
Toto není skutečná odpověď na vaši otázku, pouze ukazatel na nástroj, který by mohl být související a užitečný:
Máte dkms
nainstalováno? (Některé informace zde, stránka alioth se v tuto chvíli zdá být nedostupná.) Má to dělat právě to, pokud nejsem uveden v omyl. Vyžaduje příslušné linux-headers
balíček a balíček modul/firmware/něco podobného, který se má nainstalovat; a funguje pro všechny nainstalované linux-image
balíčky. (Nemohu říci nic o generickém modulu, ale fungoval dobře, když jsem jej používal s nesvobodným modulem nvidia.)
(Zde je více odkazů, jako je manuálová stránka a tento linuxjournal.com
článek, který poskytuje vysvětlení programu, které není zaměřeno na ekosystém Debianu.)