LINUX.ORG.RU

[История успеха] RT3090 with rt2800pci


0

1

Два последних коммита в гите rt2x00

rt2x00: Fix radio off hang issue for PCIE interface
rt2x00: Fix and fine-tune rf registers for RT3070/RT3071/RT3090
наложенные на compat-wireless-2011-01-09, решили проблемы с инициализацией карты и подключением к сети с wpa2 на RT3090 в моём случае:
43:00.0 Network controller: RaLink RT3090 Wireless 802.11n 1T/1R PCIe
	Subsystem: Hewlett-Packard Company Device 1453
	Kernel driver in use: rt2800pci
	Kernel modules: rt2800pci
Ядро 2.6.37, дистр gentoo. В ванильном ядре даже прошивка не загружалась - это было сломано на 64битных ядрах где-то с 34ого ядра. Надеюсь эти патчи будут в 38м.

А чем официальные не устраивают? И открытые, и дополнительно фирмварь давненько уже не требуют, и весь функционал карточки вроде как раскрывают. Только почему-то в некоторых дистрах не для всех карточек в уже собранном виде есть (в Fedor'е, например для rt30X0, кроме rt3070, нет).

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

Не собрались они. Вываливают такую вот ошибку при сборке (не я один с такой ошибкой):

20101216_RT3090_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/os/linux/../../os/linux/sta_ioctl.c:2973: error: unknown field 'private' specified in initializer 

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

Запамятовал я, но вроде тебе я писал не так давно, что нужно сменить версию ядра, пусть даже на самую маленькую циферку.
А ещё вот здесь почему-то есть аж две ссылки на драйвер для rt3090. Ссылки немного отличаются, так что можно попытать счастье.
Также можно поискать на их ftp'шнике старую версию драйвера.
P.S.: в этой карте ещё и синий зуб встроен?

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

Запамятовал я, но вроде тебе я писал не так давно, что нужно сменить версию ядра, пусть даже на самую маленькую циферку.

Я только перед новым годом приобрёл ноут с этой карточкой, пока гента собиралась, пока матерился и искал по форумам... Больше всего инфы на формумах убунты нашёл. И решение конечно же поставить драйвер с сайта, а с ним облом. Тут тоже мучаются и безуспешно пытаются собрать уже несколько версий. ИЧСХ, каждый раз разные ошибки вылезают.

P.S.: в этой карте ещё и синий зуб встроен?

Да, синий зуб встроен и отлично включается/отключается аппаратной кнопкой, когда модуль hp_wmi загружен. Никаких дополнительных телодвижений не потребовалось.

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

Да, с ним. Без проблем приконнектился к сети с шифрованием wpa2, случайных дисконнектов не наблюдается.

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

А я только что фичреквест в «багзиллу» русской Федоры написал - на добавление в репозиторий официальных драйверов (для некоторых ралинковских чипов), отсутствующих в рпмфьюжн.

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

Если у них без ошибок соберётся или появятся патчи для беспроблемной сборки официальных дров, то это совсем неплохо :)

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

Не забывай, что там если скомпилят и соберут в пакет, то это, несомненно, будет заточено под федоровскре ядро, а оно, как известно включает кучу дополнительных патчей. Но в любом случае никто не запрещает взять *.srpm и собрать ядро из него, а уже поверх собрать модуль для беспроводной сети. В общем-то, тоже вариант =)
Кстати, мой фичреквест приняли. Обещаются за пару дней сделать. Правда, не знаю, как насчёт rt3090 (у меня-то rt3060).

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

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

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

