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

воскресенье, 23 ноября 2008 г.

Создание LiveCD с помощью LiveCD. Часть вторая.

Итак, попытка №2.

В этот раз я, как и планировал, файл для создания моей фс сделал больше. Почти 9 гигов. Разбить его отдельно на два раздела не вышло. Оказывается, так нельзя, поэтому снова swap подключался отдельным файлом. Единственное различие, что его я тоже увеличил. Сделал гиг(как оказалось потом, не зря).
Копирование базовой системы прошло удачно.
Далее в инструкции предлагается не совсем понятная конструкция
cd /cdrom; find . -size -10000k -type f -exec cp -p --parents '{}' /mnt/hda1/knx/master/ \;

Разумно рассудив, что непонятные скрипты(особенно, если вспомнить пресловутутю строчку на perl, убивающую систему) это не Ъ, я скопировал содержимое исходного CD руками:
# cd /cdrom ; cp -Rp ./* /mnt/mylivecd/knoppix/master/ 

Теперь начинаем формировать свой дистрибутив. Переходим в окружение нашей будущей системы:
# chroot /mnt/mylivecd/knoppix/source/KNOPPIX

Для нормальной работы монтируем proc:
# mount -t proc /proc proc

У меня ругнулось, что не может в mtab прописаться, но примонтировалось, поэтому особо не разбирался. После этого инструкция предлагает настроить сеть. Честно говоря, не знаю, почему так поздно, потому как я её включил ещё с самого начала. Поэтому сразу же перехожу непосредственно к настройке системы.
С помощью команд apt-get update, apt-cache search, dpkg -l, apt-get remove и apt-get install собираем нужный набор пакетов(подробности о командах в соответствующих манах). Я первым делом посмотрел в /etc/apt/sources.list и отключил непонятные источники со странными названиями и unstable ветку Debian, оставив только testing, security-апдейты и non-free-репозитарии. Остальное всё исключительно на вкус и цвет собирающего. Я удалил всё, что связано с kde, почти всё из гнома(gconf, к примеру пришлось оставить, потому как его в зависимостях требует xchat), доустановил несколько нужных мне программ. Особо стоит отметить обновление. В инструкции советуют не использовать apt-get upgrade, предупреждая, что после этого система может не загрузиться. Так как было уже далеко заполночь, а посмотреть на свой LiveCD хотелось сегодня, я не стал экспериментировать. Из-за этого обновлять некоторые пакеты(тот же iceweasel) приходилось, используя опцию apt-get --reinstall.
Когда с выбором пакетов закончено, убираем лишнее, командуя:
# deborphan | xargs apt-get -y remove

и чистим остальное:
# COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' | xargs dpkg -P
# apt-get clean

Всё. Здесь закончили. Отмонтируем proc(может ругнуться на то, что устройство занято; лечится нажатем Tab после umount /proc - тогда система покажет, что там лишнее примонтировано и сначала убиваем его, а потом и сам proc).
Выходим из окружения:
# exit

Теперь небольшая доработка напильником. Я хотел, чтобы система как имнимум по умолчанию подхватывала мой xorg.conf и настройки сети.
Как я уже описывал, флешка у меня отформатирована в ext2 и на ней находится раздел /home.
Я попытался научить систему монтировать её при старте. Вот тут я допустил небольшую ошибку. Толком не разобравшись в скриптах, я дописал несколько строчек в /mnt/mylivecd/knoppix/source/KNOPIIX/etc/init.d/knoppix-autoconfig
Как выяснилось потом, неправильно. :)
Кроме этого я в /mnt/mylivecd/knoppix/source/KNOPPIX/etc/init.d/ создаю скрипт cppmm-config.sh, с простым содержанием:
#!/bin/bash
/home/knoppix/cppmm-start.sh

В /home/knoppix/cppmm-start.sh тоже всё просто:
#!/bin/bash
echo "Hello, World!"

На скрипт в init.d делаю символическую ссылку /etc/rcS.d/S45cppmm-config
По задумке, этот скриптик будет вызван после монтирования дисков и перед стартом иксов.
Решение пришло уже только потом, о чём ниже я и напишу.
Мы на финишной прямой. Создаём сжатую файловую систему KNOPPIX:

# mkisofs -R -U -V "MyLiveCD" -publisher "cppmm" -hide-rr-moved -cache-inodes -no-bak -pad /mnt/mylivecd/knoppix/source/KNOPPIX | nice -5 /usr/bin/create_compressed_fs - 65536 > /mnt/mylivecd/knoppix/master/KNOPPIX/KNOPPIX

