Archives

VMWare Player 7.x pe Ubuntu 15.04 – telenovela continuă

Se întâmplă destul de des în ultima vreme să văd cum reapar probleme cu funcționarea unor aplicații mai ales după actualizări, mai mici sau mai mari.
Una din problemele vechi ale Player-ului de la VMWare era legată de driverul de rețea, care din motive știute doar de dezvoltatorii de la VMWare nu se mapa corect pe kernel.
Problema, raportată prin 2013 (cel puțin atunci am auzit prima dată de ea), a fost rezolvată odată cu versiunea 6 a playerului.

Și cum lucrurile simple nu puteau rămâne simple, combinația kernel 3. + player 7.x aduce din nou (mai mult sau mai puțin) aceleași probleme…

Pe forumul comunităților sunt prezente multiple soluții care au rezolvat unuia sau altuia problema vmnet-ului… dintre cele testate de mine cea care mi-a rezolvat (deja de două ori problema – întrucât trebuie aplicată după fiecare actualizare de VMWare Player) este următoarea:

$ curl http://pastie.org/pastes/9934018/download -o /tmp/vmnet-3.19.patch
$ cd /usr/lib/vmware/modules/source
$ tar -xf vmnet.tar
$ patch -p0 -i /tmp/vmnet-3.19.patch
$ mv vmnet.tar vmnet.tar.SAVED
$ tar -cf vmnet.tar vmnet-only
$ rm -r vmnet-only
$ vmware-modconfig --console --install-all

Și apoi minune, VMWare Player își poate compila driverele de rețea de câte ori se actualizează el, sau kernelul mașinii.

O copie a fișierului vmnet-3.19.patch am păstrat-o aici.

Orice hard poate fi umplut…

Și bineînțeles, de cele mai multe ori, cu cât e discul mai mare, cu atât mai puțină atenție va primi… Și așa se face că azi dimineață, după un upgrade m-am trezit că partiția mea de boot mai are doar 200Kb liberi… și că noul kernel care vrea să se instaleze acolo…. nu prea mai are pre unde.

Și m-am apucat eu să caut prin linkurile salvate hăt prin toate browserele folosite în cursul timpului și am dat de un link (de prin 2011, probabil ultima dată când m-am confruntat cu o problemă asemănătoare) care oferă probabil cea mai rapidă soluție de curățenie:

 $ dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge 

remove_kernel

Și se făcu așadar lumină-n sat și 4Gb am câștigat 🙂  și pre acilea am notat… ca data viitoare să nu mai caut ca orbu’ Brăila.

Swap tuning în Linux

Acest post ar trebui să înceapă cu “DO NOT TRY THIS AT HOME” sau mai pe românește, “De încercat doar dacă nu-ți mai încapi în piele”

De când a apărut kernelul 2.6, printre multele tricuri posibile pentru tuningul sistemelor Linux se găsesc și multe moduri de a modifica comportamentul și felul de lucru cu swap-ul, și de a schimba modul în care datele vor fi scrise în swap atunci când memoria se va încărca.

Ca idee generală, atunci când o aplicație cere memorie, dar memoria RAM este încărcată total cu alte aplicații, kernelul are două opțiuni de management al memoriei: prima este să reducă cache-ul din RAM – eliminând datele vechi, sau, varianta a doua, să trimită spre swap porțiunile (paginile) mai puțin utilizate ale aplicațiilor care rulează în acel moment. E greu de spus, care variantă este mai bună și kernelul, face o balansare între cele două metode, încercând să ghicească care este mai eficientă doar în baza istoricului activităților recente.

Până la apariția kernelului 2.6. era imposibilă intervenția utilizatorului asupra modurilor de calcul și a modului de lucru, și erau destul de des întâlnite momente în care kernelul lua opțiunea greșită, acțiune finalizată cu o scădere drastică a performanțelor.

Indicele de balansare în swap, poate lua valori de la 0 la 100. La 100, kernelul va încerca întotdeauna să găsească paginile inactive și să le trimită spre disc, în swap. In cazul celălalt, factorul de apariție și redirectare către swap depinde de câtă memorie este folosită de aplicații.

