понедельник, декабря 29, 2008

Проброс интернета через два компа на КПК


Как всегда, захотелось странного. А именно чтобы интернет мог работать одновременно на трёх компьютерах. На домашнем компьютере, ибо он раздаёт торренты 24/7. На ноутбуке, ибо использую как рабочий комп, ну и плюс в нём wifi есть, чтобы давать интернет на КПК. Ну и КПК, лежать в кроватке и пользовать интернет.


Всё опять же не просто, а очень просто. Хотя для многих не очевидно, посему хочу поделиться готовым рецептом.

Конкретно имеем следующую цепочку:
ADSL router--Wire-->Computer--Wire-->Laptop--Wireless-->PDA

ADSL: всё стандартно. Настроен роутером, DHCP выключено, т.е. адрес на компьютере настраиваем статически. Адрес роутера как обычно 192.168.1.1.

Computer: тут имеем две сетевых карточки. Одна для соединения с роутером, вторая с ноутбуком. Соответственно настраиваем два интерфейса, eth0 и eth1 у меня. Настройки:

eth0(выдержка из /etc/network/interfaces):
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.3
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 195.5.61.70 195.5.61.68
dns-search netserverdomaineth1(выдержка из /etc/network/interfaces):

eth1(выдержка из /etc/network/interfaces):

allow-hotplug eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0

Здесь опять же важный момент. Должен быть включен ip-форвардинг и маскарадинг в iptables:

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING --out-interface eth0 -j MASQUERADE

Laptop: опять же ничего сложного. Снова два интерфейса, для второго новая подсеть для wifi-интерфейса. Настройки(тут уже из Arch Linux, посему имеют немного иной вид):
eth0="eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255"
wlan0="wlan0 192.168.20.1 netmask 255.255.255.0 broadcast 192.168.20.255"
wlan_wlan0="wlan0 essid Wifi"
INTERFACES=(eth0 wlan0)
gateway="default gw 192.168.0.1"
ROUTES=(gateway)

Здесь стоит обратить внимание на wlan_wlan0="wlan0 essid Wifi" это мы сходу имеем настроенную AD-Hoc точку, без шифрования. Для /etc/network/interfaces это выглядит примерно вот так:

auto wlan0
iface wlan0 inet static
address 192.168.20.1
netmask 255.255.255.0
wireless-mode ad-hoc
wireless-channel 1
wireless-rate auto
wireless-essid Wifi

Вот так и получаем интернет сразу на трёх девайсах. Зачем? Это уже личное дело каждого. Мне вот нужно. Может есть ещё кто с такими потребностями.



P.S. С Windows на ноутбуке такую цепочку не осилил. Как-то там всё это непонятно организовано...
Linux и Broadcomm BCM94311MCG WLAN mini-PCI

Появилась потребность настроить Wifi в линукс в связи с покупкой КПК. Скажу сразу, всё получилось, причём на самом деле всё очень просто, понятно и удобно. Хотя из-за долгих мучений с драйвером b43 нервы потрепать пришлось...


