Je construis le noyau Linux, si mon noyau est sous git, la version du noyau est à chaque fois:
Image Name: Linux-2.6.39+
Si je n'utilise pas git, tout va bien, sans aucun avantage à la fin.
Je sais que cela se fait par scripts/setlocalversion script:
if test "$CONFIG_LOCALVERSION_AUTO" = "y"; then
# full scm version string
res="$res$(scm_version)"
else
# append a plus sign if the repository is not in a clean
# annotated or signed tagged state (as git describe only
# looks at signed or annotated tags - git tag -a/-s) and
# LOCALVERSION= is not specified
if test "${LOCALVERSION+set}" != "set"; then
scm=$(scm_version --short)
res="$res${scm:++}"
fi
fi
Donc, il est possible sans modifications de code, par exemple, de construire le système sans avoir besoin d’ajouter "+" à la fin de la ligne de version?
Le signe plus à la fin de la chaîne de votre version indique qu’il s’agit d’un noyau construit à partir de sources modifiées (c’est-à-dire que des modifications non validées ont été apportées). Ceci est également indiqué par les commentaires dans scripts/setlocalversion
.
Pour éviter que le '+' soit ajouté malgré un répertoire de travail sale, définissez simplement LOCALVERSION lorsque vous exécutez make
:
make LOCALVERSION=
Vous devrez peut-être également modifier l’option de configuration CONFIG_LOCALVERSION_AUTO
en n
dans la configuration de votre noyau (.config
) avant de générer:
sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" .config
Pour empêcher le script scripts/setlocalversion
d’ajouter le +
à la fin de la version locale du noyau, créez un fichier .scmversion
vide à la racine des sources du noyau.
touch .scmversion
de cette manière, vous pourrez laisser LOCALVERSION tel quel dans le fichier de configuration du noyau, au cas où vous souhaiteriez ajouter une signature locale au nom du noyau.
Manipuler des scripts/setlocalversion semble être le seul moyen pour moi. Retour forcé dans scm_version()
:
scm_version()
{
local short
short=false
**return**
Ajoutez cette ligne à votre fichier local.conf si vous utilisez yocto et imx soc
SCMVERSION_pn-linux-imx = ""
Testé sur la version imx-4.9.88-2.0.0_ga