Вот здесь и припомнился гиг свопа. Запущенный на второй консоли top, показывал постоянную загрузку проца не меньше 80-ти процентов, а использование свопа за несколько минут с пары десятков килобайт выросло до почти 700-та метров. По времени всё это заняло около полутора часов на моей машине.
Обновляем её md5-хеш:
rm -f /mnt/mylivecd/knoppix/master/KNOPPIX/md5sums; find -type f -not -name md5sums -not -name boot.cat -not -name isolinux.bin -exec md5sum '{}' \; >> /mnt/mylivecd/knoppix/master/KNOPPIX/md5sums

И непосредственно создаём образ диска, ради которого всё и затевалось:
mkisofs -pad -l -r -J -v -V "KNOPPIX" -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -hide-rr-moved -o /mnt/mylivecd/knoppix/mylivecd.iso /mnt/mylivecd/knoppix/master

Вот и готов. Там же из-под LiveCD запускаю новоиспечённый образ с помощью, поставляемого с knoppix'ом qemu
# qemu -no-kqemu -boot d -cdrom /mnt/mylivecd/knoppix/mylivecd.iso

Ура! Стартует.
Не в силах больше ждать, записываю болванку, перегружаюсь и пытаюсь загрузиться уже на реальном компе. И тут сраз уже вижу, где просчитался. Всё грузится, как обычно, но вместо ожидаемого Hello, World! получаю ошибку о том, что в /home/knoppix никакого скрипта не найдено...
Поковырявшись и прогнав скрипты knoppix'а через bash -x понимаю, что править один из них и руками вписывать монтирование флешки - было опрометчиво. Но тут же меня осенило, что смонтировать можно с помощью тех же уровней загрузки(rc0, rc1 и т.д.).
Однако времени уже было 9 утра, потому перебирать заново образ почему-то стало лень. :)
Единственное, что сделал, это руками примонтировал флешку и посмотрел, как ведёт себя новоиспечённый LiveCD. Отлично! Кодеки на mp3/avi/и подобное подхватились. Софт, который я себе навыбирал работает отлично. Осталось только допилить внешний вид fluxbox, вписать в настройках пользователя нормальные шрифты и написать вменяемый скрипт для автостарта сети и подбрасывания конфига иксов. А так как этот скрипт находится на флешке, для изменений даже на уровне системы, мне уже не придётся каждый раз пересобирать весь образ LiveCD.

суббота, 22 ноября 2008 г.

Создание LiveCD с помощью LiveCD.

На данный момент у меня такая ситуация, что родной компьютер с родным Debian'ом находится далеко. А железка, за которой приходится работать с виндой, что меня совсем не радует. А снести винду нельзя. Но выход, вроде бы как найден. LiveCD. Однако не всё так просто. Под рукой оказался только LiveCD knoppix 5.1.1. Свою флешку на 512Mb я отформатировал под ext2, и перенёс туда все настройки из /home, сохранив туда так же нужный мне xorg.conf и параметры сети(/etc/network/interfaces). Но всё-таки неудобно. Во-первых, постоянно грузиться в консольный режим, руками копировать настройки сети и иксов в соответствующие диры, а потом стартовать это всё после каждой загрузки со временем надоедает. Во-вторых, не радует отсутствие кодеков для прослушивания музыки и просмотра фильмов(knoppix, как и большинство других дистров борется за чистоту лицензии, а потому в стандартной поставке этих вещей нет). В-третьих, набор программ. Нет моего psi, для jabber'а; iceweasel почему-то только из второй ветки; не установлен flash-plugin и т.д. и т.п.
Так как мы, линуксоиды - народ суровый, было принято решение собрать свой собственный LiveCD, который бы по-умолчанию при старте монтировал бы флешку, стягивал настройки иксов и сети, сразу же запускал бы эти иксы с моей конфигурацией и обладал бы нужным мне надором софта...
Полчаса общения с гуглом и попадается такая вот ссылка: http://www.knoppix.net/wiki/Knoppix_Remastering_Howto_Russian
Итак, попытка №1.
Переписывать всю доку не буду, стану останавливаться лишь на ключевых местах.
Нужен раздел. Причём раздел, отформатированный в файловую систему linux и размером не меньше 3-ёх гигов, как указано в мане. Не долго думая, монтирую виндовый диск(ntfs, благо пятый knoppix спокойно читает и пишет на эту недофс):
# mkdir /mnt/win
# mount -t ntfs /dev/hda1 /mnt/win -o iocharset=koi8-r,uid=1000,gid=1000,rw

