Установка драйвера SiS191 Gigabit Ethernet на CentOS 5.5 x86_64
После установки CentOS 5.5 x86_64 на ноутбук MSI EX400-018RU оказалось что драйвер сетевой карты SIS191 не определился, соответственно не работает сеть и интернет.
Подключим репозитарий с установочного диска
Консольный вариант выполняется с правами рута: touch /etc/yum.repos.d/cdrom.repo
vi /etc/yum.repos.d/cdrom.repo С помощью редактора "vi" пропишем в этом файле следующее: [cdrom] enabled = 1 name = cdrom baseurl = file:///media/ваш_cdrom gpgcheck = 0
*очень важно чтобы сотяло три знака "///" иначе не заработает. вывод команды "ls /media" покажет что писать вместо "ваш_cdrom" Затем необходимо во всех остальных файлах репозитариев установить значение: enabled = 0 Это будет означать что данный репозитарий выключен.
Пример - как сделать то же самое из графической оболочки: Заходим в Приложения\Установка\удаление программ Откроется менеджер пакетов, далее переходим в Правка\Репозитарии, снимаем все галочки и нажимаем кнопку Добавить. Заполняем так: Name - cdrom Description - cdrom Location - file:///media/ваш_cdrom
Установка пакетов для сборки ядра.
Теперь у нас есть возможность доустановить что-то необходимое из рапозитария на диске. Выполним установку следующих пакетов: yum install mc ncurses ncurses-devel gcc gcc-c++ libstdc++-devel yum install rpm-build redhat-rpm-config unifdef ncurses ncurses-devel
Компиляция нового ядра
Найдём и скопируем исходник ядра. Так как у нас нету интернета придется воспользоваться usb носителем (флешкой) С другого компа заходим по ссылке http://mirror.yandex.ru/centos/5.5/updates/SRPMS/ ищем там самый свежий исходник ядра (я нашел этот: kernel-2.6.18-194.26.1.el5.src.rpm) и скачиваем его на usb носитель (флешку). Затем с флешки копируем исходник ядра на наш ноутбук в /usr/src
Устанавливаем
исходники ядра:
cd
/usr/src mkdir
-p /usr/src/redhat/SOURCES mkdir -p /usr/src/redhat/BUILD rpm
-ihv ./kernel-2.6.18-194.26.1.el5.src.rpm
cd
/usr/src/redhat/SPECS rpmbuild -bp kernel-2.6.spec
Создаём
линк: ln
-s /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.x86_64
/usr/src/linux (это
для x64!!!)
Правим файлы:
В файле /usr/src/linux/drivers/net/Kconfig находим значение "config SIS900"
После описания раздела "config SIS900" вставляем описание "config SIS190": config SIS190 tristate "SiS 191/190 PCI Gigabit/Fast Ethernet Adapter support" depends on NET_PCI && PCI select CRC32 ---help--- Say Y here if you have a SiS 191/190 PCI Gigabit/Fast Ethernet adapter.
To compile this driver as a module, choose M here: the module will be called sis190. This is recommended. Выясним ID сетевой карты: lspci 00:00.0 Host bridge: Silicon Integrated Systems [SiS] 671MX 00:01.0 PCI bridge: Silicon Integrated Systems [SiS] PCI-to-PCI bridge 00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS968 [MuTIOL Media IO] (rev 01) 00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev 01) 00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 0f) 00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 0f) 00:03.3 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller 00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] 191 Gigabit Ethernet Adapter (rev 02) 00:05.0 IDE interface: Silicon Integrated Systems [SiS] SATA Controller / IDE mode (rev 03) 00:06.0 PCI bridge: Silicon Integrated Systems [SiS] PCI-to-PCI bridge 00:07.0 PCI bridge: Silicon Integrated Systems [SiS] PCI-to-PCI bridge 00:0f.0 Audio device: Silicon Integrated Systems [SiS] Azalia Audio Controller 01:00.0 VGA compatible controller: ATI Technologies Inc Mobility Radeon HD 3400 Series 02:00.0 Ethernet controller: Atheros Communications Inc. AR5001 Wireless Network Adapter (rev 01)
lspci -nn | grep 00:02.0 00:02.0 0601: 1039:0968 (rev 01) 0968 - это и есть ID нашей сетевой карты.
В файле /usr/src/linux/drivers/net/sis190.c находим значение:isa_bridge = pci_get_device(0x1039, 0x0965, isa_bridge); и меняем ID на:
isa_bridge = pci_get_device(0x1039, 0x0968, isa_bridge); Или на ID который определился у вас (в моём случае было 0x0968)
Собираем
модули: cd
/usr/src/linux make oldconfig make bzImage modules modules_install install
Сборка ядра длится около 20 минут, после окончания установки поверяем всё на отсутствие ошибок. Поправляем конфиг /boot/grub/grub.conf чтобы по умолчанию CentOS загрузил новое ядро и перезагружаемся.
Проверяем наличие сетевого интерфейса eth0: ls /etc/sysconfig/network-scripts | grep eth0 если ответ будет такой: ifcfg-eth0 Значит всё OK! Настраиваем сеть и радуемся.
При необходимости (если не драйвер так и не заработает) выполнить: modprobe sis190
Затем снова проверить наличие сетевого интерфейса eth0.
-= End =-
Источник: http://www.howtoforge.com/creating-the-sis191-gigabit-ethernet-driver-on-linux-2.6 |