E.6 Verwenden von Uname

Mit dem Befehl uname können Sie die aktuelle Kernel-Version Ihrer Linux-Umgebung ermitteln. Jedoch müssen Sie eventuell die Ergebnisse des Befehls uname modifizieren, damit Ihre Kernel-Versionen passen.

In den folgenden Schritten wird der Befehl uname so geändert, dass er den benötigten Wert liefert:

  1. Um Ihre aktuelle Kernel-Version zu beziehen, geben Sie Folgendes ein:

    uname -r
    

    Schreiben Sie die Versionsnummer auf, damit Sie sie in Step 4 verwenden können. Dieses Beispiel verwendet Version 2.6.13-15-smp aus einer SLES 9 SP2-Installation.

  2. Um ein neues Verzeichnis zu erstellen, geben Sie Folgendes ein:

    mkdir /bin/orig
    
  3. Um die uname-Binärdatei in das soeben erstellte Verzeichnis /bin/orig zu verschieben, geben Sie Folgendes ein:

    mv /bin/uname /bin/orig/uname
    
  4. Erstellen Sie mithilfe eines Linux-Editors (beispielsweise vi) die Datei /bin/uname, die folgende Zeilen enthält:

    #!/bin/sh#unameif [ $KRNLVERSION"a" = "a" ] ; then
    	if [ $(/bin/orig/uname -r) = "2.6.13-15-smp" ] ; then
              export KRNLVERSION=2.6.13-15-smp
         else
              export KRNLVERSION=2.4.31
         fi
    fi
    if [ $1"a" = "-ra" ] ; then
         echo $KRNLVERSION
    else
         /bin/orig/uname $*
    fi
    

    IMPORTANT:Ersetzen Sie die Zeichenfolgen “2.6.13-15-smp” durch die Version, die Sie in Schritt 1 ermittelt haben.

  5. Damit das neue uname-Befehlsskript ausführbar wird, geben Sie Folgendes ein:

    chmod +x /bin/uname
    
  6. Geben Sie Folgendes ein, damit der Befehl uname -r eine bestimmte Version zurückgibt, z. B. beim Kompilieren eines Moduls:

    export KRNLVERSION="2.6.5-7.191"
    
  7. Folgen Sie den Anleitungen des Herstellers und kompilieren Sie das Modul mit dem passenden make-Befehl.

  8. Setzen Sie uname zurück, damit es aktuelle Werte zurückgibt:

    unset KRNLVERSION