Προς το περιεχόμενο

Kernel 2.6.2 και NVIDIA 5336 drivers


Vaguras

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα.

Σύμφωνα με την nvidia οι 5336 υποστηρίζουν τους 2.6 πυρήνες χωρίς χρήση patch.

Έτσι στο slack 9.1 που έχω έκανα compile τον 2.6.1 πατσάρισα σε 2.6.2 όλα οκ μέχρι εδώ και όλα δουλέυαν ρολόι.

Έτσι είπα να περάσω και τους drivers 5336. (σημείωση:ήταν ήδη εγκατεστημένοι για τον 2.4.22).

Κάνω uninstall για τον 2.4.22 και ξεκινώντας το module compilation για τον 2.6.2 σταματά με τα εξης:

-> No matching precompiled kernel interface was found on the NVIDIA ftp site;

this means that the installer will need to compile a kernel interface for

your kernel.

-> Kernel source path: '/lib/modules/2.6.2/build'

-> Performing cc_version_check with CC="cc".

ERROR: Unable to determine the NVIDIA kernel module filename.

ERROR: Installation has failed.

Τι φταίει;

εννοείται ότι το lib/modules/2.6.2/build είναι symlink για τα sources του 2.6.2 πυρήνα (τον Patched 2.6.1 δηλαδή) που ειναι στο /linux-2.6.1

Δοκίμασα με --kernel-source-path= κλπ. με το ίδιο σφάλμα

Στο forum της nvidia τίποτα.

Δώστε τα φώτα σας...

Δημοσ.

Den mou exei sumbei pote auto alla sunh8ws ta sources pane sto /usr/src/linux opou linux einai sym link gia px /usr/src/linux-2.6.2.

Mia fora mou eixe tuxei na bgalei kapoio error kai parathrhsa oti den eixa to linux sym link. Den kserw an exei sxesh alla me to pou ekana to symlink doulepse...

Δημοσ.

Φίλε Dimmu ούτε αυτό βοήθησε...

Τι γίνεται ρε γαμώτο;;;;

Επίσης δοκίμασα χειροκίνητα με make install αλλά και εκεί μόλις ξεκινάει βγάζει

make error: select_makefile: cannot determine kernel version

οτι και να δώσω σαν παράμετρο στο make πάλι τα ίδια.

Άλλο κουφό:χρησιμοποιήσα μια patched για 2.6 πυρήνες προηγούμενη έκδοση απο το http://www.minion.de (την 4496 συγκεκριμένα που χρησιμοποιούσα και πριν στους 2.4 πυρήνες) και ενώ ξεκινάει να κάνει build το module κρασάρει (καλά κρασά!!!) και το log λέει ότι δεν έχω ενργοποιημένο στον πυρήνα την υποστήριξη modules!!! αν είναι δυνατόν!!!

Βοηθήστε καλεεεεεεεεεεεεεεεέ.............................

Δημοσ.

Dimmu_Borgir: Βασικά είναι shar (shell archive). Αν τρέξεις sh ./linux-nvidia-installer.run --help θα δεις ότι σου δίνει τη δυνατότητα να αποσυμπιέσεις τα περιεχόμενά του και να τα χειριστείς μόνος σου.

 

Vaguras: Δοκίμασε να παίξεις με το SYSINCLUDE, δηλαδή make SYSINCLUDE=/usr/src/linux-2.6.2/include

Δημοσ.

Apoikos:Ούτε αυτό δούλεψε αφού το έχω ήδη δοκιμάσει. Να υποθέσω ότι είναι bug της nvidia ;

Δεν είμαι και πολύ γνώστης του Linux αλλά έχω κάτι ψιλογνωσεις από C.

Κοίταξα λοιπόν τα sources (τα κάνεις extract me sh NVIDIAxxxxxx.run -x)

και στο φάκελο NVIDIAxxxx/usr/src/nv είδα το makefile:

#

# Top level makefile for the NVIDIA kernel module; this file selects

# which "real" Makefile should actually be used to build the kernel

# module (either the "old" nvidia Makefile, or the kbuild makefile),

# and then passes the target on to that Makefile.

#

 

.PHONY: select_makefile

select_makefile:

@ sh ./conftest.sh select_makefile

 

default: module

 

module nvidia.o nvidia.ko install nv-linux.o clean module-install package-install print-module-filename: select_makefile

@ $(MAKE) --no-print-directory -f Makefile $@

Είδα λοιπόν ότι καλεί το conftest.sh για να επιλέξει ποιο Makefile θα χρησιμοποιήσει για το module build ανάλογα με το αν ο πυρήνας είναι 2.4 ή 2.6 (Makefile.nvidia ή Makefile.kbuild αντιστοίχως).

Δείτε το section απο το conftest.sh :

select_makefile)

shift

#

# Select which Makefile to use based on the version of the

# kernel we are building against: use the kbuild Makefile for

# 2.6 and newer kernels, and the old Makefile for kernels older

# than 2.6.

#

if [ "$SYSSRC" ]; then

KERNEL_INCLUDE=$SYSSRC/include

elif [ "$SYSINCLUDE" ]; then

