[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