Bug 34871

Summary: Новый make-initrd сломал загрузку драйвера radeon
Product: Sisyphus Reporter: Владимир Диденко <vladimir.didenko>
Component: make-initrdAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: aen, antohami, glebfm, ldv, legion, mike, placeholder, rider
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Разница между файлами initrd none

Description Владимир Диденко 2018-04-30 10:22:23 MSK
Фикс из https://bugzilla.altlinux.org/show_bug.cgi?id=34865 починил загрузку с новым ядром, но сломал работу драйвера radeon, вместо него при загрузке грузится vesa.Причем после того как откатился на последнее рабочее ядро и удалил новое, старое тоже сломалось, поскольку при удалении запустился make-initrd.
Comment 1 Anton Farygin 2018-04-30 10:25:42 MSK
make-initrd bug-report 
и результат присоединяйте.
Comment 2 Владимир Диденко 2018-04-30 10:32:52 MSK
Багзилла не пропускает такой большой файл, расшарил на google drive

https://drive.google.com/file/d/1BGjuNUaGdcJZdYvBq3UA1oUhYIsBfwhM/view
Comment 3 Alexey Gladkov 2018-04-30 10:50:47 MSK
Причём тут этот фикс ext4 и radeon ?
У вас plymouth используется ?

Поясните проблему подробнее.
Comment 4 Владимир Диденко 2018-04-30 11:02:14 MSK
(В ответ на комментарий №3)
> Причём тут этот фикс ext4 и radeon ?

Так мне тоже интересно.

> У вас plymouth используется ?

Нет. Установлен, но не используется.

> 
> Поясните проблему подробнее.

Сегодня на систему со всеми вчерашними обновлениями (кроме ядра) поставил новый make-initrd

апр 30 09:55:58 cow apt-get[5085]: make-initrd-2.0.8-alt1 1525009432 installed
апр 30 09:55:58 cow apt-get[5085]: make-initrd-devmapper-2.0.8-alt1 1525009432 installed
апр 30 09:55:58 cow apt-get[5085]: make-initrd-luks-2.0.8-alt1 1525009432 installed
апр 30 09:55:58 cow apt-get[5085]: make-initrd-lvm-2.0.8-alt1 1525009432 installed
апр 30 09:55:58 cow apt-get[5085]: make-initrd-mdadm-2.0.8-alt1 1525009432 installed
апр 30 09:55:58 cow apt-get[5085]: make-initrd-ucode-2.0.8-alt1 1525009432 installed
апр 30 09:55:58 cow apt-get[5085]: make-initrd-plymouth-2.0.8-alt1 1525009432 installed

Ничего больше не ставил. Решил обновить ядро при помощи update-kernel с 4.16.3-und-def на 4.16.5-un-def, чтобы проверить фикс https://bugzilla.altlinux.org/show_bug.cgi?id=34865.

Новое ядро загрузилось, но только с драйвером vesa, не radeon.

Перезагрузился на старое ядро 4.16.3 - radeon был рабочий. Удалил при помощи apt-get remove 4.16.5. Перезагрузился в 4.16.3 - radeon не подхватился, загрузилась vesa. 

При удалении 4.16.5 увидел, что запустился make-initrd, поэтому и решил, что дело в нем - поскольку, не знаю что еще могло повлиять.
Comment 5 Anton Farygin 2018-04-30 11:03:19 MSK
можно попробовать откатить make-initrd на предыдущую версию и сравнить initrd с новым.
Comment 6 Alexey Gladkov 2018-04-30 11:06:21 MSK
(В ответ на комментарий №5)
> можно попробовать откатить make-initrd на предыдущую версию и сравнить initrd с
> новым.

Антон дело говорит. Попробуйте откатить make-initrd.
Comment 7 Владимир Диденко 2018-04-30 11:19:27 MSK
Created attachment 7525 [details]
Разница между файлами initrd

У меня есть еще 4.16.2 собранное старым make-initrd. Собственно, прикрепляю разницу между 

/var/lib/initrd/4.16.2-un-def-alt1.initrd/files
/var/lib/initrd/4.16.3-un-def-alt1.initrd/files

В первом предварительно заменил строчку "4.16.2" на "4.16.3". Надеюсь, даже этого должно хватить. Например, видно, что в initrd, собранное новым make-initrd не попали