KERNEL_INCLUDE=$SYSINCLUDE

else

KERNEL_INCLUDE="/lib/modules/`uname -r`/build/include"

fi

 

echo "#include \"linux/version.h\"

int main() {

if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) {

return 0;

} else {

return 1;

}

}" > conftest.c

 

gcc conftest.c -o conftest -nostdinc \

-I $KERNEL_INCLUDE > /dev/null 2>&1

 

if [ -f conftest ]; then

rm -f Makefile

./conftest > /dev/null 2>&1

if [ $? = "0" ]; then

ln -s Makefile.kbuild Makefile

else

ln -s Makefile.nvidia Makefile

fi

rm -f conftest conftest.c

exit 0

else

echo "Unable to determine kernel version."

exit 1

fi

Στο οποίο χρησιμοποιείται προφανώς το conftest.c για να ανγνωρίσει τον πυρήνα:

#include "linux/version.h"

int main() {

if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) {

return 0;

} else {

return 1;

}

}

Οπως βλέπετε το τελευταίο κομμάτι κώδικα καλεί την βιβλιοθήκη version.h του πυρήνα που όμως δεν υπάρχει!!!!!! στα sources του νέου πυρήνα δηλ. στο path /linux-2.6.1/include/linux/version.h αντίθετα με τον παλιό 2.4.22 όπου το version.h είναι σωστά εκεί που πρέπει.

Εννοείται ότι έψαξα για το version.h του 2.6 αλλά πουθενά!!! στο δίσκο. Υπέθεσα ότι μπορεί να φταίει το patching από 2.6.1 σε 2.6.2 αλλά ούτε και στο original source tree 2.6.1 δεν υπάρχει το αρχείο.

Σκέφτομαι σωστά;;;;Αυτό είναι όντως το πρόβλημα;;;

Αλλές ιδέες;;;;;;;

Ευχαριστώ για την υπομονή σας!!!

Δημοσ.

Vaguras: Στον δικό μου 2.6.0 (Vanilla) υπάρχει το version.h. Μήπως κάτι πάει στραβά; Προφανώς για να χρησιμοποιούν το version.h οι άνθρωποι της nVidia, σημαίνει ότι στο test-setup τους δουλεύει.

 

/edit: Ψάχνοντας το κύριο Makefile του kernel tree είδα ότι το version.h δημιουργείται κατά το configuration του πυρήνα (λογικό, αφού αλλάζει ανάλογα με τα patches), οπότε αν απλά περάσεις unconfigured sources δεν υπάρχει. Δοκίμασε να ξανακάνεις configure τον πυρήνα σου ώστε να δημιουργηθεί το version.h, ή ρίξε μια ματιά στον αλγόριθμο που έχει το Makefile για το πως δημιουργείται και φτιάξ΄το με το χέρι (μπακαλίστικο - για να μην υπάρχει στο kernel tree σου θα πει ότι ούτως ή άλλως κάτι πάει στραβά).

Δημοσ.

Φίλε apoikos είσαι μεγάλος!!!! (πόσο ετών άραγε).

΄Εκανα νέο δοκιμαστικό config και δημιουργήθηκε το εν λόγω αρχείο όλα οκ!!!!

Ευχαριατώ πολύ παιδιά γιατι μέχρι τώρα άκρη δεν έβγαζα από τα ξένα forum (όλο βλακείες μου απαντούσανε).

Το μόνο πρόβλημα που μου μένει είναι με το μοντεμ μου (κλαψ Connexant) που οι drivers είναι payable για τους νεους πυρήνες 2.6 (οπότε για νετ μπαίνω με 2.4.22).

Που θα πάει θα φτηνηνει η dsl....

:D :D :D

Δημοσ.

H egkatastasi einai poli apli (ypothetontas oti den exeis to diko mou problima pou periegrapsa parpapano).

Katebazeis to arxeio.

San root dineis sh NVIDIAxxxxxx.run (se console na min trexei o xserver)

accept sto license, no sto download from nvidia ftp site, ok sto compile a new module kai perimeneis. An den sou bgalei error tote ola entaksei.

Kaneis edit to /etc/X11/XF86Config kai sto section "module" dineis anti gia vesa h nv module "nvidia". save file. Meta:

modprobe nvidia

startx. An ola einai ok tha deis to logo ths nvidia...

Δημοσ.
Vaguras mporeis na grapseis thn diadikasia egkatastashs twn drivers mias kai toys exeis katebasei kai toys egkatesthses;

 

>sh NVIDIA-Linux-x86-1.0-5336-pkg1.run

kai akolou8eis tis odhgies.

 

Gia to modem twra o aderfos mou eixe ena connexant alla den 8umamai an htan to hsf h to hcf.

Tespa epeidh den 8umamai apo pou eixa brei tous drivers kai to linuxant den dinei tsampa drivers exw tous 2 drivers an 8es sto serveraki mou :D

 

http://tspackets.dyndns.org/linmodem/hsflinmodem-5.03.27lnxtbeta03042700.tar.gz

http://tspackets.dyndns.org/linmodem/hcfpcimodem-0.99lnxtbeta03042700.tar.gz

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...