<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Krzysztof Burghardt’s blog &#187; Polish</title>
	<atom:link href="http://blog.burghardt.pl/category/polish/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.burghardt.pl</link>
	<description>Create. Break. Fix. Repeat.</description>
	<lastBuildDate>Sat, 19 Mar 2011 10:10:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Aktualizacja OpenWRT</title>
		<link>http://blog.burghardt.pl/2009/10/aktualizacja-openwrt/</link>
		<comments>http://blog.burghardt.pl/2009/10/aktualizacja-openwrt/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 23:11:34 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Polish]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[OpenWRT]]></category>
		<category><![CDATA[WL-500g]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=327</guid>
		<description><![CDATA[<p>W styczniu opisałem jak zainstalować dopasowaną do własnych potrzeb dystrybucję OpenWRT na routerze ASUS WL-500g Premium. Pora na aktualizację.</p> <p></p> Kopia zapasowa <p>Na wszelki wypadek, gdyby aktualizacja się nie powiodła warto wykonać kopię bezpieczeństwa aktualnego systemu. Informacje na temat wykonywania kopii całego oprogramowania (kernel + squashfs + jffs2) znajdziemy w wiki pod hasłem &#8220;BackupAndRestore&#8220;.</p> Aktualizacja [...]]]></description>
			<content:encoded><![CDATA[<p>W styczniu opisałem jak zainstalować dopasowaną do własnych potrzeb dystrybucję OpenWRT na routerze <a href="/2009/01/openwrt-na-miare-naszych-mozliwosci-i-potrzeb">ASUS WL-500g Premium</a>. Pora na aktualizację.</p>
<p><span id="more-327"></span></p>
<h2>Kopia zapasowa</h2>
<p>Na wszelki wypadek, gdyby aktualizacja się nie powiodła warto wykonać kopię bezpieczeństwa aktualnego systemu. Informacje na temat wykonywania kopii całego oprogramowania (kernel + squashfs + jffs2) znajdziemy w <a href="http://nuwiki.openwrt.org/">wiki</a> pod hasłem &#8220;<a href="http://nuwiki.openwrt.org/oldwiki/BackupAndRestore">BackupAndRestore</a>&#8220;.</p>
<h2>Aktualizacja źródeł</h2>
<p>Zgodnie z instrukcją na stronie <a href="https://dev.openwrt.org/wiki/GetSource">zatytułowanej &#8220;GetSource&#8221;</a> pobieramy źródła. Jeśli mamy jeszcze poprzednie używamy <em>svn switch &#8211;relocate</em>, aby zmienić protokół z <em>https://</em> na <em>svn://</em>, a następnie wydajemy polecenie <em>svn up</em>.</p>
<h2>Nakładanie łatek</h2>
<p>Łatka zwiększająca domyślny limit wielkości obszaru rootfs nie jest już potrzebna. Aktualny limit jest ustawiony wyżej niż ustawiała go łatka.</p>
<p>Łatka włączająca wsparcie dla <a href="http://ocf-linux.sourceforge.net/">OCF</a> w OpenSSL wygląda tak:</p>
<div class="codecolorer-container diff default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="diff codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Index: package/openssl/Makefile<br />
===================================================================<br />
<span style="color: #888822;">--- package/openssl/Makefile &nbsp; &nbsp;<span style="">&#40;</span>wersja 18079<span style="">&#41;</span></span><br />
<span style="color: #888822;">+++ package/openssl/Makefile &nbsp; &nbsp;<span style="">&#40;</span>kopia robocza<span style="">&#41;</span></span><br />
<span style="color: #440088;">@@ -81,6 +81,8 @@</span><br />
&nbsp;define Build/Configure<br />
&nbsp; &nbsp; <span style="">&#40;</span>cd $<span style="">&#40;</span>PKG_BUILD_DIR<span style="">&#41;</span>; \<br />
&nbsp; &nbsp; &nbsp; &nbsp; ./Configure linux-openwrt \<br />
<span style="color: #00b000;">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --with-cryptodev \</span><br />
<span style="color: #00b000;">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --with-cryptodev-digests \</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --prefix=/usr \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --openssldir=/etc/ssl \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="">&#40;</span>TARGET_CPPFLAGS<span style="">&#41;</span> \</div></div>
<h2>Konfiguracja źródeł</h2>
<p>Uruchamiamy <em>make menuconfig</em> i wczytujemy poprzednio użyty plik konfiguracyjny.</p>
<p>Następnie w menu wybieramy <strong>Advanced configuration options (for developers)</strong>, a w podmenu <strong>Use ccache</strong> oraz <strong>Toolchain Options</strong>, a w nim <strong>Enable Stack-Smashing Protection support</strong>.</p>
<p>Aby używać najnowszej wersji sterownika WiFi oraz najnowszego firmware wybieramy w menu głównym <strong>Kernel modules</strong>, a następnie <strong>Wireless Drivers</strong>. W tym podmenu wybieramy <strong>kmod-b43</strong> oraz upewniamy się, że <strong>odznaczona pozostaje</strong> opcja <em>kmod-b43legacy</em>.</p>
<p>W tym samym podmenu możemy wybrać <strong>b43 firmware version</strong>. Wybieramy <strong>4.178.10.4 (experimental)</strong>.</p>
<h2>Kompilacja i instalacja</h2>
<p>Kompilację i instalację przeprowadzamy zgodnie z <a href="/2009/01/openwrt-na-miare-naszych-mozliwosci-i-potrzeb/">wcześniejszą instrukcją</a>.</p>
<h2>Problemy</h2>
<p>Jedyny, i w dodatku prosty do usunięcia problem jaki napotkałem to&#8230;</p>
<h3>OPKG: Could not obtain administrative lock</h3>
<p>Jeśli po wydaniu polecenia <em>opkg update</em> zobaczymy komunikat:</p>
<pre>
Collected errors:
 * Could not obtain administrative lock
</pre>
<p>Należy utworzyć katalog <em>/usr/lib/opkg</em>. Jeśli katalog istnieje należy usunąć z niego plik <em>lock</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2009/10/aktualizacja-openwrt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Szwajcarski nóż^Wpendrive oficerski</title>
		<link>http://blog.burghardt.pl/2009/07/szwajcarski-nozwpendrive-oficerski/</link>
		<comments>http://blog.burghardt.pl/2009/07/szwajcarski-nozwpendrive-oficerski/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 20:46:52 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Polish]]></category>
		<category><![CDATA[GRUB]]></category>
		<category><![CDATA[GRUB4DOS]]></category>
		<category><![CDATA[PenDrive]]></category>
		<category><![CDATA[QEMU]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=325</guid>
		<description><![CDATA[<p>Szwajcarskie noże oficerskie słyną ze swej funkcjonalności. Odkąd zaczęto produkować wersje z wbudowaną pamięcią flash na USB zastanawiałem się, jak zapewnić oprogramowaniu zainstalowanemu na przenośnej pamięci równie dużą funkcjonalność.</p> <p></p> PenDrive do zadań specjalnych <p>Plan minimum to możliwość uruchamiania z pamięci klucza USB przynajmniej:</p> Programu rozruchowego GRUB Ultimate Boot CD Parted Magic OS <p>Dodatkowo przydatna [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pl.wikipedia.org/wiki/Szwajcarski_nóż_oficerski">Szwajcarskie noże oficerskie</a> słyną ze swej funkcjonalności. Odkąd zaczęto produkować <a href="http://victorinox.com.pl/?p=1:25">wersje z wbudowaną pamięcią flash na USB</a> zastanawiałem się, jak zapewnić oprogramowaniu zainstalowanemu na przenośnej pamięci równie dużą funkcjonalność.</p>
<p><span id="more-325"></span></p>
<h2>PenDrive do zadań specjalnych</h2>
<p>Plan minimum to możliwość uruchamiania z pamięci klucza USB przynajmniej:</p>
<ul>
<li>Programu rozruchowego <a href="http://www.gnu.org/software/grub/">GRUB</a></li>
<li><a href="http://www.ultimatebootcd.com/">Ultimate Boot CD</a></li>
<li><a href="http://www.partedmagic.com/">Parted Magic OS</a></li>
</ul>
<p>Dodatkowo przydatna byłaby dystrybucja typu LiveCD (<a href="http://debian-live.alioth.debian.org/">Debian Live</a>?) oraz możliwość uruchamiania <a href="http://www.debian.org/devel/debian-installer/">instalatora Debiana</a>.</p>
<h2>Przygotowanie pamięci</h2>
<p>Przygotowanie dysku USB rozpoczynamy od usunięcia aktualnej tablicy partycji. W wyniku wykonania tego kroku dane na dysku nie będą już dostępne. Mój dysk jest w systemie widoczny jako <em>/dev/sda</em>.</p>
<pre>
# dd if=/dev/zero of=/dev/sda bs=512 count=1
</pre>
<p>Gdy tablica partycji jest już czysta, tworzymy partycję startową. W tym celu użyjemy programu <em>mkdiskimage</em> z pakietu <a href="http://packages.debian.org/syslinux-common">syslinux-common</a>. Użycie tego narzędzia pozwala na stworzenie dysku, który będzie można uruchamiać zarówno jako <strong>USB-HDD</strong>, jak i jako <strong>USB-ZIP</strong>. Partycja startowa będzie oznaczona numerem 2, dzięki czemu systemy Windows, nie będą jej używały.</p>
<pre>
# mkdiskimage -2 -z /dev/sda 1024
</pre>
<p>Ostatni parametr to wielkość partycji. W moim przypadku 1024, czyli największy rozmiar, który jest obsługiwany przez wszystkie systemy <a href="http://pl.wikipedia.org/wiki/BIOS">BIOS</a>. Możemy stworzyć mniejszą partycję, jeśli mamy mniejszą <a href="http://pl.wikipedia.org/wiki/Pamięć_flash">pamięć flash</a>. Stworzenie większej, może spowodować problemy z uruchamianiem systemu z tej partycji.</p>
<h2>Instalacja GRUB-a</h2>
<p>Kolejnym krokiem będzie instalacja <a href="http://sourceforge.net/projects/grub4dos/">GRUB4DOS</a>. Po pobraniu i rozpakowaniu programu wydajemy, w katalogu z programem, polecenia:</p>
<pre>
# ./bootlace.com /dev/sda
# ./bootlace.com --floppy /dev/sda2
</pre>
<p>Aby dokończyć instalację, montujemy partycję <em>/dev/sda2</em> i kopiujemy na nią plik <em>grldr</em>:</p>
<pre>
# mount /dev/sda2 /mnt
# cp grldr /mnt
</pre>
<h2>Instalacja Ultimate Boot CD i Parted Magic OS</h2>
<p>W tym przypadku ciężko mówić nawet o instalacji. Po prostu umieszczamy pliki <em>ubcd.iso</em> i <em>pmagic-4.1.iso</em> na nośniku (obok skopiowanego wcześniej <em>grldr</em>).</p>
<h2>Łączenie elementów układanki w działającą całość</h2>
<p>Pewnie już każdy zastanawia się jak to ma niby zadziałać? GRUB i obrazy ISO płyt CD!? Odpowiedź jest prosta: <em>menu.lst</em>.</p>
<p>Po rozpakowaniu GRUB4DOS otrzymamy plik <em>menu.lst</em>, w którym odnajdziemy m.in. takie wpisy:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">title Parted Magic ISO<br />
fallback 7<br />
find --set-root /pmagic.iso<br />
map /pmagic.iso (0xff) || map --mem /pmagic.iso (0xff)<br />
map --hook<br />
chainloader (0xff)<br />
savedefault --wait=2<br />
<br />
title Ultimate Boot CD ISO<br />
fallback 8<br />
find --set-root /ubcd.iso<br />
map /ubcd.iso (0xff) || map --mem /ubcd.iso (0xff)<br />
map --hook<br />
chainloader (0xff)<br />
savedefault --wait=2</div></div>
<p>Oto cała magia GRUB4DOS. Potrafi on załadować system z bootowalnego obrazu ISO.</p>
<h2>Testowanie z pomocą QEMU</h2>
<p>Aby przetestować działanie PenDrive-a bez konieczności restartowania komputera użyjemy <a href="http://pl.wikipedia.org/wiki/QEMU">QEMU</a>. Po odmontowaniu systemu plików wydajemy polecenie:</p>
<pre>
$ qemu -monitor stdio -kernel-kqemu -m 1024 -hda /dev/sda
</pre>
<p>Użyte parametry włączają linię komend QEMU na konsoli, z której go uruchomiliśmy; 1024MB pamięci RAM w maszynie wirtualnej; oraz użycie <em>kqemu</em> również dla kodu jądra.</p>
<p>Plan minimum wykonany. Uruchamianie instalatora Debiana i dystrybucji Live jest bardziej skomplikowane, ale również możliwe.</p>
<h2>Debian-Installer</h2>
<p>Niestety ISO aktualnej wersji stabilnej (&#8220;<a href="http://www.debian.org/releases/lenny/">Lenny</a>&#8220;) nie potrafi wystartować w ten sposób, dlatego użyjemy <em>hd-media/boot.img.gz</em> dla <a href="http://ftp.pl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/">i386</a> (lub <a href="http://ftp.pl.debian.org/debian/dists/lenny/main/installer-amd64/current/images/hd-media/">amd64</a>).</p>
<p>Plik ten należy poddać dekompresji i skopiować na PenDrive-a:</p>
<pre>
# gunzip boot.img.gz
# cp boot.img /mnt/debian-installer.img
</pre>
<p>Do <em>menu.lst</em> należy dodać następujący wpis:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">title Debian-Installer<br />
find --set-root /debian-installer.img || root (fd0)<br />
map /debian-installer.img (fd0)<br />
map --hook<br />
chainloader (fd0)+1<br />
rootnoverify (fd0)<br />
map --floppies=1</div></div>
<p>Oprócz <em>hd-media/boot.img.gz</em> na nośniku potrzebne jest jeszcze zwykłe ISO instalatora Debiana. Można wybrać dowolny obraz z dostępnych (netinst, cd1 a nawet dvd1, jeśli mamy około 4GB wolnego miejsca). Obraz może znajdować się na innej partycji.</p>
<h2>Debian Live</h2>
<p>Instalacja Debian Live na PenDrive jest bardziej skomplikowana. Zaczynamy od <a href="http://cdimage.debian.org/cdimage/release/current-live/i386/iso-cd/">wybrania &#8220;smaku&#8221; dystrybucji Live</a>. Do wyboru mamy: Gnome, KDE, XFCE, LXDE, Rescue oraz standard.</p>
<p>Gdy pobraliśmy już plik ISO. Za pomocą <em>mount -o loop</em> lub <a href="http://pl.wikipedia.org/wiki/Midnight_Commander">Midnight Commandera</a> kopiujemy plik <em>live/filesystem.squashfs</em> do katalogu <em>live</em> na dysku USB, a pozostałe pliki z płyty CD do jednego katalogu (np. <em>/tmp/debian-live</em>).</p>
<p>Z wszystkich plików (poza <em>live/filesystem.squashfs</em>!) tworzymy nowy plik ISO komendą:</p>
<pre>
mkisofs -o /tmp/debian-live.iso -J -l -cache-inodes -allow-multidot -no-emul-boot -boot-load-size 4 -boot-info-table -r -b isolinux/isolinux.bin -c isolinux/boot.cat -m isolinux/isolinux.bin /tmp/debian-live
</pre>
<p>Plik <em>/tmp/debian-live.iso</em> kopiujemy na PenDrive-a, a do <em>menu.lst</em> dodajemy następujący wpis:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">title Debian Live<br />
find --set-root /debian-live.iso || root (fd0)<br />
map /debian-live.iso (0xff) || map --mem /debian-live.iso (0xff)<br />
map --hook<br />
chainloader (0xff)</div></div>
<h2>Partycja &#8220;na dane&#8221; oraz ukrywanie partycji numer 2</h2>
<p>Na koniec powinniśmy stworzyć partycję <em>/dev/sda1</em> zajmującą całe pozostałe miejsce oraz nadać partycjom etykiety, aby łatwiej było je rozróżnić. Na koniec warto ukryć partycję <em>/dev/sda1</em>. Wszystkiego tego dokonamy uruchamiając komputer z&#8230; naszego PenDrive-a za pomocą Parted Magic OS.</p>
<h2>Windows</h2>
<p>W podobny sposób można z PenDrive-a uruchamiać obrazy płyt CD (<a href="http://en.wikipedia.org/wiki/BartPE">BartPE</a>) z Windows XP przygotowane programem <a href="http://www.nu2.nu/pebuilder/">PE Builder</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2009/07/szwajcarski-nozwpendrive-oficerski/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Huawei E272 jako zapasowe łącze routera OpenWRT</title>
		<link>http://blog.burghardt.pl/2009/01/huawei-e272-jako-zapasowe-lacze-routera-openwrt/</link>
		<comments>http://blog.burghardt.pl/2009/01/huawei-e272-jako-zapasowe-lacze-routera-openwrt/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 18:30:08 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Polish]]></category>
		<category><![CDATA[Huawei]]></category>
		<category><![CDATA[OpenWRT]]></category>
		<category><![CDATA[PPP]]></category>
		<category><![CDATA[pppd]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=252</guid>
		<description><![CDATA[<p>Niedawno opisałem instalację &#8220;mydelniczki&#8221; DSL Thomson SpeedTouch 330 w OpenWRT. Tym razem instalujemy &#8220;mydelniczkę&#8221; trzeciej generacji &#8211; Huawei E272 &#8211; jako zapasowe łącze w routerze.</p> <p></p> Konfiguracja źródeł i kompilacja <p>W pliku .config włączamy program chat odpowiedzialny za komunikację z modemem oraz sterownik portów szeregowych na magistrali USB &#8211; usbserial. Możemy włączyć też moduł option [...]]]></description>
			<content:encoded><![CDATA[<p>Niedawno opisałem instalację <a href="/2009/01/openwrt-na-miare-naszych-mozliwosci-i-potrzeb/">&#8220;mydelniczki&#8221; DSL Thomson SpeedTouch 330</a> w OpenWRT. Tym razem instalujemy &#8220;mydelniczkę&#8221; <a href="http://pl.wikipedia.org/wiki/3G">trzeciej generacji</a> &#8211; Huawei E272 &#8211; jako zapasowe łącze w routerze.</p>
<p><span id="more-252"></span></p>
<h2>Konfiguracja źródeł i kompilacja</h2>
<p>W pliku <em>.config</em> włączamy program <em>chat</em> odpowiedzialny za komunikację z modemem oraz sterownik <a href="http://pl.wikipedia.org/wiki/Port_szeregowy">portów szeregowych</a> na magistrali <a href="http://pl.wikipedia.org/wiki/USB">USB</a> &#8211; <em>usbserial</em>. Możemy włączyć też moduł <em>option</em> lub inny odpowiedni dla naszego modemu. Pozostałe ustawienia pozostawiamy niezmienione. Można dodatkowo zainstalować <em>microcom</em>, aby ułatwić sobie ewentualne &#8220;ręczne sterowanie&#8221; modemem.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">CONFIG_PACKAGE_chat=y<br />
CONFIG_PACKAGE_kmod-usb-serial=y<br />
CONFIG_PACKAGE_kmod-usb-serial-option=y<br />
CONFIG_PACKAGE_microcom=y</div></div>
<p>Rekompilujemy i instalujemy OpenWRT. (Ewentualnie można doinstalować brakujące pakiety do istniejącej instalacji OpenWRT za pomocą <em>opkg</em>.)</p>
<h2>Port szeregowy</h2>
<p>Ponieważ modem GPRS po podłączeniu nie jest przypisywany przez system do żadnego sterownika (w <a href="http://www.debian.org/">Debianie</a> obsługuje go moduł <em>option</em>, jeśli go nie włączymy możemy użyć ogólnego sterownika portu szeregowego na USB). Dopisujemy w pliku <em>/etc/modules.d/60-usb-serial</em> opcje <strong>vendor</strong> i <strong>product</strong> oraz <em>maxSize</em>.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">usbserial vendor=0x12d1 product=0x1001 maxSize=4096</div></div>
<p>Po tej operacji należy ponownie załadować moduł <em>usbserial</em> poleceniem:</p>
<pre>
# rmmod usbserial
# insmod /lib/modules/`uname -r`/usbserial.ko vendor=0x12d1 product=0x1001 maxSize=4096
</pre>
<h2>Skrypty chata</h2>
<p>Do inicjacji modemu należy użyć skryptów programu <em>chat</em>. Należy stworzyć katalog, np. <em>/etc/chatscripts</em>.</p>
<pre>
# mkdir /etc/chatscripts
</pre>
<p>A następnie w stworzonym katalogu utworzyć pliki <em>/etc/chatscripts/iplus</em> i <em>/etc/chatscripts/iplus-off</em> o następującej zawartości:</p>
<p><em>/etc/chatscripts/iplus</em>:</p>
<div class="codecolorer-container c default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">TIMEOUT <span style="color: #0000dd;">10</span><br />
ECHO ON<br />
ABORT <span style="color: #ff0000;">&quot;NO CARRIER&quot;</span><br />
ABORT <span style="color: #ff0000;">&quot;NO DIALTONE&quot;</span><br />
ABORT <span style="color: #ff0000;">&quot;ERROR&quot;</span><br />
ABORT <span style="color: #ff0000;">&quot;NO ANSWER&quot;</span><br />
ABORT <span style="color: #ff0000;">&quot;BUSY&quot;</span><br />
<span style="color: #ff0000;">''</span> <span style="color: #ff0000;">'rATZ'</span><br />
CLR_ABORT <span style="color: #ff0000;">&quot;ERROR&quot;</span><br />
OK AT<span style="color: #339933;">+</span>CPIN<span style="color: #339933;">=</span><span style="color: #0000dd;">1234</span><br />
<span style="color: #ff0000;">''</span> AT<span style="color: #339933;">+</span>CGDCONT<span style="color: #339933;">=</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;IP&quot;</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;www.plusgsm.pl&quot;</span><br />
OK ATD<span style="color: #339933;">*</span><span style="color: #0000dd;">99</span><span style="color: #339933;">#</span><br />
ABORT <span style="color: #ff0000;">&quot;ERROR&quot;</span><br />
CONNECT ``</div></div>
<p><em>/etc/chatscripts/iplus-off</em>:</p>
<div class="codecolorer-container c default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ABORT <span style="color: #ff0000;">&quot;NO CARRIER&quot;</span><br />
ABORT <span style="color: #ff0000;">&quot;NO DIALTONE&quot;</span><br />
ABORT <span style="color: #ff0000;">&quot;ERROR&quot;</span><br />
ABORT <span style="color: #ff0000;">&quot;NO ANSWER&quot;</span><br />
ABORT <span style="color: #ff0000;">&quot;BUSY&quot;</span><br />
<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #ff0000;">&quot;K&quot;</span><br />
<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #ff0000;">&quot;+++ath&quot;</span></div></div>
<p>W pierwszym skrypcie należy ustawić własny PIN. Cała ta dziwna sekcja zaczynająca się od <strong>CLR_ABORT</strong> służy do ignorowania odpowiedzi ERROR modemu podczas ponownego łączenia, czyli gdy <a href="http://pl.wikipedia.org/wiki/Karta_SIM">karta SIM</a> jest już odblokowana.</p>
<h2>Konfiguracja połączenia</h2>
<p>Aby skonfigurować połączenie <a href="http://pl.wikipedia.org/wiki/GPRS">GPRS</a> (albo <a href="http://pl.wikipedia.org/wiki/EDGE">EDGE</a> lub <a href="http://pl.wikipedia.org/wiki/HSDPA">HSDPA</a>, ponieważ tutaj o typie połączenia decyduje modem) dodajemy do pliku <em>/etc/config/network</em>:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">config interface backup<br />
&nbsp; &nbsp; &nbsp; &nbsp; option ifname &quot;ppp0&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; option proto ppp<br />
&nbsp; &nbsp; &nbsp; &nbsp; option device /dev/ttyUSB0<br />
&nbsp; &nbsp; &nbsp; &nbsp; option connect &quot;/usr/sbin/chat -v -f /etc/chatscripts/iplus&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; option disconnect &quot;/usr/sbin/chat -v -f /etc/chatscripts/iplus-off&quot;</div></div>
<p>Aby połączenie to uczynić domyślnym połączeniem WAN zmieniamy linię <em>config interface backup</em> na <em>config interface <strong>wan</strong></em>.</p>
<p>Aby używać zapasowego łącza wydajemy komendy:</p>
<pre>
# ifdown wan
# ifup backup
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2009/01/huawei-e272-jako-zapasowe-lacze-routera-openwrt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenWRT na miarę naszych możliwości i potrzeb</title>
		<link>http://blog.burghardt.pl/2009/01/openwrt-na-miare-naszych-mozliwosci-i-potrzeb/</link>
		<comments>http://blog.burghardt.pl/2009/01/openwrt-na-miare-naszych-mozliwosci-i-potrzeb/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 16:06:32 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Polish]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[OpenWRT]]></category>
		<category><![CDATA[PPPoA]]></category>
		<category><![CDATA[PSK]]></category>
		<category><![CDATA[QoS]]></category>
		<category><![CDATA[WL-500g]]></category>
		<category><![CDATA[WPA]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=214</guid>
		<description><![CDATA[<p>Ile kosztuje router z 5 portowym zarządzlanym przełącznikiem z obsługą VLAN-ów, Wi-Fi (802.11b/g) z WPA-2 PSK, PPPoA (np. Noestrada), PPPoE (np. Multimo), dwoma portami USB (dyskiem twardym lub flash na USB?), możliwością logowania przez SSH, Firewallem (netfilter/iptables), NAT, QoS (z rozpoznawaniem aplikacji na poziomie warstwy 7), (c&#124;r)torrent, wget, DHCP, DNS z pamięcią podręczną, serwerem WWW [...]]]></description>
			<content:encoded><![CDATA[<p>Ile kosztuje router z 5 portowym zarządzlanym przełącznikiem z obsługą <a href="http://pl.wikipedia.org/wiki/Sieć_wirtualna">VLAN</a>-ów, <a href="http://pl.wikipedia.org/wiki/Wi-Fi">Wi-Fi</a> (802.11b/g) z <a href="http://pl.wikipedia.org/wiki/WPA2">WPA-2 PSK</a>, PPPoA (np. Noestrada), <a href="http://pl.wikipedia.org/wiki/PPPoE">PPPoE</a> (np. Multimo), dwoma portami USB (dyskiem twardym lub flash na USB?), możliwością logowania przez <a href="http://pl.wikipedia.org/wiki/SSH">SSH</a>, Firewallem (netfilter/iptables), <a href="http://pl.wikipedia.org/wiki/NAT">NAT</a>, <a href="http://pl.wikipedia.org/wiki/QoS">QoS</a> (z rozpoznawaniem aplikacji na poziomie <a href="http://l7-filter.sourceforge.net/">warstwy 7</a>), (<a href="http://pl.wikipedia.org/wiki/CTorrent">c</a>|<a href="http://pl.wikipedia.org/wiki/RTorrent">r</a>)<a href="http://pl.wikipedia.org/wiki/BitTorrent">torrent</a>, <a href="http://pl.wikipedia.org/wiki/Wget">wget</a>, <a href="http://pl.wikipedia.org/wiki/Dnsmasq">DHCP, DNS z pamięcią podręczną</a>, serwerem WWW i FTP, <a href="http://www.baseciq.org/2002/01/01/oidentd">oidentd</a> z wsparciem dla NAT i na deser obsługą <a href="http://pl.wikipedia.org/wiki/IPv6">IPv6</a>?</p>
<p>Sprzęt: około 300 złotych. Oprogramowanie: wyłącznie darmowe. Czas instalacji: kilka godzin (najdłuższa część to kompilacja całego systemu operacyjnego i wszystkich pakietów, ale jest ona zautomatyzowana i nie wymaga interwencji użytkownika, a sama instalacja zajmuje kilka minut).</p>
<p><span id="more-214"></span></p>
<h2>Od czego zacząć?</h2>
<p>Zaczynamy od kupna <a href="http://wiki.openwrt.org/TableOfHardware">wspieranego przez OpenWRT routera</a>. Chodzi nam wyłącznie o najlepszy sprzęt. Oprogramowanie wymienimy zaraz po zakupie. Według moich priorytetów najlepszym wyborem jest <a href="http://wiki.openwrt.org/OpenWrtDocs/Hardware/Asus/WL500GP">ASUS WL-500g Premium</a>. Na drugim miejscu uplasował się <a href="http://wiki.openwrt.org/OpenWrtDocs/Hardware/Linksys/WRTSL54GS">Linksys WRTSL54GS</a>.</p>
<h2>Gdy mamy już router</h2>
<p>Możemy zacząć od instalacji OpenWRT w wersji <a href="http://downloads.openwrt.org/whiterussian/">WhiteRussian</a>. Opisywać instalacji i konfiguracji WhiteRussian nie będę, każdy najdzie na <a href="http://wiki.openwrt.org/OpenWrtDocs/WhiteRussian/Distributions">ten temat</a> <a href="http://wiki.openwrt.org/OpenWrtDocs/Installation">wiele</a> <a href="http://wiki.openwrt.org/OpenWrtDocs/WhiteRussian/Configuration">informacji</a>. Jeśli się uda i router spełnia nasze oczekiwania możemy skończyć w tym miejscu. Ale jeśli chcemy skonfigurować router w zupełnie dowolny sposób najlepszym rozwiązaniem jest zbudowanie OpenWRT ze źródeł.</p>
<h2>Oprogramowanie niezbędne do zbudowania OpenWRT</h2>
<p>Do zbudowania OpenWRT w <a href="http://www.debian.org/">Debianie</a> lub <a href="http://www.ubuntu.com/">Ubuntu</a> niezbędne jest posiadanie następujących pakietów:</p>
<pre>
# aptitude install build-essential binutils flex bison autoconf gettext texinfo sharutils subversion libncurses5-dev ncurses-term zlib1g-dev
</pre>
<h2>Źródła z repozytorium Subversion</h2>
<p>Pobieramy źródła OpenWRT z repozytorium Subversion:</p>
<pre>
$ svn co https://svn.openwrt.org/openwrt/trunk/ openwrt-svn
$ svn co https://svn.openwrt.org/openwrt/packages/ openwrt-svn/feeds/packages
</pre>
<p>Następnie tworzymy dowiązania dla pakietów z katalogu <em>feeds</em>:</p>
<pre>
$ make package/symlinks
</pre>
<h2>Konfiguracja obrazu OpenWRT</h2>
<p>Kolejnym krokiem jest konfiguracja obrazu OpenWRT, wybieramy rodzaj obrazu (np. <a href="http://pl.wikipedia.org/wiki/SquashFS">SquashFS</a>), opcje <a href="http://pl.wikipedia.org/wiki/BusyBox">Busybox</a>, <a href="http://pl.wikipedia.org/wiki/Linux">Linuksa</a> i pakietów:</p>
<pre>
$ make menuconfig
</pre>
<h3>Opcje Target System, Profile, Image</h3>
<p>Dla Asusa WL-500gP <em>Target System</em> należy ustawić na <strong>Broadcom BCM947xx/953xx [2.6]</strong> lub <strong>Broadcom BCM947xx/953xx [2.4]</strong>. Opcja ta wybiera linię jądra, odpowiednio 2.6 lub 2.4. Generalnie należy wybrać 2.6. Jeśli 2.6 nie będzie działało kolejnym krokiem będzie wypróbowanie jądra 2.4.</p>
<p>Jako <em>Target Profile</em> wybieramy <strong>Broadcom BCM43xx WiFi (default)</strong>. Jeśli mamy inny rodzaj kontrolera sieci bezprzewodowej wybieramy właściwą opcję. Przydatne jeśli wymieniliśmy kartę <a href="http://pl.wikipedia.org/wiki/MiniPCI">MiniPCI</a> w routerze np. na opartą na kontrolerze Atheros.</p>
<p><em>Target Images</em> definiuje rodzaj systemu plików używanego jako <strong>/</strong>. Najlepszym wyborem jest <strong>squashfs</strong> zapewniający wyższy stopień kompresji niż <strong>jffs2</strong>. Drugą ważną różnicą jest to, iż jffs2 umożliwia zapis, a squashfs jest tylko do odczytu. Jeśli wybierzemy squashfs na główny system plików, na routerze zostanie stworzony obszar przeznaczony do zapisywania danych w formacie jffs2.</p>
<h3>Advanced configuration options (for developers)</h3>
<p>W menu <em>Build Options</em> wybrałem opcje <strong>Clean all ipkg files before building the rootfs</strong> oraz <strong>Use ccache</strong>. Pierwsza powoduje przebudowanie wszystkich pakietów za każdym razem, a druga włącza użycie pamięci podręcznej dla plików obiektów. program <a href="http://ccache.samba.org/">ccache</a> przyspiesza kompilację w przypadku budowania OpenWRT po raz kolejny, z niewielkimi zmianami w stosunku do poprzedniej konfiguracji.</p>
<p>Natomiast w menu <em>Toolchain Options</em> zaznaczyłem <strong>Enable Smash Stacking Protection support</strong>, która (przynajmniej teoretycznie) powinna utrudniać wykonywanie kodu przez <a href="http://pl.wikipedia.org/wiki/Przepełnienie_bufora">przepełnienie bufora</a>. Podnosi to (nieco) poziom bezpieczeństwa w przypadku próby wykorzystania przez atakującego tego typu błędów.</p>
<h3>Wybór pakietów</h3>
<p>Wybór pakietów jest najdłuższą czynnością. Na szczęście dla większości pakietów dostępny jest krótki opis. Mój <a href="http://www.burghardt.pl/files/openwrt-hurricane.config">plik konfiguracyjny dla ASUS WL-500g Premium</a> umieściłem tutaj jako referencję. Może on być użyty jako baza do dalszych eksperymentów albo bezpośrednio do zbudowania OpenWRT w wersji r13858.</p>
<h3>Zmiana limitu wielkości dla rootfs</h3>
<p>Domyślny limit wielkości obszaru rootfs jest zdefiniowany w <em>tools/firmware-utils/src/trx.c</em> i wynosi 0x5A0000 (<a href="https://dev.openwrt.org/ticket/2626">większość routerów ma mniej pamięci flash niż WL500GP</a>). W moim przypadku było to zbyt mało aby pomieścić wszystkie aplikacje, a ponieważ router bezproblemowo obsługuje większe rozmiary rootfs powiększyłem rootfs o 1MB. Poniżej patch:</p>
<div class="codecolorer-container diff default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="diff codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Index: tools/firmware-utils/src/trx.c<br />
===================================================================<br />
<span style="color: #888822;">--- tools/firmware-utils/src/trx.c &nbsp; &nbsp; &nbsp;<span style="">&#40;</span>wersja 13876<span style="">&#41;</span></span><br />
<span style="color: #888822;">+++ tools/firmware-utils/src/trx.c &nbsp; &nbsp; &nbsp;<span style="">&#40;</span>kopia robocza<span style="">&#41;</span></span><br />
<span style="color: #440088;">@@ -60,7 +60,7 @@</span><br />
<br />
&nbsp;#define TRX_MAGIC &nbsp; &nbsp; &nbsp;0x30524448 &nbsp; &nbsp; &nbsp;/* &quot;HDR0&quot; */<br />
&nbsp;#define TRX_VERSION &nbsp; &nbsp;<span style="">1</span><br />
<span style="color: #991111;">-#define TRX_MAX_LEN &nbsp; &nbsp;0x5A0000</span><br />
<span style="color: #00b000;">+#define TRX_MAX_LEN &nbsp; &nbsp;0x6A0000</span><br />
&nbsp;#define TRX_NO_HEADER &nbsp;<span style="">1</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /* Do not write TRX header */<br />
<br />
&nbsp;struct trx_header <span style="">&#123;</span></div></div>
<h3>Sprzętowo wspomagana biblioteka OpenSSL</h3>
<p>Jeśli router posiada <strong>Sonics Silicon Backplane</strong> (ssb) i rdzeń IPSEC (<strong>Core 7 found: IPSEC (cc 0x80B, rev 0&#215;00, vendor 0&#215;4243)</strong>) warto w pliku <em>.config</em> włączyć:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">CONFIG_PACKAGE_kmod-crypto-ocf=y<br />
CONFIG_PACKAGE_kmod-ocf-ubsec-ssb=y<br />
CONFIG_PACKAGE_ocf-crypto-headers=y</div></div>
<p>Oraz dodać do biblioteki OpenSSL opcję włączającą wsparcie dla <a href="http://ocf-linux.sourceforge.net/">OCF</a>:</p>
<div class="codecolorer-container diff default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="diff codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Index: package/openssl/Makefile<br />
===================================================================<br />
<span style="color: #888822;">--- package/openssl/Makefile &nbsp; &nbsp;<span style="">&#40;</span>wersja 13876<span style="">&#41;</span></span><br />
<span style="color: #888822;">+++ package/openssl/Makefile &nbsp; &nbsp;<span style="">&#40;</span>kopia robocza<span style="">&#41;</span></span><br />
<span style="color: #440088;">@@ -81,6 +81,8 @@</span><br />
&nbsp;define Build/Configure<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="">&#40;</span>cd $<span style="">&#40;</span>PKG_BUILD_DIR<span style="">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ./Configure linux-openwrt<br />
<span style="color: #00b000;">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --with-cryptodev</span><br />
<span style="color: #00b000;">+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --with-cryptodev-digests</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --prefix=/usr<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --openssldir=/etc/ssl<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="">&#40;</span>TARGET_CPPFLAGS<span style="">&#41;</span></div></div>
<p>Aplikacje używające libssl powinny teraz korzystać ze sprzętowej akceleracji operacji szyfrowania i haszowania. Aplikacje takie to m.in.: <a href="http://openvpn.net/">OpenVPN</a>, <a href="http://libtorrent.rakshasa.no/">rTorrent</a> i <a href="http://www.gnu.org/software/wget/">wget</a>. <a href="http://matt.ucc.asn.au/dropbear/dropbear.html">Dropbear</a> (domyślny serwer SSH w OpenWRT) nie korzysta z OpenSSL i dlatego nie jest wspomagany sprzętowo.</p>
<h2>Budowanie OpenWRT</h2>
<p>Aby pobrać wszystkie niezbędne do zbudowania OpenWRT pliki wydajemy polecenie (jeśli tego nie zrobimy pliki będą pobierane przed budowaniem każdego pakietu):</p>
<pre>
$ make download
</pre>
<p>Gdy wszystko jest już skonfigurowane wydajemy polecenie:</p>
<pre>
$ make world
</pre>
<p>W zależności od ilości wybranych pakietów, mocy obliczeniowej procesora i ilości pamięci RAM zbudowanie wszystkiego zajmie od kilku do kilkudziesięciu minut. Włączenie ccache przyspiesza budowanie w momencie gdy wprowadzimy niewielkie zmiany w konfiguracji i budujemy OpenWRT po raz kolejny.</p>
<h2>Instalacja OpenWRT na routerze</h2>
<p>Ta czynność jest bardzo prosta w przypadku WL-500gP. Po odłączeniu routera od zasilania wciskamy i trzymamy przycisk <strong>reset</strong>. Trzymając reset podłączamy zasilanie. Gdy dioda informująca o stanie zasilania zacznie migać zwalniamy przycisk reset. Podłączamy kabel Ethernet do portu LAN routera i do komputera.</p>
<p>Ustawiamy adres IP na interfejsie eth0:0 za pomocą komendy:</p>
<pre>
# ifconfig eth0:0 192.168.1.5 up
</pre>
<p>A następnie przechodzimy do katalogu <em>bin</em> i wydajemy polecenie:</p>
<pre>
$ atftp --trace --option "timeout 1" --option "mode octet" --put --local-file openwrt-brcm47xx-squashfs.trx 192.168.1.1
</pre>
<p>Czekamy do zakończenia kopiowania pliku. Po zakończeniu sesji tftp czekamy około 5 minut na zapisanie obrazu OpenWRT w pamięci flash i odłączamy zasilanie. Po ponownym podłączeniu zasilania router będzie bardzo długo startował ze względu na konieczność utworzenia obszaru <em>jffs2</em> i wygenerowania kluczy SSH routera.</p>
<h2>Konfiguracja OpenWRT</h2>
<p>Łączymy się z routerem za pomocą telnetu:</p>
<pre>
$ telnet 192.168.1.1
</pre>
<p>Następnie ustawiamy hasło:</p>
<pre>
# passwd
</pre>
<p>Ustawienie hasła uniemożliwia dalsze logowanie przez telnet. Od tej chwili należy używać wyłącznie SSH. Wylogowujemy się z routera i logujemy za pomocą SSH:</p>
<pre>
$ ssh root@192.168.1.1
</pre>
<h3>Wyłączanie niepotrzebnych usług</h3>
<p>Jeśli nie zamierzamy korzystać z serwera telnet i http możemy je wyłączyć:</p>
<pre>
# /etc/init.d/telnet disable
# /etc/init.d/httpd disable
</pre>
<h3>Nazwa hosta i strefa czasowa</h3>
<p>W <em>/etc/config/system</em> ustawiamy:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">config system<br />
&nbsp; &nbsp; &nbsp; &nbsp; option hostname myrouter<br />
&nbsp; &nbsp; &nbsp; &nbsp; option timezone &quot;CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00&quot;</div></div>
<h3>Dropbear</h3>
<p>Aby włączyć logowanie wyłącznie za pomocą kluczy SSH zapisujemy w <em>/etc/dropbear/authorized_keys</em> nasz klucz publiczny, a następnie w <em>/etc/config/dropbear</em> ustawiamy:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; &nbsp; &nbsp; option PasswordAuth 'off'</div></div>
<h3>QoS</h3>
<p>Ustawiamy w <em>/etc/config/qos</em> przepływność interfejsu WAN:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">option upload 256<br />
option download 1024</div></div>
<p>Na początek pozostałe opcje warto pozostawić bez zmian.</p>
<h3>Thomson SpeedTouch 330, PPPoA i Neostrada</h3>
<p><a href="http://pl.wikipedia.org/wiki/Thomson_SpeedTouch_330">Thomson SpeedTouch 330</a> otrzymany od TP za 1 zł jest obsługiwany przez Linuksa. Pakiet z firmware również jest obecny w OpenWRT.</p>
<p>W przypadku <a href="http://pl.wikipedia.org/wiki/SAGEM_F@st_800">SAGEM F@st 800</a> OpenWRT posiada jedynie sterownik. Firmware należy skopiować ręcznie do katalogu <em>/lib/firmware/ueagle-atm</em> po zainstalowaniu OpenWRT.</p>
<p>Aby sprawdzić, czy po podłączeniu do portu USB routera modem został wykryty, oprogramowanie firmware załadowane, a synchronizacja ukończona pomyślnie wydajemy polecenie <strong>dmesg | tail</strong>. Powinniśmy zobaczyć taki komunikat:</p>
<pre>
speedtch 2-1:1.0: found stage 1 firmware speedtch-1.bin.4
speedtch 2-1:1.0: found stage 2 firmware speedtch-2.bin.4

ATM dev 0: ADSL line is synchronising
ATM dev 0: ADSL line is up (1312 kb/s down | 320 kb/s up)
</pre>
<p>Modem jest gotowy i możemy skonfigurować połączenie <a href="http://pl.wikipedia.org/wiki/PPP">PPP</a>. W tym celu ustawiamy w pliku <em>/etc/config/network</em> w sekcji <strong>WAN configuration</strong>:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">config interface &nbsp; &nbsp; &nbsp; &nbsp;wan<br />
&nbsp; &nbsp; &nbsp; &nbsp; option ifname &nbsp; &quot;ppp0&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; option proto &nbsp; &nbsp;pppoa<br />
&nbsp; &nbsp; &nbsp; &nbsp; option encaps &nbsp; llc<br />
&nbsp; &nbsp; &nbsp; &nbsp; option vpi &nbsp; &nbsp; &nbsp;0<br />
&nbsp; &nbsp; &nbsp; &nbsp; option vci &nbsp; &nbsp; &nbsp;35<br />
&nbsp; &nbsp; &nbsp; &nbsp; option username &quot;XXXXXXX@neostrada.pl&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; option password &quot;XXXXXXXX&quot;</div></div>
<p>Aby nawiązać połączenie używamy:</p>
<pre>
# ifup wan
</pre>
<h3>IPv6</h3>
<p>Opcje połączenia IPv6 przez tunel w <a href="http://www.sixxs.net/">SixXS</a> definiujemy w <em>/etc/config/aiccu</em>. Konfiguracja <a href="http://www.litech.org/radvd/">radvd</a> znajduje się w <em>/etc/config/radvd</em>.</p>
<h3>OpenDNS</h3>
<p>Konfigurację <a href="/2009/01/openwrt-meets-opendns/">OpenDNS na OpenWRT</a> opisałem już wcześniej.</p>
<h2>Gdy 8MB pamięci flash to zbyt mało&#8230;</h2>
<p>Można do portu USB podłączyć dysk twardy USB lub bezgłośny Pendrive na którym można przechowywać pliki pobierane z Internetu. Można na nim również stworzyć partycję wymiany (co przyda się gdy będziemy chcieli uruchamiać więcej programów).</p>
<p>Konfiguracja dodatkowych nośników danych jest przechowywana w <em>/etc/config/fstab</em>. Przykładowa konfiguracja z pratycją <em>/home</em> na pliki uzytkownika, <em>/opt</em> na dodatkowe, niemieszczące się w pamięci flash routera aplikacje oraz partycją swap:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">config mount home<br />
&nbsp; &nbsp; &nbsp; &nbsp; option target &nbsp; /home<br />
&nbsp; &nbsp; &nbsp; &nbsp; option device &nbsp; /dev/sda1<br />
&nbsp; &nbsp; &nbsp; &nbsp; option fstype &nbsp; ext3<br />
&nbsp; &nbsp; &nbsp; &nbsp; option options &nbsp;rw<br />
<br />
config mount opt<br />
&nbsp; &nbsp; &nbsp; &nbsp; option target &nbsp; /opt<br />
&nbsp; &nbsp; &nbsp; &nbsp; option device &nbsp; /dev/sda2<br />
&nbsp; &nbsp; &nbsp; &nbsp; option fstype &nbsp; ext3<br />
&nbsp; &nbsp; &nbsp; &nbsp; option options &nbsp;rw<br />
<br />
config swap<br />
&nbsp; &nbsp; &nbsp; &nbsp; option device &nbsp; /dev/sda3</div></div>
<h3>opkg-link</h3>
<p>Aby móc instalować pakiety na zewnętrznej pamięci dodajemy do <em>/etc/opkg.conf</em> linię:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dest usb /opt</div></div>
<p>Pakiety instalujemy na dysku USB poleceniem:</p>
<pre>
# opkg -d usb install nazwa_pakietu
</pre>
<p>Aby dodać link do pakietu w <em>/opt</em> w <em>/</em> możemy użyć skryptu opkg-link. Możemy go skopiować z <a href="http://wiki.openwrt.org/UsbStorageHowto">UsbStorageHowto</a> i zapisać jako <em>/bin/opkg-link</em>.</p>
<h2>Podsumowanie</h2>
<p>Nieźle jak na sprzęt za niecałe 400 zł (~300 zł router, 80 zł pendrive, 1zł modem DSL), co?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2009/01/openwrt-na-miare-naszych-mozliwosci-i-potrzeb/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Kopiowanie zdjęć z karty pamięci aparatu fotograficznego</title>
		<link>http://blog.burghardt.pl/2008/11/kopiowanie-zdjec-z-karty-pamieci-aparatu-fotograficznego/</link>
		<comments>http://blog.burghardt.pl/2008/11/kopiowanie-zdjec-z-karty-pamieci-aparatu-fotograficznego/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 20:39:40 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Polish]]></category>
		<category><![CDATA[Exif]]></category>
		<category><![CDATA[exiftran]]></category>
		<category><![CDATA[pmount]]></category>
		<category><![CDATA[prename]]></category>
		<category><![CDATA[zdjęcia]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=167</guid>
		<description><![CDATA[<p>Ostatnio wydziałem tę procedurę w Gnome. Cała praca użytkownika to kilka kliknięć myszą. A na konsoli wystarczy tylko:</p> pmount sda1 &#38;&#38; cp /media/sda1/*.jpg ~/NEW &#38;&#38; pumount sda1 <p>Za pomocą exiftran i prename możemy zdjęcia obrócić do właściwej orientacji i zmienić ich nazwy.</p> <p></p> <p>Zamiast obracać każde zdjęcie ręcznie można użyć:</p> exiftran -ai *.jpg <p>&#8230; i [...]]]></description>
			<content:encoded><![CDATA[<p>Ostatnio wydziałem tę procedurę w <a href="http://www.gnome.org/">Gnome</a>. Cała praca użytkownika to kilka kliknięć myszą. A na konsoli wystarczy tylko:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">pmount sda1 &amp;&amp; cp /media/sda1/*.jpg ~/NEW &amp;&amp; pumount sda1</div></div>
<p>Za pomocą <a href="http://packages.debian.org/exiftran">exiftran</a> i <em>prename</em> możemy zdjęcia obrócić do właściwej orientacji i zmienić ich nazwy.</p>
<p><span id="more-167"></span></p>
<p>Zamiast obracać każde zdjęcie ręcznie można użyć:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">exiftran -ai *.jpg</div></div>
<p>&#8230; i obrócić wszystkie do ich właściwej orientacji zapisanej w <a href="http://pl.wikipedia.org/wiki/Exchangeable Image File Format">Exif</a>. Należy użyć <em>exiftran</em>, a nie <em>exifautotran</em> ponieważ <a href="http://bugs.debian.org/376376">exifautotran nie obraca miniatur</a> (po jego użyciu programy używające miniatur będą używały niewłaściwej orientacji miniatur).</p>
<p>Po tej operacji warto zdjęciom nadać nieco bardziej znacząca nazwę niż <strong>DSC02939.JPG</strong>. Możemy zmienić wszystkie wielkie litery na małe w nazwach wszystkich plików za pomocą polecenia:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">prename 'y/A-Z/a-z/' *</div></div>
<p>lub od razu zmienić nazwę np. na:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">prename &nbsp;'s/DSC(.*)\.JPG/Narodowe_Święto_Niepodległości-Warszawa-20081111-$1.jpg/' *</div></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2008/11/kopiowanie-zdjec-z-karty-pamieci-aparatu-fotograficznego/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kurza twarz! Google Chrome się zawiesił. Uruchomić ponownie?</title>
		<link>http://blog.burghardt.pl/2008/11/kurza-twarz-google-chrome-sie-zawiesil-uruchomic-ponownie/</link>
		<comments>http://blog.burghardt.pl/2008/11/kurza-twarz-google-chrome-sie-zawiesil-uruchomic-ponownie/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 21:14:15 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Polish]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=156</guid>
		<description><![CDATA[<p>Kurza twarz! ;-) Tłumacze Chrome mają poczucie humoru.</p> <p> </p> <p>W wersji 363 dla en-GB jest:</p> &#60;translation id=&#34;8815061062167142136&#34;&#62;Whoa! Google Chrome has crashed. Restart now?&#60;/translation&#62; <p>A w pl:</p> &#60;translation id=&#34;8815061062167142136&#34;&#62;Kurza twarz! Google Chrome się zawiesił. Uruchomić ponownie?&#60;/translation&#62; <p>Niestety kurza twarz Chrome zniknęła w wersji 1473. Szkoda.</p> [...]]]></description>
			<content:encoded><![CDATA[<p>Kurza twarz! ;-) Tłumacze <a href="http://www.google.com/chrome/">Chrome</a> mają poczucie humoru.</p>
<p><img src="/wp-content/uploads/2008/11/google_chrome_kurza_twarz.png" alt="Kurza twarz! Google Chrome się zawiesił. Uruchomić ponownie?" title="Kurza twarz! Google Chrome się zawiesił. Uruchomić ponownie?" width="377" height="118" class="alignnone size-full wp-image-157" /> <br clear="all" /></p>
<p>W <a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/app/resources/generated_resources_en-GB.xtb?view=markup&#038;pathrev=363">wersji 363 dla en-GB</a> jest:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;translation</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;8815061062167142136&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Whoa! Google Chrome has crashed. Restart now?<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/translation<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p>A w <a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/app/resources/generated_resources_en-GB.xtb?view=markup&#038;pathrev=363">pl</a>:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;translation</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;8815061062167142136&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Kurza twarz! Google Chrome się zawiesił. Uruchomić ponownie?<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/translation<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p>Niestety kurza twarz Chrome zniknęła w <a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/app/resources/generated_resources_pl.xtb?r1=1469&#038;r2=1473">wersji 1473</a>. Szkoda.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2008/11/kurza-twarz-google-chrome-sie-zawiesil-uruchomic-ponownie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian ma pół miliona błędów</title>
		<link>http://blog.burghardt.pl/2008/09/debian-ma-pol-miliona-bledow/</link>
		<comments>http://blog.burghardt.pl/2008/09/debian-ma-pol-miliona-bledow/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 08:00:22 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Polish]]></category>
		<category><![CDATA[błędy]]></category>
		<category><![CDATA[BTS]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=118</guid>
		<description><![CDATA[<p>Debian ma pół miliona błędów. Nie ma jednak powodów do obaw, wiele z nich już dawno zostało poprawione. Zgłoszenie o błędzie numer 500000 ma tytuł cdbs: Please add dh_installdefoma in debhelper.mk, a pojawiło się dziś o godzinie 07:51:01 czasu uniwersalnego.</p> <p></p> <p>Najstarszy błąd, do którego udało mi się dokopać przez BTS ma numer 9085. Został [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.debian.org/">Debian</a> ma pół miliona błędów. Nie ma jednak powodów do obaw, wiele z nich już dawno zostało poprawione. Zgłoszenie o błędzie numer 500000 ma tytuł <a href="http://bugs.debian.org/500000">cdbs: Please add dh_installdefoma in debhelper.mk</a>, a pojawiło się dziś o godzinie 07:51:01 czasu uniwersalnego.</p>
<p><span id="more-118"></span></p>
<p>Najstarszy błąd, do którego udało mi się dokopać przez <a href="http://bugs.debian.org/">BTS</a> ma numer <a href="http://bugs.debian.org/9085">9085</a>. Został zgłoszony w sobotę, 26 kwietnia 1997 roku. Błąd ten dotyczył pakietu <a href="http://packages.debian.org/dselect">dselect</a> i został poprawiony 8 maja&#8230; 2007 roku, czyli 10 lat później.</p>
<p>Teraz czekam na raport o okrągłym numerze 1.000.000 i mam nadzieję, że jego poprawienie nie zajmie dekady.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2008/09/debian-ma-pol-miliona-bledow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cookie: jestem_czlowiekiem=1 Allow? (Y/N)</title>
		<link>http://blog.burghardt.pl/2008/09/cookie-jestem_czlowiekiem1-allow-yn/</link>
		<comments>http://blog.burghardt.pl/2008/09/cookie-jestem_czlowiekiem1-allow-yn/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 16:55:51 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Polish]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[lynx]]></category>
		<category><![CDATA[plikus]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=136</guid>
		<description><![CDATA[<p>Niespodziewanie lynx zadał mi pytanie:</p> <p></p> <p>Odpowiedziałem &#8220;Y&#8221;. Na szczęście nie poddał mnie testowi Turinga by zweryfikować odpowiedz :-></p> ]]></description>
			<content:encoded><![CDATA[<p>Niespodziewanie <a href="http://pl.wikipedia.org/wiki/Lynx">lynx</a> zadał mi pytanie:</p>
<p><a href="/wp-content/uploads/2008/09/plikus.png"><img src="/wp-content/uploads/2008/09/plikus.png" alt="" title="cookie: jestem_czlowiekiem=1 allow?" width="500" height="270" class="alignnone size-full wp-image-137" /></a></p>
<p>Odpowiedziałem &#8220;Y&#8221;. Na szczęście nie poddał mnie <a href="http://pl.wikipedia.org/wiki/Test_Turinga">testowi Turinga</a> by zweryfikować odpowiedz :-></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2008/09/cookie-jestem_czlowiekiem1-allow-yn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kilka słów o tym jak 3 miliony sztuk AK-47 przyleciało samolotem do Zimbabwe</title>
		<link>http://blog.burghardt.pl/2008/05/kilka-slow-o-tym-jak-3-miliony-sztuk-ak-47-przylecialo-samolotem-do-zimbabwe/</link>
		<comments>http://blog.burghardt.pl/2008/05/kilka-slow-o-tym-jak-3-miliony-sztuk-ak-47-przylecialo-samolotem-do-zimbabwe/#comments</comments>
		<pubDate>Sun, 18 May 2008 13:55:02 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Polish]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Afryka]]></category>
		<category><![CDATA[AK-47]]></category>
		<category><![CDATA[broń]]></category>
		<category><![CDATA[Zimbabwe]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=99</guid>
		<description><![CDATA[<p>Przeczytałem dziś artykuł w Gazecie, że 3 mln chińskich kałasznikowów dotarło do Zimbabwe. Zszokowała mnie ta liczba. Dlaczego? Każdy, kto był w wojsku, wie jak &#8220;łatwo&#8221; przenieść skrzynie z karabinkami ze stara do magazynu broni. A tu 3 miliony sztuk do przewiezienia z Chin w głąb Afryki (Zimbabwe nie ma dostępu do morza).</p> <p>Jeden karabinek [...]]]></description>
			<content:encoded><![CDATA[<p>Przeczytałem dziś artykuł w Gazecie, że <a href="http://wiadomosci.gazeta.pl/Wiadomosci/1,80277,5222470.html">3 mln chińskich kałasznikowów dotarło do Zimbabwe</a>. Zszokowała mnie ta liczba. Dlaczego? Każdy, kto był w wojsku, wie jak &#8220;łatwo&#8221; przenieść skrzynie z karabinkami ze stara do magazynu broni. A tu <strong>3 miliony sztuk</strong> do przewiezienia z <a href="http://pl.wikipedia.org/wiki/Chiny">Chin</a> w głąb <a href="http://pl.wikipedia.org/wiki/Afryka">Afryki</a> (<a href="http://pl.wikipedia.org/wiki/Zimbabwe">Zimbabwe</a> nie ma dostępu do morza).</p>
<p>Jeden <a href="http://pl.wikipedia.org/wiki/Karabinek_AK">karabinek AK-47</a> to około 3,8 kg, bez bagnetu, ładownicy, trzech magazynków w ładownicy, olejarki, przybornika i oczywiście skrzyni. Brakuje również amunicji. Artykuł nic o niej nie wspomina, ale domyślam się, że nie będą walczyć na bagnety.</p>
<p><span id="more-99"></span></p>
<p>Masa samych karabinków bez wyposażenia to bagatela:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">3000000 * 3,8 kg = 11400000 kg = 11400 ton</div></div>
<p>11 tysięcy ton! Dużo? Porównajmy z czymś co znamy:</p>
<ul>
<li><a href="http://pl.wikipedia.org/wiki/Paleta_(platforma)">Europaleta</a> może mieć do 1000 kg &#8211; ładunek broni zajmie zatem 11400 europalet.</li>
<li>Ciągnik siodłowy z naczepą o ładowności 29 ton &#8211; 394 samochody.</li>
<li><a href="http://pl.wikipedia.org/wiki/CASA_C-295">CASA C-295</a>, używany przez <a href="http://pl.wikipedia.org/wiki/Si%C5%82y_Zbrojne_Rzeczypospolitej_Polskiej#Si.C5.82y_Powietrzne">nasze siły powietrzne</a>, masa ładunku do 9250 kg &#8211; 1232 samolotów lub 2464 lotów jednym samolotem.
<li><a href="http://pl.wikipedia.org/wiki/An-225_Mrija">An-225 Mrija</a>, najcięższy samolot transportowy świata, masa ładunku do 250 ton &#8211; 46 samolotów. Byłoby najszybciej, ale niestety do dyspozycji pozostaje jedynie jeden taki kolos.</li>
</ul>
<p>Gazeta napisała:</p>
<blockquote><p>
Według mozambikańskiego dziennika &#8220;Canal de Mozambique&#8221; chińska broń dotarła w końcu do Harare na pokładzie wyczarterowanego samolotu transportowego towarzystwa &#8220;Avient Aviation&#8221;.
</p></blockquote>
<p>Z moich obliczeń wynika, że to niemożliwe. A już z pewnością nie jednym &#8220;wyczarterowanym&#8221; samolotem.</p>
<p>Zastanawia mnie też inny problem. Co <a href="http://pl.wikipedia.org/wiki/Robert_Mugabe">Mugabe</a> zrobi z taką ilością karabinów w swoim 12 milionowym Zimbabwe? Rozda co czwartemu obywatelowi? Wliczając w to starców, kobiety, dzieci i&#8230; swoich przeciwników politycznych?</p>
<p>Tak na marginesie BBC w <a href="http://news.bbc.co.uk/2/hi/africa/7360438.stm"> China may recall Zimbabwe weapons</a> nie podaje ilości sztuk karabinów lecz&#8230; <strong>amunicji</strong>:</p>
<blockquote><p>
The International Transport Workers Federation says it has asked its members across Africa not to help unload the An Yue Jiang, which is reportedly carrying <strong>three million rounds of ammunition, 1,500 rocket-propelled grenades and 2,500 mortar rounds</strong>.
</p></blockquote>
<p>Karabiny po 4 kilo każdy, czy <a href="http://pl.wikipedia.org/wiki/Nab%C3%B3j_7%2C62_x_39_mm_wz._43">naboje po 16 gram</a>. Co za różnica. Byle sensacja była&#8230; prawie nikt się nie zorientuje&#8230; prawie&#8230;</p>
<p><strong>Aktualizacja:</strong> <a href="http://wiadomosci.onet.pl/1751379,12,1,1,,item.html">Onet.pl</a> i <a href="http://www.rp.pl/artykul/135704.html">RP.pl</a> również donoszą o 3 milionach chińskich kałasznikowów w Zimbabwe.</p>
<p><strong>Aktualizacja 2:</strong> Metro w wydaniu z 19 maja 2008, na stronie 6, w rubryce &#8220;W skrócie&#8221; zamieściło notkę o tytule &#8220;Chiny zbroją Zimbabwe&#8221;. Możemy tam przeczytać, że:</p>
<blockquote><p>
Wielki ładunek broni &#8211; 3 mln karabinów szturmowych AK-47 i 3 tys. moździerzy &#8211; zamówiony w Chinach przez rząd Zimbabwe dotarł mimo wielu przeszkód do Harare, stolicy kraju.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2008/05/kilka-slow-o-tym-jak-3-miliony-sztuk-ak-47-przylecialo-samolotem-do-zimbabwe/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>SOKI zostały przeniesione na dział chemia</title>
		<link>http://blog.burghardt.pl/2008/05/soki-zostaly-przeniesione-na-dzial-chemia/</link>
		<comments>http://blog.burghardt.pl/2008/05/soki-zostaly-przeniesione-na-dzial-chemia/#comments</comments>
		<pubDate>Tue, 13 May 2008 09:17:52 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Polish]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=93</guid>
		<description><![CDATA[<p>Po perełce promocyjnej zaskoczyła mnie informacja w supermarkecie. Różne firmy tyle pieniędzy wydają na PR &#8220;ekologicznych produktów&#8221; i &#8220;zdrowej żywności&#8221;, a tu ktoś z taką szczerością napisał co myśli o jakości soków w hipermarkecie:</p> [...]]]></description>
			<content:encoded><![CDATA[<p>Po <a href="/2008/05/promocja-do-zakupionego-obiadu-mozna-przyniesc-swoje-piwo/">perełce promocyjnej</a> zaskoczyła mnie informacja w supermarkecie. Różne firmy tyle pieniędzy wydają na PR &#8220;ekologicznych produktów&#8221; i &#8220;zdrowej żywności&#8221;, a tu ktoś z taką szczerością napisał co myśli o jakości soków w hipermarkecie:</p>
<p><img src="/wp-content/uploads/2008/05/soki.jpg" alt="Informujemy, że SOKI zostały przeniesione na dział chemia." width="288" height="352" class="aligncenter size-full<br />
wp-image-94&#8243; /><br clear="all" /></p>
<p>Po przeczytaniu artykułu &#8220;<a href="http://wyborcza.pl/1,75480,5134828.html">Najniższa półka</a>&#8221; z <em>Dużego Formatu</em> mam wrażenie, że miejsce większości hipermarketowych artykułów spożywczych znajduje się właśnie w dziale chemia.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2008/05/soki-zostaly-przeniesione-na-dzial-chemia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

