• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

NDAS-Treiberinstallation failed wg falschem Kernel-Namen

Knappe

Hacker
Hallo und guten Abend,

wolte gerade einen Treiber fuer das neues NDAS-Laufwerk kompileren und installieren.

Dabei wurde das zugehoerige RPM fuer das NDAS-Laufwerk fehlerfrei erzeugt.

Als ich es dann aber mit
Code:
rpm -ivh NDAS...rpm
installieren wollte, kam folgende Fehlermeldung:
error: Failed dependencies:
kernel-default = 2.6.23.1-900.ccj57 is needed by ndas-kernel-default-1.1-2.6.23.1_900.ccj57.13.x86_64

Bei Kontrolle von
Code:
# uname -r
2.6.23.1-900.ccj57-default
kommt aber die "...1-900..." Version !

Leider gibt
Code:
rpm -qa | grep kernel
...
kernel-2.6.23.1900.ccj57default-1
kernel-source-2.6.23.1-900.ccj57
...
aus.
Also "...1-900...." bzw. eben "...1900..."

Das RPM-File in /usr/src/packages/RPMS/x86_64 heisst
kernel-2.6.23.1900.ccj57default-1.x86_64.rpm
und erzaehlt bei Aufruf, dass es von der
Version: 2.6.23.1900.ccj57default-1
waere (was ja auch so korrekt waere).
Und mit genau DIESEM Name ist es auch installiert.
ALLERDINGS enthaelt es im Dateiverzeichnis z.B.
...
/lib/modules/2.6.23.1-900.ccj57-default
/lib/modules/2.6.23.1-900.ccj57-default/build
???


Das SRC-File in /usr/src/packages/SRPMS/ heisst
kernel-2.6.23.1-900.ccj57default-1.src.rpm
und die tatsaechliche Version ist
Version: kernel-2.6.23.1900.ccj57default-1.src.rpm


Jetzt die Frage :
Wieso wurde das RPM mit den Namen "...1900", anstelle von "1-900" erzeugt und geladen ist dier Version mit "...1-900.. (siehe uname) ?


Da ich den Kernel selbst kompiliert und installiert habe, muss der Fehler bzw. das Problem auf meinem "Mist gewachsen" sein.

Aber leider finde ich den Fehler nicht.

Irgendeine Idee ???
 
Der Dateiname für die Version in ihrer korrekten Form ist kernel-default-2.6.23.1-900.ccj57.x86_64.rpm. Da ist dir was beim Neubauen daneben gegangen.
Specfile zerschossen?
 
OP
K

Knappe

Hacker
Specfile zerschossen?
Eigentlich nicht, aber irgendetwas stimmt genau da nicht !


Ausgangsbasis ist
Code:
/usr/src/packages/SRPMS/kernel-source-2.6.23.1-900.ccj57.x86_64.rpm
einfach mit
Code:
rpm -ivh ...
installiert.

Dann gem. Anleitung
Code:
cd /usr/src/linux-2.6.23.1-900.ccj57
zcat /proc/config.gz > .config
make oldconfig 
make menuconfig
Kernelbau gestartet.

Anschliessend
Code:
# make prepare
ergab
scripts/kconfig/conf -s arch/x86_64/Kconfig
CHK include/linux/version.h
UPD include/linux/version.h
CHK include/linux/utsrelease.h
UPD include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86_64
CC arch/x86_64/kernel/asm-offsets.s
GEN include/asm-x86_64/asm-offsets.h
CALL scripts/checksyscalls.sh
Dann
Code:
# make rpm
ergab
/bin/sh /usr/src/linux-2.6.23.1-900.ccj57/scripts/package/mkspec > /usr/src/linux-2.6.23.1-900.ccj57/kernel.spec
make clean
CLEAN /usr/src/linux-2.6.23.1-900.ccj57
set -e; cd ..; ln -sf /usr/src/linux-2.6.23.1-900.ccj57 kernel-2.6.23.1900.ccj57default
set -e; cd ..; tar -cz --exclude SCCS --exclude BitKeeper --exclude .svn --exclude CVS --exclude .pc --exclude .hg --exclude .git -f kernel-2.6.23.1900.ccj57default.tar.gz kernel-2.6.23.1900.ccj57default/.
set -e; cd ..; rm kernel-2.6.23.1900.ccj57default
set -e; \
/bin/sh /usr/src/linux-2.6.23.1-900.ccj57/scripts/mkversion > /usr/src/linux-2.6.23.1-900.ccj57/.tmp_version
set -e; \
mv -f /usr/src/linux-2.6.23.1-900.ccj57/.tmp_version /usr/src/linux-2.6.23.1-900.ccj57/.version
rpmbuild --target x86_64 -ta ../kernel-2.6.23.1900.ccj57default.tar.gz
Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.32772
+ umask 022
+ cd /usr/src/packages/BUILD
+ cd /usr/src/packages/BUILD
+ rm -rf kernel-2.6.23.1900.ccj57default
.........
Und hier ist schon von "...1900.." die Rede :shock:

