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

Κάρτα ipw3945ABG και εκκίνησή της στη Fedora 6...


xaxa1982

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

Έχω πρόβλημα παιδιά, βοηθήστε, γιατί εδώ και 3 μέρες περίπου που έχω βάλει τη Fedora, έχω το εξής πρόβλημα και ενώ έψαξα σχεδόν παντού, δεν βρήκα ακριβής λύση...

Λοιπόν! Η κάρτα δουλεύει μια χαρά, εκτός από την εκκίνησή της στο boot του υπολογιστή.

Έχω βάλει τους drivers από τα freshrpms. Το module εκκινεί κατά το boot του υπολογιστή(έτσι νομίζω δηλαδή), αλλά όταν μπαίνω στο σύστημα, ο daemon που σηκώνεται για να δουλέψει η κάρτα, δεν εκκινεί κατά την εκκίνηση.

Το πρόβλημα είναι ότι δεν ξέρω το γιατί... Ο δαίμονας εκκινεί έτσι "/sbin/ipw3945d" κανονικά αφού ήδη έχει εκκινήσει το σύστημα.

Παρακάτω σας γράφω και το script το οποίο θεωρητικά θα έπρεπε να εκκινεί τον δαίμονα και βρίσκεται στον φάκελο "/etc/init.d", δείτε το και αυτό και αν κάποιος έχει διαφορετικό ας το επισυνάψει μπας και μου δουλέψει ή τελοσπάντων αν ξέρετε από script δείτε το λιγάκι:

 

>
#!/bin/sh
# $Id$
#
# Init file for IPW3945 regulatory daemon
#
# chkconfig: 345 13 87
# description: Intel Pro Wireless 3945 regulatory daemon
#
# processname: ipw3945d
# pidfile: /var/run/ipw3945d.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

RETVAL=0
prog=ipw3945d
OPTIONS="--quiet --timeout=-1"

start()
{
echo -n $"Starting $prog: "
daemon /sbin/ipw3945d $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
}

stop()
{
echo -n $"Stopping $prog: "
killproc /sbin/ipw3945d
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
fi
;;
status)
status /sbin/ipw3945d
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
RETVAL=1
esac
exit $RETVAL

 

Ευχαριστώ πολύ για όποιον ασχοληθεί και Χρόνια πολλά!!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Χρόνια Πολλα ;)

Έχεις ορίσει να εκτελείται το παραπάνω init script στο default runlevel; Το default runlevel μπορείς να το δεις από το /etc/inittab και το init script μπορείς να ορίσεις σε ποια runlevels θα εκτελείται μέσω της chkconfig. π.χ.

>chkconfig --list
chkconfig --level 2345 ipw3945d on

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Επειδή δεν τα πιάνω όλα αυτά που λες φίλε μου, αλλά δοκίμασα την πρώτη εντολή για να δω τι γίνεται, μου έβγαλε το παρακάτω για την ipw3945d:

 

>
ipw3945d        0:ανενεργό      1:ανενεργό      2:ενεργό        3:ενεργό        4:ενεργό        5:ενεργό        6:ανενεργό

 

Εγώ δεν καταλαβαίνω τι μου λέει εδώ, εσύ μπορείς να δεις αν όντως είναι ρυθμισμένο σωστά? (Τα 0,1, και 6 γιατί είναι ανενεργά? Τι συμβολίζουν τα νούμερα?)

 

Ευχαριστώ!!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στο unix υπάρχουν μερικά sets ρυθμίσεων τα οποία ορίζουν ποιες υπηρεσίες εκτελούνται. Αυτά ονομάζονται runlevels. Το λειτουργικό σε κάθε δεδομένη στιγμή τρέχει σε ένα μόνο runlevel αλλά μπορεί εύκολα να αλλάξει. Τα runlevels τα διαχειρίζεται η INIT, η διεργασία που ξεκινάει ο kernel μόλις φορτώσει, αν θέλουμε να αλλάξουμε runlevel στέλνουμε μήνυμα στην INIT μέσω της "telinit". Παραδοσιακά το runlevel 0 είναι το runlevel τερματισμού (όλες οι υπηρεσίες τερματίζονται και ο kernel παγώνει ή στέλνει εντολή να κλείσει το μηχάνημα αν υποστηρίζεται), το runlevel 6 κάνει το ίδιο αλλά επανεκκινεί το μηχάνημα αντί να το κλείσει και το runlevel 1 είναι ας πούμε ό,τι είναι το safemode στα windows, ένα runlevel που φορτώνουν μόνο ελάχιστες υπηρεσίες, όσες χρειάζονται για troobleshooting από κονσόλα.

 

