Punerea conducător auto rtl8192 kernel Linux proaspete - Echipa site-ul oficial easycoding

În acest ghid, vom discuta despre modul de a construi rtl8192cu conducător auto în conformitate cu versiunile recente ale kernel-ului Linux (3.11 și de mai sus).

Ieri a decis să se conecteze la PC-ul acasă la GNU / Linux USB «fluier» ASUS USB N-13 B1 (a doua versiune a modelului bazat pe chip-ul Realtek). Aparatul este recunoscut imediat de către sistem și sunt încărcate drivere rtl8192cu. rtlwifi rtl8192c_common și livrarea regulată a miezului 3.14.8 (Fedora 19), cu toate acestea, pierderea de pachete atunci când este utilizat atins 95%, iar viteza nu se ridică peste 25 kb / s.

gugleniya prelungită a dus la mai multe bug-uri deschise în oficial bugzilla Red Hat Compania: 1. 2. în cazul în care soluția propusă este de a construi și a instala producătorul oficial al conducătorului auto - RealTek, disponibile pe site-ul oficial sub formă de cod sursă este licențiat sub GPLv2.

drivere Surse au fost descărcate, dar să se bazeze pe nuclee versiunea 3.11 si mai mare sa dovedit a fi imposibilă. Căutarea soluțiilor a dus la magazia pe GitHub cu o versiune corectată, dar este optimizat pentru distribuție Ubuntu.

Este de la această versiune, vom colecta și pachet pentru Fedora mod de modă veche. Un nou mod de a fi descrise în detaliu aici.

Pregătirea pentru Build

Pentru asamblare corectă, avem nevoie de fișierele sursă și antet utilizate de către nucleu și compilatorul GCC. utilitate rpm-build și checkinstall.

Stabilim un set de bază:

Acum avem nevoie de CheclInstall utilitate. care va reuni pachetul sub versiunea curentă a kernel-ului. În depozitele oficiale Fedora acest utilitar minunat nu este, deci vom folosi magazia de o altă distribuție populară - openSUSE, descărcați pachetul și instalați în sistem manual.

Din moment ce avem Fedora, mai degrabă decât openSUSE, selectați link-ul „Arată alte versiuni“ și descărcați pachetul binar compilat folosit de arhitectura: x86 pentru sistemul de operare pe 32 de biți sau X86_64 - pentru 64 de biți.

Stabilirea CheclInstall (de exemplu, 64-bit sistem de operare):

Acum suntem gata pentru a asambla șofer. Atenție! Șoferul este întotdeauna merge pentru o anumită versiune (curentă) a kernel-ului. Atunci când modernizarea ansamblului de bază trebuie să se repete!

Ansamblu conducător auto

Descărcați remedierea rapidă de mine (înlocuiți calea către modulele de kernel director pentru Fedora 17 și de mai sus, un rtl8192 standard de conducător auto de bază va fi dezactivat automat când instalați pachetul) versiune a rtl8192cu sursa:

Treceți la ramura dreapta:

Să trecem la directorul sursă:

Rulați ansamblul modulului de bază:

Daca va avea succes, vom obține driverul binar pentru versiunea de kernel curentă. Acum, avem nevoie pentru a compila pachetul.

asamblare de pachete

În același director, în care vom efectua face. executați sudo CheclInstall și să răspundă la întrebări referitoare la pachetul său creat (este selectat un număr de versiune, apoi șir de intrare cu parametri și valori):

Punerea conducător auto rtl8192 kernel Linux proaspete - Echipa site-ul oficial easycoding
Asamblarea pachetului prin CheclInstall

Neaparat câmp corect 2 - Nume. 3 - Versiunea și 10 - Necesită:

  • Nume. kmod-rtl8192cu-remedieri-sâmbure $ NUCA;
  • Versiunea. 4.0.2 (cea mai recentă versiune a conducătorului auto la momentul);
  • Necesită. kernel = $ NUCA.

Aici, în loc de $ NUCA ar trebui să indice versiunea completă a kernel-ului de rulare, care poate fi găsit (nu se specifică arhitectura) cu comanda uname -r, deoarece se va face CheclInstall proprii.

Asigurați-vă că totul este subliniat în mod corect (ca în această captură de ecran (excepție - versiunea de kernel)) și apăsați tasta ENTER de pe tastatură. Ansamblul se va efectua în mod automat, iar rezultatul poate fi găsit în directorul / root / rpmbuild / RPMS / `uname -m` / (deoarece CheclInstall funcționează corect numai ca root).

instalarea driverului

modul kernel Asamblate ar trebui să fie acum instalat. Pentru a face acest lucru, executați următoarele într-un terminal:

Conducătorul auto va fi activat după o repornire a sistemului. pierderi de pachete dispar, iar viteza va crește la 50 Mbit / s (sau mai mult).

