OpenSuSe 11.3, D-Link DWA 525 и танцы с бубном

D-Link DWA 525, сетевая карта с WiFi

Моя домашняя сеть продолжает расти, и мне потребовалось подключить еще один компьютер к моей точке доступа D-Link DWL 2100 AP. Посмотрев на прайс-листы ближайшего приличного магазина, присмотрелся я к сетевой карте с антенной – а именно к D-Link DWA 525. Традиционно погуглил эту карту на предмет наличия проблем с установкой под линуксом – вроде все чисто, решил купить. И тут началось….

Под Windows XP она встала и работает неплохо, но с картой совершенно не было драйверов под линукс. Свежепоставленная OpenSuSe 11.3 так же карточку не опознала как сетевую, пришлось качать драйвер с сайта dlink.ru и собирать его.

Дальше было еще интереснее, драйвер от dlink собрался, но карта работала только с открытыми сетями, без WEP или WPA шифрования. Разумеется, меня такой вариант не устроил, стал искать другое решение проблемы. Оказалось, что драйвера от d-link – это совсем не то, что нужно. Для карты D-Link DWA 525 прекрасно подошел последний драйвер от карты на том же чипсете (Ralink 3060, последнюю версию драйвера можно скачать с официального сайта: http://www.ralinktech.com/support.php?s=2).

Однако и тут обошлось не без танцев с бубном. Перед компиляцией драйвера надо залезть в файл os/linux/config.mk и поправить 2 строчки:

HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
(эти фичи выключены по умолчанию).

После сборки драйвера (make и make install) все замечательно заработало бы, если бы не ошибка в скрипте /etc/sysconfig/network/scripts/ifup-wireless Вместо этого глючного скрипта следует скачать исправленный скрипт, и только тогда все заработает, как надо.

Все вышесказанное относится к OpenSuSe 11.3 без обновлений (из коробки). Возможно, что после обновления этот скрипт уже будет пропатчен

Data::Dumper и текст в UTF-8

Если вы работаете со сложными структурами данных (массивы хешей, хеши массивов и т.п.), наверняка вы используете для отладки модуль Data::Dumper. Все бы хорошо, но этот модуль категорически не хочет работать с символами в кодировке UTF-8, его вывод выглядит примерно так:

'country' => "\x{420}\x{43e}\x{441}\x{441}\x{438}\x{44f}",
'city' => "\x{41c}\x{43e}\x{441}\x{43a}\x{432}\x{430}",
'airport' => "\x{414}\x{43e}\x{43c}\x{43e}\x{434}\x{435}\x{434}\x{43e}\x{432}\x{43e}",
'code' => 'DME'

Чтобы сделать вывод функции Dumper читаемым, надо просто добавить в программу вот такой кусочек кода:

$Data::Dumper::Useqq = 1;

{ no warnings 'redefine';
sub Data::Dumper::qquote {
my $s = shift;
return "'$s'";
}
}

Тогда вывод будет выглядеть совсем по другому:

'country' => 'Россия',          
'city' => 'Москва',
'terminal' => '',
'airport' => 'Домодедово',
'code' => 'DME'