Οπότε είναι λογικό που το ipw3945d δεν είναι ενεργό στα runlevels 0 1 και 6, εφόσον εκτελείται στα άλλα θα έπρεπε να ξεκινάει αυτόματα με το boot.

 

Δηλαδή για να καταλάβω, τι από τα δύο ισχύει:

 

1) Αν δώσεις "/etc/init.d/ipw3945d restart" μετά την εκκίνηση εκτελείται ο daemon αλλά δεν εκτελείται αυτόματα με το boot

 

2) Δε δουλεύει το script και πρέπει να εκτελέσεις απευθείας τον daemon με "/sbin/ipw3945d"

 

Λογικά θα μπορούσες να πετάξεις το "/sbin/ipw3945d" μέσα στο /etc/rc.local, αλλά η σωστή λύση είναι να παίξει με το δικό του init script.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στο unix υπάρχουν μερικά sets ρυθμίσεων τα οποία ορίζουν ποιες υπηρεσίες εκτελούνται. Αυτά ονομάζονται runlevels. Το λειτουργικό σε κάθε δεδομένη στιγμή τρέχει σε ένα μόνο runlevel αλλά μπορεί εύκολα να αλλάξει. Τα runlevels τα διαχειρίζεται η INIT, η διεργασία που ξεκινάει ο kernel μόλις φορτώσει, αν θέλουμε να αλλάξουμε runlevel στέλνουμε μήνυμα στην INIT μέσω της "telinit". Παραδοσιακά το runlevel 0 είναι το runlevel τερματισμού (όλες οι υπηρεσίες τερματίζονται και ο kernel παγώνει ή στέλνει εντολή να κλείσει το μηχάνημα αν υποστηρίζεται), το runlevel 6 κάνει το ίδιο αλλά επανεκκινεί το μηχάνημα αντί να το κλείσει και το runlevel 1 είναι ας πούμε ό,τι είναι το safemode στα windows, ένα runlevel που φορτώνουν μόνο ελάχιστες υπηρεσίες, όσες χρειάζονται για troobleshooting από κονσόλα.

 

Οπότε είναι λογικό που το ipw3945d δεν είναι ενεργό στα runlevels 0 1 και 6, εφόσον εκτελείται στα άλλα θα έπρεπε να ξεκινάει αυτόματα με το boot.

 

Δηλαδή για να καταλάβω, τι από τα δύο ισχύει:

 

1) Αν δώσεις "/etc/init.d/ipw3945d restart" μετά την εκκίνηση εκτελείται ο daemon αλλά δεν εκτελείται αυτόματα με το boot

 

2) Δε δουλεύει το script και πρέπει να εκτελέσεις απευθείας τον daemon με "/sbin/ipw3945d"

 

Λογικά θα μπορούσες να πετάξεις το "/sbin/ipw3945d" μέσα στο /etc/rc.local, αλλά η σωστή λύση είναι να παίξει με το δικό του init script.

 

Λοιπόν! Καταρχάς ευχαριστώ που μου εξήγησες παραπάνω, γιατί τώρα κατάλαβα τι γίνεται!

 

Τώρα! Έδωσα την εντολή "/etc/init.d/ipw3945d restart" και ο δαίμονας έκανε κανονικά start ή restart(όταν ήδη τον είχα σηκώσει).

 

Για το script που μου λες, αν δουλεύει, λογικά όχι, γιατί πρέπει κάθε φορά που κάνω εκκίνηση στον υπολογιστή να κάνω σε κονσόλα "/sbin/ipw3945d" (με δικαιώματα root).

 

Η λύση που λες, να γράψω το "/sbin/ipw3945d" μέσα στο αρχείο /etc/rc.local την δοκίμασα και δεν δουλεύει... (Θα κάνω άλλη μια προσπάθεια και αν δουλέψει θα σου πω, αν και δεν νομίζω!!!) ---->>>(Edit: δοκίμασα και δεν δούλεψε!!!)

 

