pxe erweiterung dnsmasq

Eine interessante Erweiterung.

PXE würde ich es zwar nicht nennen, weil es die Sache nicht ganz trifft. PXE ist die Bezeichnung für eine Software Schnittstelle zwischen Netzwerkkarten-ROM und dem zu ladenden Programm auf Intel CPUs.

Das Booten übers Netzwerk geht auch mit Netzwerkkarten, die nicht PXE kompatibel sind, sogar mir Rechnern, die nicht Intel kompatibel sind.

Hier wird zum einen der TFTP Server aktiviert, zum anderen die Option Bootfile bei DHCP/BOOTP.

Ich habe die Änderungen mal als Patch angehängt, so daß man leichter sehen kann, was geändert ist.

Soll die Änderung in den ds-mod eingebaut werden?

Code:
diff -urw packages/dnsmasq-2.40/root/etc/default.dnsmasq/dnsmasq.cfg packages/dnsmasq-2.40/root/etc/default.dnsmasq/dnsmasq.cfg
--- packages/dnsmasq-2.40/root/etc/default.dnsmasq/dnsmasq.cfg
+++ packages/dnsmasq-2.40/root/etc/default.dnsmasq/dnsmasq.cfg
@@ -3,5 +3,9 @@
 export DNSMASQ_DNS_PORT='53'
 export DNSMASQ_ENABLED='yes'
 export DNSMASQ_ETHERS='yes'
-export DNSMASQ_DOMAIN='fritz.box'
+export DNSMASQ_DOMAIN=''
 export DNSMASQ_OPTIONS=''
+export DNSMASQ_PXE='no'
+export DNSMASQ_PXE_TFTPROOT=''
+export DNSMASQ_PXE_BOOTFILE=''
+
diff -urw packages/dnsmasq-2.40/root/etc/init.d/rc.dnsmasq packages/dnsmasq-2.40/root/etc/init.d/rc.dnsmasq
--- packages/dnsmasq-2.40/root/etc/init.d/rc.dnsmasq
+++ packages/dnsmasq-2.40/root/etc/init.d/rc.dnsmasq
@@ -42,11 +42,17 @@
 	if [ "$1" != "nomultid" ]; then
 		multid -s > /dev/null 2>&1
 	fi
-	if [ -z $DNSMASQ_DOMAIN ]; then
-		$DAEMON -p "$DNSMASQ_DNS_PORT" $DNSMASQ_OPTIONS
+	if [ ! -z "$DNSMASQ_DOMAIN" ]; then
+		DNSMASQ_DOM="-E -s $DNSMASQ_DOMAIN"
 	else
-		$DAEMON -p "$DNSMASQ_DNS_PORT" -E -s "$DNSMASQ_DOMAIN" $DNSMASQ_OPTIONS
+		DNSMASQ_DOM=""
 	fi
+	if [ "$DNSMASQ_PXE" = 'yes' ]; then
+		DNSMASQ_PXE="--enable-tftp --tftp-root=$DNSMASQ_PXE_TFTPROOT --dhcp-boot=$DNSMASQ_PXE_BOOTFILE"
+	else	
+		DNSMASQ_PXE=""
+	fi 
+	$DAEMON -p $DNSMASQ_DNS_PORT $DNSMASQ_DOM $DNSMASQ_OPTIONS $DNSMASQ_PXE	
 	exitval=$?
 	if [ "$1" != "nomultid" ]; then
 		multid $MULTIDPARAM > /dev/null 2>&1
diff -urw packages/dnsmasq-2.40/root/usr/lib/cgi-bin/dnsmasq.cgi packages/dnsmasq-2.40/root/usr/lib/cgi-bin/dnsmasq.cgi
--- packages/dnsmasq-2.40/root/usr/lib/cgi-bin/dnsmasq.cgi
+++ packages/dnsmasq-2.40/root/usr/lib/cgi-bin/dnsmasq.cgi
@@ -6,10 +6,12 @@
 auto_chk=''; man_chk=''
 dhcp_yes_chk=''; dhcp_no_chk=''
 ethers_chk=''
+pxe_yes_chk=''; pxe_no_chk=''
 
 if [ "$DNSMASQ_ENABLED" = "yes" ]; then auto_chk=' checked'; else man_chk=' checked'; fi
 if [ "$DNSMASQ_DHCP" = "yes" ]; then dhcp_yes_chk=' checked'; else dhcp_no_chk=' checked'; fi
 if [ "$DNSMASQ_ETHERS" = "yes" ]; then ethers_chk=' checked'; fi
+if [ "$DNSMASQ_PXE" = "yes" ]; then pxe_yes_chk=' checked'; else pxe_no_chk=' checked'; fi
 
 sec_begin '$(lang de:"Starttyp" en:"Start type")'
 
@@ -49,3 +51,15 @@
 EOF
 
 sec_end
+sec_begin '$(lang de:"PXE boot" en:"PXE boot")'
+
+cat << EOF
+<p>
+<input id="p1" type="radio" name="pxe" value="yes"$pxe_yes_chk><label for="p1"> $(lang de:"Aktiviert" en:"Enabled")</label>
+<input id="p2" type="radio" name="pxe" value="no"$pxe_no_chk><label for="p2"> $(lang de:"Deaktiviert" en:"Disabled")</label>
+</p>
+<p>$(lang de:"tftp root" en:"tftp root"): <input type="text" name="pxe_tftproot" size="40" maxlength="255" value="$(httpd -e "$DNSMASQ_PXE_TFTPROOT")"></p>
+<p>$(lang de:"boot file" en:"boot file"): <input type="text" name="pxe_bootfile" size="20" maxlength="255" value="$(httpd -e "$DNSMASQ_PXE_BOOTFILE")"></p>
+EOF
+
+sec_end
 
ich würde es gerne im mod sehen. vielleicht kannst du die begriffe noch vorher korrigieren.
 
Kostenlos!

Statistik des Forums

Themen
248,541
Beiträge
2,293,836
Mitglieder
378,047
Neuestes Mitglied
PetraH65