iocharset даёт мне возможность не путаться с русскими названиеми файлов, uid и gid назначают владельца для вновь примонтированного раздела, rw разрешает чтение/запись
Создаю забитый нулями файл размером 3 гига:

# touch /mnt/win/myfilesystem
# dd if=/dev/zero of=/mnt/win/myfilesystem bs=1M count=3072

Как известно, для линухи - всё файл. В том числе и блочные устройства(винт, cdrom и т.д.). Раз так, значит и наоборот, потому работаю с этим файлом, как с обычным винтом. Для начала разбиваю на разделы:
# fdisk /mnt/win/myfilesystem

Сперва надо будет перейти в расширенный режим меню и создать цилиндры. После этого записать результат. Потом заново открываем фал fdisk'ом и, собственно, создаём раздел. Я не стал особо заморачиваться и на весь файл сделал один primary раздел. О том, как это делает подробно написано в man fdisk.
Наш "диск готов". Форматируем его(я выбрал обычную ext2, потому как этот раздел нужен только на время создания LiveCD, а потом не вижу смысла тратить место на жруналирование и другие навороты).
# mke2fs /mnt/win/myfilesystem

Теперь можно его примонтировать, и создать рабочую директорию.

# mkdir /mnt/mylivecd
# mount -t ext2 -o loop /mnt/win/myfilesystem /mnt/mylivecd
# mkdir /mnt/mylivecd/knoppix

Так как в доке было сказано, что потребуется не менее гига оперативы в сумме(собственно ОЗУ + своп), создаю файл подкачки(на моём компе всего 512 метров памяти, поэтому, чтобы было с запасом сделал 750-ти метровый swap):
# dd if=/dev/zero of=/mnt/mylivecd/knoppix/swapfile bs=1M count=750
# mkswap swapfile
# swapon swapfile

Далее действую по инструкции. Создаю рабочие директории:

# mkdir -p /mnt/mylivecd/knoppix/master/KNOPPIX
# mkdir -p /mnt/mylivecd/knoppix/source/KNOPPIX

Копирую туда исходную систему:
# cp -Rp /KNOPPIX/* /mnt/mylivecd/knoppix/source/KNOPPIX

Вот тут-то и наступаем на первые грабли. Получаем ошибку о том, что недостаточно места на диске. После проверки выясняется, что как всегда виноват оказался я сам. Инструкцию надо было сначала прочитать до конца, а потом браться за дело. Оказалось, дока несколько устаревшая и описывает процесс создания своего диска на основе knoppix 3.4. Видимо, с тех времён дистр несколько разросся. Проще говоря, 3-ёх гигов мало. Примерный подсчёт показал, что надо бы не менее 4,5. А так как на виндовом разделе у меня было свободно всего 4,4, пришлось всё отложить до лучших времён(до завтра ;)).

Итак, небольшой вывод. Больше всего я боялся за то, что возникнут проблемы с таким нагромождением примонтированныходна из другой фс. Оказалось, это не так страшно и жить можно. Единственное, что я решил на следующий раз, это файл "псевдодиска" разбить на два раздела с самого начала, один под рабочий, второй под swap.
Кроме этого с моим количеством памяти приходится экономить. С самого начала я выбрал загрузку knoppix'а в fluxbox(по умолчанию kde). В процессе работы не желательно iceweasel(утечки в памяти для этого замечательного броузера, к сожалению, уже давно стали притчей во языцех).
Кроме этого я настоятельно рекомендую забыть про всеми любимую konsole и по старинке работать в rxvt. Надёжнее.

В общем, надеюсь, завтра всё выйдет более удачно.

понедельник, 11 августа 2008 г.

Подсчёт траффика в Linux с помощью pmacctd.

Система подсчёта траффика

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

Скрипт запуска, останова и считывания адресов клиентов учётки

Находится в /etc/ini.d/ Отрабатывает с параметром start при старте системы и параметром stop, при останове. После добавления нового пользователя, надо делать /etc/ini.d/pmacct restart

#!/bin/sh
#

