Oktober 2006 Archives

Di Okt 31 13:05:14 CET 2006

Multicast DNS mit Debian GNU/Linux

Wer in einem kleine Lan sitzt, und ab und zu Gäste hat, mit denen man Daten austauschen will, kommt früher oder später zu dem Problem, welche IP Adresse hast Du den überhaupt? Eigentlich ist das Problem einfach zu losen in dem man einen dhcpd einsetzt, der den übertragenen Hostnamen ins DNS einträgt, aber leider tun dies viele Linux Distritbutionen von sich aus nicht.

Vieleicht hat man auch gar keinen eigenen DNS Server, aber man mochte trotzdem über die Namen auf die Rechner zugreiffen statt über die IP Adressen. Dafür gibt es eine einfache Losung die in der Mac Welt sehr verbreitet und nennt sich Zeroconf. Die Implementierung unter OS X heisst momentan Bonjour.

Die Rechnernamen sind dann alle unter der TLD local zu erreichen, z.Bsp.: elephant.local
Um die Namensauflosung über mdns hinzukriegen genügt ein
apt-get install libnss-mdns

Wenn die Paket Version >= 0.8-6 ist, ändert Debian selbst die /etc/nsswitch.conf so dass der hosts Eintrag statt
hosts:      files dns
folgendes enthält:
hosts:          files mdns_minimal dns mdns

Wenn die Paket Version >= 0.8-6 ist, ändert Debian selbst die /etc/nsswitch.conf so Dies bricht keine bestehenden Setups, und ist zu empfehlen, wenn man in Netzen unterwegs ist, die .local als TLD benutzen. Wenn man in keinerlei Netzen untewegs ist die .local als TLD benutzen sollte man den hosts eintrag in der /etc/nsswitch.conf wie folgt abändern:

hosts:      files mdns4_minimal [NOTFOUND=return] dns mdns4

Das bedeut das wenn eine .local Addresse nicht gefunden wurde, das er _nicht_ versucht einen DNS Server abzufragen sondern einfach sagt, gibts nichts. Dies resultiert in einer schnelleren Namensauflosung für .local und die 4 gibt an, das er nur für A Records das ganze überprüfen soll.

So, jetzt konnen wir zwar .local hosts auflosen, aber unser Rechnername ist noch nicht über .local erreichbar.
Um das zu erreichen genügt ein
apt-get install avahi-daemon 
und der eigene Rechner ist auch unter der TLD local registriert.

Natürlich kann man jetzt auch noch weitere Services announcen wie z.bsp. hier gibt es einen saft Server oder ähnliches, aber darauf werde ich nicht eingehn.

Wer mehr Informationen zu Zeroconf haben will, dem sei die wikipedia Seite ans Herz gelegt.

Achja, wie immer, bei Fragen oder ähnlichem, schreibt einfach eine Mail, an blog@spamt.net oder labert mich im jabber an: schula@jabber.ulm.ccc.de.

Update

Bevor ich es vergesse, in der besten Live Distri der Welt (grml) wird libnss-mdns in Zukunft per default mitgeliefert.


Posted by Ulrich Dangel | Permanent Link | Categories: Stuff

Di Okt 17 03:59:58 CEST 2006

vmware und alsa

Achja, wenn man noch mit alsa sound unter der vmware haben will, einfach /usr/lib/vmware/bdwrapper so abändern das folgendes drinn steht:
#!/bin/sh
LD_PRELOAD="libvmware-bdwrapper.so.0 libaoss.so" VMWARE_BDWRAPPER_DEVICES=/dev/hde:/dev/hdf:/dev/hdg:/dev/hdh:/dev/sdx:/dev/sdy $0.real "$@"
Achja, und apt-get install alsa-oss nicht vergessen :) Und schon kann der sound genuss unter der vmware mit alsa losgehn.

Update:

libaoss.so muss natürlich das suid bit gesetzt haben, ansonsten geht das leider nicht.

Posted by Ulrich Dangel | Permanent Link | Categories: Stuff

Di Okt 17 02:43:03 CEST 2006

Beliebige Block Devices mit vmware

Wenn man vmware einsetzt kommt einem vlt. der wunsch auf beliebige Block Devices als Physical Devices in der vmware zu nutzen. Dies geht leider nicht ohne weiteres da vmware mit einigen ioctls überprüft ob das angebene Block Device eine Festplatte ist, und die Datei auch /dev/{sd,hd}* heissen muss. Aber da man trotzdem z.bsp. ein lvm Device oder ein raid Device einsetzen will, hat sich jemand die Arbeit gemacht eine lib zu schreiben, die die ioctls entsprechend umsetzt. Das ganze nennt sich vmware-bdwrapper und lässt sich ganz einfach installieren.
Kurz zusammenfassung wie das ganze funktioniert:
cd /usr/lib/vmware/lib/ && mv snhelper snhelper.real
<<EOF > ../bdwrapper
#!/bin/sh
LD_PRELOAD=libvmware-bdwrapper.so.0 VMWARE_BDWRAPPER_DEVICES=/dev/hde:/dev/hdf:/dev/hdg:/dev/hdh:/dev/sdx:/dev/sdy $0.real "$@"
EOF
chmod +x ../bdwrapper
ln -s ../bdwrapper snhelper
cd /usr/lib/vmware/bin && mv vmware-vmx vmware-vmx.real
ln -s ../bdwrapper vmware-vmx
Jetzt noch einen symlink von dem Zieldevice auf /dev/sdx oder so legen und das wars. Z.bsp.:
ln -s /dev/mapper/vmware /dev/sdx

  • Nun erzeugt man zunächst eine noramle Vmware Umgebung ohne eine physical Disk.
  • Man fügt die physical Disk hinzu und entfernt die alte Virtuelle Disk
  • Man startet die virtuelle maschine und kann dann damit arbeiten

Eventuell muss man noch ein partion label setzen, das kann man dann einfach mit parted erledigen.

Posted by Ulrich Dangel | Permanent Link | Categories: Stuff