/initramfs/lib/firmware/amdgpu/*
Comment 8 Alexey Gladkov 2018-04-30 11:39:03 MSK
(В ответ на комментарий №7)
> Created an attachment (id=7525) [details]
> Разница между файлами initrd
> 
> У меня есть еще 4.16.2 собранное старым make-initrd. Собственно, прикрепляю
> разницу между 
> 
> /var/lib/initrd/4.16.2-un-def-alt1.initrd/files
> /var/lib/initrd/4.16.3-un-def-alt1.initrd/files
> 
> В первом предварительно заменил строчку "4.16.2" на "4.16.3". Надеюсь, даже
> этого должно хватить. Например, видно, что в initrd, собранное новым
> make-initrd не попали
> 
> /initramfs/lib/firmware/amdgpu/*

Выложите пожалуйста куда-нибудь оба initrd так как по этому diff ничего не понятно.
Comment 9 Alexey Gladkov 2018-04-30 11:50:21 MSK
С новым ядром и старым make-initrd-2.0.7 работает ?
Comment 10 Владимир Диденко 2018-04-30 12:07:10 MSK
(В ответ на комментарий №8)
> 
> Выложите пожалуйста куда-нибудь оба initrd так как по этому diff ничего не
> понятно.

4.16.2
https://drive.google.com/open?id=1yLKxxX7o_7kIfwlpnGcB_5WJzpahG1Hp

4.16.3
https://drive.google.com/open?id=1ROxtaFSDAuoPvxyDzgzaJiqlZao5-qS1
Comment 11 Владимир Диденко 2018-04-30 12:08:05 MSK
(В ответ на комментарий №9)
> С новым ядром и старым make-initrd-2.0.7 работает ?

Со старым make-initrd новое ядро (4.16.5) даже не загружалось. С 4.16.3 работало.
Comment 12 Alexey Gladkov 2018-04-30 12:31:24 MSK
(В ответ на комментарий №11)
> Со старым make-initrd новое ядро (4.16.5) даже не загружалось. С 4.16.3
> работало.

Бррр. Два ядра и два make-initrd. Их неочень правильно сравнивать.

Давайте, так: с 4.16.3 make-initrd-2.0.7 работает, а с make-initrd-2.0.8 нет. Так?
Comment 13 Владимир Диденко 2018-04-30 12:52:44 MSK
(В ответ на комментарий №12)
> (В ответ на комментарий №11)
> > Со старым make-initrd новое ядро (4.16.5) даже не загружалось. С 4.16.3
> > работало.
> 
> Бррр. Два ядра и два make-initrd. Их неочень правильно сравнивать.

Не получилось время сэкономить. Вот initrd для 4.16.3, полученный при помощи старого make-initrd

https://drive.google.com/open?id=1ROxtaFSDAuoPvxyDzgzaJiqlZao5-qS1

> 
> Давайте, так: с 4.16.3 make-initrd-2.0.7 работает, а с make-initrd-2.0.8 нет.
> Так?

Да
Comment 14 Alexey Gladkov 2018-04-30 12:58:00 MSK
(В ответ на комментарий №13)
> > Давайте, так: с 4.16.3 make-initrd-2.0.7 работает, а с make-initrd-2.0.8 нет.
> > Так?
> 
> Да

Вы можете показать initrd от двух версий make-initrd для ядра 4.16.3 ?
Comment 15 Владимир Диденко 2018-04-30 13:06:34 MSK
(В ответ на комментарий №14)
> Вы можете показать initrd от двух версий make-initrd для ядра 4.16.3 ?

Извиняюсь, по ошибке старую ссылку дал

initrd, сгенерированный старым make-initrd
https://drive.google.com/open?id=13VngvR3f4B5FBVRDFRLVFUox2iw9gDhr

initrd, сгенерированный новым make-initrd
https://drive.google.com/open?id=1ROxtaFSDAuoPvxyDzgzaJiqlZao5-qS1
Comment 16 Антон Мидюков 2018-04-30 13:15:00 MSK
У меня такая же проблема, Radeon HD7340, должен использоваться radeon.ko

На яндекс диск загрузил новый и старый initrd https://yadi.sk/d/lqFhLDJf3UyD54
для ядра std-def-4.9.95
Новый initrd на 2 мегабайта легче.
Comment 17 Alexey Gladkov 2018-04-30 13:34:42 MSK
Отлично! Стало яснее. Разница между initrd-4.16.3-un-def-alt1-old-make-initrd.img и initrd-4.16.3-un-def-alt1.img лишь в добавленных crc32c и отсутствии /lib/firmware, где были только radeon и amdgpu.

/etc/initrd.mk вы можете показать, если там нет секретного ничего ?
Comment 18 Владимир Диденко 2018-04-30 13:37:04 MSK
(В ответ на комментарий №17)
> /etc/initrd.mk вы можете показать, если там нет секретного ничего ?

Ничего секретного, руками не правил

# cat /etc/initrd.mk
# trying to detect modules and features to access to root volume
AUTODETECT = all
FEATURES += systemd
MODULES_PRELOAD += autofs4
FEATURES += plymouth
Comment 19 Alexey Gladkov 2018-04-30 14:43:46 MSK
Я нашёл ошибку. Спасибо за информацию и терпение!
Comment 20 Alexey Gladkov 2018-04-30 14:53:39 MSK
Исправлено в make-initrd 2.0.9-alt1