## Глобальные переменные
### Пути к утилитам, по которым скрипт может обращаться. Не обязательная переменная, но для подстраховки не помешает.
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
### Расположение собственно исполняемого файла утилиты pmacctd
DAEMON=/usr/sbin/pmacctd
### Имя работающего демона
NAME=pmacctd
### Описание.
DESC="traffic accounting system"
### Директория для хранения настроек учётной системы.
CONFDIR=/etc/pmacct
### Директория для хранения логов.
LOGDIR=/var/log/pmacctd
### Инклудим конфиг.
. $CONFDIR/pmacctd.conf

### Проверяем наличие исполняемого файла демона. Если отсутствует, завершаем работу.
test -x $DAEMON || exit 0

### Функция останова.
stop () {
 killall -INT $NAME
}

### Функция старта.
start () {
#### Вытягиваем из конфига прокси-сервера имена и ip-адреса пользователей и сохраняем из в файл stat.conf в директории конфигов.
     grep 255.255.255.255 /etc/squid/squid.conf | grep -v 127.0.0.1 | grep -v '#' | awk '{print $2, $4}' | cut -f 1 -d / > $CONFDIR/stat.conf
#### Собственно запускаем демона в фоновом режиме и складываем всю статистику по траффику в файл pmacctd.log в лог-директории.
     $DAEMON -c $PRIMITIVE -i $INTERFACE -r $INTERVAL -P print >> $LOGDIR/pmacctd.log &
}

### Меню выбора используемой функции из первого аргумента после скрипта.
case "$1" in
start)
     echo -n "Starting $DESC: "
     start
     echo "$NAME."
     ;;
stop)
     echo -n "Stopping $DESC: "
     stop
     echo "$NAME."
     ;;
restart)
     echo -n "Restarting $DESC: "
     stop
     sleep 1
     start
     echo "$NAME."
     ;;
*)
     N=/etc/init.d/$NAME
     echo "Usage: $N {start|stop|restart}" >&2
     exit 1
     ;;
esac

exit 0




Конфиг.


Значения берутся из man pmacctd.

PRIMITIVE=src_host,dst_host
INTERFACE=eth0
INTERVAL=1


Скрипт скидывания ежедневной статистики

Запуск скрипта прописан в файле /etc/crontab:
01 4 * * * root /usr/sbin/pmacctdaily
Он отрабатывает автоматически каждый день в 04:01:00 по времени сервера.

#!/bin/bash
#
## Конфигурационная директория
CONFDIR=/etc/pmacct
## Лог-директория
LOGDIR=/var/log/pmacctd
## Текущая дата в формате ддммгггг
DATE=`date +%d%m%Y`
## Вычисление пользовательских ip-адреса.
USERSIP=`cat $CONFDIR/stat.conf | awk '{print $2}'`
## Останов учётной системы для того, чтобы она не обращалась к логам во время работы с ними данного скрипта.
/etc/init.d/pmacct stop >/dev/null
## Создание директории для траффика за сутки до текущей даты
mkdir $LOGDIR/$DATE 2>/dev/null
## Пока в памяти лежат пользовательские ip-адреса, обработать каждый из них по-очереди.
for i in $USERSIP
do
#### Вычисляем количество бит в каждой следующей записи из лога, в которой упоминается текущий ip-адрес
BYTES=`grep -w $i $LOGDIR/pmacctd.log | awk '{print $16}'`
ALLBYTES=0
##### Прибавляем каждое новое вычисленное количество битов к переменной ALLBYTES
for b in $BYTES
do
ALLBYTES=$((ALLBYTES+b))
done
##### Вычисляем имя пользователя с текущим ip-адресом
USERNAME=`grep -w $i $CONFDIR/stat.conf | awk '{print $1}'`
#### Скидываем в файл с именем текущего пользователя значение переменной ALLBYTES
echo $ALLBYTES > $LOGDIR/$DATE/$USERNAME
done
##### Архивируем общий лог и сохраняем его в директорию с файлами статистики пользователей за сутки.
gzip $LOGDIR/pmacctd.log
mv $LOGDIR/pmacctd.log.gz $LOGDIR/$DATE/
Запускаем учётную систему.
/etc/init.d/pmacct start >/dev/null
В общей сложности при нынешней нагрузке скрипт отрабоатывает примерно за 10-15 секунд. Чем больше будет пользователей и траффика, тем больше понадобится времени, но для того, чтобы дойти хотя бы до минуты выполнения, надо увеличить объёмы в несколько раз.


Скрипт скидывания ежемесячной статистики

