TIP: Come liberarsi di errore di autorizzazione durante la compilazione dai sorgenti del kernel GIT
Problema
Quindi, poco tempo fa ero in una situazione in cui ho dovuto utilizzare il git-bisect strumento per trovare un bug che causava il mio sistema bloccato durante l'avvio precoce. Uno dei primo passo per farlo è quello di ottenere git tree del kernel sul vostro sistema, dove potrete 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 dalla vigente file di configurazione e dare il comando make-kpkg comando di 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 permesso "controllo" directory del messaggio indica. Il vero problema è la directory dei sorgenti intero che è stato prendere 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 nell'output di sopra del comando ls, il vero problema è l'attributo "s" (in rosso) che si trova sulla vostra directory sorgente. Abbiamo bisogno di sbarazzarsi di esso con il seguente comando:
debian:/usr/src/# chmod -R as linux-2.6
Ora dare il vostro make-kpkg nuovamente il comando e non sarà possibile ottenere il permesso directory messaggio di errore.
Questo è tutto!











21 Febbraio 2012 at 12:59 am
Grazie, soluzione corretta.
Rispondi a questo commento