LINUX.ORG.RU

Hyper-V + Altlinux 7 kernel 3.14.41 - нет сети (hv_netvsc)

 


0

1
hv_utils: Registering HyperV Utility Driver
hv_vmbus: registering driver hv_util
hv_vmbus: registering driver hyperv_fb
hv_vmbus: registering driver hv_netvsc
hv_vmbus: registering driver hid_hyperv
hv_netvsc: hv_netvsc channel opened successfully
hv_netvsc vmbus_0_9 (unregistered net_device): Unable to complete receive buffer initialization with NetVsp - status 2
hv_netvsc vmbus_0_9 (unregistered net_device): unable to connect to NetVSP - -22
hv_netvsc vmbus_0_9 (unregistered net_device): unable to add netvsc device (ret -22)
hv_vmbus: probe failed for device vmbus_0_9 (-22)
hv_netvsc: probe of vmbus_0_9 failed with error -22

======

---Линух тока начал ковырять, так что тапками не закидывайте, если что не так )))

Поставил altlinux 7 (kernel 3.14.41) под hyper-v WS2012. Не работал нормально «Сетевой адаптер», если их кол-во было больше 2. Две сетевухи поднялись только так: Устаревший сетевой адаптер + Сетевой адаптер. Если надо больше и не Устаревшие , то «ШЛЯПА». В логах писалась вышеуказанная ошибка и 2-й адаптер не фунциклировал, хотя 1-й поднимался нормально. Скачал у MS LIS 4.x (Linux Integration Services 4.x), оттуда вытащил исходники для RHEL7, засунул в дрова kernel src. Предварительно отредактировав Kconfig и Makefile, перекомпилил ядро и новые дрова, установил... Хрен-то там... Не помогло... Излазил кучу сайтов.. На каком-то нашел патчик для файла connection.c из версии 3.х (он в папке с дровами HV). Посмотрел чего патчится и увидел практически тоже самое в новой версии LIS (то есть там это уже учтено)... Патчилась там функция int vmbus_post_msg(...). Думал я, думал ... и увидел одну интересную переменную u32 msec=1 и где она используется. Поменял на msec=100 и перекомпилил заново. Вуаля!.. Все прекрасно заработало! Устаревшие адаптеры повыкидывал нахфиг, поставил Стандартные... Работает пока стабильно... udevd переименует адаптеры на «ура». С другими значениями msec пока не пробовал, может и с =10 заработает

P.S. При компиляции дров могут выскочить ошибки на HV_DRV_VERSION. Я просто скопировал перед компиляцией строку с #define HV_DRV_VERSION "...." из файла hv_compat.h в каждый файл *.c.



Последнее исправление: martyushov-nv (всего исправлений: 5)

Я просто скопировал перед компиляцией строку с #define HV_DRV_VERSION "...."

Вообще-то, чтобы строка читалась компилятором, её нужно раскомментировать, то есть убрать в начале #

adamantan
()
Ответ на: комментарий от adamantan

#define - это директива препроцессора задаёт макрос или символическую константу... Не?

martyushov-nv
() автор топика

Куда-нибудь надо зарепортить баг.... «u32 msec=1» к чему относится ? К драйверу Hyper-V ? Если он в составе ядра поддерживается, то, наверное, в район kernel.org репортить надо.

AS ★★★★★
()
Ответ на: комментарий от mystery


Ответ на комментарий:

да ты ебнутый

Да они тут все такие. Взрослый человек в здравом уме не будет тратить время на прыщесекту. А им в среднем 30.

anonymous
()
Ответ на: комментарий от AS

AS: Куда-нибудь надо зарепортить баг.... «u32 msec=1» к чему относится ? К драйверу Hyper-V ? Если он в составе ядра поддерживается, то, наверное, в район kernel.org репортить надо.

Вообще сам файл connection.c идет в составе LIS от MS. В нем и копирайт от MS. Поддерживается ли он в составе ядра - ХЗ... Я пока НУБ в линуксе... Как определить-то? Качнуть src ядра с кернел орг и посмотреть, что там в дровах для MS HV?

А вообще, может быть это только у меня такие проблемы, т.к. очень мало инфы в инете я нашел по этому вопросу...

Написал на всякий случай, мало ли, кому пригодится...

martyushov-nv
() автор топика
Ответ на: комментарий от AS

В принципе, в той функции можно поменять для красоты и количество итераций в цикле, т.к. там их 20, а с учетом msec=100 и условия if (msec<2048 ) msec*=2 количество их сильно сократится... )) Вообще тут есть где поиграться с параметрами... Мои 100 ms - это была проба «от балды». Ну и непонятно, зависит ли задержка инициализации драйверов LIS на HV от аппаратного обеспечения сервера.

martyushov-nv
() автор топика
Ответ на: комментарий от martyushov-nv

т.к. очень мало инфы в инете я нашел по этому вопросу...

Просто, по большей части, запускают наоборот. То есть, Windows в Xen/KVM/VMWare/разное, а не Linux в Hyper-V.

AS ★★★★★
()
Ответ на: комментарий от AS

да hyper-v вообще не вменяемая виртуализация, 2-3 её использования это экономия на лицензиях винды, покупают 1 лицензию вин-сервер стандарт, запускают hyper-v внутри vmware, и используют её 3 раза не нарушая лицензию. А тс и подобные ему мазахисты должны страдать.

erzenteded
()
Ответ на: комментарий от erzenteded

Если ТС это я, то вы противоречите сами себе ))

erzenteded:
...мазахисты должны страдать

Мазохисты как раз получают удовольствие от самоистязания )))

К тому же это не мазохизм с моей стороны, а чисто спортивный интерес. Так что страданий не было ни в коей мере.

И если кто-то не сидит на линуксе, то это не делает его извращенцем. Кроме собственного желания есть еще такая штука, как политика компании, и прочие факторы, которые предписывают использовать продукты MS. Мне вот, например, пришлось недавно срочно переносить RHEL6 с небольшой оракловой базой на виртуалку, т.к. родное железо сдохло. И я столкнулся с проблемой инициализации «Стандартного адаптера» HV. Установил потом, конечно, устаревший... Но проблема со Стандартным-то осталась... Вот и захотелось поковырять в свободное ото сна время...

martyushov-nv
() автор топика
Ответ на: комментарий от martyushov-nv

причём тут линукс используют? большинство нормальных контор используют hyper-v как я описал выше, покупают 3-4 лицензии winsever standart, на 3 разные железки , где стоит vmware ставят внутри hyper-v, и там уже запускают по 3 вин сервера, тем самым используя 3 лицензии 9 раз на необходимые базы mssql и 1С.

Не умеешь использовать esxi, страдай, но причём тут использование линукс? hyper-v это не виртуализация, это способ экономить лицензии.

erzenteded
()
Ответ на: комментарий от erzenteded

ну извини, камрад, видимо я тебя неправильно понял.. ))

martyushov-nv
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.