Κάπου είχα διαβάσει, ότι υπάρχει μια περίπτωση να σηκώνεται το module του kernel αφού έχει γίνει προσπάθεια να σηκωθεί ο δαίμονας. Μπορεί να ισχύει αυτό? Κάποιοι έλεγαν να γράψουν sleep μέσα στο script, αλλά δεν ξέρω που να το γράψω για να το δοκιμάσω...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δοκίμασε αυτό:

- Αdd the following three lines to the file /etc/modprobe.conf:

>alias eth1 ipw3945
install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet
remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945

The first line assumes that we will have the wireless interface as eth1.

 

- Αdd the following line to the file /etc/rc.local

>/sbin/ipw3945d --quiet

source: http://www-users.york.ac.uk/~mdc1/samsung.html

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δοκίμασε αυτό:

 

source: http://www-users.york.ac.uk/~mdc1/samsung.html

 

Δυστυχώς, το έχω βρει κι εγώ αυτό, αλλά δεν δουλεύει!

Τελικά πρέπει να είναι αλλού το πρόβλημα και μάλλον το εντόπισα!

Το πρόβλημα μάλλον είναι στον kernel! Είχα 2 εκδόσεις και δοκίμασα! Είχα τον 2.6.18(μέχρι πριν λίγες ώρες, γιατί έκανα ένα λάθος και τον έβγαλα) και τον 2.6.20 και ενώ στον 2.6.18 δούλευε κανονικά, στον 2.6.20 δεν δουλεύει, ό,τι ρυθμίσεις και να του κάνω. Κάπου εκεί βρίσκεται το πρόβλημα. Στο link που μου έδωσες, αυτός που το γράφει έχει τον 2.6.20, αλλά απ' ότι φαίνεται λόγω μικροδιαφορών στο hardware, το πρόβλημα άλλες φορές λύνεται και άλλες φορές όχι. Το κακό είναι ότι όλο το υπόλοιπο hardware μου δουλεύει σαφώς καλύτερα με τον 2.6.20, οπότε αναγκαστικά, θα κρατήσω αυτόν, μέχρι να δούμε σε επόμενες εκδόσεις αν θα το φτιάξουν.

 

Ευχαριστώ πάντως για την βοήθεια!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η κάθε έκδοση kernel έχει χωριστά modules (αυτά βρίσκονται μέσα στο /lib/modules/έκδοση-kernel), οπότε αν εσύ είχες κάνει compile το module για τον 2.6.18 kernel δε θα υπάρχει στον 2.6.20, θα πρέπει να το κάνεις ξανά compile βασιζόμενος στα sources του 2.6.20 (σίγουρα θα υπάρχουν σαν πακέτο με όνομα "kernel-sources" ή παρόμοιο) και να αντιγράψεις (συνήθως γίνεται αυτόματα με το "make install") το module στον κατάλογο του 2.6.20. Εκτός αν υπάρχει precompiled σαν πακέτο από τη διανομή.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η κάθε έκδοση kernel έχει χωριστά modules (αυτά βρίσκονται μέσα στο /lib/modules/έκδοση-kernel), οπότε αν εσύ είχες κάνει compile το module για τον 2.6.18 kernel δε θα υπάρχει στον 2.6.20, θα πρέπει να το κάνεις ξανά compile βασιζόμενος στα sources του 2.6.20 (σίγουρα θα υπάρχουν σαν πακέτο με όνομα "kernel-sources" ή παρόμοιο) και να αντιγράψεις (συνήθως γίνεται αυτόματα με το "make install") το module στον κατάλογο του 2.6.20. Εκτός αν υπάρχει precompiled σαν πακέτο από τη διανομή.

 

Όχι, μπερδεύτηκες! Το έκανα και με τα πακέτα της διανομής αλλά και με δικό μου compile, δεν άφησα τίποτα στην τύχη δηλαδή! Τελικά στην Fedora 7 καταργήσανε τον driver ipw3945 και τον δαίμονα ipw3945d και έχουν προσαρμόσει out-of-the-box υποστήριξη με τον driver iwlwifi. Δες στο παρακάτω link, το post 12:

http://forums.fedoraforum.org/showth...hlight=ipw3945

 

όπου λέει για την Fedora 7 Test3 και την αλλαγή που έκαναν για να προσαρμόσουν και τον driver στην διανομή!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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