Δημοσιεύτηκε: 14 Φεβ 2013, 17:45
από madvinegar

Προειδοποίηση: Την εγκατάσταση Windows drivers στο Ubuntu μέσω του ndiswrapper την χρησιμοποιούμε όταν και μόνον όταν έχουν αποτύχει όλοι οι άλλοι τρόποι εγκατάστασης και δεν υπάρχουν φυσικοί (native) οδηγοί (drivers) για την ασύρματη κάρτα μας.



Για τις περιπτώσεις λοιπόν που είτε δεν υπάρχει native driver, είτε δεν δουλεύει σωστά ο native driver, μπορούμε να καταφύγουμε στον ndiswrapper και να χρησιμοποιήσουμε τους Windows wireless drivers.
Ο παρακάτω οδηγός έχει προέλθει από την προσωπική μου εμπειρία και μετά από διάφορες δοκιμές.
Να σημειώσω πως χρειαζόμαστε σύνδεση ίντερνετ για να κατεβάσουμε και να εγκαταστήσουμε κάποια πακέτα, οπότε προσωρινά χρειάζεται να υπάρχει παροχή ίντερνετ μέσω καλωδίου (ethernet) ή μέσω άλλου τρόπου.

Εγκατάσταση ndiswrapper και απαραίτητων πακέτων , μέσω synaptic package manager

Ανοίγουμε ένα τερματικό με τον συνδυασμό πλήκτρων CTRL+ALT+T και αντιγράφουμε την παρακάτω εντολή:
Κώδικας: Επιλογή όλων
sudo apt-get install synaptic

Σημείωση: Θα μας ζητηθεί ο κωδικός μας, τον γράφουμε προσεκτικά διότι δεν θα φαίνεται κάτι (σαν να μην γράφουμε τίποτα) και πατάμε [Enter]

Έχουμε πλέον εγκαταστήσει τον Synaptic Package Manager.
Έπειτα καλούμε τον synaptic από το Dash. Το Dash είναι το εικονίδιο του Ubuntu πάνω αριστερά (πρώτο στην αριστερή μπάρα). Γράφουμε synaptic και κλικάρουμε για να ανοίξει το πρόγραμμα. Θα μας ζητήσει κωδικό διαχειριστή.


Συμπληρώνοντας την λέξη: ndiswrapper στο πεδίο αναζήτησης , θα εντοπίσουμε τα απαραίτητα πακέτα προς εγκατάσταση.

Τα πακέτα αυτά επιγραμματικά είναι
  • ndisgtk
  • ndiswrapper-source
  • ndiswrapper-dkms
  • ndiswrapper-utils-1.9
  • ndiswrapper-common

Τα επιλέγουμε προς εγκατάσταση (mark for installation) και μετά πατάμε στο "apply" για να γίνει η εγκατάσταση.

Την ίδια διαδικασία κάνουμε για να εγκαταστήσουμε και το πακέτο build-essential, που πιθανών να το χρειαστούμε.



Εύρεση και ενεργοποίηση Windows drivers

Τώρα χρειαζόμαστε τους drivers των windows XP. Αυτούς μπορούμε να τους βρούμε είτε μέσα στο CD που συνοδεύει το στικάκι μας (ή την pcmcia κάρτα μας ή όποιο μέσο wireless θέλουμε να εγκαταστήσουμε), είτε στο ίντερνετ στο σαιτ του κατασκευαστή. Μας ενδιαφέρει να βρούμε το φάκελο με τους winXP drivers που περιέχει μέσα τα(ο) αρχεία(ο) με κατάληξη ".inf". Αυτόν τον φάκελο (όλο το φάκελο, όχι μόνο τα αρχεία με κατάληξη .inf) τον αντιγράφουμε κάπου στο σύστημα μας, πχ μέσα στον φάκελο Documents.
Μετά, μέσω του dash βρίσκουμε το γραφικό πρόγραμμα windows wireless drivers και το επιλέγουμε να ανοίξει.
Πατάμε το "add" για να προσθέσουμε νέο driver και μετά μέσω του browse κάνουμε περιήγηση για να βρούμε τον φάκελο με τους windows ΧP drivers που αντιγράψαμε μέσα στο Documents μας. Αφού το βρούμε, κάνουμε κλίκ και επιλέγουμε προς ενεργοποίηση το αρχείο με κατάληξη .inf που βρίσκεται μέσα στον φάκελο.
Κανονικά με αυτό το βήμα θα πρέπει να δουλέψει το wireless μας.




