Con Linux tutto è possibile e per assurdo succede che su macchine abbastanza potenti, con 2 o 4 gigabyte di Ram, si possano riscontrare dei problemi. Quando utilizzate sistemi GNU/Linux a 32 bit, la ram in sovrappiù, ossia quella superiore ad un gigabyte, non viene utilizzata. Linux a 32-bit ne utilizza infatti meno della metà . Vediamo come risolvere il problema.
Per ovviare a questo problema occorre modificare il kernel con pochi ma essenziali parametri.
Precisiamo che il problema è dovuto al fatto che il kernel Linux 32-bit è stato progettato per accedere di default soltanto ad 1 GB di Ram. Quindi cambiando parametri al kernel è possibile permettere l’accesso completo a più di 4 GB.
Tuttavia, molte distribuzioni hanno già abilitato l’accesso a memorie fino a 4 GB. Parliamo di distribuzioni come Ubuntu, dalla versione 6.10 in poi, e Fedora, dalla 7. Nella vostra workstation potete controllare, fin da ora, se utilizzare o meno tutta la ram presente, lanciando il comando:
free -m
L’output dovrebbe essere qualcosa di simile a questo:
total used free shared buffers cached
Mem: 1233 765 467 0 89 379
-/+ buffers/cache: 296 936
Swap: 501 0 501
E’ facile notare come l’output mostri la quantità totale di ram inutilizzata, la dimensione del file di swap in megabyte e altri parametri che per il momento non ci interessano. Se il totale fosse meno di 1 GB e voi siete sicuri di avere 1,5 GB installati, allora avete bisogno di installare/modificare il kernel (non è il caso dell’output di esempio mostrato sopra).
In qualche distribuzione si può aggiungere un kernel generico secondo le esigenze del momento. Per esempio, in Debian usate il comando apt-cache search per localizzare la linux-image-generic kernel più recente per processori 686 se volete il supporto per più di 4 gigabytes. Invece per più di 64 gigabyte, cercate un kernel che finisca con 686-bigmen.
Se sfortunatamente la vostra distribuzione non include un kernel generico, allora occorre armarsi di tanta pazienza e compilare un kernel personalizzato. Consigliamo di consultare, prima di effettuare qualsiasi operazione, la documentazione allegata alla propria distribuzione inerente la compilazione del kernel. Tuttavia, abilitare il supporto a più di 1 GB di Ram riguarda solamente 5 parametri nella parte Firmware Drivers:
- accertatevi che CONFIG_NOHIGHMEM non sia già settato;
- impostate CONFIG_HIGHMEM4G o CONFIG_HIGHMEM64G a yes, a seconda della ram installata localmente;
- impostate CONFIG_HIGHMEM a yes;
- se volete loggare eventuali messaggi di errore configurate CONFIG_DEBUG_HIGHMEM a yes.
Compilate il resto del kernel e installatelo nel menu del boot manager. Per i dettagli di questa operazione consultate sempre la documentazione al riguardo.
Ora al prossimo riavvio del sistema lanciate di nuovo da terminale free -m. Questa volta il risultato riporterà in pieno l’attuale quantità di ram installata.
di Francesco Brocani - TuxJournal.net