LINUX.ORG.RU

Ralink 3290 WiFi/Bluetooth

 ,


1

2

Привет. В общем, есть карточка Ralink 3290.

$ lspci | grep Ralink
07:00.0 Network controller: Ralink corp. RT3290 Wireless 802.11n 1T/1R PCIe
07:00.1 Bluetooth: Ralink corp. RT3290 Bluetooth

WiFi работает, Bluetooth - нет. Чтобы заработал,говорят надо поставить ралинковский драйвер, например отсюда - https://aur.archlinux.org/packages/rt3090/

Однако он не собирается, ругаясь примерно таким образом:

/tmp/yaourt-tmp-vl/aur-rt3090/src/20101216_RT3090_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/os/linux/../../os/linux/pci_main_dev.c: На верхнем уровне:
/tmp/yaourt-tmp-vl/aur-rt3090/src/20101216_RT3090_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/os/linux/../../os/linux/pci_main_dev.c:514:14: предупреждение: «RTMPInitPCIeDevice» определена, но нигде не используется [-Wunused-function]
static VOID RTMPInitPCIeDevice(
^
In file included from /tmp/yaourt-tmp-vl/aur-rt3090/src/20101216_RT3090_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/include/os/rt_linux.h:31:0,
from /tmp/yaourt-tmp-vl/aur-rt3090/src/20101216_RT3090_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/include/rtmp_os.h:32,
from /tmp/yaourt-tmp-vl/aur-rt3090/src/20101216_RT3090_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/include/rt_config.h:62,
from /tmp/yaourt-tmp-vl/aur-rt3090/src/20101216_RT3090_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/os/linux/../../os/linux/pci_main_dev.c:28:
include/linux/module.h:87:32: ошибка: «__mod_pci_device_table» aliased to undefined symbol «rt2860_pci_tbl»
extern const struct gtype##_id __mod_##gtype##_table \
^
include/linux/module.h:140:3: замечание: in expansion of macro «MODULE_GENERIC_TABLE»
MODULE_GENERIC_TABLE(type##_device,name)
^
/tmp/yaourt-tmp-vl/aur-rt3090/src/20101216_RT3090_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/os/linux/../../os/linux/pci_main_dev.c:73:1: замечание: in expansion of macro «MODULE_DEVICE_TABLE»
MODULE_DEVICE_TABLE(pci, rt2860_pci_tbl);
^
cc1: some warnings being treated as errors
make[2]: *** [/tmp/yaourt-tmp-vl/aur-rt3090/src/20101216_RT3090_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/os/linux/../../os/linux/pci_main_dev.o] Ошибка 1
make[1]: *** [_module_/tmp/yaourt-tmp-vl/aur-rt3090/src/20101216_RT3090_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/os/linux] Ошибка 2
make[1]: Выход из каталога `/usr/src/linux-3.8.11-1-ARCH'
make: *** [LINUX] Ошибка 2
==> ОШИБКА: Произошел сбой в build().
Преждевременный выход...
==> ERROR: Makepkg was unable to build rt3090.
==> Restart building rt3090 ? [y/N]
==> -------------------------------
==> 

Может кто в курсе, какие версии ядра/компилятора нужны, чтобы его собрать?

$ uname -a
Linux vlao 3.8.11-1-ARCH #1 SMP PREEMPT Wed May 1 20:18:57 CEST 2013 x86_64 GNU/Linux
$ gcc -v
Используются внутренние спецификации.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper
Целевая архитектура: x86_64-unknown-linux-gnu
Параметры конфигурации: /build/src/gcc-4.8-20130502/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --enable-gnu-unique-object --enable-linker-build-id --enable-cloog-backend=isl --disable-cloog-version-check --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --with-linker-hash-style=gnu --disable-install-libiberty --disable-multilib --disable-libssp --disable-werror --enable-checking=release
Модель многопоточности: posix
gcc версия 4.8.0 20130502 (prerelease) (GCC) 
★★★★★

Здесь вот http://askubuntu.com/questions/285163/ralink-rt3290-cant-be-installed написано, что для 3.8 не будет работать, там сильно изменили заголовки ядра. В той ссылке на AUR, что вы привели, показано, что компилируется под 3.6.6-1.

Но, так то ralink писал это под 2.6, так что неизвестно насколько стабильно оно работает на 3.x ядрах.

mky ★★★★★
()

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

Там в проприетарной софтине есть код управления светодиодом синезуба, никто не шарит в асме? Может поможете выколупать его оттуда?

false ★★★★★
() автор топика

Купить китайский usb свисток за 5$ и не страдать ерундой, сидя под дырявыми ядрами из-за bluetooth. Когда нужно вставил, не нужно вытащил - лепота. Если это десктоп, то вообще можно воткнуть назад и забыть.

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

Почему под дырявыми? Ядро 3.8.11, на 3.9 звук поломан, жду обновок. Свисток есть, но он же не всегда под рукой.

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

ralink 3290

а как вы доделали дрова под ralink 3290? можно я ваш вариант поюзаю? :) у меня щас стоит ubuntu 13.04 там есть встроенные дрова для нашего устройства но работают они очень криво

anonymous
()
Ответ на: ralink 3290 от anonymous

http://yadi.sk/d/6Nx5vZ9U5Kwc4

Это только на синезуб. Вафля из коробки хорошо работает, осталось прикрутить мигание, как в iwlagn от intel :)

Инструкция там внутри. Собираешь модуль rtbth.ko, грузишь его, делаешь mknod и запускаешь rtbt.bin.

false ★★★★★
() автор топика
Последнее исправление: false (всего исправлений: 1)

Сам себя нагрел в общем. Внутри есть исходник функции общения со светодиодом, всё ок. Запилил управление оным, теперь можно повесить на триггер rx/tx и он будет моргать при передаче данных.

Как оказалось, драйвер для WiFi так же умеет моргать светодиодом (жёлтым), но из-за какого-то бага он им не моргает :(

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

вот у меня из коробки как бы тоже работает, но толку маловато - сигнал практически ноль, как на дешёвом китайском планшете. и связь постоянно обрывается. особенно при большой нагрузке на иннет (например, когда идёт закачка). в убунту где показывает 0-1 деление - в винде полная шкала. грешу только на дрова...

anonymous
()

В 3.8 вычистили старые макросы. На них собственно при сборке и ругается компилятор. В моем случае это были «__devint», «__devexit», «__devinitdata».

https://patchwork.kernel.org/patch/1766601/
https://patchwork.kernel.org/patch/1766651/
https://patchwork.kernel.org/patch/1766831/

Надо пройтись по «/os/linux/pci_main_dev.c» и аккуратно их удалить. Я использую разные версии ядер, поэтому сделал так:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)
#define CONFIG_HOTPLUG_REMOVED
#endif

и далее по коду:

#ifdef CONFIG_HOTPLUG_REMOVED
static struct pci_device_id rt2860_pci_tbl[] =
#else
static struct pci_device_id rt2860_pci_tbl[] __devinitdata =
#endif
anonymous
()
10 августа 2013 г.
Ответ на: комментарий от false

Долго мучился. Хочу сказать спасибо, false.

А как можно это поставить в атозагрузку?

gil
()
2 июня 2014 г.
Ответ на: комментарий от anonymous

и? вафля из коробки ок работает.

false ★★★★★
() автор топика
5 марта 2015 г.

Товарищ ОП ( false), там ваша ссылка на вашу копию протухла, а мне бы тоже хотелось код, которым можно блютусную лампочку подёргать, а то бесит :(

// рабочий блюпуп тоже не помешал бы, но хотя бы лампочку перекрасить...

Не могли бы вы там бампнуть файлик с новой версией того, что наковыряли? :)

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

Завтра вечром поищу, но хз, найду или нет.

В общем я с модулем устал бороться и на ебее купил интеловский комбо модуль, с тех пор бед не знаю.

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

Да я бы тоже, может, купил, да:
1) ноут рабочий, а не свой (хотя в том, что собираюсь покупать, вроде как тоже ралинком попахивает в некоторых модификациях)
2) ноут HP, а эти ироды всё никак не вырастут из вайтлистинга в биосе :(

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

У меня HP sleekbook 15 с этой карточкой, всё нормально взлетело, тоже думал про вайтлист, но обошлось вроде.

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

Кстати, я, вроде как, и сам пропатчил под 3.19. По крайней мере, собирается и загружается. Остаётся mknod'нуть (надо бы пропатчить, чтоб само делало) и запустить проприетарный бинарь (собственно, то место, которого хочется избежать :-/ )

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

Хотя, не совсем вдуплил, как моргать дидом... Какой-то GPIO-магией там драйвер занимается... :)


Кстати, ОП, а у вас диод на F12 с новой картой работает как надо? :)

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

Если включён bluetooth, то светодиод горит только белый. Если синезуб выключить, начинает моргать оранжевым.

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

Единственное, что удалось найти.

https://yadi.sk/d/Rxl5LGysf5yct

Собирать примерно так, в каталоге с исходниками

make -C /usr/src/linux M=$(pwd)

false ★★★★★
() автор топика
Последнее исправление: false (всего исправлений: 1)
Ответ на: комментарий от false

Спасибо. Диод управляется :)
Думаю, правда, немного изменить режим его работы. Чтобы не руками активировать :)


Кстати, надо будет, наверное, запуллить что-нибудь похожее в HP WMI-модуль, наверное, раз ни rt2800 не управляет подсветкой, ни блютусный модуль не работает без блоба (да и с блобом — тоже не очень как-то).

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

Сообщение выше. Да, там только моргалка, дров на синезуб нормальных нет. Я купил карточку от интел и забыл про этот кошмар.

false ★★★★★
() автор топика
Последнее исправление: false (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.