2005-06-26

Ethernet Bridge with Linux

В къщи си имаме 3 машини, като едната е с три мрежови карти (всъщност са четири и няма място за петата). Какво да правя, като Intel Pro 100 са ми любими, RealTec не са лоши, 3COM-а е стара като света, бавна но стабилна като скала... е как да се разделя с тях, а? Моята машина е жива 99% от времето (освен като спре тока) а двете други машини ползват и Windows. При тази ситуация закупуването на switch/hub ми се струва разточителство - Ethernet Bridge е достатъчно добро решение.


Как става това с Fedora/RH/CentOS? Ами... лесно. Ако имаме 2 интерфейса, eth1 и eth2, за включване в br0 то конфигурацията се записва в /etc/sysconfig/network-scripts/ifcfg-br0 и изглежда така:

# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.0.254
NETMASK=255.255.255.0
NOZEROCONF=YES # you might need this!
DELAY=0 # set bridge forward delay

Конфигурациите на eth1 и eth2 се променят да нямат IP адреси (дори да имат, пак работи) и да се укаже към кой bridge принадлежат, примерно за eth1:


DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
BRIDGE=br0 # This is the important part ;)

... и ако всичко е наред, след 'service network restart' вече имате работещ интерфейс br0:

[root@fc ~]# ip addr list dev eth1; ip addr list dev eth2; ip addr list dev br0; brctl show
3: eth1: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:d3:b7:18:aa:7a brd ff:ff:ff:ff:ff:ff
4: eth2: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:50:ba:18:ab:fc brd ff:ff:ff:ff:ff:ff
5: br0: mtu 1500 qdisc noqueue
link/ether 00:d1:b7:26:82:02 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.1/24 brd 192.168.0.255 scope global br0
bridge name bridge id STP enabled interfaces
br0 8000.00d1b7268202 no eth1
eth2

2005-06-23

Петрич

Днес съм в Петрич. Хубава природа, приятно време... и доста работа. Не се оплаквам, много, но ще се наложи да се занимавам и с Windows-и и... не съм особено вдъхновен. Knoppix is my best friend в такива случаи.

Гледайки природата наоколо все повече си мисля, че трябва да взема да послушам колегите и да си вдигна мързеливия задник с тях малко из планината. Компютрите са хубаво нещо, но май аз лично попрекалявам с тях :)

ПП: Не ме разбирайте погрешно, обичам разходките из планината, но рядко/трудно се оказвам на такава...

2005-06-22

j2me_wtk

Днес се измъчих с таз джаджа. java-1.5.0-sun беше лесно - nosrc.rpm от http://www.jpackage.org/, малко лутане из сайта на sun, rpmbuild --rebuild и запя (хубаво нещо са alternatives ot chkconfig-а). За j2me_wtk обаче пакет няма. Намерих само един стар спецификационен файл в листата на jpackage. В новата версия (2.2) се оказа че има preverify1.0 и preverify1.1 в добавка към preverify, е, може и да съм изтървал някое друго допълнение. Получи се следния spec файл:

# based on https://www.zarb.org/pipermail/jpackage-discuss/2005-February/007127.html
Name: wtk2
Version: 2.2.01
Release: 0.0.jpp.0

Summary: Sun J2ME Wireless Toolkit
Group: Development/Java

License: Sun Microsystems Inc. Binary Code Agreement
URL: http://java.sun.com/developer/releases/j2mewtoolkit/
#http://java.sun.com/products/sjwtoolkit/download-2_2.html

#Source0: j2me_wireless_toolkit-1_0_4_01-bin-linuxi386.bin
Source0: j2me_wireless_toolkit-2_2-linux-i386.bin
NoSource: 0

BuildArch: i586
BuildRoot: %{_tmppath}/%{name}-%{version}-root

#BuildRequires: jpackage-utils >= 1.5
BuildRequires: jpackage-utils >= 1.6.3
#Requires: java-devel >= 1.3

%description
The Java 2 Platform, Micro Edition (J2ME) Wireless Toolkit is a
state-of-the-art toolbox for developing wireless applications that are based on
J2ME's Connected Limited Device Configuration (CLDC) and Mobile Information
Device Profile (MIDP), and designed to run on cell phones, mainstream personal
digital assistants, and other small mobile devices. The toolkit includes the
emulation environments, performance optimization and tuning features,
documentation, and examples that developers need to bring efficient and
successful wireless applications to market quickly.

%package demos
Summary: MIDP demos
Group: Development/Demos

%description demos
A collection of MIDP demos

%package javadoc
Summary: Wireless Toolkit javadoc
Group: Development/Documentation

%description javadoc
API documentation for the Wireless Toolkit

%prep
rm -fr %{name}-%{version}
mkdir %{name}-%{version}
cd %{name}-%{version}

