<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.synology-forum.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Modprobe</id>
	<title>Modprobe - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://www.synology-forum.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Modprobe"/>
	<link rel="alternate" type="text/html" href="https://www.synology-forum.de/wiki/index.php?title=Modprobe&amp;action=history"/>
	<updated>2026-05-07T02:26:30Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Synology Wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://www.synology-forum.de/wiki/index.php?title=Modprobe&amp;diff=586&amp;oldid=prev</id>
		<title>imported&gt;Mahgue: modprobe howto</title>
		<link rel="alternate" type="text/html" href="https://www.synology-forum.de/wiki/index.php?title=Modprobe&amp;diff=586&amp;oldid=prev"/>
		<updated>2011-08-18T21:13:48Z</updated>

		<summary type="html">&lt;p&gt;modprobe howto&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Wozu modprobe ? ==&lt;br /&gt;
&lt;br /&gt;
Module für den Kern des Betriebssystems (Dateien mit &amp;lt;code&amp;gt;*.ko&amp;lt;/code&amp;gt;) sind Dateien mit binärem Code der zur Laufzeit mit dem bereits laufenden Code des Kerns verbunden (linked) werden kann. Dabei werden neue Funktionen zur Verfügung gestellt die entweder direkt von Applikationen genutzt werden können oder wieder von anderen Modulen. Verwendet ein Modul Funktionen eines anderen so kann es nur geladen werden wenn das andere Modul bereits geladen und initialisiert ist. Das führt dazu das manche Module einen ganze Baum von anderen Modulen benötigen. Mit Änderungen an den Modulen können sich auch die Abhängigkeiten verändern. Das Tool &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; sorgt beim Laden eines Moduls dafür dass alle Module von denen das zu ladende Module direkt oder indirekt abhängig ist vorher in der richtigen Reihenfolge auch geladen werden. Später kann man das Modul auch wieder mit &amp;lt;code&amp;gt;modprobe -r&amp;lt;/code&amp;gt; entfernen und das Tool sogt dafür das danach nicht mehr benötigte Module ebenfalls in der passenden Reihenfolge entfernt werden. Es ist keine Gute Idee derartige Ketten von &amp;lt;code&amp;gt;insmod&amp;lt;/code&amp;gt; Aufrufen explizit in Scripte zu schreiben. Mit dem nächsten Kernel- oder auch nur Modul-Update kann sich das schon wieder ändern.&lt;br /&gt;
&lt;br /&gt;
Auf großen Systemen ist &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; selbstverständlich von Anfang an mit installiert. Auf Embedded-Systemen lohnt sich das erst bei komplexeren Setups. Auf unserer Diskstation lohnt es sich erst wenn man mit [[IPKG]] installierten Diensten arbeitet die mehr als ein Modul benötigen.&lt;br /&gt;
&lt;br /&gt;
== Vorbereitung ==&lt;br /&gt;
&lt;br /&gt;
Es muss [[IPKG|ipkg]] installiert sein. Damit &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; die Abhängigkeiten analysieren kann müssen sie erst mal bestimmt werden. Dazu gibt es &amp;lt;code&amp;gt;depmod&amp;lt;/code&amp;gt;. Es liest alle Module und deren Symbole durch und erstellt eine Datei aus der &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; die Abhängigkeiten lesen kann. Gibt man einfach &amp;lt;code&amp;gt;depmod&amp;lt;/code&amp;gt; ein erhält man erst mal einen Fehlermeldung:&lt;br /&gt;
&lt;br /&gt;
 depmod&lt;br /&gt;
 WARNING: Couldn&amp;#039;t open directory /opt/lib/modules/2.6.15: No such file or directory&lt;br /&gt;
 FATAL: Could not open /opt/lib/modules/2.6.15/modules.dep.temp for writing: No such file or directory&lt;br /&gt;
&lt;br /&gt;
Als Optware-Tool erwartet &amp;lt;code&amp;gt;depmod&amp;lt;/code&amp;gt; die Module in &amp;lt;code&amp;gt;/opt/lib/modules&amp;lt;/code&amp;gt; und dort wie bei den großen Systemen in einem Verzeichnis das den Namen der laufenden Kern-Release hat. Auf der Diskstation liegen die Module aber unabhängig von der Kern-Version in &amp;lt;code&amp;gt;/lib/modules&amp;lt;/code&amp;gt;. Da wir auf der Diskstation nicht ständig mehrere Kerne vorhalten oder austauschen lösen wir das ganze hier etwas unsauber aber schnell mit einem symbolischen Link.&lt;br /&gt;
&lt;br /&gt;
 mkdir /opt/lib/modules&lt;br /&gt;
 ln -s /lib/modules /opt/lib/modules/$(uname -r)&lt;br /&gt;
 depmod&lt;br /&gt;
&lt;br /&gt;
Jetzt ist in &amp;lt;code&amp;gt;/opt/lib/modules&amp;lt;/code&amp;gt; ein symbolischer Link der so heißt wie die Release des Kerns und auf &amp;lt;code&amp;gt;/lib/modules&amp;lt;/code&amp;gt; verweist. Damit ist &amp;lt;code&amp;gt;depmod&amp;lt;/code&amp;gt; zufrieden und erzeugt dort die Datei &amp;lt;code&amp;gt;modules.dep&amp;lt;/code&amp;gt;. Damit sollte &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; jetzt auch laufen.&lt;br /&gt;
&lt;br /&gt;
== Testen ==&lt;br /&gt;
&lt;br /&gt;
Einfach mal ein Modul laden das Abhängigkeiten hat. Versuchen wir es mit &amp;lt;code&amp;gt;insmod&amp;lt;/code&amp;gt; so wird es scheitern.&lt;br /&gt;
&lt;br /&gt;
 insmod iptable_nat.ko&lt;br /&gt;
 insmod: error inserting &amp;#039;iptable_nat.ko&amp;#039;: -1 Unknown symbol in module&lt;br /&gt;
&lt;br /&gt;
Versuchen wir es mit &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; werden die nötigen drei anderen Module einfach vorher auch geladen.&lt;br /&gt;
&lt;br /&gt;
 modprobe iptable_nat&lt;br /&gt;
 lsmod | grep iptable_nat&lt;br /&gt;
 iptable_nat             6564  0 &lt;br /&gt;
 ip_nat                 16370  1 iptable_nat&lt;br /&gt;
 ip_tables              19840  1 iptable_nat&lt;br /&gt;
 ip_conntrack           46000  2 iptable_nat,ip_nat&lt;br /&gt;
&lt;br /&gt;
Würden wir das Modul mit &amp;lt;code&amp;gt;rmmod&amp;lt;/code&amp;gt; wieder entfernen würden die anderen nutzlos im Speicher liegen bleiben. Machen wir es mit &amp;lt;code&amp;gt;modprobe -r&amp;lt;/code&amp;gt; wird alles wieder korrekt aufgeräumt.&lt;br /&gt;
&lt;br /&gt;
 modprobe -r iptable_nat&lt;br /&gt;
 lsmod | grep ip&lt;br /&gt;
&lt;br /&gt;
Dieser Mechanismus ist vor allem für ordentliche mit start- und stop-Option versehene Optware-Scripte sehr praktisch. Siehe z.B. das [[IPKG#Startup_Script_openvpn_mit_NAT|Start-Script]] für [[OpenVPN_auf_der_Diskstation|openvpn]] mit [[NAT]].&lt;/div&gt;</summary>
		<author><name>imported&gt;Mahgue</name></author>
	</entry>
</feed>