Valoarea implicită este de 60.

Valoarea 0 de exemplu va duce la un comportament asemănător kernelelor vechi, unde aplicația care are nevoie de memorie poate micșora cache-ul pentru a obține o bucată din RAM.

Utilizatorii de laptopuri, vor prefera o valoare apropiată de 30, pentru a nu suprasolicita activitatea harddiscului.

Valoarea actuală a indicelui de balansare în swap se poate vedea cu:

$cat /proc/sys/vm/swappiness

Și poate fi modificat cu comanda:

$echo 30 > /proc/sys/vm/swappiness

Valoarea implicită poate fi de asemenea modificată în /etc/sysctl.conf:

vm.swappiness = 30

Revin la prima frază, nu încercați totuși să vă jucați cu treaba asta pe mașini aflate în producție… E mult mai bine să incercați pe mașini de test…și doar atunci când aveți suficient timp:)

KernelCheck – utilitar pentru instalarea și compilarea kernelului Ubuntu

Oricine a încercat vreodată să compileze și să modifice un kernel știe ce dureri de cap pot apărea, mai ales atunci când vine vorba de dependințe…
KernelCheck este un medicament împotriva acestor dureri de cap, făcut pentru sistemele de operare bazate pe Debian, Ubuntu fiind unul din sisteme de operare căruia KernelChecker i se adresează.
Practic, cu KernelChecker se poate compila și instala orice variantă stabilă de kernel 2.6.

KernelChecker oferă printre altele și posibilitatea compilării și instalării de patchuri ale kernelului existent, posiilitatea de instalarea a driverelor proprietare (cum ar fi cele ale plăcilor grafice mai pretențioase) etc. Pentru a înțelege mai bine cum se utilizează există pe site-ul celor care dezvoltă KernelChecker și un tutorial în format PDF care poate fi descărcat  și de aici.

Aplicația oferă o interfață grafică care face întreg procesul de compilare a kernelului să fie pentru utilizator un simplu clic pe un buton.

Cum lucrează?

KernelChecker caută cele mai recente versiuni de la http://www.kernel.org, apoi întreabă utilizatorul ce versiune dorește să folosească, iar aceasta va fi compilată în formatul pachetelor .deb. (cu opțiunea de a și instala această versiune după compilare).

Acest proces este o utilizare a aplicației  AutoKernel scrisă de Robert Wolterman (xtacocorex), Timothy Janssen (mentok) și Kristof Verbeken (PingunZ).

kernelcheck

Instalarea KernelChecker

  • Se descarcă sursele KernelCheck de aici.
  • Se desface arhiva

tar -xzf kernelcheck-*.tar.gz

  • Se instalează KernelCheck

cd kernelcheck-*

sudo python setup.py install

  • Odată instalat se poate lansa cu comanda

sudo kernelcheck

După lansare, veți putea vedea:

  • Versiunea actuală a kernelului
  • Versiunea cea mai recentă disponibilă spre instalare
  • Cel mai recent patch

Opțiunile pentru (re)construcția kernelului se găsesc în meniul Kernel Patch Options. Fiți siguri că știți ce faceți când butonați pe aici, altfel… lăsați-le așa cum sunt că-s bine puse 🙂

În meniul Advanced Options, se pot alege opțiunile care se doresc a fi reconfigurate, se poate reconfigura serverul X, se pot instala module nVidia etc. Opțiunea nVidia va șterge alte pachete instalate anterior cu refetință la nVidia, și va instala versiunea cea mai recentă. De asemenea va șterge și fișierele care ofereau suport pentru folosirea nVidia pe kernele mai vechi.

Un lucru foarte important este să știți dacă echipamentele hardware sunt suportate. Altfel, recompilare kernelului este inutilă.

Pentru compilare, trebuie să mergeți la Programs>Build New Kernel

© 2009-2020 Alex. Burlacu
%d bloggers like this: