Драйвер linux сетевой адаптер

Как в Linux установить пакет (драйвер) если нет Интернет-подключения

В настоящее время при работе с операционными системами подразумевается, что она всегда подключена к Интернету. Поэтому диски с драйверами сетевых карт больше не входят в комплект при продаже. И может возникнуть ситуация, что невозможно установить драйвер устройства, поскольку нет сетевого соединения, а сетевого соединения нет, потому что невозможно установить драйвер устройства. Рассмотрим несколько способов, как вырваться из этого замкнутого круга.

1. Использование проводного соединения

Если вы не можете настроить Wi-Fi подключение, то соедините компьютер с роутером проводом. Обычно Ethernet кабели уже входят в комплект роутеров. Есть высокий шанс, что ваш Linux поддерживает чипсет Ethernet гнезда и он работает без дополнительных пакетов. Обычно проводные соединения не требуют особой настройки.

2.Подключить USB адаптер для которого драйвера присутствуют в ядре Linux

Подойдёт практически любой USB адаптер кроме самых экзотических — в ядре Linux есть драйвера практически для всего. То есть вы получите Интернет и сможете сделать обычную установку.

3. Офлайн установка пакетов

На Linux с Интернетом вы можете скачать пакеты вручную:

А затем установить их на компьютере без Интернета:

В теории это всего две команды, но на практике возможны следующие проблемы:

Чтобы пакеты подошли, дистрибутив, на котором вы скачиваете должен быть таким же и такой же версии, где вы затем будете устанавливать пакеты. Иначе вам нужно искать ссылки для каждого пакета для вашего дистрибутива и скачивать вручную

У каждого из этих пакетов могут быть зависимости, а у тех зависимостей могут быть другие зависимости…

В общем, посмотреть зависимости можно командой:

Или вариант попроще, запустите команду (делать установку необязательно):

и посмотрите, какие пакеты будут предложены для установки. Скопируйте названия этих пакетов и загрузите с помощью «apt download».

4. Установка пакетов с Live или установочного диска

В репозиториях в качестве источника пакетов нужно прописать CD диск.

Для этого выполните команду:

Если, например, вы добавляете образ Wheezy, будет сгенерирован следующий результат:

Источник

🏷 Как найти имя и версию драйвера сетевой карты в Linux

Вопрос: Сетевая карта Ethernet подключена к моей Linux-системе, и я хотел бы узнать, какой драйвер сетевого адаптера установлен для оборудования NIC. Есть ли способ узнать имя и версию драйвера сетевой карты для моей сетевой карты?

Для правильной работы аппаратного обеспечения сетевой интерфейсной платы (NIC) необходим соответствующий драйвер устройства для аппаратного обеспечения NIC.

Драйвер устройства NIC реализует аппаратно-независимый общий интерфейс между ядром Linux и NIC, так что пакеты могут перемещаться между ядром и NIC.

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

Когда вы устраняете неполадки аппаратного обеспечения сетевого адаптера, вы можете проверить, правильно ли установлен драйвер сетевого адаптера.

В этом случае вам нужно знать, какой модуль ядра является вашим драйвером NIC.

Способ первый

Первый способ заключается в проверке сообщений dmesg.

Поскольку ядро загружает необходимые аппаратные драйверы во время загрузки, вывод dmesg должен сообщить, установлен ли драйвер карты Ethernet.

Приведенный выше вывод показывает, что драйвер с именем r8169 загружен в ядро.

Если вы хотите узнать более подробно об этом драйвере (например, о версии драйвера), вы можете использовать команду modinfo.

Источник

Установка драйвера сетевой карты Debian

Доброго времени суток! Решил поставить Debian 7. В процессе установки потребовались драйвера для сетевой карты, так как под рукой не было, то пропустил. Материнская плата: foxconn h67a-s После в консоли ввожу

Читайте также:  Нужно ли удалять обновления windows 10 после их установки

Последние строки dmesg-а

Драйвер качал с оф сайта realtec, по поиску r8169 Прошу помощи.

А подробнее можно? Что ты там качал?

З.Ы. А что, готового уже модуля ядерного нет такого чтоль? Зачем качать откуда-то?

лучше использовать ядреный драйвер, это раз.

Нужно установить пакет с прошивками для карт от realtek, это два.

