SUGGERIMENTO: Come liberarsi di errore di autorizzazione, quando la compilazione del kernel dai sorgenti GIT
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!













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