Настройка данного девайса(он внутри ноутбука, если что) по пунктам:

  1. Не трогайте драйвер bcm43xx и b43 и десятиметровой палкой! Завестись-то они завелись, а вот работать не работают. Хотя делают вид, что работают. По крайней мере создать точку Ad-Hoc к которой КПК даже мог приконнектиться. Хотя опять же только с одним делением индикатора сети на WM 5.0, при том, что по-хорошему должны быть все 4. Да и вообще сеть не заработала всё равно.
  2. Используем ndiswrapper(на основе вот этого хауту, только попроще):
    • устанавливаем ndiswrapper, я использовал версию 1.53
    • качаем драйвер например отсюда
    • tar -zvpf WLANBroadcomm.tar.gz
    • cd ./WLANBroadcomm
    • sudo ndiswrapper -i bcmwl5.inf
    • ndiswrapper -l
    • добавляем модуль в автозагрузку модулей, тут уж дистроспецифично, я например добавил !b43 !bcm43xx ndiswrapper в секцию MODULES в /etc/rc.conf, потому что ArchLinux, впрочем для разовой настройки и проверки работоспособности это не важно
    • sudo modprobe ndiswrapper
    • sudo ndiswrapper -m
    • Собственно всё!
  3. Теперь настроим простейшую точку доступа, для проверки работоспособности карточки(кому-то проще наоборот, но у меня в районе десятка километров точками доступа и не пахнет), проверял я с помощью КПК на винмобайл, посему настройки для него тоже будут:
  • для сетевого интерфейса wifi ставим такие настройки: wlan0(конечно если у вас он так называется, смотреть в ifconfig -a) 192.168.20.1, netmask 255.255.255.0, broadcast 192.168.20.255, как это сделать личное дело каждого, я настроил в rc.conf
  • потом тушим его: sudo ifcofig wlan0 down, ну так, на всякий пожарный :)
  • настраиваем саму точку доступа, простейшую, без шифрования: sudo iwconfig wlan0 mode Ad-Hoc channel 1 essid Wifi
  • поднимаем интерфейс обратно: sudo ifcofig wlan0 up
  • на кпк настраиваем wifi как 192.168.20.2, 255.255.255.0, gateway 192.168.20.1, DNS прописываем провайдерские, у меня это 195.5.61.70, 195.5.61.68
  • Пользуемся интернетом на КПК.
Вот собственно и всё, кому помогло - счастливчик, кто похвалит - молодец :)

понедельник, февраля 11, 2008

Maple11 + Ubuntu 8.04
При установке Maple 11 для Linux в Ubuntu 8.04 имеется следующая проблема: не запускается инсталлятор благодаря багу jvm и xorg 7.3.

Вывод ошибки примерно следующий:

java: xcb_xlib.c:82: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.
Aborted (core dumped)

Как подсказывает гугль - этот баг jre вполне известен и имеется патч для его решения.
И всё бы хорошо, если бы инсталлятор Maple использовал системную jre.
Увы, но это не так. Посему приходится идти на кое-какие ухищрения...


Инсталлятор Maple(в моём случае это был один файл - sh-скрипт) в процессе установки распаковывает своё содержимое(в том числе и jre) в директорию вида /tmp/install.dir.XXXXX.
Таким образом в промежуток времени между тем, как распакован jre и начинается запуск самого инсталлятора вполне есть возможность пропатчить нужные файлы.

Итак по пунктам:
1) Создаём скрипт вида:
#!/bin/sh

echo "Patching";
LIB_TO_PATCH=libmawt.so
TMP=`ls /tmp | grep install.dir.`
PATH_TO_PATCH=`cd /tmp/$TMP && pwd`

for f in `find $PATH_TO_PATCH -name "$LIB_TO_PATCH"`
do
echo "Patching library $f"
sudo sed -i 's/XINERAMA/FAKEEXTN/g' "$f"
done

2) Далее, запускаем инсталлятор.
3) Читаем его вывод в консоль. Ждём, когда распакуется jre.
А это тогда, когда появится надпись "Extracting the installation resources from the installer archive...".
Примерно так:
[ed@ed-desktop Maple11forLinux]$ ./Maple11Linux32Installer.bin Preparing to install... Extracting the JRE from the installer archive... Unpacking the JRE... ======> вот здесь вот распаковывается jre Extracting the installation resources from the installer archive... ===> а вот тут пора уже запускать скрипт Configuring the installer for this system's environment... Launching installer... ....

4) Собственно ждём появления инсталлятора и устанавливаем Maple куда хочется.

5) Меняем немного скрипт для того, чтобы пропатчить jre уже установленного Maple.
Выглядеть теперь он будет примерно так:

#!/bin/sh

echo "Patching";
LIB_TO_PATCH=libmawt.so
PATH_TO_PATCH=/path_to_maple_installation/maple11/jre.IBM_INTEL_LINUX

