Problema

Así que hace poco se encontraba en una situación en la que tuve que usar la herramienta git bisect para encontrar un bug que provocaba que mi sistema se cuelgue durante el arranque inicial. Uno de el primer paso para hacerlo es conseguir árbol del núcleo git en su sistema en el que se compilará núcleos. Así que hice lo siguiente:
debian:/usr/src/# git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6

Después de eso he copiado por los actuales archivo de configuración y ejecutar un comando de compilación make-kpkg.:

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

Hacia el final del proceso de compilación obtuve el mensaje de error siguiente:

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#

Solución

Claramente se ve como un problema de permisos del directorio. Sin embargo, no tratar de encontrar y cambiar el "control" permiso de directorio que el mensaje indica. El verdadero problema es el directorio de código fuente completo que fue a buscar en el árbol de 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/#

Como se puede ver en la salida anterior del comando ls, el verdadero problema es el atributo de "s" (en rojo) que se encuentra en el directorio de origen. Tenemos que deshacernos de él por el siguiente comando:

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

Ahora déle a su make-kpkg comando de nuevo y no obtener el permiso del directorio mensaje de error.

¡Eso es!

Otros Artículos Relacionados: