LINUX.ORG.RU

Raspberry Pi 4, 32 bit vs. 64 bit

 , , ,


0

1

Добрый вечер.

Долгое время сидел на всяких сравнительно диковинных одноплатниках, но недавно решил приобрести RPi 4. С большим удивлением обнаружил, что официальные сборки до сих пор собираются под ARMv6, и в ближайшее время никаких изменений не предвидится. Начал гуглить и понял, что полноценных официальных сборок ОС под ARM64 ни у кого нет. Вот что я нашел:

Выжидать стабилизации, сидя на Raspbian не очень хочется. Когда-нибудь все эти сборки допилят, и придется переезжать.

Возникает логичный вопрос, а нужны ли эти 64 бита? Тут говорится, что 64-битные сборки медленнее 32-битных, но непонятно, насколько актуальна эта информация. Хотелось бы совета от более опытных пользователей малинок. К сожалению, времени на эксперименты сейчас немного, не могу сам всё проверить.

★★★★

Эм. Судя по трепу в #nixos-aarch64, это 32 бита заводится на RPi с бубнами, а 64 - дефолт. Мимокрокодил, но крокожу с приоткрытой от удивления пастью.

t184256 ★★★★★ ()

64 бита быстрее. Но не всем нужна скорость. Тут на питоне + js 90% форума кодит, им скорость точно не нужна...

Просто подумай над этой строкой

32-bit ARMv7 architecture had 15 general purpose registers, each 32-bits wide. The ARMv8 architecture has 31 general registers, each 64-bits wide.

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

64 бита быстрее.

Не везде. Где-то - быстрее, где-то - нет. В компиляции, например - нет, не быстрее.

А 15 регистров в 32-битных ARM-ах хватает для многих задач, как оказалось.

В 64-битных вещах больше нагрузка на подсистему памяти, из-за в 2 раза большего размера указателей. Для некоторых задач это критично, для других - нет.

Т.е. нет простого ответа на этот непростой вопрос, как это обычно и бывает.

anonymous ()
Ответ на: комментарий от fsb4000

Тут на питоне + js 90% форума кодит, им скорость точно не нужна...

Наоборот, как раз им скорость и нужна, чтобы маскировать дикий оверхед скриптоты.

anonymous ()

Во времена Raspbian Jessie, я пробовал скомпилировать 64-битное ядро в 32-битной системе. Сначала скомпилировал GCC 6.3.1 по руководству, потом скачал исходники ядра Raspbian, в котором поддержка 64-бит была экспериментальная, потом запустил.

И оно запустилось. Показало графику, правда, без 3D-ускорения. Но с моим Wi-Fi-адаптером ath9k были проблемы. Я даже создал баг, но потом его закрыли из-за моей неактивности. Я вернулся на 32-битное ядро 4.9 (64-битное было той же версии).

Я вспомнил про 64-битное ядро через некоторое время. Я скачал ядро 4.19 в обход репозитория - специальной командой, которая устанавливает новое ядро. И это ядро не увидело свои же модули! Я не смог пользоваться клавиатурой, а также зайти по SSH, потому что Ethernet не работал. Что же делать? Я загрузился с 64-битным ядром, чтобы всё поправить. Но поправить сходу не получилось, поэтому я около месяца пользовался 64-битным.

Это было ужасно. Во-первых, загрузка происходила не с первого раза. Вернее, она могла произойти с первого раза, но чаще всего со второго-третьего-пятого. Загрузка останавливалась на сообщении, что e2fsck не нашёл ошибок на моём разделе. Дальше загрузка не шла. Скорее всего, проблема в Systemd, и недостаточной энтропии для дальнейшей загрузки. С 32-битным ядром такого никогда не было.

Во-вторых, я подключил другой Wi-Fi-адаптер. Всё работало: интернет принимался на wlan1, и раздавался через eth0. К eth0 был подключен роутер, который раздавал интернет, который принимал Raspberry Pi из другого дома.

Но если мой смартфон или ноутбук находился далеко от роутера. И связь плохая. То Raspberry Pi «выбивало». Просто раздача интернета прекращалась. Только ребут. А однажды я качал несколько гигабайт файлов, а ноут стоял рядом с роутером. Всё равно закачка прервалась предательски на 99%, и интернет перестал раздаваться.

В общем, я вернул 32-битное ядро, и багов больше нет. Ядро 4.9 было не готово к 64-битному режиму. С 32-битным ядром, несколько гигабайт файлов скачались с первого раза!

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