Пару недель назад была выпущена 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-бит
Настраиваем язык, время, сеть и т. д. и убедившись, что ОС обновлена, мы извлекаем некоторую информацию:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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:
1 2 |
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.
1 2 |
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:
1 2 |
wget https://raw.githubusercontent.com/ThomasKaiser/sbc-bench/master/sbc-bench.sh chmod +x sbc-bench.sh |
Результаты SBC Bench:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
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),
1 2 3 4 5 6 |
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) сборка не завершится, выдавая ошибки, такие как:
1 2 3 4 5 6 7 8 |
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.
Оригинал статьи вы можете прочитать здесь.