<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>41479</bug_id>
          
          <creation_ts>2021-12-01 23:35:00 +0300</creation_ts>
          <short_desc>Не может загрузить ядра un-def 5.15.5, 5.15.6 на Raspberry Pi 3B Plus и Raspberry Pi 4B</short_desc>
          <delta_ts>2022-11-07 06:18:34 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>kernel-image-un-def</component>
          <version>unstable</version>
          <rep_platform>aarch64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>33000</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Антон Мидюков">antohami</reporter>
          <assigned_to name="Vitaly Chikunov">vt</assigned_to>
          <cc>aen</cc>
    
    <cc>asheplyakov</cc>
    
    <cc>iv</cc>
    
    <cc>jqt4</cc>
    
    <cc>kernelbot</cc>
    
    <cc>placeholder</cc>
    
    <cc>sbolshakov</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>205562</commentid>
    <comment_count>0</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2021-12-01 23:35:00 +0300</bug_when>
    <thetext>Не работает загрузка ядра un-def 5.15.5-alt1 на платах Raspbery Pi 4B и Raspbery Pi 3B Plus при помощи u-boot с использование extlinux.conf
В  последовательной консоли для Raspbery Pi 4B ошибка такая:

U-Boot 2021.10 (Oct 06 2021 - 12:02:44 +0000)

DRAM:  3.9 GiB
RPI 4 Model B (0xc03111)
MMC:   mmcnr@7e300000: 1, emmc2@7e340000: 0
Loading Environment from FAT... Unable to read &quot;uboot.env&quot; from mmc0:1... In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   eth0: ethernet@7d580000
PCIe BRCM: link up, 5.0 Gbps x1 (SSC)
starting USB...
Bus xhci_pci: Register 5000420 NbrPorts 5
Starting the controller
USB XHCI 1.00
scanning bus xhci_pci for devices... 3 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:2...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
777 bytes read in 25 ms (30.3 KiB/s)
ALTLinux Boot Options
1:	linux
2:	5.10.82-std-def-alt1
3:	5.15.5-un-def-alt1
Enter choice: 1:	linux
Retrieving file: /boot/initrd.img
11463458 bytes read in 504 ms (21.7 MiB/s)
Retrieving file: /boot/vmlinuz
36788736 bytes read in 1559 ms (22.5 MiB/s)
append: root=UUID=e0ef556a-de24-4773-a2e0-1b47662897d7 ro usbcore.autosuspend=-1  console=tty1 ttyS0,115200
Retrieving file: /boot/dtb/bcm2711-rpi-4-b.dtb
26401 bytes read in 214 ms (120.1 KiB/s)
Moving Image from 0x80000 to 0x200000, end=2680000
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree

Ядро std-def грузится успешно.
Ядро un-def 5.14.21 грузится успешно.
Ядро mp 5.15.4 грузится успешно.

Если fdtdir из extlinux.conf убрать, то ядро un-def грузится успешно.
Проблема только на aarch64, на armh загружается.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205586</commentid>
    <comment_count>1</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2021-12-02 12:51:05 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #0)

&gt; Если fdtdir из extlinux.conf убрать, то ядро un-def грузится успешно.