Darum der Auszug von /usr/src/linux-2.6.23.1-900.ccj57/kernel.spec
Name: kernel
Summary: The Linux Kernel
Version: 2.6.23.1900.ccj57default
Release: 1
License: GPL
Group: System Environment/Kernel
Vendor: The Linux Community
URL: http://www.kernel.org
Source: kernel-2.6.23.1900.ccj57default.tar.gz
BuildRoot: /var/tmp/%{name}-%{PACKAGE_VERSION}-root
Provides: kernel-2.6.23.1-900.ccj57-default
Die hier erscheindenen Versionsnummern "1-900" und "1900" werden von dem original "/usr/src/linux-2.6.23.1-900.ccj57/scripts/packages/mkspec"-Script - was im Original wiederum aus dem schon o.g. SRC-RPM-File stammt - automatisch erzeugt.



:idea:
 
Knappe schrieb:
Dann gem. Anleitung
Code:
cd /usr/src/linux-2.6.23.1-900.ccj57
zcat /proc/config.gz > .config
make oldconfig 
make menuconfig
Kernelbau gestartet.
Wozu?
Code:
# make rpm
ergab
/bin/sh /usr/src/linux-2.6.23.1-900.ccj57/scripts/package/mkspec > /usr/src/linux-2.6.23.1-900.ccj57/kernel.spec
make clean
CLEAN /usr/src/linux-2.6.23.1-900.ccj57
set -e; cd ..; ln -sf /usr/src/linux-2.6.23.1-900.ccj57 kernel-2.6.23.1900.ccj57default
Bug in mkspec. Ich seh's...
außerdem ist das ja nicht gerade der Königsweg zum SUSE-RPM.
 
OP
K

Knappe

Hacker
außerdem ist das ja nicht gerade der Königsweg zum SUSE-RPM
Die beschriebenen Wege zum Kernelbau stammen ausschliesslich aus dem wiki des linux-clubs.

Wenn´s einen anderen, vielleicht sogar besseren Weg gibt, habe ich dafür ein "offenes Ohr".
 
Weiß nicht, ich mach das so... http://jengelh.hopto.org/linux/dev_lbuild.php
Aber die Frage steht noch immer im Raum: wozu recompilen?
 
OP
K

Knappe

Hacker
Weiß nicht, ich mach das so...
Werde ich demnächst mal ausprobieren.

Aber die Frage steht noch immer im Raum: wozu recompilen?
Habe die Frage zwar nirgendwo gesehen, aber macht ja nichts :
Anpassung, viele Funktionen (z.B. die komplette Multimedia-Unterstützung) werden nicht benötigt (= schlankerer Kernel).


Bug in mkspec. Ich seh's...
Wird noch beseitigt ?
 
Knappe schrieb:
Aber die Frage steht noch immer im Raum: wozu recompilen?
Habe die Frage zwar nirgendwo gesehen, aber macht ja nichts :
Anpassung, viele Funktionen (z.B. die komplette Multimedia-Unterstützung) werden nicht benötigt (= schlankerer Kernel).
Uff... das hab ich mir auch mal gesagt. Dann hielt ich irgendwann mein erstes USB-Gerät in den Händen und nix ging.
Bug in mkspec. Ich seh's...
Wird noch beseitigt ?
Ja, aber ein Kernelpaket das identisch mit denen, die vom richtigen Specfile erzeugt werden, kriegt man dadurch trotzdem nicht - einige Information sind eben schon verloren (man denke wie an MP3). Und wie das mit kernel-source zusammenspielt, ich mag gar nicht dran denken.
 
OP
K

Knappe

Hacker
Dann hielt ich irgendwann mein erstes USB-Gerät in den Händen und nix ging.
Handelt sich um einen Server, da wird das definitiv nicht benötigt.


Ja, aber ein Kernelpaket das identisch mit denen, die vom richtigen Specfile erzeugt werden, kriegt man dadurch trotzdem nicht
Wenn es soweit ist bitte PN geben, da ich gerne das Treiberpaket übersetzen möchte.
 
OP
K

Knappe

Hacker
Bug in mkspec. Ich seh's...

Wird noch beseitigt ?
Ja, aber ein Kernelpaket das identisch mit denen, die vom richtigen Specfile erzeugt werden, kriegt man dadurch trotzdem nicht - einige Information sind eben schon verloren (man denke wie an MP3). Und wie das mit kernel-source zusammenspielt, ich mag gar nicht dran denken.

Wie ... "wenn es soweit ist"?
Wenn das mkspec fuer die Version korrigiert ist oder wie soll ich jetzt andere Sourcen uebersetzen ???
 
Oben