Problema

Così poco tempo fa ero in una situazione in cui ho dovuto utilizzare lo strumento git-bisecare per trovare un bug che causava il blocco del sistema durante le prime fasi di avvio. Uno dei primo passo per farlo è quello di ottenere albero git kernel sul sistema dove si compilare kernel. Così ho fatto la seguente:
debian:/usr/src/# git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6

Dopo di che ho copiato dal file di configurazione esistenti ed emettere un comando make-kpkg compilazione.:

debian:/usr/src/# cd linux-2.6
debian:/usr/src/linux-2.6# cp /home/kushalk/.config .
debian:/usr/src/linux-2.6# make-kpkg --append-to-version=-bisect1 kernel_image

Verso la fine del processo di compilazione ho ottenuto il seguente messaggio di errore:

dpkg-deb: building package `linux-image-2.6.31-bisect1' in `../linux-image-2.6.31-bisect1_2.6.31-bisect1-10.00.Custom_i386.deb'.
dpkg-deb: control directory has bad permissions 2755 (must be >=0755 and <=0775)
make[2]: *** [debian/stamp/binary/linux-image-2.6.31-bisect1] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6'
make[1]: *** [debian/stamp/binary/pre-linux-image-2.6.31-bisect1] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6'
make: *** [kernel_image] Error 2
debian:/usr/src/linux-2.6#

Soluzione

Chiaramente sembra un problema di autorizzazione directory. Tuttavia, non cercare di trovare e cambiare il "controllo" permesso directory come indica il messaggio. Il vero problema è la vostra intera directory di origine che è stato recuperare dall'albero Git.

debian:/usr/src/linux-2.6# cd ..
debian:/usr/src/# ls -l
total 274744
-rw-r--r-- 1 root src 55659 2011-01-12 18:34 config-2.6.30-3-bpo50-atom
drwxr- s rx 26 root src 4096 2011-01-12 23:14 linux-2.6
drwxrwxr-x 24 root root 4096 2011-01-12 18:44 linux-2.6.30.10
-rw-r--r-- 1 root src 75791486 2009-12-04 06:05 linux-2.6.30.10.tar.gz
drwxr-xr-x 25 root root 4096 2011-01-12 19:04 linux-2.6.31
debian:/usr/src/#

Come si può vedere nella produzione di sopra del comando ls, il vero problema è l'attributo di "s" (in rosso) che è impostato sulla directory di origine. Abbiamo bisogno di sbarazzarsi di esso con il seguente comando:

debian:/usr/src/# chmod -R as linux-2.6

Ora dare nuovamente il comando make-kpkg e non si ottiene il messaggio di errore di autorizzazione directory.

Questo è tutto!

Be Sociable, Share!