Запуск скрипта прописан в файле /etc/crontab:
01 5 1 * * root /usr/sbin/pmacctdmonthly
Он отрабатывает автоматически каждый первый день месяца в 05:01:00 по времени сервера.
#!/bin/bash
#
### Конфигурационная директория
CONFDIR=/etc/pmacct
### Лог-директория
LOGDIR=/var/log/pmacctd
### Текущий месяц в формате мм
MONTH=`date +%-m`
### Текущий год в формате гггг
YEAR=`date +%Y`
Временная директория
TMPDIR=/tmp/pmacctd
## Так как скрипт выполняется первого числа, а нам надо сделать статистику за предыдущий месяц, делаем проверку, не первое ли сегодня января и присваиваем переменным месяца и года нужные нам значения.
#### Отдельное примечание. Из-за того, что в bash по умолчанию числа, начинающиеся с 0, автоматически считаются числами восьмеричой системы счисления,
#### приходится делать более сложную проверку, сравнивая значения месяцев, как строки, и только потом присваивать им какие-либо значения.
if [[ $MONTH == 01 ]]
then
LASTMONTH=12
LASTYEAR=$((YEAR-1))
else
if [[ $MONTH == 11 || $MONTH == 12 ]]
then
LASTMONTH=$((MONTH-1))
LASTYEAR=$YEAR
else
LASTMONTH=$((MONTH-1))
LASTMONTH=0$LASTMONTH
LASTYEAR=$YEAR
fi
fi
## Создаём директорию вида ммгггг для хранения статистики за месяц.
mkdir $LOGDIR/$LASTMONTH$LASTYEAR
## Считываем все директории с файлам посуточной статистики за прошедший месяц.
DIR=`ls $LOGDIR | grep $LASTMONTH$LASTYEAR`
for i in $DIR
do
#### Поочереди, в каждой из этих директорий находим файлы по именам пользователей
USERNAME=`ls $LOGDIR/$i/`
for n in $USERNAME
do
###### Во временной директории создаём файл с несуммированной статистикой на каждого пользователя.
BYTES=`cat $LOGDIR/$i/$n`
echo $BYTES >> $TMPDIR/$n
done
done
#### Суммируем статистику из временной директории на каждого пользователся,
#### Складываем её в вышесозданную директорию и
#### удаляем временные файлы.
for i in $DIR
do
USERNAME=`ls $LOGDIR/$i/ | grep -v gz`
for nn in $USERNAME
do
ALLBYTES=0
BYTES=`cat $TMPDIR/$nn`
for b in $BYTES
do
ALLBYTES=$((ALLBYTES+b))
echo $ALLBYTES > $LOGDIR/$LASTMONTH$LASTYEAR/$nn
done
done
done
rm -rf $TMPDIR
В итоге в Лог-директории мы получаем каталог с номером прошедшего месяца и года вида ммгггг, в котором лежат файлы, имя каждого из которых - это имя пользователя, а содержимое - траффик за прошедший месяц.

четверг, 19 июля 2007 г.

Настройка протокола связи turbocell

1. Введение.
Сейчас довольно сильно распространенны разнообразные Wi-Fi устройства, применяемые для связи в тех местах, где нет возможности(или очень дорого) протянуть кабель. По поводу настройки связи по протоколам IEEE 802.11 a/b/g написанно довольно много документации, но мне по работе недавно пришлось столкнуться с настройкой протокола TurboCell(программная "надстройка" для устройств, разработанных для IEEE 802.11 a/b/g, реализующаяя маркерный протокол доступа и гарантирующая стабильную связь в тех условиях, в которых ресурсы 802.11 a/b/g уже исчерпаны). Проще говоря, этот протокол даёт возможность "выжать больше" из того же оборудования по сравнению с 802.11 a/b/g. Однако при настройке я столкнулся снекоторыми проблемами, а информации в интернете по этому поводу, как оказалось, практически нет. Поэтому я решил описать процедуру настройки.
2. Получение драйверов и прошивки.
Я использую такую схему связи:
Устройство RG+KN-105 Outdoor на базе pcmcia-карточки Orinoco Silver в качестве Точки Доступа.
Компьютер с установленной ОС Linux(подробнее дальше) и pcmcia-карточкой Orinoco в качестве клиента.
Так как этот протокол является закрытым, прошивку для ТД и ключи для работы драйверов придётся покупать. Вам должны предоставить файл прошивки xxx.bin и ключ к нему xxx.lkf для устройства. Для клиента - исходные тексты драйверов wavelan2_cs-TC1.04.tar.gz и 20-ти значный ключ. Всё кроме драйверов генерируется при помощи MAC-адресов карточек. Связываться надо с представителями компании KarlNet Inc (ныне Terabeam/Proxim).
3. Прошивка устройства.
Для прошивки Вам понадобится утилита "TeraBeam Configurator and Management Program", разработанная под Windows, но прекрасно работающая под wine(если у Вас, как и у меня в качестве Desktop-системы используется Linux).
Итак, непосредственно процедура прошивки:
а) сбрасываем устройство к заводским настройкам(в моём случае надо было зажать кнопку reset при отключенном питании и потом включить устройство в сеть, после чего несколько секунд подождать пока все индикаторы устройства не успокоятся);
б) запустив утилиту, идём в File -> Open Config/Bin File -> Отвечаем Ok во всплывшем окне -> Выбираем файл прошивки (xxx.bin) -> Жмём Import License Key -> Выбираем фал ключа(xxx.lkf) -> Отвечаем Ok во всех окнах после этого.
Если всё прошло успешно, мы возвращаемся к главному окну утилиты. Теперь File -> Upload Software -> Scan -> Выбираем устройство(ip-адрес запоминаем, либо меняем на тот, который Вам нравится) -> Во всех окнах жмём Ok и ждём.
После всего этого устройство должно быть готово к работе с протоколом TurboCell. Для настройки запускаем ту же утилиту, вводим в поле под "Enter an IP address or select from above" адрес указанный при прошивке, ждём появления надписи <указанный_Вами_ip-адрес> is online и нажимаем Configure Remote. Остальные настройки на Ваше усмотрение кроме одного замечания: В Interface Setup, в настройках интерфейса 802.11(у меня второй) нужно указать режим TurboCell Base Station и ISP Base Station, иначе связи не будет(во всяком случае у меня не вышло и информации о том, что у кого-то получилось запустить это в другом режиме у меня нет).

4. Установка драйверов.
Драйвера для Linux мне удалось запустить только с ядром 2.4.2. С другими ядрами модуль wavelan_cs2 получающийся после сборки не подгружается из-за ошибок в совместимости. Я использовал систему Debian Sarge 3r1, указывая при установке, что мне требуется ядро 2.4.27. После установки я скачал и собрал ядро 2.4.2. Главное замечание при сборке - правильно указать параметры pcmcia. В качестве примера я использовал дефолтный конфиг ядра из RedHat Linux 7.1. Также для сборки драйверов понадобится компилятор gcc только из второй ветки(старше нельзя).
Далее тянем из инета драйвера для pcmcia (я использовал pcmcia-cs-3.1.30.tar.gz). Распаковываем их куда-нибудь, а уже в корень директории с этими драйверами распаковываем wavelan2_cs-TC1.04.tar.gz. Конфигурим при помощи make config pcmcia-драйвера и запускаем скрипты ./Build и ./Install.
Драйвера готовы.
5. Настройка и запуск.
Для настройки правим файл /etc/pcmcia/config.opts, добавляя в него строку:
module "wavelan2_cs" opts "protocol=1 channel=1 port_type=3 nwid=0 license=12345678901234567890 pp=password station_name=name", где nwid, pp и channel должны совпадать с соответствующими параметрами на ТД, station_name ставится на Ваше усмотрение, а license - 20-ти значный ключ, выданный Вам продавцом лицензии. Остальное всегда остаётся таким, как у меня указанно.
Рестартуем pcmcia и связь должна появиться. Маленькое замечание. wireless-tools можно не ставить. iwconfig не отображает практически ничего связанного с TurboCell, т.е. ни наличия/отсутствия сигнала, ни действующих ключей, ничего кроме канала и имени клиентской точки.
6. P.S.
Описание получилось коротким, но на самом деле надо быть готовым ко множеству проблем. Не знаю, как и когда писались эти драйвера, но всё, что здесь описанно, я изучал на протяжении долгого времени методом проб и ошибок. В более новых версиях linux могут возникнуть проблемы с binutils - придётся менять на более старую версию, про gcc я уже говорил(я использовал 2.96). Так же могут возникнуть проблемы с модулями, если в Вашем дистрибутиве нельзя при установке выбрать ядро из ветки 2.4.х. В общем, пробуйте. Эту статью не следует воспринимать, как руководство к действию, это всего лишь описание удавшейся и работающей конфигурации.