LINUX.ORG.RU

Multiarch на ARM

 , , ,


0

2

Скомпилировал по мануалке ядро Linux для архитектуры aarch64 на Raspberry Pi. Дистрибутив Linux - Raspbian Linux 2 32-bit. Загрузился с этим ядром, оно работает. Ядро 64-бит, система 32-бит. Как в Solaris. Теперь я решил устанавливать 64-битный софт. Вот мой sources.list:

deb [arch=armhf] http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
deb-src [arch=armhf] http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi
deb [arch=arm64] http://ftp.ru.debian.org/debian/ jessie main contrib non-free

Выполнил dpkg --add-architecture arm64 и sudo apt-get install libc6:arm64. Успешно установилось. А теперь zlib:

$ sudo apt-get install zlib1g:arm64
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:

Пакеты, имеющие неудовлетворённые зависимости:
 cron : Зависит: libpam0g (>= 0.99.7.1) но он не будет установлен
        Зависит: adduser но он не будет установлен
        Зависит: libpam-runtime (>= 1.0.1-11) но он не будет установлен
        ПредЗависит: dpkg (>= 1.15.7.2)
        Рекомендует: exim4 но он не будет установлен или
                                postfix но он не будет установлен или
                                mail-transport-agent
 init : ПредЗависит: systemd-sysv но он не будет установлен или
                                sysvinit-core но он не будет установлен или
                                upstart
 init-system-helpers : Зависит: perl-base (>= 5.20.1-3) но он не будет установлен
 initscripts : Зависит: sysv-rc или
                               file-rc но он не будет установлен
               Рекомендует: e2fsprogs
 libpython-stdlib : Зависит: libpython2.7-stdlib (>= 2.7.9-1~) но он не будет установлен
 libreadline6 : Зависит: readline-common но он не будет установлен
 mount : ПредЗависит: libmount1 (>= 2.25) но он не будет установлен
E: Ошибка, pkgProblemResolver::Resolve сгенерировал повреждённые пакеты. Это может быть вызвано отложенными (held) пакетами.

Исходя из чего, вопрос: а сабж вообще возможен?

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 3)

Ответ на: комментарий от iliyap

Забыл написать в исходном сообщении, что это тоже делал.

ZenitharChampion ★★★★★
() автор топика

Тебе это для чего? На малине/дебе никогда не приходило в голову юзать.
На десктопе стоит арч 64 бит, для некоторых пакетов (устаревших по большей части), подключены репы multilib и несколько библиотек/пакетов оттуда.
Рач и на малину есть, мне просто интересно - зачем тебе полностью 32бит система на 64бит ядре?

fehhner ★★★★★
()
Ответ на: комментарий от fehhner

Везде пишут, что ARMv8-A в реализации Broadcom не имеет AES ARM64 CE. Но мне очень хочется проверить, так ли это. Потому что у меня есть подозрения, что они есть.

В Raspbian Linux 2 (месяц назад вышел третий релиз, поэтому указываю версию) GCC 4.9 не работает, если указать CFLAGS="-march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8". Просто не может создать бинарники. Казалось бы, логично: какие ещё флаги со словом «armv8» на ARMv7-операционке? Но с самосборным компилятором всё собирается и работает.

Мне кажется что в Raspberry Pi 3 есть AES ARM64 CE - просто ребята, которые говорят что нет, пытались компильнуть бинарники дефолтным компилятором. И, увидев что ничего не собирается, сделали такой вывод. Поэтому я хочу собрать это: https://github.com/hyc/wolf-xmr-miner/tree/armv8 статически, и потом запустить.

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

Поэтому я хочу собрать это

Очень интересно, жду историю успеха...
Вот кстати готовая 64бит сборка на основе Debian Stretch: https://github.com/bamarni/pi64
32 бит софт тоже можно пускать:

You should be able to run 32-bit programs out of the box as long as they're statically linked. You can check this with the file command
If your 32-bit program is shown as dynamically linked instead, you should still be able to run it by enabling multiarch and installing program's required libraries

Попробуй с ней. Если что не удастся - всегда тикет можешь на гитхабе открыть, автор ответит.

fehhner ★★★★★
()
Последнее исправление: fehhner (всего исправлений: 1)
Ответ на: комментарий от sqq

BCM2835. Вот cat /proc/cpuinfo с 32-битным ядром Linux:

processor	: 3
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

Hardware	: BCM2835
Revision	: a02082
Serial		: 000000009555bd2b
ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 2)
Ответ на: комментарий от ZenitharChampion

У тебя первая малинка. У второй BCM2836, У третьей BCM2837 (cortex-a53 mpcore, aarch64, arm-8a и CRC32). У первых двух 32 битные SoCs

sqq
()
Ответ на: комментарий от ZenitharChampion

Это не ошибка, балван, в режиме совместимости ядро будет сообщать что это ARMv7 чтобы не поломать бинари которые подсели на /proc/cpuinfo

какие ещё флаги со словом «armv8» на ARMv7-операционке?

32-биный armv8 собирай вот этим тулчейном

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.