Πιθανά Προβλήματα και Λύσεις
Σφάλμα στην ενεργοποίηση και μήνυμα: Hardware Found
Σφάλμα στην ενεργοποίηση και μήνυμα: Hardware not Found
Δεν λειτουργεί το ndiswrapper μετά από αναβάθμιση του συστήματος


Σφάλμα στην ενεργοποίηση και μήνυμα: Hardware Found

Αν μας επιστρέψει μήνυμα της μορφής => Hardware found. Fatal error: ndiswrapper module not loaded
Από αυτό το μήνυμα κρατάμε το "Hardware found" που σημαίνει ότι ο driver μας (δλδ το .inf αρχείο που επιλέξαμε) είναι ο σωστός.
Κατεβάζουμε από εδώ: http://sourceforge.net/projects/ndiswrapper/files/ το αρχείο "ndiswrapper-1.59.tar.gz". (την ώρα που γράφεται ο οδηγός, ο 1.59 είναι η τελευταία έκδοση. Eχει αποδειχτεί ότι δουλεύει πολύ καλύτερα από τoν ηδη εγκατεστημένο μερικές φορές).
Το αρχείο λογικά έχει κατέβει στον φάκελο Downloads μας. Το βρίσκουμε, κάνουμε δεξί κλικ και επιλέγουμε "αποσυμπίεση εδώ" (extract here). Θα δημιουργηθεί ένας φάκελος με το όνομα "ndiswrapper-1.59". Αυτόν το φάκελο τον μεταφέρουμε μέσα στο /usr/src. Για να γίνει αυτό ανοίγουμε τερματικό και δίνουμε:
Κώδικας: Επιλογή όλων
gksudo nautilus

Προσοχή: Είμαστε πλέον συνδεδεμένοι μέσω του nautilus ως διαχειριστές , οποιαδήποτε λανθασμένη κίνηση μπορεί να καταστρέψει το λειτουργικό μας σύστημα

Θα ανοίξει ο ναυτίλος με δικαιώματα διαχειριστή οπότε με copy/paste αντιγραφούμε το φάκελο "ndiswrapper-1.59" από το Downloads μέσα στο /usr/src.
Αφού γίνει αυτό ανοίγουμε κλείνουμε τον nautilus και πάλι από τερματικό δίνουμε τις κάτωθι εντολές μια-μια για να γίνει η εγκατάσταση:
Κώδικας: Επιλογή όλων
cd /usr/src/ndiswrapper-1.59
sudo make
sudo make install

Μετά δίνουμε και ένα
Κώδικας: Επιλογή όλων
sudo modprobe ndiswrapper

Και λογικά θα δούμε τα λαμπάκια στο στικάκι μας (ή ό,τι άλλο wireless μέσο εγκαθιστούμε) να αναβοσβήνουν.

Σφάλμα στην ενεργοποίηση και μήνυμα: Hardware not Found

Αν βγάλει "Hardware not found" δοκιμάζουμε με άλλο inf αρχείο που μπορεί να περιέχεται στον φάκελο winXP, αλλιώς καμιά φορά μπορεί να δουλέψει και με τους drivers των win2000.
Για να βρούμε ακριβώς τα αρχεία inf που χρειαζόμαστε αν έχουμε το CD με τους windows drivers (ή το .exe αρχείο εγκατάστασης τους), μπορούμε να κάνουμε το εξής.
  • Καταρχήν εγκαθιστούμε από τον synapric package manager (όπως παραπάνω) το γνωστό πρόγραμμα "wine".
  • Κάνουμε κανονική εγκατάσταση του .exe αρχείου με τους winXPdrivers χρησιμοποιώντας το wine. (δεξί κλικ > open with wine).
  • Βρίσκουμε το φάκελο με τα inf αρχεία πηγαίνοντας στο /home/username/.wine/drive_c/windows/inf. Μέσα στο φάκελο "inf" θα είναι ένας υποφακελος με την ονομασία των drivers που ψάχνουμε, πχ κατι σαν WNA300 ή ATHEROS5320 κτλπ, μέσα στον οποίο θα βρίσκονται κάποια αρχεία συστήματος μαζί με τα πολυπόθητα .inf αρχεία που θέλουμε.
  • Αντιγράφουμε όλον αυτό το φάκελο όπως είναι κάπου πιο βολικά, πχ μέσα στο Documents μας και συνεχίζουμε με την εύρεση και ενεργοποίηση Windows drivers.
