Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Аппаратные модули
  3. PCIe устройства
  4. Подключаем видеокарту к Raspberry Pi 5

Подключаем видеокарту к Raspberry Pi 5

Запланировано Прикреплена Закрыта Перенесена PCIe устройства
3 Сообщения 3 Posters 834 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • Чёрный ЛукичЧ Не в сети
    Чёрный ЛукичЧ Не в сети
    Чёрный Лукич
    написал в отредактировано pi
    #1

    В Raspberry Pi 5 появилась поддержка шины PCI Express, а это даёт возможность подключения PCI-E устройств.

    Screenshot from 2024-11-25 14-50-05.png

    Для подключения видеокарты нам потребуется адаптер JMT M.2 M-Key to PCIE 4.0X4 External Graphics Card Stand Bracke
    Screenshot from 2024-11-25 14-52-50.png
    и кабель OcuLink
    Screenshot from 2024-11-25 14-55-26.png
    Также потребуется переходник с PCIe шлейфа от RasPi на разъём M.2
    Screenshot from 2024-11-25 14-57-14.png

    В качестве более дешёвой, но менее удобной альтернативы можно использовать плату Hat uPCIty Lite от PineBoards
    Screenshot from 2024-11-25 15-01-17.png

    Поскольку выходная мощность разъёма PCIe на Raspberry Pi 5 составляет всего 5W, необходимо подобрать качественный источник питания для плат переходников, а также для самой видеокарты.
    Screenshot from 2024-11-25 15-04-20.png

    Выбор видеокарты и активация PCIe Gen 3

    По результатам различных тестов оптимальными для подключения к RasPi оказались видеокарты AMD серии Polaris.

    Они поддерживают опенсорсный драйвер amdgpu и хорошо изучены.
    Видеокарты NVidia поддерживаются значительно хуже в связи с закрытостью кода драйвера и отсутствием возможности вносить в него изменения.

    В данном примере мы будем подключать видеокарту RX 460 4 GB - она проверена временем, поддерживает драйвер amdgpu и PCIe Gen 3

    Для активации PCIe GEN 3 добавляем следующую строку строку в конец файла /boot/firmware/config.txt

    dtparam=pciex1_gen=3
    

    Таким образом шина PCI express на RasPi даст нам 1 канал со скоростью 8 GT/s

    Накатываем патч Linux ядра

    После того как всё подключено и в конфиг внесены изменения, после перезагрузки можно убедиться, что видеокарта определилась в системе командой

    lspci
    

    Однако Raspberry Pi всё ещё не может её использовать из-за отсутствия драйвера amdgpu в операционной системе.
    Чтобы установить драйвер для начала нужно пересобрать ядро.
    Официальная инструкция как это делается здесь.
    В эту инструкцию нужно добавить ещё 1 шаг - после того, как исходники ядра скачаны

    git clone --depth=1 https://github.com/raspberrypi/linux
    

    заходим в папку linux, скачиваем патч и накатываем его на исходники

    cd linux
    wget -O amdgpu-pi5.patch https://github.com/geerlingguy/linux/pull/8.patch
    git apply -v amdgpu-pi5.patch 
    

    Обратите внимание, что данные патч предназначен для ядер версии 6.6.X

    Перед тем, как вы начнёте сборку ядра, следуя оставшейся части официальной инструкции, необходимо пересобрать библиотеку memcpy

    wget https://gist.githubusercontent.com/Coreforge/91da3d410ec7eb0ef5bc8dee24b91359/raw/b4848d1da9fff0cfcf7b601713efac1909e408e8/memcpy_unaligned.c
    
    gcc -shared -fPIC -o memcpy.so memcpy_unaligned.c
    sudo mv memcpy.so /usr/local/lib/memcpy.so
    sudo nano /etc/ld.so.preload
    
    # Put the following line inside ld.so.preload:
    /usr/local/lib/memcpy.so
    

    Чтобы убедиться, что ядро будет скомпилировано с поддержкой amd gpu, запускаем графический конфигуратор ядра и смотрим, чтобы пункт AMD GPU был выбран

    make menuconfig
    

    Если конфигуратор не запускается, то необходимо установить дополнительно библиотеку ncurses

    sudo apt install libncurses-dev
    

    Далее возвращаемся к инструкции по сборке ядра и приступаем к сборке.
    После того, как ядро собрано (это длительный процесс) устанавливаем прошивку от AMD

    sudo apt install firmware-amd-graphics
    

    Теперь перезагружаемся и видим, что картинка выводится через любой из портов внешней видеокарты (HDMI, DP и т.д)
    Если картинка не выводится, значит что-то пошло не так.
    Подключаемся по ssh и командой

    dmesg
    

    смотрим лог ошибок ядра и предпринимай дальнейшие действия к их устранению.
    Но я надеюсь, что всё получилось сразу...

    Пользуемся

    Screenshot from 2024-11-25 15-53-40.png
    Теперь можно запускать игры и модели сложных нейросетей (хотя с этим могут быть сложности, т.к из RX460 производитель выпилили поддержку ROCm)

    Для теста можно скачать Doom3 из https://pi-apps.io/

    Список поддерживаемых видеокарт (дополняется)

    1 ответ Последний ответ
    0
    • gerundG gerund сослался на эту тему в
    • Гена БукинГ Не в сети
      Гена БукинГ Не в сети
      Гена Букин
      написал в отредактировано Гена Букин
      #2

      Это весьма интересно.
      заказал эти переходники, тоже буду с видеокартой экспериментировать
      но мне больше для нейросетей интересно, а не для игрулек

      нейробизонН 1 ответ Последний ответ
      0
      • нейробизонН Не в сети
        нейробизонН Не в сети
        нейробизон
        replied to Гена Букин on отредактировано нейробизон
        #3

        жалко NVidia нельзя подключить, чтобы использовать CUDA.
        или у каких-нибудь умельцев уже получилось видеокарты NVIdia подулючить к RasPi?

        1 ответ Последний ответ
        0

        • Войти

        • Нет учётной записи? Зарегистрироваться

        • Login or register to search.
        • Первое сообщение
          Последнее сообщение
        0
        • Категории
        • Главная
        • Документация
        • Последние
        • Пользователи