2

У меня есть универсальный беспроводной USB-адаптер Ralink и новая версия Linux Mint 17 (cinnamon). Я хотел бы иметь возможность использовать ключ для подключения к моему Wi-Fi, чтобы я мог освободить некоторые кабели Cat5, которые я разбросал.

К сожалению, он не работает по умолчанию, и я не могу скомпилировать из исходного кода (в нем есть ошибки). Я прошу прощения за длинный пост, но это сжатая версия того, что я пробовал в последние пару недель.

Чтобы сэкономить время, я собираюсь вставить соответствующую системную информацию ниже. Во-первых, uname -a

Linux stutter 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Вот вывод из lsusb; чтобы показать устройство распознается. Устройство 5.

Bus 001 Device 005: ID 148f:7601 Ralink Technology, Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 413c:2005 Dell Computer Corp. RT7D50 Keyboard
Bus 002 Device 002: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Вывод из iwconfig; чтобы показать, что он не используется в качестве устройства Wi-Fi. Я понимаю, что в этом списке должно быть "ra0". eth0 и eth1 оба являются проводными портами на моей материнской плате - у нее есть два.

eth0      no wireless extensions.
eth1      no wireless extensions.
lo        no wireless extensions.

Затем lsmod, чтобы показать, что загружены правильные модули ядра. Это урезано для краткости.

rt2800usb              27034  0 
rt2x00usb              20742  1 rt2800usb
rt2800lib              89076  1 rt2800usb
rt2x00lib              55307  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              626489  3 rt2x00lib,rt2x00usb,rt2800lib
cfg80211              484040  2 mac80211,rt2x00lib
crc_ccitt              12707  1 rt2800lib
bnep                   19624  2 
rfcomm                 69160  0 
bluetooth             395423  10 bnep,rfcomm
....

Так что это должно работать из коробки, но это не так. Моей следующей мыслью была компиляция из исходного кода. Я перехожу на страницу загрузки 2870 (http://www.mediatek.com/en/downloads/rt2870usbrt2870rt2770/), для которой, как мне кажется, точная версия, для которой был построен этот чипсет - хотя у меня нет руководства для этого устройства так что я не совсем уверен. В любом случае, я загружаю пакет, раздуваю его, изменяю следующие строки в os/linux/config.mk:

HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

Далее я гарантирую, что у меня есть все нужные пакеты

sudo apt-get install build-essential linux-headers-$(uname -r) linux-firmware

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

/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/../../os/linux/rt_linux.c:1141:20: error: incompatible types when assigning to type ‘int’ from type ‘kuid_t’
   pOSFSInfo->fsuid = current_fsuid();
                    ^
/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/../../os/linux/rt_linux.c:1142:20: error: incompatible types when assigning to type ‘int’ from type ‘kgid_t’
   pOSFSInfo->fsgid = current_fsgid();
                    ^
make[2]: *** [/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/../../os/linux/rt_linux.o] Error 1
make[1]: *** [_module_/home/knetic/Downloads/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-24-generic'
make: *** [LINUX] Error 2

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

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

Я ценю любую помощь, я знаю, что это своего рода нишевый вопрос с большим количеством информации.

2 ответа2

2

Vendor+Product code 148f: 7601, отображаемый lsusb, достаточно информации. Посмотрев WikiDevi, мы увидим, что ваш ключ - это TP-Link TL-WN727N v4 или Shenzhen Ogemray Technology GWF-7A05. В любом случае, rt2800usb не является подходящим драйвером: команда

 # modinfo rt2800usb | grep 148F | grep 7601

который ищет поставщика и код продукта вашего ключа среди тех, для которых загружен rt2800usb, не выдает никаких результатов. Следовательно, вам нужен другой драйвер. Это объясняет, почему даже после успешной компиляции и установки rt2800usb ваш интерфейс еще не подошел.

На той же странице Wikidevi наиболее вероятным модулем Linux является mt7601u_sta . Вы можете получить это отсюда . Это, безусловно, драйвер, который вы ищете: в файле DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/common/rtusb_dev_id.c вы можете найти строку

          {USB_DEVICE(0x148f,0x7601)}, /* MT 6370 */

это то, что появится в выводе modinfo mt7601u_sta.

Это, однако, конец хорошей новости: он не компилируется ни в моей системе Arch, ни в моих системах Debian Jessie. Кроме того, Googling вокруг этого кажется, что никому не удалось заставить его успешно скомпилироваться в недавнем ядре. Я видел отчеты за 3,12 до 3,15.

Чтобы быть в безопасности, я также проверил, поддерживают ли новейшие бэкпорты здесь эту карту. Это не так, и вы можете проверить это самостоятельно, скомпилировав и установив wifi defconfig, а затем попробовав modinfo на только что отчеканенном rt2800usb. Неудачно.

1

Исходя из этого вопроса через « несовместимые типы при назначении типа« int »из типа« kgid_t » », попробуйте установить firmware-ralink перед сборкой (если сомневаетесь, всегда ищите сообщение об ошибке компилятора):

sudo apt-get install firmware-ralink

Если это не удастся, следуйте своей последней идее о покупке устройства, которое по умолчанию работает с Mint (что вы можете сделать в любом случае, так что вам не придется проходить через это каждый раз, когда вы, например, получаете обновление ядра, или если вы настроить новую систему).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .