G@riK Posted January 15, 2013 · Report post Вечер добрый. Столкнулись с необходимость установки 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted January 15, 2013 · Report post /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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
G@riK Posted January 15, 2013 · Report post убедитесь что у вас есть /usr/src/sys/sys/buf_ring.h Такого файла нет. И в mbuf.h нет CSUM_SCTP и других параметров. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted January 15, 2013 · Report post У вас вариантов не много: - пофиксить дрова чтобы поддерживали; - бэкпортить новые; - обновить систему; - забить. Слышал что игбшным дровам может быть мало мбуфов и ещё чего то что тюнится, с дефолтовыми настройками системы они работать не могут. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
G@riK Posted January 16, 2013 · Report post Решили всё таки попробовать собрать с изменением приведенных выше параметров в 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Сильвер Posted January 16, 2013 · Report post Обновлять систему нельзя. Думаю, всем интересно, почему. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
G@riK Posted January 16, 2013 · Report post Обновлять систему нельзя. Думаю, всем интересно, почему. Есть вероятность, что те сервисы, которые сейчас крутятся на этом сервере, могут не заработать на обновленной системе. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
boco Posted January 16, 2013 · Report post Обновлять систему нельзя. Думаю, всем интересно, почему. Есть вероятность, что те сервисы, которые сейчас крутятся на этом сервере, могут не заработать на обновленной системе. я очень сомневаюсь что что-то не заработает, но вы, наверное, можете сделать копию на тестовый сервер и обновить на нем... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Elisium Posted January 17, 2013 · Report post 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
MaLblsH Posted January 21, 2013 · Report post Обновлять систему нельзя. Думаю, всем интересно, почему. Есть вероятность, что те сервисы, которые сейчас крутятся на этом сервере, могут не заработать на обновленной системе. я очень сомневаюсь что что-то не заработает, но вы, наверное, можете сделать копию на тестовый сервер и обновить на нем... Да, так и решили поступить. Сделать копию диска с системой и спокойно обновиться до 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Сильвер Posted January 21, 2013 (edited) · Report post 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Hawk128 Posted January 21, 2013 · Report post Вот тут у нас и проблема: т.к. у нас UTM5, у которого пакет RFW работает только под i386, нам приходится держать всё это именно на i386. Но т.к. оперативки у нас 12Gb, ядро у собрано с PAE для поддержки оной. Вот это как раз не проблема. utm_rfw на amd64 запускается вообще без проблем. Сам utm я то же смог запустить, но вот платежную систему - никак. Поэтому под биллинг i386, а вот все остальное - amd64. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
boco Posted January 21, 2013 · Report post Изначально собрали с 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
MaLblsH Posted January 23, 2013 · Report post Имхо, надо обновляться до 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Hawk128 Posted January 23, 2013 · Report post Завести на amd64 очень легко, чуть с библиотеками посмотрите для запуска (ldd) и никаких проблем. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
MaLblsH Posted January 24, 2013 · Report post Сейчас буду пробовать, потому что обновление до последней stable 8.3 не помогло. Даже ради эксперимента поставил чистый SNAPSHOT 8.3 STABLE i386, собрал ядро PAE и неуспех. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
MaLblsH Posted January 28, 2013 · Report post Спасибо всем за помощь! UTM5 без проблем встал на x64 (ядро+rfw). Большего от него и не надо. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alter1 Posted March 27, 2013 (edited) · Report post Сегодня сам с аналогичной проблемой столкнулся. Решил. 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...