for f in `find $PATH_TO_PATCH -name "$LIB_TO_PATCH"`
do
echo "Patching library $f"
sudo sed -i 's/XINERAMA/FAKEEXTN/g' "$f"
done

6) А собственно всё. Пользуемся содержимым /path_to_maple_installation/maple11/bin :)

четверг, января 10, 2008

KDE4 близится!

Как преданный KDE-шник, регулярно собираю KDE4 из svn. Так как долгое время они были неюзабельным говном, то я предпочитал молчать. На текущий момент KDE4 тоже к релизу не готовы, но пользоваться ими уже в принципе можно. Посему не написать о них не могу.
Скажу сразу - есть как приятные моменты, так и грустные. Но хорошего пожалуй больше.
Во-первых они очень гламурно выглядят:


Во-вторых konqueror - реактивен. На фоне firefox с несколькими плагинами возникает ощущение, что попал в сказку.

В-третьих радует немаловажный факт. Мы получаем не только более гламурный WM, и не просто KDE 3x, переписанный на Qt4. Нет, мы получаем также переосмысленный, переделанный, и более функциональный набор прикладных программ.
Так в Kopete добавлена поддержка X-статусов для ICQ. Kget сделали модульным. Собственно для torrent-модуля используется библиотека от последней версии Ktorrent, который тоже стал только лучше.

Для работы с файлами в KDE4 предназначен Dolphin. Это вызвало массу негодования среди преданных KDE-шников, а также глумливые возгласы гномеров о слизывании Xfce-шного thunar-а.
Я и сам было расстроился по этому поводу, ибо Konqueror в качестве файлового менеджера очень хорош, а ранние версии Dolphin не производили особого впечатления.
Но тем не менее я рад, что так получилось. Ибо Dolphin очень лёгкий, функциональный файловый менеджер. И теперь есть надежда на то, что konqueror станет более удобным именно в качестве web-браузера.

Меню тоже поменялось. Его заменили на подобие kickoff. Кому-то нравится, кому-то нет. Но возможность пользоваться старым добрым меню как в KDE3 никто не отменил. Мне лично понравилось.

Настройки! Вот та вещь, которая вызывает больше всего противоречий. Всегдашние дебаты фанатов и противников KDE. Первым всегда импонировала возможность настроить всё и вся. Вторые кричали о перегруженности интерфейса и отсутствии какого-либо HIG-а(Human Interface Guidelines). HIG у KDE таки есть и ему следуют.
Так вот меня радует и то, что настройки не урезали до гномо-2.6-подобности. Но в то же время радует и то, что многие настройки стали более лаконичными, а от того простыми и понятными.
Конечно многого пока не хватает, особенно настроек плазмоидов, но наблюдая каждодневные изменения в svn есть мнение, что всё ещё впереди.

О, и ещё одно! БАГ С РАСКЛАДКОЙ КЛАВИАТУРЫ ИСПРАВИЛИ!!! Хотя это конечно никакой не баг был. И мне от этого ни горячо ни холодно. Я переключаю три раскладки циклически по Caps Lock и настраивать это дело привык в xorg.conf. Но тем не менее на одну легенду стало меньше.

Что сильно огорчило, так это Amarok.

И то, что сделали с его интерфейсом. Хотя это я пережил бы, ибо вид списка можно вернуть и прежний.

А особенно то, что он пока вообще работает чёрт знает как и через раз падает. Впрочем на нём чёрным по Window-Border'у написано "Pre-Alpha Software. Do Not File Bugs"... :)


В целом на релиз KDE4 я возлагаю большие надежды, ибо ожидается отличный и удобный программный продукт. Лично у меня на текущий момент запущено лишь одно приложение не из состава KDE4. Это Firefox. Всё остальное работает и используется. Это kopete, ktorrent, konqueror, dolphin, kmix, amarok, klipper, kwrite, kdevelop, konsole, gwenview...
Всё это работает быстро и ест не особо много памяти.