среда, 24 декабря 2008 г.

Краткий справочник по psql (текстовый интерфейс PostgreSQL)


В PostgreSQL есть немало интерфейсов. Из графических лично я предпочитаю pgadmin3 (он должен быть в репозитариях большинства Linux дистрибутивов). В этом справочнике будет описан текстовый - psql.
Его я нахожу даже более удобным, чем sqlplus для Oracle.

Справочник специально создавался кратким для того, чтобы описать команды, которые наиболее часто используются.
Разделим справочник на 3 части:

  1. Файлы (они же команды) PostgreSQL
  2. Команды запуска psql
  3. Команды интерактивной оболочки psql


1. Файлы (они же команды) PostgreSQL
  • psql - программа для работы с объектами PostgreSQL
  • createdb и dropdb - создание и удаление базы данных (соответственно)
  • createuser и dropuser - создание и пользователя (соответственно)
  • pg_ctl - программа предназначенная для решения общих задач управления (запуск, останов, настройка параметров и т.д.)
  • postmaster - многопользовательский серверный модуль PostgreSQL (настройка уровней отладки, портов, каталогов данных)
  • initdb - создание новых кластеровPostgreSQL (не запускайте под root !)
  • initlocation - программа для создания каталогов для вторичного хранения баз данных
  • vacuumdb - физическое и аналитическое сопровождение БД
  • pg_dump - архивация и восстановление данных
  • pg_dumpall - оболочка для pg_dump, которая работает сразу со всем кластером БДPostgreSQL
  • pg_restore - восстановление БД из архивов (.tar, .tar.gz)


2. Команды запуска psql
  • psql -c (или --command) - запуск команды без входа в интерактивный режим
  • -f (или --file) - также как и -c , но команда читается с файла
  • -l (или --list) - выводит список баз данных, к которым можно подключиться (если появляется ошибка: psql: FATAL: role "_your_userName_" does not exist ), то значит нужно указать имя пользователя явно.
  • -U (или --username) - указываем имя пользователя (например postgres)
  • -W (или --password) - приглашение на ввод пароля
  • -d - имя базы данных
  • -h - имя хоста (сервера)
  • -s - пошаговый режим, то есть, нужно будет подтверждать все команды
  • -S - одно-строчный режим, то есть, переход на новую строку будет выполнять запрос (когда надоело вводить ";" после каждой SQL команды! )
  • -V - (не строчная v) - версия PostgreSQL без входа в интерактивный режим
Примечание: Ключи можно комбинировать, например, psql -U postgres -c "select current_date"


3. Комманды интерактивной оболочки psql
(
Примечание: после этих команд точку с запятой ставить (как при выполнении SQL-запросов ) не нужно)
  • \connect db_name - подключиться к базе с именем db_name
  • \du - список пользователей
  • \dp (или \z) - список таблиц, представлений, последовательностей, прав доступа к ним
  • \di - индексы
  • \ds - последовательности
  • \dt - таблицы
  • \dv - представления
  • \dS - системные таблицы
  • \o - пересылка результатов запроса в файл (Пример: а) \o today.txt б) select select current_date ; и тогда все результаты будут записываться в today.txt. Чтобы все запросы снова выводились не в файл, а на консоль необходимо еще раз ввести \o (без указания параметров)
  • \l - список баз данных
  • \i - читать входящие данные из файла
  • \e - открывает текущее содержимое буфера запроса в редакторе (если не указана в окружении переменная EDITOR, то будет использоваться по умолчанию vi)
  • \d "table_name" - описание таблицы (вместо table_name указать свою таблицу)
  • \i запуск команды из внешнего файла, например \i /home/user/query.sql
  • \pset - команда настройки параметров форматирования
  • \echo - выводит сообщение
  • \set - устанавливает значение переменной среды. Эта команда без параметров выводит список текущих переменных (\unset - удаляет). Полезный пример: а) echo "'one','two', 'three'" > test.sql (создаем файл с данными test.sql)
  • б) \set data `cat test.sql`psql устанавливаем переменную data, которая получает результат от команды cat test.sql)
  • в) \echo :data (результат проверки переменной - 'one','two', 'three' )
  • г) select :data ; (используем переменную). Можно использовать любую SQL команду.
  • Вот так вот легко можно использовать параметры команд с внешних файлов!
  • \? - справочник psql
  • \help - справочник SQL
  • \q (или Ctrl+D) - выход с программы

Примечание: Рекомендую называть таблицы и поля строчными символами. PostgreSQL чувствителен к регистру в названиях объектов, но не к командам (select и SELECT - не имеет значения). Но если уже есть такие объекты БД, то тогда их нужно указывать в кавычках, например, SELECT * FROM "MyTable". Иначе будете удивлены почему выводится сообщение типа:
ERROR: relation "myTableName" does not exist

Успехов!

среда, 17 декабря 2008 г.

установка сканера Epson v10 на Mandriva Linux


В дистрибутиве Mandriva и в других крупных дистрибутивах есть графические утилиты установки и настройки принтеров, сканеров и др.
Чтобы долго не мучиться я решил тоже ее использовать. Запустить графические утилиты настройки в Mandriva можно с помощью команды mcc. На первом этапе установки сканера утилита предлагает установить XSANE (нужно установить, если еще не установлен). На втором этапе предлагается идет автоматический поиск драйвера. К сожалению, автоматическая установка драйвера не получилась поэтому было предложение самому найти в списке драйверов необходимое устройство. Но в списке устройств Epson V10 не было.
На официальном сайте Epson драйвера были только для Windows и Mac (Позор Epson-у !).
Необходимые драйвере для Epson V10 под нужный дистрибутив можно скачать с сайта http://www.avasys.jp/lx-bin2/linux_e/scan/DL1.do.
Там есть и исходники и документация (на англ. языке)
после установки драйвера iscan и iscan-plugin по идее все уже должно работать и можно запускать xSANE и сканировать.

Если проблемы все-таки есть:
В предыдущих версиях Mandriva, например 2008 у меня возникала проблема конфликта пакетов. Как вариант решения использовать
rpm -i
--force *.rpm
Возможна проблема доступа к сканеру для не-root пользователя.
Для этого можно
а) установить права вручную :
sane-find-scanner | grep 0x04b8
ответом должно быть что-то вроде
found USB scanner (vendor=0x04b8 [EPSON], product=0x012d [EPSON Scanner]) at libusb:006:025
потом под root-пользователем запустить
chmod 0666 /proc/bus/usb/006/025
две последние цифры взять от предыдущего результата вывода команды
В этом варианте придется каждый раз делать эту операцию после включения сканера или перезагрузки компьютера (или написать скрипит). Очевидно, это не очень удобно, поэтому лучше исаользовать вариант б)
б) использовать файл настроек /etc/sane.d/epkowa.conf
в нем нужно указать соответствующее Usb- устройство сканера, например
usb /dev/usb/scanner0
В этом файле есть примеры. Их можно использовать.

Успехов!

среда, 3 декабря 2008 г.

Интеграция Tomcat и Apache


Зачем?
Когда возникает необходимость размещать на сайте свои JSP-страницы и/или сервлеты на веб-сервере, то одним из самых лучших помощников есть Tomcat. Есть и другие бесплатные контейнеры сервлетов, например Jetty, но мне по душе Tomcat.
Зачем Tomcat связывать с Apache? Над этим вопросом я думал немало. На многих форумах пишут, что Apache быстрее работает со статистическими файлами (например, .gif, .html), но это было раньше. Последние версии Tomcat, в моем случае Tomcat 6, работают со статикой намного лучше, а на официальном сайте Tomcat пишут, что иногда даже лучше. Радует также то, что в Tomcat есть возможность использовать виртуальный хостинг (с алиасами), а также есть поддержка PHP! Для того чтобы клиентам не приходилось указывать порт веб-сервера (по умолчанию в Tomcat 8080) можно либо настроить в server.xml чтобы Tomcat запускался с обслуживание порта 80 либо сделать перенаправление с порта 8080 на порт 80 (если конечно никакой сервер этот порт еще не использует). В целях безопасности я предпочитаю второй вариант. В Linux это делается элементарно:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

Но в связке Tomcat и Apache есть свои преимущества:
можно использовать модуль mod_jk для балансировки нагрузки нескольких Tomcat серверов, а также для создания кластера.
Можно использовать разнообразные модули Apache (но не всегда они нужны и даже могут мешать безопасности)
Больше аргументов в пользу связки Apache и Tomcat для современных версий Tomcat я не нашел. Но этот первый пункт для меня был весомым. Возможно (и скорее всего) разработчики Tomcat реализуют эту функциональность и он станет достаточно самостоятельным веб-сервером. Но все-таки Tomcat в первую очередь нацелен на Java-разработчиков.

