PXE netboot [solved]

Имеем сервер с 3c905C-TX/TX-M сетевой, к которой кроссовером подключена сетевая карта Realtek 8139 клиента.

Настройки.

Каталог с будущим образом системы:

# ls /mnt/netboot/boot/ -1
boot
grub
initramfs-genkernel-x86-2.6.29-gentoo-r5
kernel-genkernel-x86-2.6.29-gentoo-r5
System.map-genkernel-x86-2.6.29-gentoo-r5

В неё был установлен grub, скомпилированный с флагом netboot. Я специально проверил ebuild — там включена поддержка кучи сетевых карт, в т. ч. и клиентской.

Для того, чтобы проверить загружаемость, достаточно только отдать по ftp файлы загрузчика и при условии, что всё хорошо, получим менюшку grub, согласно конфигу:

default 0
timeout 30
title Gentoo Linux
root (nd)
kernel /boot/kernel

Разумеется, настраиваем ещё DHCP:

 # cat dhcpd.conf
ddns-update-style none ;

option option-150 code 150 = text ;

subnet 172.16.0.0 netmask 255.255.255.248{
range 172.16.0.2 172.16.0.6;
option option-150 "/boot/grub/grub.lst";
filename "/boot/grub/pxegrub";
next-server 172.16.0.1;
}

и TFTP:

# cat /etc/conf.d/in.tftpd | grep -v '#' | sed '/^$/d'
INTFTPD_PATH="/mnt/netboot/"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"

На клиентской машине включаем загрузку по сети и ждём. По dhcp клиент получает исправно свой IP-адрес, маску, адрес DHCP сервера, а дальше пишет:

Цитата:
Found Realtek 8139 at 0xd800, ROM address 0xab80
Probing...[Realtek 8139] - ioaddr 0XD800, addr 00:80:… 10Mbps half-duplex

И это на 100Мб-й карте! На этом загрузка останавливается. Не появляется ни меню, ни чего-либо ещё. tcpdump вещает

13:57:29.957443 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:11:2f:7a:d3:41 (oui Unknown), length 548
13:57:29.958443 ARP, Request who-has 172.16.0.2 tell 172.16.0.1, length 28
13:57:30.000437 IP 172.16.0.1.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 300
13:57:30.958296 ARP, Request who-has 172.16.0.2 tell 172.16.0.1, length 28
13:57:31.958148 ARP, Request who-has 172.16.0.2 tell 172.16.0.1, length 28
13:57:31.976146 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from MA:CA:DD:RE:SS:00 (oui Unknown), length 548
13:57:31.998143 IP 172.16.0.1.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 300
13:57:32.014140 ARP, Request who-has 172.16.0.1 tell 172.16.0.2, length 46
13:57:32.014140 IP 172.16.0.1 > 172.16.0.2: ICMP echo request, id 41004, seq 0, length 28
13:57:32.014140 ARP, Reply 172.16.0.1 is-at MA:CA:DD:RE:SS:01 (oui Unknown), length 28
13:57:32.015140 IP 172.16.0.2.2070 > 172.16.0.1.tftp:  35 RRQ "/boot/grub/pxegrub" octet tsize 0
13:57:32.036137 IP 172.16.0.1.57708 > 172.16.0.2.2070: UDP, length 15
13:57:32.036137 IP 172.16.0.2.2070 > 172.16.0.1.57708: UDP, length 17
13:57:32.042136 IP 172.16.0.2.2071 > 172.16.0.1.tftp:  40 RRQ "/boot/grub/pxegrub" octet blksize 1456
13:57:32.063133 IP 172.16.0.1.55177 > 172.16.0.2.2071: UDP, length 15
13:57:32.063133 IP 172.16.0.2.2071 > 172.16.0.1.55177: UDP, length 4
13:57:32.064133 IP 172.16.0.1.55177 > 172.16.0.2.2071: UDP, length 1460
13:57:32.064133 IP 172.16.0.2.2071 > 172.16.0.1.55177: UDP, length 4
…

Т.е., если смотреть про логу tcpdump, то всё ок. Дома ради интереса вчера сделал такое по-быстрому, ноутбук по сети загрузил grub и меню показал. Что тут может быть неправильно?

Решение: пользуйтесь pxelinux.0 от проекта syslinux и ваши нервы будут в порядке.

По поводу 10Mbps half-duplex:

По поводу 10Mbps half-duplex: скачайте на сайте http://www.realtek.com.tw утилиту DOS Diagnostic program (RSET8139).
С помощью ее можно выставить режим, в котором будет работать карта. Не уверен, что это полностью решит все проблемы, но 100Mbps full-duplex заработает точно.

Чем не угодили mii-tools ?

Чем не угодили mii-tools ?

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

А mii-tools это умеет? Там же

А mii-tools это умеет? Там же надо писать в EEPROM на карте.
Я не в курсе, если умеет, то очень хорошо.

10Mb можно потом отрихтовать.

10Mb можно потом отрихтовать. Сейчас интереснее, почему эта зараза грузиться не хочет вообще. Взял другую машину, с тем же BIOS, но другой сетевой, тоже Realtek, так она вообще не захотела грузить PXE. Беда какая-то. И заменить сетевые тоже не получается: если воткнуть в компьютер PCI-сетевую, то ей передавать управление и загружаться с неё компьютер не хочет. Беда прямо какая-то!

в каком режиме РОМ сетевухи ?

в каком режиме РОМ сетевухи ?

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Для того, чтобы сетевая

Для того, чтобы сетевая загрузка была возможна, должен быть правильно сконфигурирован ее EEPROM. Не знаю на сколько поможет mii-tools, а той утилитой, о которой я писал ранее, это сделать можно - разрешить сетевую загрузку, установить размер BOOTROM, настроить скорость и т.д. Естественно, сама микросхема BOOTROM должна быть вставлена в панельку сетевой карты. Как вариант - прошивку BOOTROM можно зашить в BIOS материнской платы.

рекомендую посмотреть на gpxe

рекомендую посмотреть на gpxe и вшить его в бивес или в ром сетевухи

___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

pxegrub глючная штука, к тому

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

Так и сделал, правда, не видя

Так и сделал, правда, не видя вашего сообщения. Но всё равно спасибо, ибо оно оказалось тем, чем надо и загрузка пошла!

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".