Raspberry Pi 4B использует систему Arm64, чтобы избежать ошибок
Raspberry Pi 4B использует систему Arm64, чтобы избежать ошибок

фон

По работе мне нужен один arm64 Сервер тестирует некоторые функции. Однако на данный момент нет возможности быстро приобрести ARM-серверы у Tencent Cloud или Baidu Cloud (арм-серверы этих двух компаний, похоже, находятся только на стадии внутреннего тестирования, и говорят, что они не будут доступны до тех пор, пока начало 2022 года. Выпускать). Подумав некоторое время, я обнаружил, что у Raspberry Pi, похоже, есть именно то, что нужно. arm64 ЦП, поэтому я зашел на официальный сайт, чтобы подтвердить Specification

Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz

Выглядело оно довольно хорошо, поэтому я купил его в магазине Yabo Smart Store. 4B , но после покупки я прогнал и обнаружил, что это не так. arm64 Да, я кричал, что меня обманули. Однако после тщательного исследования я обнаружил, что оно оригинальное. Raspberry os В зеркале используется armhf Ядро (т.е. поддерживает жесткий float 32-битный arm ). Официальный сайт Raspberry Pi на самом деле 2020 Поддержка была выпущена в arm64 Образ ядра, см. это Reddit обсуждать. Также найдено arm64 система по сравнению с armhf Фактически, он может лучше использовать возможности 64-битных процессоров.

Если это так, давайте сделаем это.

план

Покопавшись в Интернете, я обнаружил, что есть два основных решения:

  1. Исправлять /boot/config.txt из arm_64bit Конфигурация(ссылкаОфициальный документ конфигурации)。
  2. Перепрошить arm64 Немного из зеркала.

план1 выглядит удобнее,план2 выглядит более стабильно,Поэтому я попробовал их один за другим. Для проверки правильности архитектуры системы,Я также подготовил несколько методов тестирования:

  1. uname -a
  2. cat /proc/cpuinfo
  3. getconf LONG_BIT
  4. file /bin/bash
  5. cat /proc/version
  6. dpkg --print-architecture

проверять

Исходная конфигурация среды

Сначала взгляните на оригинальную версию, основанную на raspios_armhf-2020-05-28 Конфигурация под зеркало.