По умолчанию в Debian нет прошивок. Подключите.

lspci |grep -i net 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)

всё работает, не надо вот тут.

Верни назад aptitude install firmware-realtek

И просто в /etc/network/interfaces пропиши

Прочитал, что лучше установить драйвер вручную.

Нагло врут. Твоя проблема решается не сменой драйвера, а

верни наместо ядерный модуль и:
apt-get install firmware-realtek

Там, где скачивал образы, есть каталог non-free, в котором есть образ с включёнными прошивками.

Т.е помимо основного образа с системой надо всегда еще выкачивать образ с прошивками?из non-free ветки? и как вернуть ядерный модуль? этот rmmod-ом удалить, а старый вернуть как?

А где почитать про это? Я читал много статей по установке debian, но ничего подобного не нашел. Где вы находите эту информацию?!)

Т.е помимо основного образа с системой надо всегда еще выкачивать образ с прошивками?из non-free ветки?

Просто ставьте систему с образа, в котором содержатся non-free компоненты, в том числе и прошивки.

Переустновить пакет с ядром.

Ну и просто надо знать, что в стандартной поставке Debian (установочных образах) нет прошивок.

я просто качал с оф сайта debian dvd-amd64, там я не заметил нигде разные виды образов,как мне найти нужный?

Пакет с ядром, это мне надо переустановить kernel-package? Простым apt-get?

Еще же можно скачать пакет firmware-realtek и поставить dpkg -i его, вручную, да?

я просто качал с оф сайта debian dvd-amd64, там я не заметил нигде разные виды образов,как мне найти нужный?

Читаем внимательно вот этот текст: и скачиваем предложенные образы net-install, включающие в себя несвободные прошивки, при установке с такого образа не забываем в списке пакетов выбрать пакет с прошивками под ваше оборудование.

Пакет с ядром, это мне надо переустановить kernel-package? Простым apt-get?

Еще же можно скачать пакет firmware-realtek и поставить dpkg -i его, вручную, да?

Сделал все как вы сказали.Не помогло. Для сравнения скачал non-free netinstall образ, поставил с него — результат тот же.

Смотреть вывод dmesg на предмет сообщений от драйвер r8169 на примере тех, что вы привели в шапке темы.

Тут проблема не в модуле, а в прошивке, Debian по умолчанию не содержит в себе никаких несвободных прошивок и ПО, решается установкой пакета firmware-realtek.

Вот логи Сразу после загрузки системы

Попробуйте принудительно запустить dhcp клиент:

И проверьте получает или нет интерфейс параметры сети.

В общем итог. Пробовал все, что написано. Ничего не помогало, тогда взял и напрямую соединил два компьютера, на одном задал адрес 192.168.0.1, на другом(проблемном) 192.168.0.2 с маской /24, т.е решил проверить работает ли вообще железо, со статикой. О чудо, все заработало!(пинг прошел) Тогда я взял и соединился с сетью провайдера не через свитч, и все сработало! Оказывается был виноват свитч. Пробовал тогда в разные порты свитча втыкать, снова не работало ничего, на второй системе(win7) все работало и со свитчем. Другой комп с дебианом тоже через свитч нормально работает. Магия.