O φάκελος ./wine είναι κρυφός, και χρειάζεται να πατήσουμε ctrl+H για να τον δούμε

Δεν λειτουργεί το ndiswrapper μετά από αναβάθμιση του συστήματος

Επειδή, όπως καταλαβαίνετε, η χρήση του ndiswrapper δεν είναι κάτι native, (κάτι σαν workaround είναι), κάθε φορά που γίνεται αναβάθμιση πυρήνα (kernel) πρέπει να κάνουμε μια διαδικασία, να ενεργοποιούμε ξανά τον ndiswrapper. Η διαδικασία είναι οι παρακάτω εντολές σε τερματικό:
Κώδικας: Επιλογή όλων
cd /usr/src/ndiswrapper-1.59
sudo make
sudo make install
sudo modprobe -r ndiswrapper
sudo modprobe ndiswrapper

(Προαιρετικά):Δημιουργία script για αυτόματη ενεργοποίηση του ndiswrapper μετά από αναβάθμιση.
Πατήστε SHOW στο Spoiler.
Spoiler: show
Αν θέλετε και εσείς να φτιάξετε το σκριπτάκι, σε τερματικό δίνετε:
Κώδικας: Επιλογή όλων
gksudo gedit ndiswrapper-reload.sh

Και μέσα αντιγράφετε το κειμενάκι:
Μορφοποιημένος Κώδικας: Επιλογή όλων
#!/bin/bash
cd /usr/src/ndiswrapper-1.59
make
make install
modprobe -r ndiswrapper
modprobe ndiswrapper
exit 0

Το σώνετε (είναι μέσα στο φάκελο Home), και κάθε φορά που θέλετε να το τρέξετε, δίνετε σε τερματικό:
Κώδικας: Επιλογή όλων
sudo ./ndiswrapper-reload.sh


Απεγκατάσταση Ndiswrapper


Πλήρης απεγκατάσταση όλων των πακέτων της σταθερής έκδοσης του ndiswrapper, μέσω τερματικού
Αν για οποιονδήποτε λόγo θέλουμε να απεγκαταστήσουμε το ndiswrapper από τον υπολογιστή μας,
εκτελούμε τις παρακάτω εντολές μια-μια:
Κώδικας: Επιλογή όλων
sudo modprobe -rf ndiswrapper
sudo apt-get remove --purge ndiswrapper-common ndiswrapper-utils-1.9 ndisgtk
sudo rm /etc/modprobe.d/ndiswrapper.conf
sudo rm -r /etc/ndiswrapper/*
sudo depmod -a

Πλήρης απεγκατάσταση όλων των πακέτων της unstable (rc) έκδοσης του ndiswrapper
Κώδικας: Επιλογή όλων
sudo modprobe -rf ndiswrapper
cd /usr/src/ndiswrapper-1.59
sudo make uninstall ; cd
sudo apt-get remove --purge ndiswrapper-common ndiswrapper-utils-1.9 ndisgtk
sudo rm /etc/modprobe.d/ndiswrapper.conf
sudo rm -r /etc/ndiswrapper/*
sudo rm -r /usr/src/ndiswrapper-1.59
sudo depmod -a

Ελπίζω να φανεί χρήσιμος ο οδηγός.
Creative Commons License
Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Μη εμπορική χρήση-Παρόμοια διανομή 3.0 Ελλάδα