Ну, там в redme написано, что тестировалось в redhat 7.3 %(
Правда, это же написано и для rt3060. Но для моей карты собирается. Пока собирается.

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

У меня сборка на ядрах начиная с 2.6.33 вылетала с ошибкой подобного содержания. Я просто закомментировал в исходнике проблемное поле структуры и дело в шляпе. Это просто epic!

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

И как найти проблемное место?
//ни разу не кодер.

carasin ★★★★★ ()
Ответ на: комментарий от carasin
os/linux/sta_ioctl.c:2973

Вот вам файл и номер строки. Вот только далеко не факт, что это сработает. Убрать что-то из исходников и чтобы оно ещё и собралось и заработало как нужно - это либо последствия слишком банального косяка разработчика, либо же просто везение, с учетом того, что, к примеру, что-то выкинули из API ядра, а код как раз таки написан очень грамотно и дальновидно.

Желаю удачи.

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

Есть предложение.
По моей просьбе ребята из русской федоры собрали пакет под мою карту. А создание пакетов под rt3090, с учётом всего гемора с этим драйвером, они считают проблематичным, пока не найдётся кто-либо, кто будет их тестировать. Если есть желание побороться с этим драйвером (пусть и в федоре, а не именно в генте - изменения ведь можно и в другом дистре использовать), отпишись о своём согласии на тестирование в «багзилле» RFR по этому адресу (потребуется нехитрая регистрация).
Для этого всего-то нужно будет скачать live-cd образ и загрузиться с него, а потом поверх установить драйвер rt3090. Ну а ежели есть желание помочь участникам RFR в разборках с кодом, то, думаю, они будут только рады. В любом случае ничего не потеряешь =)

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

Эх! Не прокатило лив сиди. Счас ядро федоры на генту поставлюи молуль к нему.

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

Как делал?
1. Загрузиться с лив-сд/двд/етс. RFR14;
2. Настроить инет любым удобным способом;
3. $ su -c 'yum install akmod-rt3090' - всё, что нужно, притянется по зависимостям (должно притянуться);
4. $ akmods - это создаст (должно создать) ядрёный модуль;
5. $ su -c 'modprobe rt3090sta' (вроде так, по крайней мере на своей rt3060 я подгружаю rt3562sta). Кстати, если пользуешь NetworkManager, лучше грузись с гномовского лива (его nm-applet как-то пошустрее реагирует на появление новых устройств).
По результатам отпишись в багзилле RFR.

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

Ради чистоты эксперимента сделал. Пришлось включать репозиторий руками и ставить нужные kernel-devel, а то поставил совсем не то автоматом. Но в результате чистый эксперимент, коннект есть. Правда не могу проверить сеть стандарта n - маршрутизатор только b/g

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

Точно, там же пакет поместили на время тестирования в тестовый репозиторий, а он по умолчанию отключен. Это да, это я не сказал.
Да и kernel-devel... Думал, он автоматом подтянется за akmod'ом. Ан-нет... Но в любом случае, молодец, что сам разобрался.
P.S.: спасибо за отклик и помощь. Теперь, благодаря проделанной работе, поддержка устройств в RFR пополнилась ещё несколькими проблемными девайсами.

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

kernel-devel самой свежей из доступных версий подтянулись (35.10-74), а ядро 35.6-10 было.
Самое интересное, что вначале на бук именно RFRemix поставил. Не нашёл нужных модулей для wifi и решил генту собрать. Примерно таким же образом когда-то давно на настольном компе переползал с Fedora 4 (которая оставила очень хорошие воспоминания) на генту :)
Посмотрел на патчи, что накладываются при сборке ядра - они никак не решают проблему сборки. Или всё проще - ралинковские драйверы не очень дружат с 37м. Закомментировать проблемный кусок в коде ещё не пробовал. Надеюсь вечером попробовать.

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

По результатам отпишись сюда. Чисто спортивного интереса ради. А вообще, в будущем всё равно использоваться будут ещё более новые ядра, так что проблема сборки под них однозначно актуальна.

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

Это просто цирк с конями :) В общем не стал менять параметры config.mk, сорцы не правил. И что же я вижу:
/usr/src/20101216_RT3090_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/os/linux/../../os/linux/cfg80211.c:2594: предупреждение: формат ‘%d’ предполагает тип ‘int’, но аргумент 2 имеет тип ‘long unsigned int’
счас поправлю, но это просто смешно

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

Но цирк продолжился!
/usr/src/20101216_RT3090_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/os/linux/../../os/linux/cfg80211.c:678: ошибка: параметр 2 (‘Type’) имеет неполный тип

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

Блин =) Значит в первый раз я тебя с Инсомниумом попутал )) Помню, что кому-то уже отписывал по этому вопросу, но не вспомнил кому.

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