А что настравает этот параметр? То есть имеется ли предположение, что именно не так в этом ядре?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205589</commentid>
    <comment_count>2</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2021-12-02 13:15:02 +0300</bug_when>
    <thetext>(Ответ для Anton V. Boyarshinov на комментарий #1)
&gt; (Ответ для Антон Мидюков на комментарий #0)
&gt; 
&gt; &gt; Если fdtdir из extlinux.conf убрать, то ядро un-def грузится успешно.
&gt; 
&gt; А что настравает этот параметр? То есть имеется ли предположение, что именно
&gt; не так в этом ядре?

fdtdir указывает каталог, в котором u-boot ищет dtb (devicetree).
Если не указать, то используется dtb загруженный в память raspberry pi-шным firmware до начала загрузки u-boot.

Проверил ядро 5.15.6-alt1, не починилось.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205593</commentid>
    <comment_count>3</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2021-12-02 13:49:07 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #2)

&gt; fdtdir указывает каталог, в котором u-boot ищет dtb (devicetree).

А какой каталог указан в этом параметре (и с которым, соответственно, не работает)?

&gt; Если не указать, то используется dtb загруженный в память raspberry pi-шным
&gt; firmware до начала загрузки u-boot.
&gt; 
&gt; Проверил ядро 5.15.6-alt1, не починилось.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205595</commentid>
    <comment_count>4</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2021-12-02 13:54:26 +0300</bug_when>
    <thetext>(Ответ для Anton V. Boyarshinov на комментарий #3)
&gt; (Ответ для Антон Мидюков на комментарий #2)
&gt; 
&gt; &gt; fdtdir указывает каталог, в котором u-boot ищет dtb (devicetree).
&gt; 
&gt; А какой каталог указан в этом параметре (и с которым, соответственно, не
&gt; работает)?

dtb нормально загружается, ошибка происходит сразу после при переносе в заданную область памяти:
Retrieving file: /boot/dtb/bcm2711-rpi-4-b.dtb
26401 bytes read in 214 ms (120.1 KiB/s)
Moving Image from 0x80000 to 0x200000, end=2680000
ERROR: Did not find a cmdline Flattened Device Tree

А ядра un-def 5.15.4-alt1 нет? Собрать можно? mp 5.15.4 то работает. Надо бы понять, дело в версии или в том, как собрано.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205612</commentid>
    <comment_count>5</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2021-12-02 16:57:22 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #4)
&gt; (Ответ для Anton V. Boyarshinov на комментарий #3)
&gt; &gt; (Ответ для Антон Мидюков на комментарий #2)
&gt; &gt; 
&gt; &gt; &gt; fdtdir указывает каталог, в котором u-boot ищет dtb (devicetree).
&gt; &gt; 
&gt; &gt; А какой каталог указан в этом параметре (и с которым, соответственно, не
&gt; &gt; работает)?
&gt; 
&gt; dtb нормально загружается, ошибка происходит сразу после при переносе в
&gt; заданную область памяти:
&gt; Retrieving file: /boot/dtb/bcm2711-rpi-4-b.dtb
&gt; 26401 bytes read in 214 ms (120.1 KiB/s)
&gt; Moving Image from 0x80000 to 0x200000, end=2680000
&gt; ERROR: Did not find a cmdline Flattened Device Tree
&gt; 
&gt; А ядра un-def 5.15.4-alt1 нет? Собрать можно? mp 5.15.4 то работает. Надо бы
&gt; понять, дело в версии или в том, как собрано.

Я бы лучше посмотрел на 5.15.5-mp, так как движение вперёд более естественно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205615</commentid>
    <comment_count>6</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2021-12-02 17:04:33 +0300</bug_when>
    <thetext>На arm и aarch64 используется один и тот же файл dts.
Изменений между 5.15.4 и 5.15.5 в нём не было</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205871</commentid>
    <comment_count>7</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2021-12-08 16:33:23 +0300</bug_when>
    <thetext>(Ответ для Anton V. Boyarshinov на комментарий #6)
&gt; На arm и aarch64 используется один и тот же файл dts.
&gt; Изменений между 5.15.4 и 5.15.5 в нём не было

dtb ни при чём. Я пробовал разные. Результат один и тот же.

Прошу ядро в p10 не пускать, пока проблему не устраним.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206088</commentid>
    <comment_count>8</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2021-12-16 11:25:15 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #0)
&gt;[...]
&gt;Moving Image from 0x80000 to 0x200000, end=2680000

Для ядра un-def end=2680000, а это больше, чем переменная u-boot fdt_addr_r=0x02600000.
Если задать fdt_addr_r=0x02690000, то загрузка проходит успешно.
Могу лишь предположить, что адрес зависит от размера ядра. Ядро un-def стало больше ещё на 2,7 MiB (35,1 MiB против 32,4 MiB), в результате адресное пространство для fdt ядра вышло за пределы дефолтного адресного пространства u-boot. К сравнению ядро mp 27,5 MiB.

Возникает закономерный вопрос, почему ядро un-def такое большое, при условии, что очень многое вынесено в модули, в отличии от того же ядра mp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206095</commentid>
    <comment_count>9</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2021-12-16 12:39:59 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #8)
&gt; (Ответ для Антон Мидюков на комментарий #0)
&gt; &gt;[...]
&gt; &gt;Moving Image from 0x80000 to 0x200000, end=2680000
&gt; 
&gt; Для ядра un-def end=2680000, а это больше, чем переменная u-boot
&gt; fdt_addr_r=0x02600000.
&gt; Если задать fdt_addr_r=0x02690000, то загрузка проходит успешно.
&gt; Могу лишь предположить, что адрес зависит от размера ядра. Ядро un-def стало
&gt; больше ещё на 2,7 MiB (35,1 MiB против 32,4 MiB), в результате адресное
&gt; пространство для fdt ядра вышло за пределы дефолтного адресного пространства
&gt; u-boot. К сравнению ядро mp 27,5 MiB.

Спасибо, это важная информация, которая, я надеюсь, поможет решить проблему!

&gt; Возникает закономерный вопрос, почему ядро un-def такое большое, при
&gt; условии, что очень многое вынесено в модули, в отличии от того же ядра mp?
Сложно сказать. Там вообще очень много чего включено, чего в mp, насколько я понимаю, не включено вообще.
Кроме того, некоторые опции конфигурации влияют на размер генерируемого кода сами по себе (и несколько раз по несколько процентов может получиться немало). Но теперь по крайней мере ясно куда копать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206227</commentid>
    <comment_count>10</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2021-12-20 15:37:09 +0300</bug_when>
    <thetext>(Ответ для Anton V. Boyarshinov на комментарий #9)
&gt; (Ответ для Антон Мидюков на комментарий #8)
&gt; &gt; (Ответ для Антон Мидюков на комментарий #0)
&gt; &gt; &gt;[...]
&gt; &gt; &gt;Moving Image from 0x80000 to 0x200000, end=2680000
&gt; &gt; 
&gt; &gt; Для ядра un-def end=2680000, а это больше, чем переменная u-boot
&gt; &gt; fdt_addr_r=0x02600000.
&gt; &gt; Если задать fdt_addr_r=0x02690000, то загрузка проходит успешно.
&gt; &gt; Могу лишь предположить, что адрес зависит от размера ядра. Ядро un-def стало
&gt; &gt; больше ещё на 2,7 MiB (35,1 MiB против 32,4 MiB), в результате адресное
&gt; &gt; пространство для fdt ядра вышло за пределы дефолтного адресного пространства
&gt; &gt; u-boot. К сравнению ядро mp 27,5 MiB.
&gt; 
&gt; Спасибо, это важная информация, которая, я надеюсь, поможет решить проблему!
&gt; 
&gt; &gt; Возникает закономерный вопрос, почему ядро un-def такое большое, при
&gt; &gt; условии, что очень многое вынесено в модули, в отличии от того же ядра mp?
&gt; Сложно сказать. Там вообще очень много чего включено, чего в mp, насколько я
&gt; понимаю, не включено вообще.
&gt; Кроме того, некоторые опции конфигурации влияют на размер генерируемого кода
&gt; сами по себе (и несколько раз по несколько процентов может получиться
&gt; немало). Но теперь по крайней мере ясно куда копать.

Очень похоже, что это toolchain.

Одно и то же ядро получается при сборке на Сизифе на несколько мегабайт больше, чем на p10.

Попробуйте, пожалуйста, ядро из задания #291610, это 5.15 собранное на p10</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206228</commentid>
    <comment_count>11</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2021-12-20 15:57:19 +0300</bug_when>
    <thetext>(Ответ для Anton V. Boyarshinov на комментарий #10)
&gt; Попробуйте, пожалуйста, ядро из задания #291610, это 5.15 собранное на p10

Загрузилось. Адрес end=2400000.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206229</commentid>
    <comment_count>12</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2021-12-20 18:05:27 +0300</bug_when>
    <thetext>А давайте уже 5.15 в p10?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206263</commentid>
    <comment_count>13</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2021-12-21 15:43:34 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #12)
&gt; А давайте уже 5.15 в p10?

Да! Я, совственно, приостановил процесс его пропихивания в p10 именно из-за этой ошибки, которая, оказывается, не проявляется в p10</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207530</commentid>
    <comment_count>14</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-02-07 18:55:18 +0300</bug_when>
    <thetext>Проблему решили отключением конфигов ядра:
CONFIG_ARCH_EXYNOS
CONFIG_ARCH_MEDIATEK

https://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=commit;h=64d550263c6b6ddd589a4b4f02ba75c46ff69337</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216583</commentid>
    <comment_count>15</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-10-27 17:58:53 +0300</bug_when>
    <thetext>Проблема на ядрах un-def опять. Проверил 6.0.3-alt1 и 6.0.5-alt1.
Адреса для dtb сечас такие:
6.0.3-alt1:
Moving Image from 0x80000 to 0x200000, end=2610000
6.0.5-alt1:
Moving Image from 0x80000 to 0x200000, end=2640000

Т.е. конечные адреса опять больше установленного в u-boot fdt_addr_r=0x02600000.

У ядра 5.19.16-alt2 был адрес 25d0000.

Размеры ядра в байтах:
5.19.16-alt2 - 36149760
6.0.3-alt1   - 36422144
6.0.5-alt1   - 36618752

Т.е. адрес растёт пропорционально росту размера ядра.

Вопрос состоит в том, есть ли другой способ уменьшить адрес, кроме как отключив чего-нибудь в ядре.

Также интересно проверить каким получится ядро, собранное для p10. Ядро 5.15 получалось более компактным.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216584</commentid>
    <comment_count>16</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2022-10-27 18:30:29 +0300</bug_when>
    <thetext>(In reply to Антон Мидюков from comment #8)
&gt; Для ядра un-def end=2680000, а это больше, чем переменная u-boot
&gt; fdt_addr_r=0x02600000.
&gt; Если задать fdt_addr_r=0x02690000, то загрузка проходит успешно.

А почему нельзя увеличить этот параметр?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216585</commentid>
    <comment_count>17</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-10-27 18:43:14 +0300</bug_when>
    <thetext>(Ответ для Vitaly Chikunov на комментарий #16)
&gt; (In reply to Антон Мидюков from comment #8)
&gt; &gt; Для ядра un-def end=2680000, а это больше, чем переменная u-boot
&gt; &gt; fdt_addr_r=0x02600000.
&gt; &gt; Если задать fdt_addr_r=0x02690000, то загрузка проходит успешно.
&gt; 
&gt; А почему нельзя увеличить этот параметр?

Переадресую вопрос мантейнеру пакета u-boot-rpi3 Сергею Большакову.

Но проблема в любом случае останется в ранее выпущенных образах, так как у нас не происходит обновление u-boot при обновлении системы.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216587</commentid>
    <comment_count>18</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2022-10-27 19:35:54 +0300</bug_when>
    <thetext>Предположу, что самое простое решение - отключить на arm
  CONFIG_DEBUG_INFO_BTF=y
Но будет жаль, что это будет откат в технологиях.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216591</commentid>
    <comment_count>19</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2022-10-27 23:11:47 +0300</bug_when>
    <thetext>Для будущих поколений: попробовали сжать ядро просто `gzip -9`, как в Федоре, результат -- не грузится с &quot;kernel_comp_addr_r or kernel_comp_size is not provided!&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216671</commentid>
    <comment_count>20</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2022-10-29 00:22:51 +0300</bug_when>
    <thetext>Влияние отключения CONFIG_DEBUG_INFO_BTF (до и после):
-rw-r--r--    1 root    root                 36618752 Oct 26 16:14 /boot/vmlinuz-6.0.5-un-def-alt1
-rw-r--r--    1 root    root                 31506944 Oct 28 21:45 /boot/vmlinuz-6.0.5-un-def-alt2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216972</commentid>
    <comment_count>21</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-11-07 06:18:34 +0300</bug_when>
    <thetext>(Ответ для Vitaly Chikunov на комментарий #20)
&gt; Влияние отключения CONFIG_DEBUG_INFO_BTF (до и после):
&gt; -rw-r--r--    1 root    root                 36618752 Oct 26 16:14
&gt; /boot/vmlinuz-6.0.5-un-def-alt1
&gt; -rw-r--r--    1 root    root                 31506944 Oct 28 21:45
&gt; /boot/vmlinuz-6.0.5-un-def-alt2

Проблему это решило. Исправлено в 6.0.6-alt1
* Sat Oct 29 2022 Kernel Bot &lt;kernelbot at altlinux.org&gt; 1:6.0.6-alt1
- v6.0.6 (2022-10-29).
- config: Disable DEBUG_INFO_BTF on aarch64.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>