Пару недель назад была выпущена Raspberry Pi 4 с 8 ГБ оперативной памяти вместе с бета-версией Raspberry Pi OS 64-бит. Обратите внимание, что в настоящее время вы должны использовать 32-битную версию ОС Raspberry Pi (ранее известную как Raspbian), поскольку в 64-битной версии все еще есть ошибки и отсутствует ряд функций, но нам интересно увидеть текущие изменения, поэтому мы установили raspios_arm64-2020- 05-28 / 2020-05-27-raspios-buster-arm64.zip и не имели проблем с загрузкой платы.
Информация о системе Raspberry Pi OS 64-бит
Настраиваем язык, время, сеть и т. д. и убедившись, что ОС обновлена, мы извлекаем некоторую информацию:
pi@raspberrypi:~ $ cat /proc/cpuinfo
processor : 0
BogoMIPS : 108.00
Features : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd08
CPU revision : 3
...
Hardware : BCM2835
Revision : d03114
Serial : 10000000694c8ae2
Model : Raspberry Pi 4 Model B Rev 1.4
У нас есть Raspberry Pi 4 Model B Rev 1.4 с 8 ГБ памяти (редакция: d03114), образ поставляется с 64-битным ядром Linux:
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.4.42-v8+ #1319 SMP PREEMPT Wed May 20 14:18:56 BST 2020 aarch64 GNU/Linux
и мы получаем 64-битные rootfs.
pi@raspberrypi:~ $ file /bin/busybox
/bin/busybox: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=fdf7b3dd496e8fd678a0bda5540f9fae4d313d8f, stripped
Все отлично!
Известные проблемы
Прежде чем приступить к рассмотрению, давайте рассмотрим известные проблемы:
1) Нет аппаратного ускорения видео в VLC или Chromium
2) libraspberrypi0, libraspberrypi-dev и libraspberrypi-doc были перемещены из /opt/vc/* и вместо этого в /usr/* (что делает его более стандартным). Любой код, созданный для этих библиотек, потребует изменения для ссылки на более стандартное расположение (/usr/lib/, а не /opt/vc/lib)
3) Из-за пункта 2) Многие пакеты, на которые рассчитывает libGLESv2.so libEGL и т. д., потребуют пересоздания.
4) raspberrypi-bootloader и raspberrypi-kernel содержат бесполезные, не 64-битные двоичные файлы и не выполняют работу по минимизации задержки между файлами, которые удаляются и устанавливаются в /boot
5) Для AArch64 не существует Wolfram Mathematica
6) Слой Minecraft требует восстановления, чтобы справиться с пунктом 2)
7) VLC необходимо перестроить (не доступно)
8) VNC сервер еще не перестроен для 64 бит
Тесты Raspberry Pi OS 64-бит
Большинство тестов не чувствительны к объему ОЗУ (если не происходит перестановка), но мы все же установили sbc-bench для сравнения с результатами, полученными с Raspberry Pi 4 (1 ГБ ОЗУ) с использованием 32-битной Raspbian Buster:
wget https://raw.githubusercontent.com/ThomasKaiser/sbc-bench/master/sbc-bench.sh
chmod +x sbc-bench.sh
Результаты SBC Bench:
sudo ./sbc-bench.sh
sbc-bench v0.7.2
Installing needed tools. This may take some time... Done.
Checking cpufreq OPP... Done.
Executing tinymembench. This will take a long time... Done.
Executing OpenSSL benchmark. This will take 3 minutes... Done.
Executing 7-zip benchmark. This will take a long time... Done.
Checking cpufreq OPP... Done.
It seems neither throttling nor frequency capping has occured.
Memory performance:
memcpy: 2503.6 MB/s (0.2%)
memset: 3359.5 MB/s (0.5%)
7-zip total scores (3 consecutive runs): 5083,5065,5099
OpenSSL results:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128-cbc 38070.54k 40669.85k 41716.22k 42029.40k 42131.46k 42177.88k
aes-128-cbc 38065.38k 40746.26k 41775.96k 42064.21k 42229.76k 42292.57k
aes-192-cbc 32294.31k 34105.22k 35048.28k 35303.42k 35351.21k 35351.21k
aes-192-cbc 32254.74k 34136.98k 35043.33k 35301.38k 35367.59k 35367.59k
aes-256-cbc 27986.06k 29351.96k 29962.33k 30127.79k 30173.87k 30179.33k
aes-256-cbc 27986.74k 29372.25k 29969.24k 30119.25k 30160.21k 30157.48k
Full results uploaded to http://ix.io/2paq. Please check the log for anomalies (e.g. swapping
or throttling happened) and otherwise share this URL.
Обратите внимание, что мы используем алюминиевый корпус KKSB, поэтому охлаждение не будет проблемой. В таблице ниже представлен сравнительный график (чем выше, тем лучше для всех результатов).
Raspberry Pi 4 с тактовой частотой 1.5 ГГц Raspbian 32-бит – 1 ГБ RAM | Raspberry Pi 4 с тактовой частотой 1.5 ГГц бета-версия RPI OS 64-бит – 8 ГБ RAM | |
---|---|---|
memcpy (МБ/с) | 2,662.5 | 2,503.6 |
memset (МБ/с) | 3,436.9 | 3,359.5 |
OpenSSL AES-256-CBC 16K | 64,951.64k | 30,157.48k |
7-zip | 5,397* | 5,082.33 |
Как мы видим, 64-битная ОС работает медленнее во всех четырех результатах. Различия незначительны для memset/memcpy, примерно на 6% ниже для 7-zip и огромные 50 +% для шифра AES-256. Мы не должны сильно удивляться последним, поскольку в январе прошлого года кто-то сравнивал 32-разрядную и 64-разрядную ОС Debian на Raspberry Pi с аналогичными результатами для AES-256-SBC 16 КБ в сценарии sbc-bench, но каким-то образом SHA1SUM (криптографические хеш-функции SHA1) были намного быстрее с 64-битной ОС.
Особенности тестирования и многозадачности на Raspberry Pi OS 64-бит
Теперь давайте попробуем запустить обычные программы, чтобы выяснить потенциальные ошибки или ограничения, и посмотрим, когда общее использование памяти превысит 4 ГБ ОЗУ, что сделает переход на 8 ГБ ОЗУ оправданным.

Мы отслеживали общее использование памяти с помощью htop (used + buffers + cache), и сначала запустили браузер Chromium с несколькими вкладками, YouTube и игру Facebook (Candy Crush Saga), загрузили VLC, Thunderbird, LibreOffice с файлом .odt и GIMP с фото.
Мы также запустили glxgears -info, чтобы убедиться, что ускорение графики работает (это было очевидно из Candy Crush Saga),
glxgears -info
Running synchronized to the vertical refresh. The framerate should be
approximately the same as the monitor refresh rate.
GL_RENDERER = V3D 4.2
GL_VERSION = 2.1 Mesa 19.3.2
GL_VENDOR = Broadcom
и воспроизводили видео 720p и 1080p (H.264 / H.265) в VLC. Вы можете проверить все шаги в видео ниже.
Подводя итог, можно сказать, что 64-битная ОС Raspberry Pi уже достаточно стабильна. У нас не было больших проблем с Chromium, за исключением того, что YouTube действительно начинает бороться с видео 1080p из-за отсутствия аппаратного декодирования видео на этом этапе, а Candy Crush Saga (HTML5) действительно долго загружается, но, после загрузки, игры воспроизводятся плавно. Мы могли воспроизводить видео 720p и 1080p H.264 с VLC, но видео 720p и 1080p H.265 были нестабильны из-за отсутствия аппаратного декодирования видео.
Так когда же мы использовали более 4 ГБ ОЗУ? После того, как мы открыли восемь вкладок в Chromium, Thunderbird с учетной записью Gmail, один текстовый файл с LibreOffice Write, GIMP с одной фотографией, Thunderbird, два терминала и VLC (без воспроизведения видео). Результаты немного сложнее анализировать, чем кажется на первый взгляд, поскольку используемая память (1,92 ГБ) соответствует фактической памяти, занятой программами и ОС, в то время как буферы и кэш относятся к ОЗУ, выделенной системой для ускорения производительности ввода-вывода. Таким образом, на Raspberry Pi 4 с 4 ГБ ОЗУ мы могли бы использовать 1,92 ГБ используемой памяти и небольшие буферы и кэш-память без необходимости подкачки. Наконец, если вы оставите систему работать на более длительный период времени, кэш будет иметь тенденцию к увеличению, чтобы использовать всю память, так как «неиспользуемая память — это потеря памяти».
Мы также попытались собрать примеры в /usr/src/hello_pi/, но даже после исправления нового пути (/opt к /usr/src) сборка не завершится, выдавая ошибки, такие как:
triangle.c: In function ‘init_ogl’:
triangle.c:119:11: error: unknown type name ‘EGL_DISPMANX_WINDOW_T’
static EGL_DISPMANX_WINDOW_T nativewindow;
^~~~~~~~~~~~~~~~~~~~~
...
/usr/bin/ld: cannot find -lbrcmGLESv2
/usr/bin/ld: cannot find -lbrcmEGL
/usr/bin/ld: cannot find -lopenmaxil
Библиотеки libbrcm* в настоящее время отсутствуют в каких-либо пакетах в Raspberry Pi OS 64-бит, что проверено с помощью командной строки aptitude. Документация к образцам устарела, поэтому мы не ожидаем, что они сработают в ближайшее время.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.