LinuxForum.Fans
Тема

CentOS 6.3 не получается собрать драйвер

Автор: miol 25 сообщений 5978 просмотров
#308374

2 pitdron

text

find / -name mdio.h
  /usr/src/kernels/2.6.32-358.0.1.el6.x86_64/include/linux/mdio.h
  /usr/src/kernels/2.6.32-358.0.1.el6.x86_64/include/config/mdio.h
#308384
"miol⇓" написал:
Я пытаюсь завести SR-IOV. На штатном драйвере  при попытке

Что бы завести SR-IOV нужно еще и материнку и процессор подходящий.
У меня все заведено на старом драйвере почти без проблем.
Когда я попытался поставить драйвер 4.1.2 полезли страшные ошибки, вернул назад...
Так что я бы не копал в сторону драйвера.

#308390

2 AmnoN
Подскажи куда смотреть.
В BIOS'e VT(не помню точное название) включено SR-IOV включено.
Что еще проверить не знаю.

#308408

В BIOS'e VT-d должно присутствовать и включено

Тут есть:
http://communities.intel.com/community/wired/blog/2010/03/01/setting-up-red-hat-54-xen-for-sr-iov-using-the-intel-82576-gbe
Но я пользовался другим... не могу никак найти его

Во! Нашел..
http://www.intel.com/content/www/us/en/network-adapters/10-gigabit-network-adapters/ethernet-x520-sr-iov-red-hat-tech-brief.html
Самый толковый гайд.. рекомендую его внимательно изучить.

Так как я перерыл сеть в поисках настройки SR-IOV под KVM
В каждом какой нибудь мелочи не хватало

#312069
miol написал:
Есть необходимость собрать драйвер из исходников. При сборке вываливается с ошибкой, причину ошибки нагуглить не удается. Подскажите пожалуйста куда копать.

Копать не нужно. Собсно все добро вида MDIO_EEE_* дефайнится в ядрах 3.7 и выше в сырцах ядра include/uapi/linux/mdio.h. В драйверах этих включены ряд функций из новых ядер, а вот дефайны забыли включить походу.
Я сделал так. На системе с ядром 3.9 забрал эти дефайны:

text

barsuk@test:~$ cd /usr/src/linux-headers-3.9.0/include/uapi/linux/
barsuk@test:/usr/src/linux-headers-3.9.0/include/uapi/linux$ cat mdio.h | grep _EEE_ | grep "#define"
#define MDIO_PCS_EEE_ABLE    20    /* EEE Capability register */
#define MDIO_PCS_EEE_WK_ERR    22    /* EEE wake error counter */
#define MDIO_AN_EEE_ADV_100TX    0x0002    /* Advertise 100TX EEE cap */
#define MDIO_AN_EEE_ADV_1000T    0x0004    /* Advertise 1000T EEE cap */
#define MDIO_EEE_100TX        MDIO_AN_EEE_ADV_100TX    /* 100TX EEE cap */
#define MDIO_EEE_1000T        MDIO_AN_EEE_ADV_1000T    /* 1000T EEE cap */
#define MDIO_EEE_10GT        0x0008    /* 10GT EEE cap */
#define MDIO_EEE_1000KX        0x0010    /* 1000KX EEE cap */
#define MDIO_EEE_10GKX4        0x0020    /* 10G KX4 EEE cap */
#define MDIO_EEE_10GKR        0x0040    /* 10G KR EEE cap */

И засунул их в kcompat.h начиная со строки 3214.

text

#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) )
#ifdef ETHTOOL_GEEE
#include <linux/mdio.h>
сюда дефайны
/**
 * mmd_eee_cap_to_ethtool_sup_t
 * @eee_cap: value of the MMD EEE Capability register
 *
 * A small helper function that translates MMD EEE Capability (3.20) bits
 * to ethtool supported settings.
 */
static inline u32 mmd_eee_cap_to_ethtool_sup_t(u16 eee_cap)
{

Патч не прилагаю ибо далеко от этих машин.

ЗЫ
Даж порегался - один трид по этому вопросу в сети. А баг налицо.

Войдите или зарегистрируйтесь, чтобы ответить.