G@riK Posted January 15, 2013 Posted January 15, 2013 Вечер добрый. Столкнулись с необходимость установки 10G-карточки (чипсет 82559) в сервер со старой осью FreeBSD 7.2. Обновлять систему нельзя. Пробовали использовать встроенные драйвера версии 1.7.4 (но они, как оказалось, не поддерживают чипсет 82559): ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 1.7.4> port 0xb880-0xb89f mem 0xcfe80000-0xcfefffff,0xcff78000-0xcff7bfff irq 30 at device 0.0 on pci7 ix0: Using MSIX interrupts with 3 vectors ix0: ixgbe_dma_malloc: bus_dma_tag_create failed; error 22 ix0: Unable to allocate TX Descriptor memory device_attach: ix0 attach returned 12 ix1: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 1.7.4> port 0xbc00-0xbc1f mem 0xcff80000-0xcfffffff,0xcff7c000-0xcff7ffff irq 37 at device 0.1 on pci7 ix1: Using MSIX interrupts with 3 vectors ix1: ixgbe_dma_malloc: bus_dma_tag_create failed; error 22 ix1: Unable to allocate TX Descriptor memory device_attach: ix1 attach returned 12 Т.к. не получилось, то решили скачать драйвера с сайта Intel (скачали в итоге несколько версий от 2.3.8 до 2.4.10), но они не компилируются: Warning: Object directory not changed from original /usr/src/ixgbe-2.3.8/src @ -> /usr/src/sys machine -> /usr/src/sys/i386/include awk -f @/tools/makeobjops.awk @/kern/device_if.m -h awk -f @/tools/makeobjops.awk @/kern/bus_if.m -h awk -f @/tools/makeobjops.awk @/dev/pci/pci_if.m -h :> opt_bdg.h cc -O2 -fno-strict-aliasing -pipe -DSMP -DIXGBE_FDIR -D_KERNEL -DKLD_MODULE -std=c99 -nostdinc -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c ixgbe.c cc -O2 -fno-strict-aliasing -pipe -DSMP -DIXGBE_FDIR -D_KERNEL -DKLD_MODULE -std=c99 -nostdinc -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c ixv.c In file included from ixv.c:39: ixv.h: In function 'drbr_needs_enqueue': ixv.h:411: warning: implicit declaration of function 'buf_ring_empty' ixv.h:411: warning: nested extern declaration of 'buf_ring_empty' ixv.c: In function 'ixv_tx_ctx_setup': ixv.c:2357: error: 'CSUM_SCTP' undeclared (first use in this function) ixv.c:2357: error: (Each undeclared identifier is reported only once ixv.c:2357: error: for each function it appears in.) *** Error code 1 Stop in /usr/src/ixgbe-2.3.8/src. Может у кого есть опыт использования этой карточки на старых системах или драйвера новее 1.7.4 (кроме тех, которые мы уже пробовали), но с поддержкой чипсета 82559? Вставить ник Quote
Ivan_83 Posted January 15, 2013 Posted January 15, 2013 /usr/src/sys/sys/mbuf.h:#define CSUM_SCTP 0x0040 /* will csum SCTP */ /usr/src/sys/sys/mbuf.h:#define CSUM_SCTP_IPV6 0x0080 /* will csum IPv6/SCTP */ /usr/src/sys/sys/mbuf.h:#define CSUM_SCTP_VALID 0x1000 /* SCTP checksum is valid */ хотите добавляйте инклюд, хотите в сам файл допишите. убедитесь что у вас есть /usr/src/sys/sys/buf_ring.h Вставить ник Quote
G@riK Posted January 15, 2013 Author Posted January 15, 2013 убедитесь что у вас есть /usr/src/sys/sys/buf_ring.h Такого файла нет. И в mbuf.h нет CSUM_SCTP и других параметров. Вставить ник Quote
Ivan_83 Posted January 15, 2013 Posted January 15, 2013 У вас вариантов не много: - пофиксить дрова чтобы поддерживали; - бэкпортить новые; - обновить систему; - забить. Слышал что игбшным дровам может быть мало мбуфов и ещё чего то что тюнится, с дефолтовыми настройками системы они работать не могут. Вставить ник Quote
G@riK Posted January 16, 2013 Author Posted January 16, 2013 Решили всё таки попробовать собрать с изменением приведенных выше параметров в mbuf.h и добавили buf_ring.h. В итоге драйвера собрались, загружаются, но в логах ошибки: ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.4.4> port 0xb880-0xb89f mem 0xcfe80000-0xcfefffff,0xcff78000-0xcff7bfff irq 30 at device 0.0 on pci7 ix0: Using MSIX interrupts with 9 vectors ix0: RX Descriptors exceed system mbuf max, using default instead! ix0: ixgbe_dma_malloc: bus_dma_tag_create failed; error 22 ix0: Unable to allocate TX Descriptor memory device_attach: ix0 attach returned 12 ix1: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.4.4> port 0xbc00-0xbc1f mem 0xcff80000-0xcfffffff,0xcff7c000-0xcff7ffff irq 37 at device 0.1 on pci7 ix1: Using MSIX interrupts with 9 vectors ix1: RX Descriptors exceed system mbuf max, using default instead! ix1: ixgbe_dma_malloc: bus_dma_tag_create failed; error 22 ix1: Unable to allocate TX Descriptor memory device_attach: ix1 attach returned 12 Соответственно, сетевуха не работает. Вставить ник Quote
Сильвер Posted January 16, 2013 Posted January 16, 2013 Обновлять систему нельзя. Думаю, всем интересно, почему. Вставить ник Quote
G@riK Posted January 16, 2013 Author Posted January 16, 2013 Обновлять систему нельзя. Думаю, всем интересно, почему. Есть вероятность, что те сервисы, которые сейчас крутятся на этом сервере, могут не заработать на обновленной системе. Вставить ник Quote
boco Posted January 16, 2013 Posted January 16, 2013 Обновлять систему нельзя. Думаю, всем интересно, почему. Есть вероятность, что те сервисы, которые сейчас крутятся на этом сервере, могут не заработать на обновленной системе. я очень сомневаюсь что что-то не заработает, но вы, наверное, можете сделать копию на тестовый сервер и обновить на нем... Вставить ник Quote
Elisium Posted January 17, 2013 Posted January 17, 2013 ix0: RX Descriptors exceed system mbuf max, using default instead! 1. Добавьте в loader.conf: kern.ipc.nmbclusters=262800 и в sysctl.conf kern.ipc.maxsockbuf=83886080 2. Перегрузитесь. п.с. Надеюсь, у Вас амд64 7.2 Вставить ник Quote
MaLblsH Posted January 21, 2013 Posted January 21, 2013 Обновлять систему нельзя. Думаю, всем интересно, почему. Есть вероятность, что те сервисы, которые сейчас крутятся на этом сервере, могут не заработать на обновленной системе. я очень сомневаюсь что что-то не заработает, но вы, наверное, можете сделать копию на тестовый сервер и обновить на нем... Да, так и решили поступить. Сделать копию диска с системой и спокойно обновиться до 8.x на тестовом стенде Собственно и обновились и всё даже заработало: и драйвера к сетевой и всё что нужно. Правда есть одно НО (о нём ниже). ix0: RX Descriptors exceed system mbuf max, using default instead! 1. Добавьте в loader.conf: kern.ipc.nmbclusters=262800 и в sysctl.conf kern.ipc.maxsockbuf=83886080 2. Перегрузитесь. п.с. Надеюсь, у Вас амд64 7.2 Вот тут у нас и проблема: т.к. у нас UTM5, у которого пакет RFW работает только под i386, нам приходится держать всё это именно на i386. Но т.к. оперативки у нас 12Gb, ядро у собрано с PAE для поддержки оной. А теперь возвращаясь к обновлению до 8.x. Удалось обновиться до следующей ветки: 8.0-RELEASE-p6 Изначально собрали с GENERIC. Драйвера встали (как штатные, так и с сайта Intel), сетевуху видно, линк есть, всё круто. Решили пересобрать ядро с PAE да и заменить диски.. После пересборки ядра с PAE, драйвера опять начали ругаться: ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.4.4> port 0x2000-0x201f mem 0xd8000000-0xd807ffff,0xd8100000-0xd8103fff irq 30 at device 0.0 on pci7 ix0: Using MSIX interrupts with 5 vectors ix0: ixgbe_dma_malloc: bus_dma_tag_create failed; error 22 ix0: Unable to allocate TX Descriptor memory device_attach: ix0 attach returned 12 ix1: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.4.4> port 0x2020-0x203f mem 0xd8080000-0xd80fffff,0xd8104000-0xd8107fff irq 37 at device 0.1 on pci7 ix1: Using MSIX interrupts with 5 vectors ix1: RX Descriptors exceed system mbuf max, using default instead! ix1: ixgbe_dma_malloc: bus_dma_tag_create failed; error 22 ix1: Unable to allocate TX Descriptor memory device_attach: ix1 attach returned 12 В гугле по ixgbe и PAE нашёл интересный патч, но там немного другое, кмк. Хотя попробовать стоит. Вставить ник Quote
Сильвер Posted January 21, 2013 Posted January 21, 2013 (edited) 8.0-RELEASE-p6 Имхо, надо обновляться до 8/9-STABLE. Много важных вещей в net/* не попало в 8.0-RELEASE. Вот тут у нас и проблема: т.к. у нас UTM5, у которого пакет RFW работает только под i386, нам приходится держать всё это именно на i386. Может попробовать? # Enable 32-bit runtime support for FreeBSD/i386 binaries. options COMPAT_FREEBSD32 Edited January 21, 2013 by Сильвер Вставить ник Quote
Hawk128 Posted January 21, 2013 Posted January 21, 2013 Вот тут у нас и проблема: т.к. у нас UTM5, у которого пакет RFW работает только под i386, нам приходится держать всё это именно на i386. Но т.к. оперативки у нас 12Gb, ядро у собрано с PAE для поддержки оной. Вот это как раз не проблема. utm_rfw на amd64 запускается вообще без проблем. Сам utm я то же смог запустить, но вот платежную систему - никак. Поэтому под биллинг i386, а вот все остальное - amd64. Вставить ник Quote
boco Posted January 21, 2013 Posted January 21, 2013 Изначально собрали с GENERIC. Драйвера встали (как штатные, так и с сайта Intel), сетевуху видно, линк есть, всё круто. Решили пересобрать ядро с PAE да и заменить диски.. После пересборки ядра с PAE, драйвера опять начали ругаться: ix1: RX Descriptors exceed system mbuf max, using default instead! ix1: ixgbe_dma_malloc: bus_dma_tag_create failed; error 22 ix1: Unable to allocate TX Descriptor memory device_attach: ix1 attach returned 12 попробуйте cat << EOF >> /boot/loader.conf kern.ipc.nmbclusters=262144 kern.ipc.nmbjumbop=262144 kern.ipc.nmbjumbo16=32000 kern.ipc.nmbjumbo9=64000 EOF Вставить ник Quote
MaLblsH Posted January 23, 2013 Posted January 23, 2013 Имхо, надо обновляться до 8/9-STABLE. Много важных вещей в net/* не попало в 8.0-RELEASE. MaLblsH (21 января 2013 - 09:55) писал: Вот тут у нас и проблема: т.к. у нас UTM5, у которого пакет RFW работает только под i386, нам приходится держать всё это именно на i386. Может попробовать? Цитата # Enable 32-bit runtime support for FreeBSD/i386 binaries. options COMPAT_FREEBSD32 Попробую обновить до последней stable 8.3. Очень давно пробовали ставить на amd64, и вроде даже эту опцию включали, но стоит ещё раз попробовать. Вот это как раз не проблема. utm_rfw на amd64 запускается вообще без проблем. Сам utm я то же смог запустить, но вот платежную систему - никак. Поэтому под биллинг i386, а вот все остальное - amd64. Был на форуме NetUp человек, который переписывал rfw под amd64, но у нас всё равно не вышло его (rfw) завести. С того момента (2007 или 2008 год) больше не пробовали. Если не получится с обновлённой до 8.3 i386, попробую поднять utm на той же 8.3, только amd64. А платёжная система - это Вы про payment_tool или это связка с популярными платёжными системами ? Если да, то мы их и не используем, поэтому есть шанс. Разделять биллинг не хочется на 2 сервера. попробуйте cat << EOF >> /boot/loader.conf kern.ipc.nmbclusters=262144 kern.ipc.nmbjumbop=262144 kern.ipc.nmbjumbo16=32000 kern.ipc.nmbjumbo9=64000 EOF Добавил, перезагрузил. Параметры применились, а вот драйвер пишет всё туже ошибку. Вставить ник Quote
Hawk128 Posted January 23, 2013 Posted January 23, 2013 Завести на amd64 очень легко, чуть с библиотеками посмотрите для запуска (ldd) и никаких проблем. Вставить ник Quote
MaLblsH Posted January 24, 2013 Posted January 24, 2013 Сейчас буду пробовать, потому что обновление до последней stable 8.3 не помогло. Даже ради эксперимента поставил чистый SNAPSHOT 8.3 STABLE i386, собрал ядро PAE и неуспех. Вставить ник Quote
MaLblsH Posted January 28, 2013 Posted January 28, 2013 Спасибо всем за помощь! UTM5 без проблем встал на x64 (ядро+rfw). Большего от него и не надо. Вставить ник Quote
alter1 Posted March 27, 2013 Posted March 27, 2013 (edited) Сегодня сам с аналогичной проблемой столкнулся. Решил. 1. cvsup до последней 7.2 2. действительно sysctl'ами увеличить буфера 3. наложить патч (порт ixgbe 2.4.5) и пересобрать ядро с опцией device ixgbe. Можно PAE'шное. alter.org.ua/soft/fbsd/ixgbe Edited March 27, 2013 by alter1 Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.