Перейти к содержимому
Калькуляторы

FreeBSD 7.2 & INTEL x520-da2

Вечер добрый.

 

Столкнулись с необходимость установки 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?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

/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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

убедитесь что у вас есть /usr/src/sys/sys/buf_ring.h

Такого файла нет.

 

И в mbuf.h нет CSUM_SCTP и других параметров.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У вас вариантов не много:

- пофиксить дрова чтобы поддерживали;

- бэкпортить новые;

- обновить систему;

- забить.

 

Слышал что игбшным дровам может быть мало мбуфов и ещё чего то что тюнится, с дефолтовыми настройками системы они работать не могут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Решили всё таки попробовать собрать с изменением приведенных выше параметров в 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

 

Соответственно, сетевуха не работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обновлять систему нельзя.

 

Думаю, всем интересно, почему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обновлять систему нельзя.

 

Думаю, всем интересно, почему.

 

Есть вероятность, что те сервисы, которые сейчас крутятся на этом сервере, могут не заработать на обновленной системе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обновлять систему нельзя.

Думаю, всем интересно, почему.

Есть вероятность, что те сервисы, которые сейчас крутятся на этом сервере, могут не заработать на обновленной системе.

я очень сомневаюсь что что-то не заработает, но вы, наверное, можете сделать копию на тестовый сервер и обновить на нем...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обновлять систему нельзя.

Думаю, всем интересно, почему.

Есть вероятность, что те сервисы, которые сейчас крутятся на этом сервере, могут не заработать на обновленной системе.

я очень сомневаюсь что что-то не заработает, но вы, наверное, можете сделать копию на тестовый сервер и обновить на нем...

 

Да, так и решили поступить. Сделать копию диска с системой и спокойно обновиться до 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 нашёл интересный патч, но там немного другое, кмк. Хотя попробовать стоит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем Сильвер

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот тут у нас и проблема: т.к. у нас UTM5, у которого пакет RFW работает только под i386, нам приходится держать всё это именно на i386. Но т.к. оперативки у нас 12Gb, ядро у собрано с PAE для поддержки оной.

 

Вот это как раз не проблема. utm_rfw на amd64 запускается вообще без проблем. Сам utm я то же смог запустить, но вот платежную систему - никак. Поэтому под биллинг i386, а вот все остальное - amd64.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Изначально собрали с 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Имхо, надо обновляться до 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

 

Добавил, перезагрузил. Параметры применились, а вот драйвер пишет всё туже ошибку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Завести на amd64 очень легко, чуть с библиотеками посмотрите для запуска (ldd) и никаких проблем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сейчас буду пробовать, потому что обновление до последней stable 8.3 не помогло.

Даже ради эксперимента поставил чистый SNAPSHOT 8.3 STABLE i386, собрал ядро PAE и неуспех.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо всем за помощь!

UTM5 без проблем встал на x64 (ядро+rfw). Большего от него и не надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сегодня сам с аналогичной проблемой столкнулся. Решил.

1. cvsup до последней 7.2

2. действительно sysctl'ами увеличить буфера

3. наложить патч (порт ixgbe 2.4.5) и пересобрать ядро с опцией device ixgbe. Можно PAE'шное.

alter.org.ua/soft/fbsd/ixgbe

Изменено пользователем alter1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.