Problema

Así que hace poco estuve en una situación en la que tuve que usar la herramienta git-bisecar para encontrar un error que provocaba que mi sistema se cuelgue durante el arranque inicial. Uno de los primeros pasos para hacer esto es conseguir árbol git kernel en su sistema en el que compila los 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 que he copiado de archivo .config existente y emitir un make-kpkg comando compilar:

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 Tengo el siguiente mensaje de error:

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 de directorio. Sin embargo, no trate de encontrar y cambiar los permisos del directorio "control", como indica el mensaje. El verdadero problema es su directorio de origen completo que se traiga del árbol 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 "s" (en rojo) que se encuentra en su directorio de origen. Tenemos que deshacernos de él por el siguiente comando:

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

Ahora dar a su comando make-kpkg otra vez y usted no recibirá el mensaje de error de permiso de directorio.

Eso es todo!

Be Sociable, Share!