web analytics

OS pentru laptop: OpenBSD (v)

Partea a V-a: Detalii

1. Browser

Pornim Firefox și începem să deschidem un tab, încă un tab, mai multe tab-uri și, brusc, Firefox dispare. Îl pornim din nou, ne spune că îi este rușine că nu știe ce s-a întâmplat și ne propune să deschidă toate paginile care au fost deschise ultima oară. Suntem de acord, paginile se deschid și, în câteva secunde, Firefox dispare din nou.

Ce se întâmplă? Procesul firefox atinge maximul de resurse utilizabile și, când nu mai poate aloca mai mult, moare. Ce ne facem? Simplu, îi dăm voie să folosească mai multe resurse.

În primul rând, mărim numărul de descriptori de fișiere (adică numărul maxim de fișiere ce pot fi deschise simultan):


# echo ‘kern.maxfiles=20000’ >> /etc/sysctl.conf
# sysctl kern.maxfiles=20000

La pornirea sistemului vom vedea mesajul următor:

kern.maxfiles: 7030 -> 20000

Dacă nu îl vedem, ceva e în neregulă cu /etc/sysctl.conf.

Următorul pas este să permitem programelor să folosească mai multă memorie. Pentru asta, edităm fișierul /etc/login.conf, modificând datasize și openfiles în secțiunile default și staff astfel:


default:\
:path=/usr/bin /bin /usr/sbin /sbin /usr/X11R6/bin /usr/local/bin /usr/local/sbin:\
:umask=022:\
:datasize-max=512M:\
:datasize-cur=512M:\
:maxproc-max=1024:\
:maxproc-cur=512:\
:openfiles=10000:openfiles-max=10000:openfiles-cur=10000:\
:stacksize-cur=4M:\
:localcipher=blowfish,a:\
:tc=auth-defaults:\
:tc=auth-ftp-defaults:


staff:\
:datasize-cur=2048M:\
:datasize-max=infinity:\
:maxproc-max=1024:\
:maxproc-cur=512:\
:ignorenologin:\
:requirehome@:\
:tc=default:

Pentru a activa noile valori din login.conf trebuie să ne autentificăm din nou (logout + login sau reboot).

Cu noile valori activate, programele nu vor mai muri din cauză de resurse insuficiente. Dacă este nevoie, putem mări valorile modificate până când totul funcționează cum vrem.

2. Rețele wireless

Laptopul este, prin definiție, mobil. Când suntem în zona altei rețele și vrem să ne conectăm, ar trebui să edităm fișierul /etc/hostname.wpi0 ca să punem SSID-ul și parola pentru noua rețea și apoi să rulăm sh /etc/netstart.

Ne întoarcem acasă, pornim laptopul și trebuie să facem același lucru pentru rețeaua de acasă. Și tot așa, de fiecare dată când mergem la servici, în vizită, la un client etc. Cel puțin incomod.

Există mai multe soluții create de diferiți utilizatori, dar nici una inclusă în sistemul de bază. Eu am lucrat la un script Perl care să identifice rețelele prezente, să consulte lista rețelelor cunoscute și să se conecteze dacă recunoaște vreo rețea. Proiectul este aproape gata, dar mi-a venit o idee mai practică și am pus-o în aplicare imediat, astfel încât nu mai am nevoie de scriptul Perl.

Soluția mea constă în:

  • fișier de configurare pentru fiecare rețea wireless cunoscută;
  • script care să copieze configurația corectă și să repornească rețeaua;
  • launcher în XFCE prin care să alegem la ce rețea ne conectăm.

Mai întâi, am creat fișiere de configurare pentru rețele folosite frecvent. Numele fișierelor sunt /etc/hostname/wpi0.acasa (pentru rețeaua de acasă) și /etc/hostname.wpi0.BB (pentru Blackberry).

Apoi am creat fișierul /usr/local/sbin/setnet:

#!/bin/sh
cp /etc/hostname.wpi0.$1 /etc/hostname.wpi0
sh /etc/netstart
if [ "$1" = "acasa" ]
then
mount -a
fi

Atenție: la mine interfața wireless este wpi0, la voi este foarte probabil să fie alta, deci comanda va fi așa: cp /etc/hostname.interfață.$1 /etc/hostname.interfață.

Ultima parte, cea cu if nu este necesară decât dacă aveți în /etc/fstab un share NFS pe care îl montați automat – un NAS (comercial, ca WDMyCloud sau un FreeNAS). Altfel, în cele mai multe cazuri, o puteți omite.

Bun! Acum modificăm /etc/doas.conf pentru a putea rula scriptul din XFCE. Adăugăm următoarea linie:

permit nopass ketherius as root cmd setnet

Am ajuns la ultimul pas – crearea unui launcher XFCE. Pentru asta dăm click cu butonul drept pe unul din panourile XFCE, apoi „Panel” -> „Add New Items” și alegem „Launcher”:

După ce alegem „Add”, apăsăm pe „Close” și apare un pătrățel gol pe panoul XFCE. Dăm click cu butonul drept pe noul pătrățel și alegem „Properties”:

Dăm un click pe butonul pentru adăugare de elemente:

Facem același lucru și pentru Blackberry:

Suntem gata:

Dăm un click pe „Close” și am terminat configurarea.

Dacă vă întrebați de unde am scos ultimul parametru din comanda launcher-ului, ei bine, vine de la numele fișierului de configurare pentru rețeaua respectivă. Adică: pentru rețeaua de acasă am configurarea în fișierul /etc/hostname.wpi0.acasa și comanda este doas setnet acasa.

Este important să apelați setnet așa cum ați scris în doas.conf. Dacă în doas.conf ați scris setnet, în launcher scrieți setnet. Dacă în doas.conf ați scris /usr/local/sbin/setnet, în launcher scrieți /usr/local/sbin/setnet. Dacă nu folosiți aceeași formă, doas va refuza să execute comanda.

(anterior: Confort, va urma: Upgrade)

2 Comments

  • […] (anterior: Desktop, va urma: Detalii) […]

  • Elena 2016-12-23 Reply

    Oioio, nu am înțeles nimic. Asta ce înseamnă? Că sunt zero barat în ale informaticii? Mi s-au încâlcit mintea citind articolul. 😛
    Felicitări! Eu când întâlnesc oameni care pot ce eu nu pot, îi apreciez și stimez.

Leave a Reply

Your email address will not be published. Required fields are marked *