Bug 42431

Summary: Сбой при выборе пункта grub меню
Product: Альт Сервер Reporter: jqt4
Component: УстановкаAssignee: jqt4 <jqt4>
Status: NEW --- QA Contact: qa-p8 <qa-p8>
Severity: normal    
Priority: P5 CC: antohami, nickel
Version: 10.0   
Hardware: aarch64   
OS: Linux   
Attachments:
Description Flags
Скриншот проявления проблемы
none
Действия и лог при воспроизведении проблемы. none

Description jqt4 2022-04-13 16:51:37 MSK
Образ alt-server-10.0-aarch64.iso загружен на TF307-MB-S-D с прошивкой SDK5.3
При выборе в grub меню пункта "Change language (press F2)", затем "Russian" иногда выдаётся сообщение вида:

Synchronous Exception at 0x00000009FFF2DB30

и система зависает.
Comment 1 jqt4 2022-04-26 13:38:58 MSK
Дополнение к описанию проблемы.
Если при выборе "Change language (press F2)", затем "Russian" не происходит зависания, то выдаётся сообщение:
"error: file `/boot/grub/locale/ru.gmo' not found."
и снова выдаётся grub меню.
Если теперь выбрать пункт меню, запускающий загрузку Linux, то зависание происходит постоянно. Сообщение при этом выглядит так:

Loading Linux vmlinuz ...


Synchronous Exception at 0x00000000FA41CD00

Если выбрать "Change language (press F2)", затем "Russian" несколько раз подряд (сделал 4 раза), а после этого загрузку Linux, то на HDMI выводятся пёстрые полосы - такое впечатление, что в видеопамять записались данные, затем система зависает. Скриншот в приложении.

Предполагаю, что проблема в bootaa64.efi
Comment 2 jqt4 2022-04-26 13:41:42 MSK
Created attachment 10664 [details]
Скриншот проявления проблемы

На HDMI пёстрые полосы - такое впечатление, что в видеопамять записались данные.
Comment 3 Николай Костригин 2022-04-26 13:55:55 MSK
а если в конфиг перед выбором пункта меню добавить

set pager=1
set debug=all

получится больше информации о происходящем собрать?
Comment 4 jqt4 2022-04-26 14:48:15 MSK
Created attachment 10666 [details]
Действия и лог при воспроизведении проблемы.

Воспроизвёл проблему с добавлением
set pager=1
set debug=all

В файле описано что сделал и что получилось.
Comment 5 Антон Мидюков 2022-05-11 15:03:58 MSK
А grub в графическом режиме или console?
Мне кажется, в console режиме такой проблемы быть не должно, так как при выборе языка ничего, кроме назначения переменной языка не делается.
Comment 6 jqt4 2022-05-11 15:33:05 MSK
(Ответ для Антон Мидюков на комментарий #5)
> А grub в графическом режиме или console?
> Мне кажется, в console режиме такой проблемы быть не должно, так как при
> выборе языка ничего, кроме назначения переменной языка не делается.

grub в console
На TF307 консоль выводил одновременно на UART и HDMI
Делается следующее:

 setparams 'Change language (press F2)'                                       
                                                                                                                                
         insmod regexp                                                       
         for langstr in "ru_RU=Russian" "en_US=English" "pt_BR=Portuguese" "\
 kk_KZ=Kazakh" "uk_UA=Ukrainian"; do                                         
                 regexp -s 2:langname -s 1:langcode '(.*)=(.*)' "$langstr"   
                 menuentry "${langname}" "$langcode" {                       
                         lang="$2"                                           
                         export lang                                         
                         configfile ${prefix}/grub.cfg                       
                 }
         done                                                                
         menuentry $"Return to the Main menu" {                              
                 configfile ${prefix}/grub.cfg   
        }
        
Судя по логу https://bugzilla.altlinux.org/attachment.cgi?id=10666
при этом выполняется много кода на C.
Видимо, сбой где-то в этом коде.
Comment 7 Антон Мидюков 2022-05-11 18:47:10 MSK
(Ответ для jqt4 на комментарий #6)
> (Ответ для Антон Мидюков на комментарий #5)
> > А grub в графическом режиме или console?
> > Мне кажется, в console режиме такой проблемы быть не должно, так как при
> > выборе языка ничего, кроме назначения переменной языка не делается.
> 
> grub в console
> На TF307 консоль выводил одновременно на UART и HDMI
> Делается следующее:
> 
>  setparams 'Change language (press F2)'                                     
> 
>                                                                             
> 
>          insmod regexp                                                       
>          for langstr in "ru_RU=Russian" "en_US=English" "pt_BR=Portuguese" "\
>  kk_KZ=Kazakh" "uk_UA=Ukrainian"; do                                         
>                  regexp -s 2:langname -s 1:langcode '(.*)=(.*)' "$langstr"   
>                  menuentry "${langname}" "$langcode" {                       
>                          lang="$2"                                           
>                          export lang                                         
>                          configfile ${prefix}/grub.cfg                       
>                  }
>          done                                                                
>          menuentry $"Return to the Main menu" {                              
>                  configfile ${prefix}/grub.cfg   
>         }
>         
> Судя по логу https://bugzilla.altlinux.org/attachment.cgi?id=10666
> при этом выполняется много кода на C.
> Видимо, сбой где-то в этом коде.

Много кода, потому что в
configfile ${prefix}/grub.cfg

происходит выполнение загрузки модулей grub и всего того, что в конфиге написано. Т.е. скорее всего эта ошибка может возникнуть и при холодном старте с какой-то вероятностью.