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

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

    <bug>
          <bug_id>34638</bug_id>
          
          <creation_ts>2018-03-13 21:12:24 +0300</creation_ts>
          <short_desc>Exec format error при сборке с aarch64</short_desc>
          <delta_ts>2018-07-05 14:12:32 +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>livecd-qemu-arch</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://lioka.obninsk.ru/rpi3/rpi3-mate.tar</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Isopenko">master</reporter>
          <assigned_to name="Michael Shigorin">mike</assigned_to>
          <cc>glebfm</cc>
    
    <cc>legion</cc>
    
    <cc>mike</cc>
    
    <cc>shaba</cc>
    
    <cc>torabora</cc>
    
    <cc>zorg1331</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>169591</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Isopenko">master</who>
    <bug_when>2018-03-13 21:12:24 +0300</bug_when>
    <thetext>Ошибкой завершается любая попытка собрать chroot c aarch64. Для повторения проблемы можно использовать свежий alt-p8-builder-20180312-x86_64.iso и, к примеру, профиль rpi3-mate, любезно предоставленный sbolshakov@ (ссылка). apt.conf и sources.list следует поправить под свои пути
$ make
...
mkimage: Processing &apos;prepare-workdir&apos; ...
hasher-priv: slave: chrootuid: execve: /bin/touch: Exec format error

# GLOBAL_VERBOSE = 1
hsh-initroot: Unpacked initial package list.
hasher-priv: slave: chrootuid: execve: /bin/touch: Exec format error
hsh-initroot: Failed to create fakedata.

Видно что рабочий chroot собирается, и собирается из пакетов целевой архитектуры - а потом облом (не отрабатывает qemu?). Целью эксперимента были пробный образ ALT на Raspberry Pi 3, а затем предложение профиля для mkimage-profiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169609</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-03-14 15:15:37 +0300</bug_when>
    <thetext>А binfmt точно настроен?  См. тж. пакет livecd-qemu-arch и m-p::doc/qemu.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169721</commentid>
    <comment_count>2</comment_count>
      <attachid>7434</attachid>
    <who name="Pavel Isopenko">master</who>
    <bug_when>2018-03-18 21:49:49 +0300</bug_when>
    <thetext>Created attachment 7434
Конфиг для /lib/binfmt.d устраняющий проблему

Это настройка binfmt. Главу 15 документа http://nightly.altlinux.org/docs/mkimage-profiles.pdf пропустил из-за явного указания на arm, а у меня aarch64. Наверное, стоит уточнить или дополнить.
Признаю что проблема не в mkimage, а в его окружении.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169722</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Isopenko">master</who>
    <bug_when>2018-03-18 21:56:09 +0300</bug_when>
    <thetext>Перевешиваю на mkimage-preinstall и понижаю важность до enhancement. Во вложении конфиг, устраняющий описанную проблему. Возможно стоит дополнить mkimage-preinstall для сборки под неродные архитектуры, а может и нет. Или просто задокументируем и довольно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169768</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-03-21 11:53:45 +0300</bug_when>
    <thetext>Не уверен, что mkimage-preinstall тут при чём -- сейчас этим занимается пакет livecd-qemu-arch, вот только он заодно и sources.list трогает; можно разделить его, сейчас для aarch64 там так:

:qemu-aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/.host/qemu-aarch64:

Предлагается же

:aarch64:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-aarch64.static:F

Я не настолько хорошо помню взаимодействие mkimage/hasher с qemu, чтобы сходу сообразить, что именно нам стоит предпринять.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169769</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-03-21 11:56:18 +0300</bug_when>
    <thetext>Пока хотя бы сослался на эту багу в m-p::doc/qemu.txt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172454</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Nakonechnyi">zorg1331</who>
    <bug_when>2018-07-05 11:25:07 +0300</bug_when>
    <thetext>(In reply to comment #4)
&gt; Не уверен, что mkimage-preinstall тут при чём -- сейчас этим занимается пакет
&gt; livecd-qemu-arch, вот только он заодно и sources.list трогает; можно разделить
&gt; его, сейчас для aarch64 там так:
&gt; 
&gt; :qemu-aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/.host/qemu-aarch64:
&gt; 
&gt; Предлагается же
&gt; 
&gt; :aarch64:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-aarch64.static:F
&gt; 
&gt; Я не настолько хорошо помню взаимодействие mkimage/hasher с qemu, чтобы сходу
&gt; сообразить, что именно нам стоит предпринять.

Добавлю свои пять копеек. Подтверждаю что ситуацию исправляет приведение маски в /usr/bin/register-qemu-aarch64 к следующему виду:

echo &quot;:aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/.host/qemu-aarch64:&quot; &gt; /proc/sys/fs/binfmt_misc/register</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172459</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-07-05 12:39:13 +0300</bug_when>
    <thetext>Спасибо, отправил 0.3-alt1, просьба проверить:
http://webery.altlinux.org/task/209521</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172460</commentid>
    <comment_count>8</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2018-07-05 12:44:00 +0300</bug_when>
    <thetext>livecd-qemu-arch-0.3-alt1 -&gt; sisyphus:

Thu Jul 05 2018 Michael Shigorin &lt;mike@altlinux&gt; 0.3-alt1
- fixed aarch64 support (closes: #34638); thx zorg@ for the patch
- replaced arm with armh (thx aen@ for updated repo url)
- added wiki links</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172464</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Nakonechnyi">zorg1331</who>
    <bug_when>2018-07-05 14:03:07 +0300</bug_when>
    <thetext>(In reply to comment #7)
&gt; Спасибо, отправил 0.3-alt1, просьба проверить:
&gt; http://webery.altlinux.org/task/209521

Спасибо, проверил, работает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172466</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-07-05 14:12:32 +0300</bug_when>
    <thetext>Вот и славно.  Вообще могли сразу заливать NMU, если есть патч -- я не против
(см. ACL пакета).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7434</attachid>
            <date>2018-03-18 21:49:49 +0300</date>
            <delta_ts>2018-03-18 21:49:49 +0300</delta_ts>
            <desc>Конфиг для /lib/binfmt.d устраняющий проблему</desc>
            <filename>qemu-aarch64-static.conf</filename>
            <type>application/octet-stream</type>
            <size>205</size>
            <attacher name="Pavel Isopenko">master</attacher>
            
              <data encoding="base64">OmFhcmNoNjQ6TTo6XHg3Zlx4NDVceDRjXHg0Nlx4MDJceDAxXHgwMVx4MDBceDAwXHgwMFx4MDBc
eDAwXHgwMFx4MDBceDAwXHgwMFx4MDJceDAwXHhiN1x4MDA6XHhmZlx4ZmZceGZmXHhmZlx4ZmZc
eGZmXHhmZlx4MDBceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmVceGZmXHhmZlx4
ZmY6L3Vzci9iaW4vcWVtdS1hYXJjaDY0LnN0YXRpYzpGCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>