Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
cryptocanvas
6 лет назад

debian, radeon, amdgpu-pro & usb flash

Краткое руководство

  1. Создадим загрузочную флешку с Debian GNU/Linux используя вашу локальную Debian систему.

    • Подготовьте USB flash. В теории, хватит флешки на 4Gb.
      gparted-pkexec /dev/sdb

      Или используйте ваш любимый менеджер дисков razsely.png

      Немного продлите жизнь накопителю
      tune2fs -o journal_data_writeback -c 0 -m 2 /dev/sdb1
    • Установите grml-debootstrap
      apt install grml-debootstrap

    • Создайте исполняемый скрипт автоматической загрузки и установки проприетарной реализации openCL от разработчиков драйвера AMDGPU-PRO
      cat /etc/debootstrap/chroot-scripts/amdgpu.sh

      #!/bin/bash
      # Cкачиваем подходящую версию драйвера
      wget --referer=http://support.amd.com https://www2.ati.com/drivers/linux/beta/ubuntu/amdgpu-pro-17.40.2712-510357.tar.xz -O /tmp/amdgpu.tar.xz
      # Распаковываем
      tar -Jxvf /tmp/amdgpu.tar.xz -C /tmp
      # Заставляем скрипт установки запуститься на "неподдерживаемой" системе
      sed -r 's/steamos/debian/g' /tmp/amdgpu-pro-17.40.2712-510357/amdgpu-pro-install > /tmp/amdgpu-pro-17.40.2712-510357/debinstall.sh
      chmod +x /tmp/amdgpu-pro-17.40.2712-510357/debinstall.sh
      mv /tmp/amdgpu-pro-17.40.2712-510357/debinstall.sh /tmp/amdgpu-pro-17.40.2712-510357/amdgpu-pro-install
      # Запускаем установку проприетарной реализации OpenCL
      /tmp/amdgpu-pro-17.40.2712-510357/amdgpu-pro-install --compute
      
  2. Установим Debian GNU/Linux в дирректорию в оперативной памяти.

    • Подготовка
      df -h /dev/shm/

      Filesystem      Size  Used Avail Use% Mounted on
      tmpfs           4.0G  723M  3.3G  18% /dev/shm
      

      Если размер временного раздела меньше 4Gb, увеличим его
      mount -o remount,size=4G,noatime,dev /dev/shm/

      Иначе - просто перемонтируем с нужными debootstrap-скрипту параметрами
      mount -o remount,noatime,dev /dev/shm/

    • Процесс установки системы

      # Расширим список базовых пакетов системы. Здесь можно добавить другие, нужные вам зависимости
      cp /etc/debootstrap/packages /tmp/grml.pkgs
      echo "busybox xz-utils console-setup wget ca-certificates network-manager firmware-linux firmware-linux-nonfree firmware-realtek" >> /tmp/grml.pkgs
      # Предварительно очистим дирректорию установки, в случае предыдущих неудачных попыток.
      rm -rf /dev/shm/usb/
      # Создадим пункт приёма стеклотары
      mkdir /dev/shm/usb/
      # Запустим установку системы
      grml-debootstrap --release sid --target /dev/shm/usb/ --nokernel --defaultinterfaces --contrib --non-free --hostname usb --password root --packages /tmp/grml.pkgs
      
    • Настройка системы.

      Зайдём в свежеустановленную систему и применим необходимые настройки
      cd /dev/shm/usb/
      mount proc -t proc ./proc
      mount sys -t sysfs ./sys
      mount --bind /dev ./dev
      mount --bind /dev/pts ./dev/pts
      chroot ./ /usr/bin/env -i HOME=/root TERM="$TERM" /bin/bash --login
      
      # Добавим experimental репозиторий
      echo "deb http://httpredir.debian.org/debian     experimental         main contrib non-free" >> /etc/apt/sources.list
      
      # Установим ядро
      apt clean && apt autoclean && apt update
      apt install linux-image-4.15.0-rc8-amd64 linux-headers-4.15.0-rc8-amd64 -y
      
      Игнорируем ошибку сборки dkms модуля
      Error! Bad return status for module build on kernel: 4.15.0-rc8-amd64 (x86_64)
      Consult /var/lib/dkms/amdgpu/17.40.2712-510357/build/make.log for more information.
      
      К сожалению, на данный момен в пакетах прошивок не хватает нескольких файлов для карт, их можно скачать с git репозитория ядра Linux.
      # Для Radeon RX550:
      cd /lib/firmware/amdgpu/
      wget --no-check-certificate https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/amdgpu/polaris12_ce_2.bin
      wget --no-check-certificate https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/amdgpu/polaris12_me_2.bin
      wget --no-check-certificate https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/amdgpu/polaris12_mec2_2.bin
      wget --no-check-certificate https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/amdgpu/polaris12_pfp_2.bin
      
      # Откроем доступ по ssh (Метод не безопасный, лучше настроить вход в систему по ssh ключам, но это выходит за рамки этого руководства),
      echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
      # добавим некоторые параметры ядра
      sed -i 's%GRUB_CMDLINE_LINUX_DEFAULT="quiet"%GRUB_CMDLINE_LINUX_DEFAULT="verbose amdgpu.vm_fragment_size=9"%g' /etc/default/grub
      # и монтирования файловых систем.
      echo "UUID=$(blkid -o value -s UUID /dev/sdb1)    /    ext4    errors=remount-ro,noatime,nodiratime    0    1
      tmpfs    /tmp         tmpfs    rw,size=500m 0    0
      tmpfs    /var/log     tmpfs    rw,size=15m  0    0
      tmpfs    /run         tmpfs    rw           0    0
      tmpfs    /var/lock    tmpfs    rw           0    0" >> /etc/fstab
      
      #Почистим временные файлы
      rm -rf /tmp/amdgpu*
      
      #Выйдем из chroot  и отмонтируем системные директории.
      exit
      umount ./dev/pts ./dev ./sys ./proc
      
      На данном этапе возможно установить в систму дополнительно нужный вам софт и настройки ввиду больших задержек при операциях чтения-записи на реальном USB Flash накопителе.

      Базовая система готова. Осталось записать её на флешку, установить загрузчик и проверить её работаспособность.
  3. Запись системы на USB накопитель.

    • # Смонтируем раздел устройства
      mount -t ext4 -o errors=remount-ro,noatime,nodiratime /dev/sdb1 /mnt
      # Перенесём на него систему
      shopt -s dotglob
      cp  -rdfp /dev/shm/usb/* /mnt
      shopt -u dotglob
      # Войдём в chroot
      cd /mnt
      mount proc -t proc ./proc
      mount sys -t sysfs ./sys
      mount --bind /dev ./dev
      mount --bind /dev/pts ./dev/pts
      chroot ./ /usr/bin/env -i HOME=/root TERM="$TERM" /bin/bash --login
      
      # Установим загрузчик
      grub-install /dev/sdb
      update-grub
      
      # Отмонтируем и вытащим флешку
      exit
      cd /
      umount --recursive /mnt
      sync && sync
      eject /dev/sdb
      
  4. Всё. Пробуем закрузиться с флешки и радуемся полученному результату.
    mitya, случайно для всех
    500px_CC_BY_NC_SA_svg

76
0.000 GOLOS
На Golos с December 2017
Комментарии (3)
Сортировать по:
Сначала старые