Как?
Есть 2 базовый варианта.
Первый: использовать модули Apache, а именно mod_proxy, mod_alias
Для этого нужно в httpd.conf или конфигурационном файле виртуально хоста (если он отдельно) прописать так:

RedirectMatch permanent ^/$ http://<домен>/<приложение>/
ProxyPass /<приложение> http://<домен>:8080/<приложение>/
ProxyPassReverse /<приложение> http://<домен>:8080/<приложение>/


mod_alias нужен для RedirectMatch и mod_proxy - для ProxyPass и ProxyPassReverse директив
В этом подходе есть преимущества — простота настройки и недостатки:
- Tomcat сервер не может находится во внутренней и/или DMZ-зоне (без специальных настроек фаервола и/или DNS)
- слабая поддержка балансировки и кластеризации (на официальном сайте пишут, что mod_proxy поддерживает балансировку, но производительность хуже)
- плохая производительность.

Второй. Использовать коннекторы. Из всего разнообразия коннектором на официальном сайте Apache указано, что сейчас для версии 6 поддерживается Jk и mod_proxy.
Коннекторы jserv, Jk2 (!), webapp — устарели. Первые два используют протокол AJP, последний — WARP.
Далее описывается как настроить коннектор jk (mod_jk).
Где взять модуль JK и как его установить?
Установить mod_jk можно используя репозитарий Linux. Просто сделайте поиск в репозитарии, например jk. Этот модуль я видел в дистрибутивах SuseOpenSuse), Mandriva, Debian, CentOS (соответственно должно быть и в RadHat и Fedora). В OpenSuse он назывался apache2-mod_jk. Я так понял, что этот модуль можно установить с репозитария во всех популярных дистрибутивах. Именно так я его установил.
Но, если нет такой возможности или хочется установить самый последний модуль, то его можно либо скачать в бинарном виде с этого сайта - обязательно учтите архитектуру процессора и версию Apache!
Либо установить с исходников. Для этого нужно скачать с этого сайта нужную версию, проверить на целостность, и установить. Важная заметка: для того чтобы при установке скомпилировалась именно та, версия, которая подходит для вашей версии Apache должна быть установлена программа apxs !

Как подключить mod_jk к Apache? На примере OpenSuse все очень просто:
В файле /etc/sysconfig/apache2 в строке APACHE_MODULES= дописываем mod_jk и перегружаем Apache. Чтобы убедиться, что он загружен используем команду:
apache2ctl -t -D DUMP_MODULES
В списке должно быть jk_module (shared)
Если модуль устанавливался НЕ с помощью репозитария дистрибутива, то модуль нужно скинуть в место где находятся библиотеки Apache (учитывайте архитектуру процессора), а загрузка модуля зависит от версии Apache, которую используете.
А теперь непосредственно настройка коннектора. Сделаем это в 4 шага
1) подключаем свой конфигурационный файл в httpd.conf
Include /etc/apache2/mod-jk.conf
2) в этом файле пишем:
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /etc/apache2/mod-jk.log
JkLogLevel info
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkRequestLogFormat "%w %V %T"
JkExtractSSL On


/* пути исправляйте для собственных нужд */

Тут мы указываем на файл настроек так называемых workers (работники :) )
Обо всех остальных директивах и настройках для Apache можно почитать на этом сайте

3) описываем работу воркеров в файле workers.properties
worker.list=worker1, worker2
worker.worker1.port=8009
worker.worker1.host=hostname
worker.worker1.type=ajp13
worker.worker2.port=8010
worker.worker2.host=hostname
worker.worker2.type=ajp13


Что это значит?
worker.list — список воркеров
И ниже свойства каждого воркера, а именно port, host, type (порт, хост, тип).
Порт — это порт AJP, который слушает соответствующий Tomcat-сервер. По умолчанию это 8009
Хост — имя хоста или его Ip-адрес, где находится соответствующий Tomcat-сервер.
Тип — Тип воркера. В данном случае используется протокол AGP версии 1.3. Без особой необходимости его менять не нужно.
Дополнительно про настройку worker-ов можно почитать тут

