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 и будет вам счастье
Так и сделал, правда, не видя
Так и сделал, правда, не видя вашего сообщения. Но всё равно спасибо, ибо оно оказалось тем, чем надо и загрузка пошла!