Ott 19

Zoran, DC10+ & 2.6.n

Ieri stavo operando su di un computer installato presso IQ2RD, che genera l’immagine della “webcam” (che webcam non è) per il sito web. Il sistema si basa su di una macchina Linux (Debian Etch) dotata di scheda di acquisizione Pinnacle DC10+. Ho lanciato un mucchio di updates pendenti da tempo immemorabile, tra i quali il kernel (2.6.18-fastidium-patches). Non l’avessi mai fatto… al riavvio il PC non voleva saperne di far girare camE, cioè il software che si occupa di “grabbare” e pubblicare via ftp l’immagine.

L’errore che dava, dal syslog, era:

Oct 18 22:08:15 iq2rd kernel: ZORAN: get_high_mem() – requested 4194304, avail 16384
Oct 18 22:08:15 iq2rd kernel: DC10plus[0]: v4l_fbuffer_alloc() – get_high_mem (size = 4096 KB) for V4L bufs failed

Dopo alcune ricerche su Internet, scopro che l’errore è generato dal driver zr36067 (che nel kernel 2.6 ha sostituito il modulo “zoran”, appartenente al kernel 2.4) che richiede, per il corretto funzionamento del proprio buffer, fino a 512KB contigui di memoria. Ovviamente, perché sennò sarebbe stato troppo bello, il kernel 2.6 ha un limite di contiguità di 128KB… cosa si fa, a questo punto? La soluzione consta nel passare, come parametro d’avvio, l’opzione “mem=XXXM”. Di seguito un estratto di menu.lst:

title           Debian GNU/Linux, kernel 2.6.18-6-686
root           (hd0,0)
kernel        /boot/vmlinuz-2.6.18-6-686 root=/dev/hda1 ro mem=256M

Se avete Debian Etch, state molto attenti alla sintassi: il parametro mem=xxxM c’era, prima dell’aggiornamento. Dopo, è stato mantenuto ma con un errore: “mem[spazio]=xxxM”. Così facendo il kernel non interpreta correttamente il parametro, è come se non venisse dato, e l’errore permane.

Fonti e maggiori informazioni su:

http://www.linuxtv.org/v4lwiki/

kernel boot parameters guide

Lascia un commento

Your email address will not be published.