Гайд как пересобрать deb драйвер, который был сделан для Ubuntu 14.04, для работы на Ubuntu 20.04

В этом посте я расскажу вам, как можно пересобрать deb драйвер, который был сделан для Ubuntu 14.04, для работы на Ubuntu 20.04. Это может быть полезно, если вы хотите использовать проприетарный драйвер AMD, который не поддерживается на новых версиях Ubuntu, или если вы хотите установить драйвер, который не доступен в официальных репозиториях. Пересборка deb драйвера позволит вам адаптировать его к вашей системе и избежать проблем совместимости и зависимостей. Для этого вам понадобятся следующие инструменты:

- dpkg-deb - утилита для работы с deb пакетами

- fakeroot - утилита для имитации прав root пользователя

- devscripts - набор скриптов для разработки Debian пакетов

- build-essential - набор пакетов, необходимых для компиляции программ

- dkms - система для автоматической сборки и установки модулей ядра

Вы можете установить все эти инструменты с помощью команды:

```bash

sudo apt install dpkg-deb fakeroot devscripts build-essential dkms

```

2. Подготовка deb пакета:

- Скачиваем deb пакет драйвера, который был сделан для Ubuntu 14.04, с сайта AMD или из другого источника. Например, я буду использовать драйвер AMD Catalyst 15.9, который можно скачать по ссылке [AMD Catalyst 15.9](^4^).

- Распаковываем deb пакет в отдельную папку с помощью команды:

```bash

dpkg-deb -R fglrx_15.201-0ubuntu1_amd64.deb fglrx

```

- Переходим в папку fglrx и редактируем файл DEBIAN/control. В этом файле указаны название, версия, архитектура, зависимости и описание пакета. Нам нужно изменить следующие строки:

```bash

Package: fglrx

Version: 15.201-0ubuntu1

Architecture: amd64

Depends: debconf (>= 0.5) | debconf-2.0, libc6-amd64 (>= 2.3.3), lib32gcc1, lib32stdc++6, dkms, linux-libc-dev, libqtcore4, libqtgui4, libqtwebkit4, libqt4-network, libxrandr2, libxrandr2:i386, libgl1-mesa-glx | libgl1, libgl1-mesa-glx:i386 | libgl1:i386, libgl1-mesa-dri, libgl1-mesa-dri:i386, xserver-xorg-core [amd64], xserver-xorg [amd64], lib32gcc1 [amd64], libc6-i386 [amd64], lib32z1 [amd64], lib32stdc++6 [amd64], libxext6:i386 [amd64], libx11-6:i386 [amd64], lib32z1-dev [amd64], lib32ncurses5 [amd64], lib32bz2-1.0 [amd64], lib32asound2 [amd64], ia32-libs [amd64], libc6-dev-i386 [amd64], linux-headers-generic | linux-headers, fglrx-core (= 15.201-0ubuntu1)

```

- Меняем название пакета на fglrx-ubuntu20.04, чтобы не конфликтовать с оригинальным пакетом:

```bash

Package: fglrx-ubuntu20.04

```

- Меняем версию пакета на 15.201-0ubuntu2, чтобы отличать от оригинальной версии:

```bash

Version: 15.201-0ubuntu2

```

- Удаляем из зависимостей пакеты, которые больше не нужны или не существуют в Ubuntu 20.04, например, ia32-libs, libc6-amd64, xserver-xorg и т.д.:

```bash

Depends: debconf (>= 0.5) | debconf-2.0, libc6 (>= 2.3.3), lib32gcc1, lib32stdc++6, dkms, linux-libc-dev, libqtcore4, libqtgui4, libqtwebkit4, libqt4-network, libxrandr2, libxrandr2:i386, libgl1-mesa-glx | libgl1, libgl1-mesa-glx:i386 | libgl1:i386, libgl1-mesa-dri, libgl1-mesa-dri:i386, xserver-xorg-core, lib32gcc1, libc6-i386, lib32z1, lib32stdc++6, libxext6:i386, libx11-6:i386, lib32z1-dev, lib32ncurses5, lib32bz2-1.0, lib32asound2, libc6-dev-i386, linux-headers-generic | linux-headers, fglrx-core (= 15.201-0ubuntu2)

```

- Меняем версию пакета fglrx-core в зависимостях на 15.201-0ubuntu2, чтобы соответствовать нашей версии:

```bash

Depends: ... fglrx-core (= 15.201-0ubuntu2)

```

- Сохраняем и закрываем файл DEBIAN/control.

3. Пересборка deb пакета:

- Переходим в папку fglrx и запускаем скрипт, который пересобирает deb пакет с помощью dkms:

```bash

cd fglrx

fakeroot ./ati-dkms dkms_build

```

- Этот скрипт создаст новый deb пакет fglrx-core_15.201-0ubuntu2_amd64.deb в папке fglrx-core.

- Переходим в папку fglrx-core и снова редактируем файл DEBIAN/control. Меняем название пакета на fglrx-core-ubuntu20.04 и версию пакета на 15.201-0ubuntu2:

```bash

Package: fglrx-core-ubuntu20.04

Version: 15.201-0ubuntu2

```

- Сохраняем и закрываем файл DEBIAN/control.

- Переходим в родительскую папку и собираем новый deb пакет fglrx-ubuntu20.04_15.201-0ubuntu2_amd64.deb с помощью команды:

```bash

dpkg-deb -b fglrx fglrx-ubuntu20.04_15.201-0ubuntu2_amd64.deb

```

4. Установка deb пакета:

- Переходим в папку, где находятся наши deb пакеты fglrx-ubuntu20.04_15.201-0ubuntu2_amd64.deb и fglrx-core-ubuntu20.04_15.201-0ubuntu2_amd64.deb.

- Устанавливаем их с помощью команды:

```bash

sudo dpkg -i fglrx-ubuntu20.04_15.201-0ubuntu2_amd64.deb fglrx-core-ubuntu20.04_15.201-0ubuntu2_amd64.deb

```

- Если возникнут ошибки из-за неразрешенных зависимостей, можно попробовать исправить их с помощью команды:

```bash

sudo apt -f install

```

- Перезагружаемся.

5. Проверка работы драйвера:

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

```bash

fglrxinfo

```

- Эта команда должна вывести информацию о вашей видеокарте и драйвере, например:

```bash

display: :0 screen: 0

OpenGL vendor string: Advanced Micro Devices, Inc.

OpenGL renderer string: AMD Radeon R9 200 Series

OpenGL version string: 4.5.13399 Compatibility Profile Context 15.201.1151

```

- Также можно запустить утилиту AMD Catalyst Control Center, которая позволяет настраивать различные параметры драйвера, с помощью команды:

```bash

amdcccle

```

55
9 комментариев

Это может быть полезно, если вы хотите использовать проприетарный драйвер AMD, который не поддерживается на новых версиях Ubuntu, или если вы хотите установить драйвер, который не доступен в официальных репозиториях

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

sudo rm -rf /

1

А у меня на hd 7670m только говно-драйвер из коробки был под названием "radeon" который вёл себя в 3d как интеловская стройка пока этой хуйней не занялся