# Looking at the shell script at the begining of the binary...
dd if=%{SOURCE0} of=j2me-linux.zip bs=1k skip=20
unzip -q j2me-linux.zip
chmod -R go=u-w *
chmod -R u+w *

%build
# nothing
# TODO: Would be good to remove some +x flags here (from jars for example)

%install
[ $RPM_BUILD_ROOT != "/" ] && rm -fr $RPM_BUILD_ROOT
cd %{name}-%{version}

mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}
cp -a * $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}

mkdir -p $RPM_BUILD_ROOT%{_javadocdir}
mv $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/docs/api $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}

mkdir -p $RPM_BUILD_ROOT%{_docdir}
mv $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/docs $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
mv $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/*.html $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
#mv $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/*.css $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}

rm $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/*.zip

%clean
rm -fr %{name}-%{version}
[ $RPM_BUILD_ROOT != "/" ] && rm -fr $RPM_BUILD_ROOT

%post
# A bit of alternative magic :)
alternatives \
--install %{_datadir}/wtk wtk %{_datadir}/%{name}-%{version} $(echo %{version} | sed -e 's/\.//g') \
--slave %{_bindir}/defaultdevice defaultdevice %{_datadir}/%{name}-%{version}/bin/defaultdevice \
--slave %{_bindir}/emulator emulator %{_datadir}/%{name}-%{version}/bin/emulator \
--slave %{_bindir}/ktoolbar ktoolbar %{_datadir}/%{name}-%{version}/bin/ktoolbar \
--slave %{_bindir}/prefs prefs %{_datadir}/%{name}-%{version}/bin/prefs \
--slave %{_bindir}/preverify preverify %{_datadir}/%{name}-%{version}/bin/preverify \
--slave %{_bindir}/runmidlet runmidlet %{_datadir}/%{name}-%{version}/bin/runmidlet \
--slave %{_bindir}/utils utils %{_datadir}/%{name}-%{version}/bin/utils \
--slave %{_bindir}/zayit zayit %{_datadir}/%{name}-%{version}/bin/zayit \

%preun
alternatives --remove wtk %{_datadir}/%{name}-%{version}

%files
%defattr (-,root,root)
%doc %{_docdir}/%{name}-%{version}
%{_datadir}/%{name}-%{version}/appdb
%{_datadir}/%{name}-%{version}/bin
%{_datadir}/%{name}-%{version}/lib
%{_datadir}/%{name}-%{version}/sessions
%{_datadir}/%{name}-%{version}/wtklib

%files demos
%defattr (-,root,root)
%{_datadir}/%{name}-%{version}/apps

%files javadoc
%defattr (-,root,root)
%{_javadocdir}/%{name}-%{version}

%changelog
* Wed Jun 22 2005 Doncho Gunchev <gunchev at gmail.com> 2.2.01-0.0.jpp.0
- update the version
- minor fix with 'no more .css' at root archive dir
- add preverify10 and preverify11 to alternatives

* Wed Feb 16 2005 Lyle Dietz <dietzla at tsgpacific.com.au> 1.0.4.01-0.0.jpp.0
- Initial RPM version

Това ми е първия java пакет (в който съм си врял носа) и сигурно е голяма каша, но работи.

SUN доста ме разочароваха... как може ktoolbar да се опитва да си записва настройките в директорията в която му се намира изпълнимия файл, или да се опитва там да прави някакви .lock файлове за com портове до колкото разбрах? Те и от mozilla не са много на ти с UNIX-а /custom search engines/, обаче тези хич не са... Ако ми остане време, или по-скоро ми се наложи да го направя, ще взема да разгледам не мога ли някак да го поизлъжа това чудо.

ПП: Примерен мидлет - http://www.devx.com/tips/Tip/20098.

2005-06-21

kkbswitch

В lug-bg един ден научих за kkbswitch и от тогава ми е любимо приложение за превключване на клавиатурната подредба под X (KDE, XFCE4, Gnome). С преминаването на Fedora Core 4 /online, с yum upgrade ;-)/ се наложи да го прекомпилирам. Приятната изненада бе, че rpmbuild -ta kkbswitch*.tar.gz върши чудесна работа. В xorg.conf аз ползвам следнте редове:

...
Section "InputDevice"
...
Option "XkbLayout" "us,bg"
Option "XkbVariant" ",phonetic"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
EndSection

... и се чуствам щастлив превключвайки си с Alt-Shift, както в "доброто старо време", при това с културна индикация в лентата (tray, превода нещо ми куца, срамота!)...

2005-06-18

Нов blog, нова проба :)

По някога човек неочаквано намира полезни неща из Интернет... примерно:


rpm-openpgp-1.html
rpm-openpgp-2.html
rpm-openpgp-3.html
Какво трябва да знаем за RPM

благодарение а Сава Чанков в lug-bg. Като добавка - Maximum RPM.