UMGUM.COM 

Intel "e1000e" + Debian Lenny ( Запуск "Intel 82567LM-3 Gigabit Ethernet" в Debian Lenny. )

20 ноября 2010  (обновлено 27 мая 2017)

Эта публикация отнесена в архив. Она неактуальна.

OS: Debian Lenny.

Задача: запустить "Intel 82567LM-3 Gigabit Ethernet" для работы под управлением Debian Lenny.

Перед описанием реализацией решения не могу удержаться от растекания мыслью по древу.

В то время, как на сайтах и форумах молодых и неприкаянных (до поры до времени) разработчиков, администраторов и школьников (в самом хорошем смысле этого слова) царит эдакое "писькомерство", когда использующий самый современный релиз какого либо ПО, а лучше "ночную сборку", впереди всех, в реальной работе, приносящей "валовый", так сказать, реальный доход, как правило, используется программное обеспечение двух-трёх-пяти летней давности. Вот сколько угодно можно вопить про "дебилизм" администраторов корпоративных схем, а в жизни (не жизни форума, а в той, что марает ноги при хождении по земле) "Линуксы" иногда работают на ядрах "2.4", и "Виндозы" порой "2000"-ые, и система встраиваемая далеко не самая самая из всех самых модных, а та, что зарекомендовала себя тем, что работает уже пять лет без сбоев. Ну, и так далее и тому подобное. Может быть, в этом есть какая-то "сермяжья правда"? Может, не просто так я не видел ни одного корпоративного решения на свежей "Федоре" или "Бубунте"?


А теперь - к делу. Поступило оборудование. Относительно новые любительские серверы HP со встроенными сетевыми картами "Intel 82567LM-3 Gigabit Ethernet". Работать оборудование должно под управлением Debian GNU/Linux. Стабильная версия на данный момент - Debian Lenny. Драйверов, для используемых сетевых карт, в Lenny нет. Они есть в Debian Squeeze. Как вариант, можно скачать драйверы с сайта производителя карты и скомпилировать их для применения в Debian Lenny.

Казалось бы, что за вопрос? Squeeze вот-вот перейдёт в статус "стабильного", почему бы не применить его прямо сейчас. Ага, для дома - решение самое то, что надо; заодно поможем разработчикам в отлове ошибок ценой сбоев в нашей производственной инфраструктуре. Всё бы хорошо, но у поставщика используемого программного обеспечения нет поддержки для "тестируемых" и "нестабильных" версий. Эксплуатируемое нами программное обеспечение просто не устанавливается на Squeeze. Можно наложить "патч" от энтузиастов (они как раз закончили ВУЗ и у них есть чёткое видение ситуации в целом и они готовы решить "закавыку", которую штат профессиональных разработчиков из двух тысяч человек не берётся пока решать).

В общем, в свете вышеизложенных соображений и подозрений испугался я тягот тестирования Squeeze и решил попросту установить драйвер сетевой карты. Смешно, можно было бы с этого и начинать, но графомания затянула.

И так, ищем драйвер:


Скачиваем его:

# cd /usr/src
# wget http://downloadmirror.intel.com/15817/eng/e1000e-1.2.10.tar.gz

Распаковываем архив:

# tar -xvf e1000e-1.2.10.tar.gz
# cd ./e1000e-1.2.10/src

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

# echo "linux-headers-"`uname -r`

Пример вывода:

linux-headers-2.6.26-2-amd64

Инсталлируем пакеты:

# aptitude install linux-headers-2.6.26-2-amd64 build-essential psmisc

Собираем драйвер:

# make

make -C /lib/modules/2.6.26-2-amd64/build SUBDIRS=/usr/src/e1000e-1.2.10/src modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.26-2-amd64'
  CC [M]  /usr/src/e1000e-1.2.10/src/netdev.o
  CC [M]  /usr/src/e1000e-1.2.10/src/ethtool.o
  CC [M]  /usr/src/e1000e-1.2.10/src/param.o
  CC [M]  /usr/src/e1000e-1.2.10/src/e1000_82571.o
  CC [M]  /usr/src/e1000e-1.2.10/src/e1000_ich8lan.o
  CC [M]  /usr/src/e1000e-1.2.10/src/e1000_80003es2lan.o
  CC [M]  /usr/src/e1000e-1.2.10/src/e1000_mac.o
  CC [M]  /usr/src/e1000e-1.2.10/src/e1000_nvm.o
  CC [M]  /usr/src/e1000e-1.2.10/src/e1000_phy.o
  CC [M]  /usr/src/e1000e-1.2.10/src/e1000_manage.o
  CC [M]  /usr/src/e1000e-1.2.10/src/kcompat.o
  LD [M]  /usr/src/e1000e-1.2.10/src/e1000e.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /usr/src/e1000e-1.2.10/src/e1000e.mod.o
  LD [M]  /usr/src/e1000e-1.2.10/src/e1000e.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-2-amd64'

Инсталлируем его:

# make install

make -C /lib/modules/2.6.26-2-amd64/build SUBDIRS=/usr/src/e1000e-1.2.10/src modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.26-2-amd64'
  Building modules, stage 2.
  MODPOST 1 modules
make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-2-amd64'
gzip -c ../e1000e.7 > e1000e.7.gz
# remove all old versions of the driver
find /lib/modules/2.6.26-2-amd64 -name e1000e.ko -exec rm -f {} \; || true
find /lib/modules/2.6.26-2-amd64 -name e1000e.ko.gz -exec rm -f {} \; || true
install -D -m 644 e1000e.ko /lib/modules/2.6.26-2-amd64/kernel/drivers/net/e1000e/e1000e.ko
/sbin/depmod -a || true
install -D -m 644 e1000e.7.gz /usr/share/man/man7/e1000e.7.gz

Пробуем загрузить модуль:

# modprobe e1000e

Проверяем, успешно ли он загружен:

# lsmod | grep e1000e

e1000e  107176  0

Для пущей надёжности по старинке прописываем автоматическую загрузку модуля (единый способ для всех систем):

# echo "e1000e" >> /etc/modules

На этом всё.