Acum lucrez la fedora 22, iar după executarea comenzii
sudo yum -y install / rădăcină / rpmbuild / RPMS / `uname -m` / kmod-rtl8192 * .rpm
Totul începe bine, dar apoi am obține următoarele:
Verificarea Tranzacție merge
Eroare: Nu a reușit să verifice tranzacția:
instalarea pachetului kmod-rtl8192cu-remedieri-kernel-4.0.4-301-4.0.2-19.x86_64 are nevoie de 8KB pe sistemul de fișiere / sys
instalarea pachetului kmod-rtl8192cu-remedieri-kernel-4.0.4-301-4.0.2-19.x86_64 are nevoie de 4KB pe / sys / fs / SELinux sistem de fișiere
Empiric, am constatat că directorul / sys nu poate copia nimic, precum și pentru a elimina din ea. Cum pot elimina această restricție și a finaliza asamblarea conducătorului auto?

@ Nicholas
Sub Fedora 22 nu este testat, adică el a venit doar două zile în urmă și este încă foarte instabilă. În această versiune a distribuției ar trebui să fie utilizată în locul yum managerul de pachete nou - DNF.

În mod corespunzător pachetul asamblat nu poate scrie nimic în virtuale directorul / sys. Eroarea de mai sus se produce atunci când ați activat SELinux în modul în aplicare. Setați-l în permisivă și încercați din nou clădire.

@ V1TSK
Am crezut că ai vrut să colecteze pachetul akmod-rtl8192cu pentru asamblarea automată a pachetului de fiecare dată când actualizați kernel-ul?

@Nk
Pe avertizările compilatorul GCC în clădire nu se acorde o atenție - acest lucru este destul de normal.

utilitate CheclInstall pentru un motiv oarecare, nu puteți găsi colectat modulul de kernel (8192cu conducător auto) și alte fișiere ale pachetului.

Ultima eroare corectată de la sudo rpmbuild -ba test.spec (apare o eroare, așa cum numim noi ansamblul de cunoscut manifest inexistent, în scopul de a crea structura de directoare necesare) pentru a CheclInstall.

@ V1TSK
Vă mulțumim pentru feedback-ul rapid. Am dat seama că nu a pus versiunea CheclInstall (pus sub arhitectura i686), fără erori directoarele găsite au dispărut. Doar utilitate CheclInstall nu vede conducătorul auto și alte fișiere ... sunt enumerate ca în captura de ecran, pachetul este construit, dar nu este instalat (literalmente nu-mi amintesc exact ce se pare) nu se actualizează pachetul de instalat. Efectuați nimic. Dacă instalați prin rpm spune despre nucleu -i dependenta = $ NUCA. Am înțeles bine că nu este montat corect ... Este necesar să se CheclInstall a văzut conducătorul auto ....

@ Nicholas
Așa cum am înțeles din descrierea driverului de asamblare nu promite funcționarea stabilă a acestui dispozitiv. (Cu toate acestea, se știe că nu funcționează bine cu dispozitive folosind antene duale, cum ar fi TP-Link WN8200ND, aparent din cauza unei implementări MIMO incompletă în driver-ul din amonte.) De asemenea, am încerca să aibă același adaptor, dar până în prezent conducătorul auto nu este setat . Încercați următoarea conexiune iwconfig + rata wlan 5.5m în cazul în care + WLAN - adaptorul. Deși există oameni spune că a fost luat fără dansuri suplimentare. Dacă găsiți o soluție finală pentru a atinge scopul aici.

@ V1TSK
Un nou mod, de asemenea, nu lasă aici sunt două din dosar:
kmod-rtl8192cu-remedieri-4.0.4-202.fc21-4.0.2-21.x86_64 - dimensiunea 783
rtl8192cu-reguli-1.0.0.0-1.x86_64 - dimensiunea 542
Daca nu executa comenzi prin intermediul cu sudo, fișierele sunt create în directorul home al utilizatorului ...
-
Mai mult decât atât, în diferite versiuni ale distribuției (19, 21) și nuclee am încercat. Am crezut că pot schimba arhitectura, dar, de asemenea, nu merge cum era de așteptat: Prima cale este o astfel de imagine (de asemenea, două versiuni 4.0.2 și 1.0.0.0):

În ceea ce poate fi problema, încercați pe mașinile virtuale pot fi în acest caz?

@Nk
După asamblarea noului modul în care ar trebui să obțineți două pachete: kmod-rtl8192cu-fixes- $ KERNEL_VERSION-4.0.2-21.x86_64.rpm (

200 KB) și rtl8192cu-reguli-1.0.0.0-1.x86_64.rpm (6,8 KB). Prima conține conducătorul auto în sine, iar al doilea - un script pentru a modprobe.

Aș dori să văd jurnalul complet al ansamblului (întregul conținut al consolei în care se colectează pachetul, ceea ce face trage pre-git).

Pachetul asamblat poate fi găsit în depozitul nostru pentru 3.19.7-200.fc21 de bază (x86_64).