Esiste una risorsa per scaricare un'origine specifica della versione del kernel? Ad esempio, voglio ottenere fonti 2.6.36.2 da confrontare con questo pacchetto e vedere quali modifiche sono state introdotte?
Esiste una risorsa per scaricare un'origine specifica della versione del kernel? Ad esempio, voglio ottenere fonti 2.6.36.2 da confrontare con questo pacchetto e vedere quali modifiche sono state introdotte?
Risposte:
Il modo più semplice e più adatto alla larghezza di banda, se ti aspetti di farlo più di una volta, sarebbe clonare il repository git del kernel e verificare la versione che desideri in base al suo tag. Probabilmente è meglio clonare il repository Linux stabile , poiché includerà i tag per tutte le versioni stabili:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
cd linux
git checkout v2.6.36.2
Per passare successivamente a un'altra versione, è facile:
git checkout v3.5.2
Per aggiornare il repository in modo da includere tutti gli ultimi tag e commit:
git fetch
--depth
e --branch
può anche ridurre drasticamente la dimensione del clone: unix.stackexchange.com/a/473373/32558
Sì, kernel.org ha tutte le versioni rilasciate , inclusa 2.6.36.2 . Si noti, tuttavia, che la maggior parte delle distribuzioni Linux applica patch proprie al sorgente del kernel vanilla.
Se non si desidera scaricare la cronologia di commit dell'intero kernel (che è ben al di sopra di 1 GiB), è possibile scaricare solo una parte del repository Git del kernel che porta al ramo desiderato. Ad esempio per verificare localmente il kernel Ubuntu nella versione 4.5, dovresti fare:
git clone --depth 1 --single-branch --branch v4.5 git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack
In questo modo, il clone è di circa 150 MiB.
--depth
implica --single-branch
BTW, secondo man git-clone
.
Se vuoi solo ottenere un tag per una compilazione rapida, esegui:
git clone --depth 1 --branch v4.18 \
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
--depth 1
fa un clone superficiale, che riduce drasticamente il tempo di clone e l'utilizzo del disco.
Sfortunatamente funziona solo con tag attualmente, non con commit arbitrari, a causa del modo in cui il server cgit git funziona e viene configurato. Vedi anche: /programming/3489173/how-to-clone-git-repository-with-specific-revision-changeset
Vedi anche: Perché il clone git del codice sorgente del kernel Linux è molto più grande di tar.xz estratto?