Ich wollte heute meinem Homeserver eine Gigabit-Netzwerkkarte spendieren. Beim Booten erkannte das Linux-System (Debian 4.0r2 Etch) auch den auf der Netgear GA311 verbauten Realtek-Chip R8169. Allerdings musste ich feststellen, dass der Kernel offensichtlich nicht richtig mit der Karte zusammenarbeiten wollte. ethtool eth1 zeigte mir eine Geschwindigkeit von nur 10 MBit/s mit Halfduplex an. Auch ein Aufruf von ethtool eth1 –change speed 1000 brachte nichts. Allerdings zeigte mir lsmod | grep r8169 an, dass der Chip wohl erkannt wurde. Also musste wohl etwas mit dem Treiber nicht stimmen.
Vergeblich habe ich nach einen neueren Linux-Treiber auf der Netgear-Website gesucht. Weit und breit nur Windows-Treiber.
Da auf der Netzwerkkarte aber ein Realtek-Chip verbaut ist, habe ich mal auf deren Website nachgesehen und dort auch den entsprechenden Sourcecode für Linux gefunden.
Also habe ich wget angeschmissen und den Treiber auf meinen Server geladen. Selbiger lag als Archiv vor, welches ich mit tar vjxf r8169-6.aaa.bb.tar.bz2 entpackt habe. Das Kompilieren war unter Debian kein Problem. Einfach in das Verzeichnis des entpackten Treibers wechseln und dort mit make clean modules gefolgt von einem make install als Superuser kompilieren. (Damit selbiges funktioniert müssen natürlich die Header-Files des installierten Kernels, sowie die entsprechenden Tools installiert sein. Sowas hat man aber als Linux-User sowieso immer auf der Platte.)
Dannach sollte eine Datei mit dem Namen r8169.ko im Unterverzeichnis src des Treibers liegen. Natürlich muss erst der alte Treiber mit rmmod r8169 runter. Dann installiert man den frisch kompilierten Treiber mit depmod -a gefolgt von einem insmod ./src/r8169.ko.
Nach der Installation des Treibers erkannte das System die Karte neu und initialisierte selbige. Mit ifconfig und ethtool eth1 habe ich dann überprüft ob alles in Ordnung ist und das System danach noch zur Sicherheit neu gestartet, damit auch alle Netzwerkdienste richtig damit laufen.
Wer diese Netzwerkkarte also unter Linux einsetzen will, sollte den Treiber von der Realtek-Seite nehmen, falls Probleme damit auftauchen. Ich schätze aber dass in neueren Kernel-Versionen die Karte sicher von alleine erkannt wird.
Das Buch mit dem Titel “Linux – Das distributionsunabhängige Handbuch” dürfte den meisten Linux-Benutzern bekannt sein. Nun hat Galileo Computing die 2. Auflage veröffentlicht und das Buch umfasst nun insgesamt 1119 Seiten.
Wer sich wie ich für Linux interessiert, sollte sich dieses Angebot näher ansehen, denn es ist kostenlos online lesebar, kann hier als Zip-Datei heruntergeladen werden und ist natürlich auch wieder für 40 Euro als gebundenes Buch mit DVD erhältlich. (ISBN 978-3-8362-1090-4)
Die im Buch enthaltene mehrseitige DVD enthält die Distributionen openSuse 10.2, Gentoo, Ubuntu 7.04, Slackware, OpenBSD, Knoppix und SLAX, sowie das Openbook und zweieinhalb Stunden Video-Lektionen. Die Distributionen sind also nicht mehr ganz taufrisch, sind aber sowieso kostenlos im Internet erhältlich.
Das Buch (ob jetzt als gewöhnliches Buch oder eBook) ist wirklich empfehlenswert für alle die sich näher mit dem System beschäftigen wollen.
Die neue Benutzerkontensteuerung UAC von Windows Vista kann eigene Programme die Administratorrechte benötigen Probleme bereiten. Auch wenn der User Administratorrechte besitzt werden ihm diese beim Anmelden sofort wieder entzogen.
Dadurch hat man zwei Möglichkeiten: Entweder man zwingt den Benutzer dazu das Programm mit dem Kontextmenüeintrag "Als Administrator ausführen" zu starten, oder man zwingt Windows Vista zur Herausgabe der Administratorrechte. Den zweiten Weg sollte man auf jeden Fall vorziehen. Dadurch wird Windows Vista dazu aufgefordet den Benutzer zu fragen ob er das Programm als Administrator ausführen möchte.
Dazu benötigt man eine Manifest-Datei. Leider reicht es nicht, das XML-Manifest wie üblich separat zur EXE-Datei mitzuliefern. Das .NET-Assembly muss nach dem Kompilieren mit dem Programm Microsoft Manifest Tool (mt.exe) des .NET-Framework SDK noch nachträglich modifiziert werden.
Mehr…
Microsoft liefert im .NET-Framework SDK gleich einen Disassembler für .NET-Assemblies mit. Das ist zwar praktisch für das Debuggen, aber als Programmierer sieht man es nicht gerne, wenn das Ergebnis einer langen harten Arbeit dem MSIL schutzlos ausgeliefert ist. Natürlich ist es besser die im Visual Studio mitgelieferte Community Edition von Dotfuscator zu verwenden. Wem es aber reicht den MSIL auszusperren, der kann sich mit nur wenig Code leicht helfen.
In C# reicht es folgenden Code in eine extra angelegte Sourcecode-Datei oder gleich in die AssemblyInfo.cs zu schreiben:
using System.Runtime.InteropServices;
//Verhindert das Disassemblieren mit MSIL (Ildasm.exe)
[assembly: SuppressIldasm()]
BTW: In VB.NET geht das natürlich auch. Das Attribut des Assembly muss einfach in der VB.NET-Syntax gesetzt werden.
Das Erstellen einer Dokumentation und die ständige Aktualisierung speziell für .NET-Klassenbibliotheken sind sehr mühsam. Gleichzeitig sollen natürlich andere Programmierer die diese Klassenbibliothek verwenden im Klaren sein, welche Methoden, Eigenschaften,… die beinhalteten Klassen besitzen und was sie machen. Daher kann man bereits im Code über die XML-Kommentare kurze Erklärungen anbieten. Über den Objekt-Explorer bzw. IntelliSense von Visual Studio lassen sich diese dann auch abrufen, wenn nur eine kompilierte Version vorliegt.
Doch es geht auch besser. Die beim Kompilieren von Visual Studio exportierten XML-Dokumentationsdatei (Muss in den Projekteigenschaften im Register Erzeugen aktiviert sein.) enthält eigentlich bereits alles um daraus eine vollwärtige Dokumentation – die der MSDN Library ähnlich ist – zu erzeugen.
Mehr…
Erst vor kurzem habe ich in diesem Beitrag erklärt wie man einen Subversion-Server unter Windows einrichtet. Natürlich ist noch mehr unter Windows möglich.
Zum Beispiel gibt es da das kostenlose Programm TortoiseSVN, das es erlaubt SVN-Funktionalität direkt in den Windows-Explorer zu integrieren. Es reicht die Installationdatei herunterzuladen und das Programm zu installieren. Dann ist im Windows Explorer im Kontextmenü ein neuer Eintrag, über dem alle SVN-Funktionalitäten erreichbar sind. Auch die Einstellungen findet man dort, die man erst durchgehen sollte, obwohl standardmäßig alles recht gut konfiguriert ist.
Mit dem Eintrag “Create Repository here” ersparrt man sich beim Erstellen eines neuen Repository in einem Ordner sogar den Umweg in die Konsole. Das Programm markiert außerdem Verzeichnisse mit einem Overlay über die Originalsymbole. Damit ist auch sofort zu erkennen ob ein Verzeichnis ein- oder ausgecheckt ist. Auch Import- und Export-Funktionen sind vorhanden, mit dem man Dateien zwischen Server und lokaler Festplatte ohne Probleme austauschen kann.
Ein Repository-Browser erlaubt außerdem das Durchsuchen der Dateien von Repositories.
Wer SVN unter Windows einsetzt sollte sich das Programm auf jeden Fall unbedingt genauer ansehen.
In dem Blogeintrag in dem ich Subversion vorgestellt habe, habe ich ja bereits das Plugin AnkhSVN beschrieben.
Hier möchte ich noch ein paar weitere praktische Plugins vorstellen, die mir die Arbeit mit Visual Studio 2005 schon so oft erleichtert haben.
Mehr…
Categories: Programmieren Tags: .NET, AnkhSVN, Blog, Codeproject Line Count, CSharp, GhostDoc, PInvoke.NET, Plugin, Server, Smart Paster, Subversion, TestDriven.NET, Visual Studio, Windows, XML
Nicht jeder möchte, bzw. kann mit Microsoft Visual Source Safe als Versionsverwaltung arbeiten. Es ist zwar praktisch, dass es direkt in Visual Studio integriert ist, aber viele Funktionen benötigt man gar nicht und die Kosten sind auch nicht ganz unerheblich.
Eigentlich wollte ich als Alternative CVS einsetzen. Aber auf meiner Suche nach einer freien Lösung um den Client in Visual Studio zu integrieren, bin ich auf Subversion gestoßen. Eigentlich wusste ich schon dass es existier und sich dieses Projekt von CVS abgespalten hat, aber bisher dachte ich nicht, dass es sich in Windows und vor allem Visual Studio integrieren lässt.
Im Folgenden will ich die Einrichtung eines Subversion-Servers als Windows-Dienst und die Integration in Visual Studio 2005 erklären, da es anscheinend im Internet keine Komplettanleitung dafür zu geben scheint.
Mehr…
Categories: Programmieren, Versionsverwaltung, Windows Tags: .NET, AnkhSVN, Konsole, Microsoft, MSI, Plugin, Server, ServiceControl, Subversion, Visual Studio, Windows
Erst vor kurzem wollte ich Debian 4.0 Etch auf meinen Toshiba Satellite M60 installieren. In diesem Laptop befindet sich eine ATI Mobility Radeon X700.
Eigentlich bringt diese Distribution einen eigenen ATI-Treiber mit. Allerdings scheint er auf dem Laptop nur Probleme zu verursachen. Debian lässt sich zwar installieren, aber beim Start des X-Servers wird der Bildschirm schwarz.
Verzweifelt habe ich versucht, den X-Server irgendwie in Gang zu bringen. Doch nicht einmal der VESA-Treiber hat bei einer Auflösung von 1024×768 funktioniert.
Letztendlich habe ich allerdings im Internet doch noch eine Anleitung gefunden die funktioniert. Sie erklärt wie man den proprietären ATI-Treiber in deb-Pakete umwandelt, die sich anschließend installieren lassen und in den Kernel integriert werden können. Ergebnis: Grafikkarte und TFT wurden einwandfrei erkannt.
Na, da bin ich erleichtert…Endlich Linux auf diesem schwierigen Laptop.
EDIT:
Den Link zur Anleitung musste ich entfernen, da er inzwischen auf eine dieser zahlreichen Spam-Seiten verweist.
Danke für den Hinweis an den User Zarah.