Язык кода:javascript
копировать
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.63-v7l+ #1496 SMP Wed Dec 1 15:58:56 GMT 2021 armv7l GNU/Linux
Язык кода:javascript
копировать
pi@raspberrypi:~ $ cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 3 (v7l)
BogoMIPS : 108.00
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 : 0xd08
CPU revision : 3
processor : 1
model name : ARMv7 Processor rev 3 (v7l)
BogoMIPS : 108.00
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 : 0xd08
CPU revision : 3
processor : 2
model name : ARMv7 Processor rev 3 (v7l)
BogoMIPS : 108.00
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 : 0xd08
CPU revision : 3
processor : 3
model name : ARMv7 Processor rev 3 (v7l)
BogoMIPS : 108.00
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 : 0xd08
CPU revision : 3
Hardware : BCM2711
Revision : d03114
Serial  : 10000000b6d307b2
Model  : Raspberry Pi 4 Model B Rev 1.4
Язык кода:javascript
копировать
pi@raspberrypi:~ $ getconf LONG_BIT
32
Язык кода:javascript
копировать
pi@raspberrypi:~ $ file /bin/bash
/bin/bash: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=3e5e2847bbc51da2ab313bc53d4bdcff0faf2462, stripped
Язык кода:javascript
копировать
pi@raspberrypi:~ $ cat /proc/version
Linux version 5.10.63-v7l+ (dom@buildbot) (arm-linux-gnueabihf-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1496 SMP Wed Dec 1 15:58:56 GMT 2021
Язык кода:javascript
копировать
pi@raspberrypi:~ $ dpkg --print-architecture
armhf

В принципе, как и ожидалось, единственное, что меня поначалу удивило, это то, что название модели в /proc/cpuinfo было «Процессор ARMv7 версии 3» (v7l), что не соответствовало официальному названию ARM v8. Позже я понял, что это значение также связано с ядром системы и иногда не может по-настоящему точно отражать свойства железа. Система на этом изображении действительно является 32-битной версией.

Изменить конфигурацию среды

Обратитесь к официальному документу конфигурации веб-сайта, установите для Arm64_bit в /boot/config.txt значение 1 и снова перезапустите тест.

Язык кода:javascript
копировать
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.63-v8+ #1496 SMP PREEMPT Wed Dec 1 15:59:46 GMT 2021 aarch64 GNU/Linux
Язык кода:javascript
копировать
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
processor : 1
BogoMIPS : 108.00
Features : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd08
CPU revision : 3
processor : 2
BogoMIPS : 108.00
Features : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd08
CPU revision : 3
processor : 3
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  : 10000000b6d307b2
Model  : Raspberry Pi 4 Model B Rev 1.4
Язык кода:javascript
копировать
pi@raspberrypi:~ $ getconf LONG_BIT
32
Язык кода:javascript
копировать
pi@raspberrypi:~ $ file /bin/bash
/bin/bash: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=3e5e2847bbc51da2ab313bc53d4bdcff0faf2462, stripped
Язык кода:javascript
копировать
pi@raspberrypi:~ $ cat /proc/version
Linux version 5.10.63-v8+ (dom@buildbot) (aarch64-linux-gnu-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1496 SMP PREEMPT Wed Dec 1 15:59:46 GMT 2021
Язык кода:javascript
копировать
pi@raspberrypi:~ $ dpkg --print-architecture
armhf

Результаты оказались несколько неожиданными.

Архитектура ЦП, просматриваемая через версию ядра, в принципе может правильно отображать ключевое слово aarch64, но на самом деле другое программное обеспечение в системе, кроме ядра, по-прежнему является 32-битной версией (ведь обновилось только ядро). Более того, архитектура программного обеспечения по умолчанию, используемая dpkg, по-прежнему является 32-битной. Это означает, что нынешняя система на самом деле немного другая. Есть как 64-битные, так и 32-битные вещи. Вам не нужно об этом думать, чтобы знать, что у вас 100% проблемы в будущем.

При этом заметил, что после прошивки нового ядра cpuinfo Отображать информацию об оборудовании как Hardware : BCM2835 ,И оказываетсяиз Информация об оборудованиидаHardware : BCM2711 . существовать gadgetversus Вот сравнение двух чипов:

Хотя 2835>2711,Но на самом деле да уже старая версия,настоящийизда Я не понимаю。。。Позже вОфициальный форумВзгляни на это,Я только что обнаружил, что директор по программному обеспечению Raspberry Pi сказал, что это, по-видимому, потому, что на самом деле существует несколько типов чипов.,Но для некоторой совместимости с исходящими и нисходящими потоками по логике,Это показывает ошибку. . .

Кстати, съешьте дыню:

mmuaaОдноклассники здесьблогподелился им визметод。pingweiМой одноклассник подражал этому, и его компьютер сломался.,я тоже написал одинблог,Потом он зашел в изблог одноклассницы ммуаа и обрызгал ее фекалиями,Смеюсь как сумасшедший.

Перепрошить образ

Система не похожа на из. Определенно не используйте из.,Вда Просто идиОфициальный сайтСошёлImager,Иди еще разЗеркальная станция Цинхуавнутри Сошёл Последняя основана на buster (ubuntu 18.04 , debian 10) 64-битный образ isarm, записанный на tf-карту. После успешной установки проверь проверил данные.

Язык кода:javascript
копировать
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.17-v8+ #1414 SMP PREEMPT Fri Apr 30 13:23:25 BST 2021 aarch64 GNU/Linux
Язык кода:javascript
копировать
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
processor : 1
BogoMIPS : 108.00
Features : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd08
CPU revision : 3
processor : 2
BogoMIPS : 108.00
Features : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd08
CPU revision : 3
processor : 3
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  : 10000000b6d307b2
Model  : Raspberry Pi 4 Model B Rev 1.4
Язык кода:javascript
копировать
pi@raspberrypi:~ $ getconf LONG_BIT
64
Язык кода:javascript
копировать
pi@raspberrypi:~ $  file /bin/bash
/bin/bash: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=b11533bde88bb45ef2891fbf3ad86c1869ed3a41, stripped
Язык кода:javascript
копировать
pi@raspberrypi:~ $ cat /proc/version
Linux version 5.10.17-v8+ (dom@buildbot) (aarch64-linux-gnu-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1414 SMP PREEMPT Fri Apr 30 13:23:25 BST 2021
Язык кода:javascript
копировать
pi@raspberrypi:~ $ dpkg --print-architecture
arm64

Теперь они наконец-то объединились arm64 из Понятно,Хотя cpuinfo Информация о старом чипе (BCM2835) по-прежнему отображается, но в конечном итоге это не оказывает большого влияния.

Единственное, на что осталось обратить внимание, это да,В конфигурацииновый подходящий источникизкогда,/etc/apt/sources.list прямая конфигурация debian 10 Просто используйте изображение, не используйте его raspberrypi иззеркало Понятно;/etc/apt/sources.list.d/raspi.list Настройте его еще раз raspberrypi Можно использовать конкретный источник.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose