[make-initrd] Проверка версии make-initrd
Leonid Krivoshein
klark.devel at gmail.com
Thu Jul 1 17:21:00 MSK 2021
01.07.2021 16:32, Alexey Gladkov пишет:
> On Thu, Jul 01, 2021 at 02:11:58PM +0300, Leonid Krivoshein wrote:
>> Всем привет!
>>
>>
>> Сейчас в bootchain есть такой код:
>>
>> initrd_version()
>> {
>> [ ! -s /etc/initrd-release ] ||
>> . /etc/initrd-release
>> local __version="${VERSION_ID-}"
>> printf '%s' "INITRAMFS${__version:+ $__version}"
>> }
>>
>> Он используется следующим образом в том же демоне:
>>
>> ...
>> exec >"$BC_LOGFILE" 2>&1
>> message "Starting server [$(initrd_version)]..."
>> ...
>>
>> В логах это обычно выглядит так:
>>
>> -----
>> Starting server [INITRAMFS 2.16.0]...
>> ...
>> -----
>>
>> На регулярках MATE сейчас почему-то вылазит совсем иное:
>>
>> -----
>> Starting server [INITRAMFS 9.1]...
>> ...
>> -----
>>
>> Понятно, что вопрос к m-p, а не make-initrd, видимо в initramfs попадает
>> какой-то другой /etc/initrd-release.
>>
>> Кроме логов проверка версии может быть полезна для реализации фрагментов
>> кода по-разному, в зависимости от версии make-initrd.
> Похоже кто-то в момент выполнения переопределяет $(VERSION). Ты можешь
> показать "битый" /etc/initrd-release ?
Кстати, похожий вызов используется где-то в самом make-initrd. Заметил,
что /dev/console на этом диске сейчас выглядит так:
...
Run /init as init process
INITRAMFS: 9.1
INIT: Entering runlevel: 3
...
Это я к тому, что если есть хотя бы два "клиента", то в качестве общего
кода не помешает. Причём, не менее полезно было бы иметь функцию для
сравнения с текущей версией make-initrd, а-ля initrd_version_compare()
$1:major [, $2:minor].
--
Best regards,
Leonid Krivoshein.
More information about the Make-initrd
mailing list