4) Указываем как и когда использовать Tomcat, а не Apache.
Указать можно либо в самом файле httpd.conf например,
JkMount /jsp-examples worker1
либо непосредственно при настройке виртуального хоста
(внутри тега VirtualHost):
JkMount /* worker2


Вот и все ;)

И еще немного о виртуальных хостах (Virtual hosts).
Как делать виртуальные хосты в Apache написано тут
Например (внутри тега "VirtualHost"):

ServerAdmin webmaster@localhost
ServerName mysite.com.ua
ServerAlias www.mysite.com.ua
DocumentRoot /srv/www/htdocs/mysite.com.ua
ErrorLog /var/log/apache2/mysite.com.ua-error_log
CustomLog /var/log/apache2/mysite.com.ua_log combined
JkMount /* workername # если, конечно, необходим Tomcat

Создать виртуальный хост для Tomcat еще проще:
в /conf/server.xml создать разные хосты ()
Engine name="Catalina" defaultHost="ren"
Host name="site1.com" appBase="site1apps"
Host name="site2.com" appBase="site2apps"
Engine

Для создания алиасов используем элемент alias... внутри тега host, например alias> www.site1.com.ua /alias>
и создать соответствующие директории site1apps и site2apps.
При этом нужно чтобы эти директории не перекрывались (не находились друг в друге)
Контекст по умолчанию (например, сразу после того, как вводим site1.com) должен находиться в site1apps/ROOT или site1apps/root.war, а остальные контексты (например site1.com/mycontext) в той же директории, но не ROOT.
Подробней на английском читайте тут

А как связать виртуальные хосты (Virtual hosts) Apache c Tomcat?

Для этого нужно:
1) создать витруальные хосты в Apache.
2) Создать несколько директорий для разных хостов Tomcat, поменяв необходимые порты в каждом из них. Например, у нас уже есть директория с Tomcat, которая использует порты по умолчанию, а именно: 8080 — для веб, 8009 — для AJP, 8005 — для останова Tomcat (это значит останов или крах одного сайта не повлияет на другой).
Просто копируем и переименовуем новую директорию Tomcat, например, SITE1-Tomcat.
Потом в /conf/server.xml новой директории Tomcat меняем порты:
а) порт останова с 8005 на другой, например:
Server port="8006" shutdown="SHUTDOWN"
б) веб-порт с 8080 на другой, например:
Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

в) порт для AGP c 8009 на другой, например:
Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
3) В файле workers.properties мы для каждого сайта создаем свой worker, например site1worker

4) В настройках виртуального хоста Apache внутри тега VirtualHost используем соответствующий worker, например
JkMount /* site1worker

Если что-то не получается смотрим логи модуля mod_jk, в данном примере он был указал в файле mod-jk.conf в директории JkLogFile /etc/apache2/mod-jk.log. Также не забываем о логах Apache, логах Tomcat и системных логах.

Некоторые полезные ссылки:
http://www.opennet.ru/base/dev/apache2_tomcat5.txt.html — об интеграции Apache c Tomcat (на русском)
http://www.javatalks.ru/sutra31163.php — дополнительно о кластеризации (на русском)
http://voituk.kiev.ua/2007/06/25/tomcat-cluster/ - тоже хорошо о кластеризации (на русском)
http://people.apache.org/~mturk/docs/article/ftwai.html — о кластеризации Apache Tomcat (на английском)
http://tomcat.apache.org/tomcat-6.0-doc/connectors.html - рассуждение о коннекторах от разработчиков (на английском)

пятница, 7 ноября 2008 г.

решение проблемы: java.lang.OutOfMemoryError: PermGen space


При возникновении ошибки java.lang.OutOfMemoryError: PermGen space
Eclipse
может просто неожиданно завершить работу и предложить просмотреть логи.
Хочу заметить, что я впервые встретился с этой ошибкой, когда начал использовать Eclipse для рисования UML диаграмм. То есть в тот момент, когда Eclipse начал использовать плагины org.eclipse.gef и org.eclipse.emf,
а эти плагины есть также в Eclipse IDE for Java EE Developers. В этом можно убедиться тут.
Также эта ошибка может появляться при использовании HQL запросов, когда активно используется Hibernate.

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

И так, если кратко, то решить быстро это проблему можно так:
в директории, где находится eclipse или eclipse.exe (для Windows) нужно найти файл eclipse.ini и открыть в текстовом редакторе, в котором нужно добавить/отредактировать следующие строки:
-Xms512m
-Xmx512m
-XX:PermSize=512m
-XX:MaxPermSize=512m

Это пример моих настроек. Настраивайте параметры в зависимости от объема памяти на вашем компьютере. Кратко об этих параметрах:
Xms - это минимальный объем выделяемой памяти (кучи - heap)
Xmx - это максимальный объем выделяемой памяти (кучи - heap)
XX:PermSize - это начальный размер permanent generation (о нем подробней позже...). Он создается в дополнение к объему Xms.
XX:MaxPermSize - максимальный размер permanent generation.

Теперь осталось запустить eclipse c ключем -clean
eclipse -clean
(Примечание: начиная с версии 3.4 (GANYMEDE) запускать -clean не нужно)

НО! Все-таки нужно убедиться что эти параметры задействованы. Дело в том, что на некоторых Unix* ОС настройки файла eclipse.ini не срабатывают, даже если описаны правильно.
Для того, чтобы убедиться изменения в настройках можно просмотреть:
Help -> About Eclipse Platform -> Configuration details
и смотрим строку eclipse.vmargs=

Чтобы окончательно победить проблему есть 2 способа:

1-й способ. Window -> Preferences -> Java -> Installed JREs -> выбор нашего JRE -> Edit и в строке Default VM Arguments пишем
-vmargs -Xms512m -Xmx512m -XX:PermSize=512m -XX:MaxPermSize=512m

2-й способ. Написать скрипт запуска eclipse. Например, в создать файл eclipse.sh, дать права на запуск () и прописать в файле:
#!/bin/bash

eclipse -vmargs -Xms512m -Xmx512m -XX:PermSize=512m -XX:MaxPermSize=512m

Надеюсь, этот баг больше возникать не будет ;)
О дополнительных способах борьбы с этой проблемой можно почитать в этой статье

PS Доп. материал:

MaxPermSize and how it relates to the overall heap

Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine

Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

Java Performance Documentation

Tuning Java Virtual Machines (JVMs)

Memory Analyzer (MAT)

четверг, 6 ноября 2008 г.

Как настроить Linux, чтобы просматривать Java аплеты в Firefox и Opera



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

Одной из главных причин есть то, что Flash не нужно устанавливать и нет проблем в настройке для обычного пользователя Innternet.
Проблема, думаю, не в сложностях технической реализации, а скорее в политике - такие IT-гиганты как Microsoft и Sun не сумели подружиться и ...
Но сейчас не об этом.

Предполагаю, что Java уже установлен. Проблем с установкой Java возникает редко и особых усилий не нужно (можно просто скачать .bin файлик с java.sun.com и запустить его)

Если возникли проблема с запуском аплетов существует самый простой способ, который должен подойти для большинства браузеров.

Нужно просто создать символическую ссылку /usr/lib/browser-plugins/libjavaplugin.so на файл $JAVA_HOME/plugin/i386/ns7/libjavaplugin_oji.so

Пример:
cd /usr/lib/browser-plugins/
ln -s /usr/java/default/jre/plugin/i386/ns7/libjavaplugin_oji.so libjavaplugin.so

и перезагрузить браузер.
Ни в коем случае не следует копировать файл. Иначе браузер виснет при отображении аплетов

Если что-то не получается существуют еще вариаты:
Для Firefox
Необходимо создать ссылку в папке $HOME/.mozilla/plugins/ (если папки plugins нет, то нужно ее создать)
на файлик libjavaplugin_oji.so с директории $JRE_HOME/plugin/i386/ns7
Пример команды:
mkdir /home/user/.mozilla/plugins (если plugins там нет)
ln -s /usr/java/default/jre/plugin/i386/ns7/libjavaplugin_oji.so /home/user/.mozilla/plugins/libjavaplugin_oji.so

На некоторых сайтах рекомендуют еще создать переменную окружения MOZ_PLUGIN_PATH
(в основном это не обязательно).
Для этого в файлике .bash_profile нужно добавить:
MOZ_PLUGIN_PATH=$HOME/.mozilla/plugins
export MOZ_PLUGIN_PATH
Чтобы переменная окружения заработала нужно либо перелогиниться либо запустить: sh ./.bash_profile

Перезапускаем Firefox на всякий случай проверяем разрешен ли в настройках Java (Настройки-Содержание)

для Opera все намного проще:
Настройки-Дополнительно(закладка)-Содержание(в списке)-ставим галочку "включить Java", нажимаем на кнопке "Параметры Java", указываем путь к Java (у меня /usr/java/jdk1.6.0_10/jre/lib/i386), проверяем путь с помощью кнопки проверки.
Если путь является корректным, то перезапускаем Opera.

И радуемся богатством технологий Java

пятница, 11 апреля 2008 г.

Настройка USB wifi адаптера 3Com OfficeConnect Wireless 108Mbps 11g USB Adapter под Linux Mandriva 2008



После установки точки доступа LinkSYS WRT350N решил приобрести адаптер для нормальной работы с этой точкой доступа.

Решил остановиться на 3CRUSB10075, поскольку на официальном сайте есть готовые драйвера под Linux.
Список уже готовых драйверов для USB WiFi адаптеров нашел на специальном сайте.

Но поскольку на складе этого адаптера небыло и мне предложили по той же цене взять 3COM 3CRUSB20075, я согласился, надеясь на то, что возможно подойдут те же драйвера.

Оказалось не все так просто.

На официальном сайте 3com драйвера для 3CRUSB20075 небыло.
Решил попробовать драйвера 3CRUSB10075 для 3CRUSB20075 (разницу нашли? :) ). Они находятся тут
Но оказалось что: во-первых в моем ядре (2.6.23) уже есть этот драйвер, а именно zd1211 (можно еще скачать c http://sourceforge.net/projects/zd1211/) - это обрадовало :)
во-вторых, он не подошел - это разочаровало :(

Чем больше желания - тем больше настойчивости. На этом не останавливаюсь.

на форуме http://lafox.net/support/index.php?showtopic=14512 нашел, что есть специальный програмный штук - madwifi, которые специально разработан для моего чипсета Atheros.
Узнать какой чипсет стоит в USB Wifi можно с помощью:
lspci (с параметром -v вообще много подробностей)
lspcidrake (удобная примочка Mandriva, которая еще показывает какой модуль назначен адаптеру)
lshw -C network

а можно и на официальном сайте (у меня - Chipset: Atheros AR5523/AR2112)

На том же форуме узнал, что он не поможет для USB устройсв WiFi. Лично я не проверял и решил воспрользоваться ndiswrapper для решения проблемы. (но пишут что madwifi удобней)

Ndiswrapper - утилита для того, чтобы пользователи Linux могли воспользоваться драйверами под M$ Windows для установки драйверов под свою любимую ОС - LINUX. Как же сильно разработчики Linux любят своих товарищей пользователей Linux! Бесплатно!

По умолчанию у меня в Mandriva 2008 уже был установлен ndiswrapper, но без модуля.
Но те RPM-ки, которые были в дистрибутиве не подходили для моего нового ядра 2.6.23.
Поэтому я тешил снести мой предустановленный ndiswrapper (urpme ndiswrapper), скачать с сайта последнюю стабильную версию
и установить с исходников.
Для установки необходимо:
- исходники ядра (в Mandriva их можно установить с rpm-ки)
- wireless-tools

Устанавливаем:
make
make install
ndiswapper -i net5523.inf (драйвер для Windows)
По умолчанию в Windows эти файлы автоматически установились в c:\Program Files\3COM\3Com Wireless 108 Mbps 11g USB Utility. Можно ссылаться сразу на эту примонтированую директорию.
Указывать нужно именно .inf файлик, а .sys файлики должны быть в той же директори.
потом:
ndiswapper -l показывает результаты установки
вывод должен показать какой драйвер установился и присутствует ли само устройство:
net5523 : driver installed
device (A727:6893) present


Загружаем модуль командой
modprobe ndiswapper
Если все нормально, то должнен появиться wlan0 (по умолчанию). Проверить можно командой ifconfig или iwconfig.

Радуемся и улыбаемся всем ближним :)

сканируем сеть:
iwlist wlan0 scan

А дальше можно использовать Приложения Mandriva для подключенияк беспроводной сети.
Альтернатива - wifi-radar и wpa_gui (оба есть под Mandriva 2008 в rpm пакетах)


Помощниками еще могут быть:
ndiswapper -v
iwlist
iwconfig

lsmod ----просмотреть список установленых модулей
modprobe -l ----список доступных модулей ядра
ndiswapper -e net5523 -- убрать модуль с ndiswapper
modprobe -r ndiswapper --- удалить модуль из памяти
и следующие полезные ссылки:
http://wifikiev.com/?q=node/45
http://lafox.net/support/index.php?showtopic=14512
http://madwifi.org/
http://lafox.net/support/lofiversion/index.php/t17210.html
http://www.linuxquestions.org/questions/linux-hardware-18/step-by-step-instruction-to-install-linksys-wpc11-ver.4-wireless-card-284525/
http://lafox.net/support/index.php?showtopic=13253
http://www.builderau.com.au/program/linux/soa/Configure-wireless-support-in-Mandriva-Linux-with-ndiswrapper/0,339028299,339283105,00.htm
http://linuxfornewbies.org/forum/index.php/topic,3.0.html