Возможно стоит обновить ядро в Debian или использовать другой DHCP клиент. У меня при использовании классического ISC DHCP Client`а в сети провайдера не параметры сети не получаются, поэтому я использую dhcp клиент из состава busybox.

Есть еще вероятность, что у тебя в биосе не включены какие-нибудь настройки. Я так-же парился с Ethernet на маме GA-970-UD3p (такой-же адаптер). Смотрю в сислог, а там чехорда. Флешку включаешь, езернет валится. Мышь, то работает, то — нет. На чипсет матершина какая-то. Я сделал вывод, что ядро отстает от производителей железа. И начал искать дрова от AMD и прочих для линукс. Наткнулся на статью про IOMMO controller. Зашел в биос поставил Enableb на нем и еще EHCI Hand-off и Port 60/64 Emulation, И, ооо, чууудо. Пошел пинг. Раздался IP.

Читайте также:  Скринсейвер windows 10 костер

Ты хоть дату создания темы (12.02.2014) или последнего коментария (14.02.2014) смотрел? Рано ты отписался, пожождал бы хотя бы до 12 февраля, было бы как раз два года с даты создания, можно было бы праздник устроить. А так, эх .

Источник

Как установить сетевой драйвер в Linux?

А если я хочу проверять ежемесячно? Где хранятся эти настройки?

Я не вижу этого в / etc / update-manager

Хорошо, теперь я нашел этот файл значений в Ubuntu 10.10: /etc/apt/apt.conf.d/10periodic

3 ответа

Если у вас установлена ​​ОС и вы хотите использовать сетевую карту как новое оборудование, вам следует обратиться к поставщику за сетевыми драйверами. Обычно сетевые драйверы поставляются с исходным пакетом модулей ядра. Вы должны скомпилировать модуль драйвера для своего ядра.

установить утилиты «build essential»

распаковать исходный пакет в какую-нибудь папку

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

Новейшим сетевым устройствам обычно требуется время, чтобы проникнуть в ядро ​​Linux. Все драйверы обычно встроены в большие дистрибутивы, такие как Debian (или Ubuntu) и Centos.

В ответах на другие ответы здесь подробно рассказывается о том, как скомпилировать модуль драйвера и вставить его — если вы посмотрите на исходный код Linux, вы можете «grep» имя вашего устройства в каталоге / drivers / net, например: ,

Это может привести к чему-то вроде:

Я обрезал некоторые строки для краткости. Но имена модулей такие же, как и у каталога до Kconfig, так что вы можете проверить, активен ли он с помощью lsmod:

Иногда мои драйверы Intel для моего встроенного Wi-Fi умирают, тогда я должен удалить и снова добавьте его:

Тогда волшебным образом это снова работает. Мне все еще нужно внести это исправление в проект NetworkManager .

Если возвращается «alx», драйвер уже загружен:

Если нет, вам не повезло. Вы можете управлять интерфейсом с помощью команд «ifconfig» или «ip link»:

Более новые Linux больше не используют «eth» в качестве имен интерфейсов.

Итак, я нашел в дереве ядра слова «killer» и «e2200» и ничего не смог найти. Затем я выполнил поиск в Интернете и обнаружил, что это устройство Atheros, похожее на драйвер «alx». Кто-то обновил драйвер для работы с вашей картой, вам повезло. Если таких карт в мире достаточно, или он его расширил, все, что вам нужно сделать, это обновить Linux, и он будет работать.

Добро пожаловать в Linux! Не стоит покупать старое оборудование, для которого кто-то уже сделал бесплатные драйверы . 🙂

Источник

NAPI в сетевых драйверах Linux

Поговорим о драйверах сетевых устройств Linux, механизме NAPI и его изменениях в ядре 5.12.

Сетевая подсистема Linux (рисунок) построена по примеру стека BSD, в ней прием и передача данных на транспортном и сетевом уровнях происходит с помощью интерфейса сокетов. В отличие от unix-сокетов для межпроцессного взаимодействия, TCP/IP сокеты используют для работы сетевой протокол и при создании (sys_socket) принимают параметры домен, тип, локальные и удаленные IP-адрес и порт. Буфер сокета (sk_buff) — фактически, пакет. Связный список экземпляров таких структур составляет очередь сетевого интерфейса (tx_queue, rx_queue).

Упрощенно – некоторые важные поля sk_buff:

Драйвера отвечают за реализацию канального уровня (разрешение MAC-адресов) и предоставление интерфейса между системными вызовами ядра и сетевой картой. Обработка входящих и исходящих пакетов происходят с помощью функций xmit и rx, от одновременного доступа они защищены спин блокировками, как и обновление статистики stats и изменение параметров передачи. Сам интерфейс определяется структурой net_device, для создания и регистрации вызываются функции alloc_netdev и register_netdev.

Важные поля net_device:

Сетевой драйвер похож на блочный: передает и получает данные по запросу, но блочные драйверы отвечают только на запросы ядра, а сетевые получают пакеты асинхронно извне. Долгое время в Linux, когда сетевое устройство “просило” поместить входящие пакеты в ядро, действовал механизм обработки аппаратных прерываний.

Читайте также:  The hunter mac os

Схематичные действия в обработчике прерываний для очистки очереди входящих пакетов: (драйвер intel Ethernet e1000):

До ядер версии 2.3 после самого обработчика прерывания (top half) для выполнения основных задач использовались нижние половины (bottom half) и очереди задач (task queue). Начиная с версии 2.3 на замену интерфейсу BH пришли отложенные прерывания (softirq), тасклеты (tasklet) и очереди отложенных действий (work queue). Преимущество softirq в том, что они могут одновременно выполняться на разных процессорах. Они напрямую используются в сетевой подсистеме.

Немного о NAPI

Пока сетевой трафик был умеренным, механизм прерываний при получении пакета эффективно справлялся со своей задачей. С ростом трафика и появлением высоконагруженных систем постоянная обработка прерываний стала приводить к нехватке процессорного времени для пользовательских программ и потере пакетов. Решение проблемы было предложено в 2001 году и появилось в виде интерфейса New API в ядрах серии 2.4. (В оригинальной статье – результаты тестирования для SMP-системы, генератор трафика наподобие pktgen).

Основная цель NAPI — сократить количество прерываний, генерируемых при получении пакетов. В NAPI механизм прерываний сочетается с механизмом опроса. Чаще всего в разработке избегают использования поллинга, так как могут тратиться лишние ресурсы, когда оборудование молчит. У выоконагруженных интерфейсов такой проблемы не возникает.

В NAPI-совместимых драйверах прерывания отключаются, когда на интерфейс приходит пакет. Обработчик в этом случае только вызывает rx_schedule, гарантирующий, что обработка пакетов произойдет в дальнейшем. Когда приходящие пакеты заполняют буфер (предельное количество – budget), для обработки вызывается метод dev->poll. Метод poll будет вызываться одновременно не более, чем на одном процессоре, что упрощает синхронизацию. Если нагрузка падает, снова разрешаются прерывания. Это позволяет динамически регулировать производительность в зависимости от нагрузки интерфейса. Метод poll может использоваться также и для передачи пакетов.

Пример poll из драйвера e1000:

При реализации NAPI-совместимого драйвера должны быть выполнены некоторые требования:

Возможность хранения входящих пакетов в кольце DMA или буфере в самой карте

Возможность отключить прерывания

В методе poll должна быть реализована возможность забрать несколько пакетов за раз

Так как метод poll работает в контексте softirq и управляется демоном ksoftirqd, в системах с высокой загрузкой нужно менять приоритет поллинга для обеспечения баланса ресурсов между обработчиком прерываний и пользовательскими программами.

В некоторых случаях в системе могуть быть задержки, если весь обработчик прерываний помещен в dev->poll

Маскировка прерываний может быть медленной

Возможно состояние IRQ-гонки, если пакет приходит во время проверки бита наличия новых пакетов и включения прерываний.

Что нового у NAPI в 5.12?

В серии патчей в ядре 5.12 метод poll из softirq контекста перенесен в поток ядра.

Wei Wang в комментарии к патчу рассказывает, что причина такого решения – отсутствие возможности отследить программные прерывания в системе. Планировщик не может измерить время, затрачиваемое на обработку softirq. Поток ядра же видим для планировщика задач CPU, это позволит избежать перегрузки процессора, на котором он работает, и сделать планирование userspace-процессов более детерминированным. Его проще контролировать системному администратору. Kthread можно связать с определенной группой CPU, чтобы явно отделить пользовательские потоки от процессоров, опрашивающих сетевые интерфейсы.

Изменения затронули в основном net/core/dev.c. Обновлен метод __napi_poll, вызываемый из контекста napi_poll. Появился новый sysfs атрибут в net_device для включения/выключения поточного режима опроса для всех экземпляров napi данного сетевого устройства без необходимости вызова up/down.

В napi_struct добавлено поле threaded для реализации опроса внутри потока, причем для включения поддержки потоков после создания kthread нужно вызвать napi_set_threaded (флаг NAPI_STATE_THREADED).

Обновленная структура napi_struct:

Создание потока ядра:

В связи с добавлением поточности появился новый метод napi_thread_wait.

Wei Wang получил следующие результаты сравнения эффективности softirq, kthread и очередей отложенных действий:

Основные источники — LDD3 и статьи:

Заранее спасибо за уточнения и указания на ошибки!

Источник

Оцените статью