How do I install/update drivers on Debian 9?
I just installed Debian 9 on my laptop, however Wifi isn’t working and I’m not sure if my graphic card is either. I’m sure that it’s just a lack of drivers, but I’ve never actually had to update drivers on Linux before. So how do I do that?
What hardware do you have? Unless you need/want proprietary drivers (Nvidia) or need to use ndiswrapper (some network cards, especially wireless) then things should Just Work
3 Answers 3
In Debian, if you run into issues with wi-fi or graphics support, there are usually two things to check.
The first is the kernel, especially for graphics. You can usually get a newer kernel by looking at backports; currently, the Debian 9 kernel is 4.9.320, but 4.19.118 is available as a backport with better support for newer graphics adapters. This is particularly true for Intel GPUs. To install a kernel from backports, proceed as follows:
- Add the backports repository:
echo deb http://http.debian.net/debian stretch-backports main contrib non-free > /etc/apt/sources.list.d/stretch-backports.list
apt update apt -t stretch-backports install linux-image-amd64
The second is firmware. Most GPUs, and many wi-fi adapters, need firmware, which might not be installed by default (because source code is generally not available, so it’s not made available as part of Debian, but instead in the non-free repositories). To install the available firmware, from backports too (might as well):
apt install -t stretch-backports firmware-linux
As before, use buster-backports instead of stretch-backports on Debian 10, and bullseye-backports on Debian 11.
In both cases, reboot to pick up the new or improved hardware support.
Hi, I tried this solution as you suggested here. This solved everything discribed in the question (Thank you very much) but the screen tearing was still there. As a blind shot, I ran apt-get -t stretch-backports upgrade and surprisingly it worked. Now is there any way to find which exact package solved it?
I imagine it would be the Mesa packages (see the other answer I’d linked); the apt logs in /var/log/apt will tell you what was upgraded, you’d then have to read the changelogs to attempt to identify a likely candidate.
Open up a terminal and try
Here you can look at all your PCI devices. I notice in my output these two devices:
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV670 [Radeon HD 3870] (prog-if 00 [VGA controller]) Subsystem: Dell RV670 [Radeon HD 3870] Flags: bus master, fast devsel, latency 0, IRQ 27 Memory at d0000000 (64-bit, prefetchable) [size=256M] Memory at fe9f0000 (64-bit, non-prefetchable) [size=64K] I/O ports at dc00 [size=256] Expansion ROM at 000c0000 [disabled] [size=128K] Capabilities: *Kernel driver in use: radeon* *Kernel modules: radeon* 04:05.0 Network controller: Ralink corp. RT2800 802.11n PCI Subsystem: Edimax Computer Co. RT2800 802.11n PCI Flags: bus master, slow devsel, latency 64, IRQ 17 Memory at fe7f0000 (32-bit, non-prefetchable) [size=64K] Capabilities: *Kernel driver in use: rt2800pci* *Kernel modules: rt2800pci*
Take note of what the name of the device is, e.g. Radeon HD3870. See that I have appropriate drivers/modules listed (asterisks around them are mine) — what have you got?
Debian favour free software over guaranteed full function out of the box. If your wifi is not working, connect over ethernet and fix your problems first. Good luck!
Linux: обновление приложений, ОС и драйверов в UBUNTU/Debian, установка системы
APT – advanced package tool. Пакетный менеджер на ubuntu (и Debian) – позволяет легко искать приложения, скачивает приложения из репозиториев, устанавливает и их зависимости, удаляет все это при необходимости. Apt работает с пакетам .deb (так же как и Debian, на основе которого построен Ubuntu).
В новых версиях Ubuntu/Debian не обязательно использовать apt-get, достаточно apt.
Приложения
sudo apt-get update – получение списка всех доступных обновлений приложений из установленных в системе репозиториев. Обязательно запускаем чтобы гарантировать, что мы ставим последние версии приложений.
fetches the list of available updates Before you install any software, always make sure you're pulling the latest software from your repositories with the apt update command.
sudo apt-get dist-upgrade – обновление приложений на основе сформированного ранее списка обновлений. dist-upgrade лучше обычного upgrade (sudo apt-get upgrade) т.к. разрешает конфликты (доустанавливает/обновляет/удаляет необходимые зависимости). Логгирование лучше всего собирать с терминала (secure/putty легко это позволяют), а не записывать в файл (&>upgrade.log) – потому что могут появляться экраны с запросами, не только y/n, решаемые опцией -y.
После обновления перезагружаемся. Осторожно! при обновлении сервисов они могут не работать (у меня выдавало ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)) при обновлении mysql, что вполне естественно.
Обновление может помочь при переводе часов (обновлялся пакет tzdata, отвечающий за часовые пояса).
После перезагрузки не забываем стартануть все демоны, а так же можем наткнуться на отсутствие сетевой доступности из-за прописывания маршрутов динамически в RIB, а не в файл. Проверяем вышестоящими командами отсутствия новых апдейтов.
~$ sudo apt-get dist-upgrade 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Clean
sudo apt-get autoremove – удаление осиротевших пакетов/библиотек и прочего треша, запускаем строго ПОСЛЕ обновления и перезагрузки. Запускать надо т.к. может сильно высвободить память от мусора. Причем запускать несколько раз, как с CCleaner. После этого может понадобится еще одна перезагрузка (в шапке будет system restart required).
Первый раз 0 upgraded, 0 newly installed, 7 to remove and 0 not upgraded. After this operation, 285 MB disk space will be freed. Второй раз 0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded. After this operation, 300 MB disk space will be freed. В третий раз 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
~$ sudo apt-get autoremove Reading package lists. Done Building dependency tree Reading state information. Done The following packages will be REMOVED: linux-headers-3.16.0-30 linux-headers-3.16.0-30-generic linux-image-3.16.0-30-generic linux-image-3.16.0-31-generic linux-image-extra-3.16.0-30-generic linux-image-extra-3.16.0-31-generic 0 upgraded, 0 newly installed, 6 to remove and 3 not upgraded. After this operation, 480 MB disk space will be freed. Do you want to continue? [Y/n] н Abort.
- если запустить после обновления приложений, но до перезагрузки – можно сталкнуться с фейлом что осиротевшим пометится новое обновление, требующее перезагрузки т.к. оно еще недоустановилось! У меня так похерились mysql server/client, благо я и базу забекапил и сама база не потерлась:
~$ sudo apt-get autoremove Reading package lists. Done Building dependency tree Reading state information. Done The following packages will be REMOVED: libaio1 libdbd-mysql-perl libdbi-perl libterm-readkey-perl mysql-client-5.5 mysql-client-core-5.5 mysql-server-5.5 mysql-server-core-5.5 0 upgraded, 0 newly installed, 8 to remove and 3 not upgraded. After this operation, 92,7 MB disk space will be freed. Do you want to continue? [Y/n] y
Аналогично теряли базу postgres на gentoo. Причем она продолжала работать в оперативке.
OS
lsb_release -a – смотрим версию дистрибутива.
uname –a – смотрим hostname, версию ядра, разрядность (если система 64-битная, то в консоли это будет обозначено как x86_64; если система 32-битная, то будет i686 или i386)
sudo apt-get install update-manager-core – устанавливаем приложение по обновлению ядра
sudo do-release-upgrade или sudo apt full-upgrade – обновление релиза OS (ядра Linux). Если версия хоть и предыдущая, но поддерживаемая LTS, несколько раз думаем перед обновлением, насколько оно нужно. Официальным LTS Debian, кстати, по факту считает и поддерживает OS 4-ех летней давности по релизу! Вместо обновления на новую LTS система может предложить обновить только Security стек, как самое необходимое.
To upgrade to a supported (or longer-supported) configuration: * Upgrade from Ubuntu 14.04 LTS to Ubuntu 16.04 LTS by running: sudo do-release-upgrade OR * Switch to the current security-supported stack by running: sudo apt-get install linux-image-generic-lts-xenial linux-generic-lts-xenial and reboot your system.
Репозитории
/etc/apt/sources.list – для ubuntu находятся тут. Так же приложения можно ставить из ppa-репозиториев (установка ppa-приложений) с сайта launchpad.net, принадлежащего Canonical (по сути маркет для приложений). Например популярный репозиторий для php7.0 http://ppa.launchpad.net/ondrej/php/ubuntu. В любом случае (особенно в случае с ppa), устанавливая тот или иной репозиторий, нужно быть уверенным, что он надежный – иначе получим нерабочий или даже вредоносный софт.
Пример добавления репозитория.
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
Можно добавлять и непосредственно строкой в файл /etc/apt/sources.list, причем чем «выше» (т.е. ближе к началу файла) стоит строка, тем больший приоритет получит добавленный репозиторий.
sudo vi /etc/apt/sources.list
В случае ошибки с CD/DVD приводом, а нам нужно загружать через сеть, нужно закомментировать строку с поиском дистрибутива на CD-ROM.
Media change: please insert the disc labeled 'Debian GNU/Linux 10.11.0 _Buster_ - Official amd64 DVD Binary-1 20211009-16:12' # deb cdrom:[Debian GNU/Linux 10.11.0 _Buster_ - Official amd64 DVD Binary-1 20211009-16:12]/ buster contrib main
Другие полезные apt-команды
apt list –installed – смотрим информацию про все установленные пакеты
apt show python3 – смотрим информацию про конкретный пакет
# apt show python3 Package: python3 Version: 3.7.3-1 Priority: optional Section: python Source: python3-defaults Maintainer: Matthias Klose Installed-Size: 191 kB Provides: python3-profiler Pre-Depends: python3-minimal (= 3.7.3-1) Depends: python3.7 (>= 3.7.3-1~), libpython3-stdlib (= 3.7.3-1) Suggests: python3-doc (>= 3.7.3-1), python3-tk (>= 3.7.2-1~), python3-venv (>= 3.7.3-1) Replaces: python3-minimal (apt list phantomjs – смотрим информацию про конкретный пакет
apt search python3-pip – ищем конкретный пакет
apt search python3-pip Sorting. Done Full Text Search. Done python3-pip/trusty-updates 1.5.4-1ubuntu4 all alternative Python package installer - Python 3 version of the package python3-pipeline/trusty 0.1.3-3 all iterator pipelines for Python 3apt-get -s install mysql-server – запускаем установку в режиме симуляции, для понимания что произойдет при установке
apt-cache policy mysql-server – смотрим текущую версию пакета и ту, на которую будет апдейт
DPKG, как и пакет deb – от прародителя Ubuntu – Debian. DPKG – установщик пакетов в Debian like системах. Не является пакетным менеджером т.к. не умеет скачивать пакеты, не умеет скачивать/устанавливать их зависимости. Но в связке dpkg + apt “–fix-broken” работает – т.е. устанавливаем приложение с использованием dpkg, далее “подтягиваем” недостающее с помощью –fix-broken.
dpkg -i – install. С помощью dpkg в том числе можно установить/обновить драйвера. Можно установить все из папки, используя астериск.
dpkg -i firmware-bnx2x_20161130-5_all.deb Firmware: failed to load bnx2x/bnx2x-e2-7.13.1.0.fw (-2) Direct firmware load for bnx2x/bnx2x-e2-7.13.1.0.fw failed with error -2 Error loading firmware dpkg –i *sudo dpkg -i /home/qwiklab/downloads/atom-amd64.deb – установка .deb пакета через dpkg. Если в результате будет ошибка с указанием зависимостей – можно использовать sudo apt install -f для разрешения проблем.
При установке “чистого” Debian 10 (рекомендую netinstall версию т.к. она lightweighed и позволяет доустановить именно то, что тредуется) нужно учитывать:
To disable the GUI: sudo systemctl set-default multi-user.target sudo reboot To re-enable the GUI: sudo systemctl set-default graphical.target sudo reboot5. удалить firefox, libreoffice
sudo apt-get remove --purge firefox sudo apt-get remove --purge libreoffice* sudo apt-get clean sudo apt-get autoremovesudo systemctl stop NetworkManager sudo systemctl disable NetworkManager vi /etc/NetworkManager/NetworkManager.conf managed = falseLeave a Reply Cancel reply
You must be logged in to post a comment.