Immer mit Plan B beginnen

Server sind die Stiefkinder jeder Firma, die sich nicht auf IT spezialisiert hat. Dementsprechend habe ich, als wir einen neuen Entwicklungsserver benötigten, eine Übergangslösung bekommen und zwar
einen HP Elite 7500 Microtower ( http://www8.hp.com/de/de/products/desktops/product-detail.html?oid=5270864) mit einem Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz und 16GB RAM.

Als erstes gleich einmal System installieren.
Linux (war klar) und Version ergaben sich von selbst und zwar Ubuntu – 12.04 LTS 64bit.

Das Aufsetzen des Systems war ziemlich ereignislos, bis auf den kleinen Hinweis, dass keine Netzwerkkarte erkannt wurde.
(Oder: Wie sich meine Nemesis vorankündigte)

Nach dem ersten Start in das System wurde klar, dass wirklich kein Netzwerk verfügbar war. Dies resultierte in einer Suche beim Hersteller bezüglich der verwendeten Netzwerkhardware. Das Ergebnis lautete: Integrierter Realtek 8111E Gigabit Ethernet-Controller; Wireless NIC 802.11 b/g/n 1×1 MiniCard.
Ganz bestimmt … wäre so eine Karte wirklich verbaut worden, hätte Ubuntu sie ohne weiteres erkann. Also fragte ich einmal jemanden, der wissen sollte, was wirklich drinnen ist — den Server selbst.

root@pc59:~# lspci
00:00.0 Host bridge: Intel Corporation Ivy Bridge DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Ivy Bridge Graphics Controller (rev 09)
00:14.0 USB controller: Intel Corporation Panther Point USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation Panther Point MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation Panther Point USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation Panther Point High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 1 (rev c4)
00:1c.5 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 6 (rev c4)
00:1d.0 USB controller: Intel Corporation Panther Point USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Panther Point LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation Panther Point 6 port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation Panther Point SMBus Controller (rev 04)
02:00.0 Ethernet controller: Atheros Communications Inc. AR8161 Gigabit Ethernet (rev 08)

Es handelt sich also um Atheros Communications Inc. AR8161 Gigabit Ethernet (rev 08).
Jeder, der davon schon einmal gehört hat, …? Ok, ich jedenfalls nicht. Also begann die Recherche erneut. Dabei bin ich schnell auf die Seite http://askubuntu.com/questions/165192/how-do-i-install-drivers-for-the-atheros-ar8161-ethernet-controller gekommen.
Perfekt: Treiber runterladen, kompilieren und installieren.

Moment…
Runterladen?
Kompilieren?
Schon stehen wir beim nächsten Problem.

Runterladen geht ja nicht, da kein Netzwerk verfügbar ist. (Kein Problem, ist schnell durch einen USB-Stick gelöst.)

Das eigentliche Problem besteht also beim Kompilieren.
Dazu benötige ich jetzt einen C Compiler und einige Tools….
Nach einigen Stunden des vergeblichen Versuchens, die einzelnen Pakete runterzuladen und händisch zu installieren, bin ich schnell so weit gewesen, das es einfach sinnlos und nicht möglich ist, die richtigen Pakete für das installierte System zu finden.

Plan B: (MEMO an mich: Immer mit Plan B anfangen.)
Auf der Installations-CD sind Compiler vorhanden und wurden nicht installiert.
Hier beginnt der eigentliche Teil für den Grund dieses Postings.

Wie installiere ich einen Compiler mit notwendigen Libraries und Tools, wenn ich kein Netzwerk zur Verfügung habe?

Es ist grundsätzlich egal, ob Installations-CD/DVD oder USB-Stick mit Systemdaten.
Der Hauptgrund, warum dies funktioniert, ist, dass APT selbst das Ubuntu / Debian einsetzt.
Falls ein CDROM-Laufwerk vorhanden ist, würde ich jedoch der Einfachheit halber eine CD vorschlagen.

* Installations-CD einlegen
* terminal: apt-cdrom -d /data/temp add
Somit wurde die CDROM selbst als Quelle für Pakete hinzugefügt.

root@pc59:~# apt-cdrom -d /data/temp add
Using CD-ROM mount point /media/cdrom/
Identifying.. [1a2d52f8cb3921caaf2326dd763b1a47-2]
Scanning disc for index files..
Found 4 package indexes, 0 source indexes, 0 translation indexes and 1 signatures
This disc is called:
‘Ubuntu-Server 12.04.1 LTS _Precise Pangolin_ – Release amd64 (20120817.3)’
Copying package lists…gpgv: Signature made Fri Aug 17 23:15:26 2012 BST using DSA key ID FBB75451
gpgv: Good signature from “Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>”
Reading Package Indexes… Done
Writing new source list
Source list entries for this disc are:
deb cdrom:[Ubuntu-Server 12.04.1 LTS _Precise Pangolin_ – Release amd64 (20120817.3)]/ dists/precise/main/binary-i386/
deb cdrom:[Ubuntu-Server 12.04.1 LTS _Precise Pangolin_ – Release amd64 (20120817.3)]/ dists/precise/restricted/binary-i386/
deb cdrom:[Ubuntu-Server 12.04.1 LTS _Precise Pangolin_ – Release amd64 (20120817.3)]/ precise main restricted
Repeat this process for the rest of the CDs in your set.

* als nächstes die neuen Quellen ausfragen: terminal – apt-get update

Somit hat man Quellen für Programme lokal im CDRom Fach liegen und schon kann man mit der Installation von Compiler und Tools beginnen. In meinem Fall war folgender Befehl notwendig:
apt-get install make binutils gcc libc-dev-bin

Damit hat man grundsätzliches jedes Problem gelöst.

Nun folgte die weitere Installation von den Treibern für die Netzwerkkarte.
(Link ist oben für weiterführende Informationen, hier jetzt nur noch das Wesentliche)

sudo apt-get install build-essential linux-headers-generic linux-headers-`uname -r`
wget -O- http://linuxwireless.org/download/compat-wireless-2.6/compat-wireless-2012-07-03-pc.tar.bz2 | tar -xj
cd compat-wireless-2012-07-03-pc
./scripts/driver-select alx
make
sudo make install

Damit sind alle notwendigen Treiber installiert und auch die Kernelmodule auf neuestem Stand (dabei wurde auch grob neu geschrieben).

Ein Teil ist noch ausstehend, denn da bei der Installation keine Netzwerkkarte vorhanden war, wurde diese auch nicht konfiguriert. Deswegen muss man jetzt noch in /etc/network/interfaces das Interface hinzufügen und konfigurieren.
(Einfach folgende Zeilen am Ende der Datei anfügen.)

auto eth0
iface eth0 inet dhcp

Fertig!
Fröhlichen Neustart oder einfach “ifup eth0”