Problem

Also vor kurzem war ich in einer Situation, wo ich musste das git-bisect Tool verwenden, um einen Bug, wodurch mein System wurde während der frühen Boot hängen zu finden. Einer der erste Schritt, um das zu tun ist, um Kernel git Baum auf Ihrem System bekommen, wo Sie Kernel kompiliert. Also tat ich das folgende:
debian:/usr/src/# git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6

. Danach habe ich durch bestehende Konfigurationsdatei kopiert und die Ausstellung eines Make-kpkg Kompilierungsbefehl:

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

Gegen Ende der Kompilierung bekam ich die folgende Fehlermeldung:

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#

Lösung

Klar sieht es aus wie ein Verzeichnis Erlaubnis Thema. Jedoch nicht versuchen, und ändern Sie die "Kontrolle" Verzeichnis Berechtigung als die Nachricht anzeigt. Das eigentliche Problem ist das gesamte Quellverzeichnis, die aus dem Git-Tree zu holen war.

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/#

Wie Sie in der obigen Ausgabe des Befehls ls sehen können, ist das eigentliche Problem das Attribut "s" (in rot), die auf Ihrem Quellverzeichnis gesetzt ist. Wir müssen es loszuwerden durch den folgenden Befehl ein:

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

Jetzt geben Sie Ihr Make-kpkg Befehl wieder und Sie werden nicht die Erlaubnis Verzeichnis Fehlermeldung.

Das ist es!

Kontaktfreudig sein, Share!