<?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; Debian</title>
	<atom:link href="http://blog.burghardt.pl/category/debian/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>Debian GNU/Linux on Dell Inspiron 1764</title>
		<link>http://blog.burghardt.pl/2010/04/debian-gnulinux-on-dell-inspiron-1764/</link>
		<comments>http://blog.burghardt.pl/2010/04/debian-gnulinux-on-dell-inspiron-1764/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 18:17:59 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[AMD64]]></category>
		<category><![CDATA[BCM4353]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[Inspiron]]></category>
		<category><![CDATA[Radeon]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=387</guid>
		<description><![CDATA[<p>Installing, configuring and using Debian GNU/Linux on Dell Inspiron 1764 (N0476409) notebook.</p> <p></p> Hardware overview Intel Core i5-520M (2.4GHz, 4 Threads, turbo Boost up to 2.93GHz, 3M cache) 17.3&#8243; WLED High Definition+ (1600&#215;900) TFT Display 1GB ATI Mobility Radeon HD 5450 4096MB 1067MHz Dual Channel DDR3 SDRAM (2&#215;2048) 500GB (5400RPM) Serial ATA Hard Drive DVD [...]]]></description>
			<content:encoded><![CDATA[<p>Installing, configuring and using Debian GNU/Linux on <a href="http://www1.euro.dell.com/uk/en/home/Laptops/inspiron-1764/pd.aspx?refid=inspiron-1764&#038;cs=ukdhs1&#038;s=dhs">Dell Inspiron 1764</a> (<a href="http://www.google.com/search?q=N0476409">N0476409</a>) notebook.</p>
<p><span id="more-387"></span></p>
<h2>Hardware overview</h2>
<ul>
<li>Intel Core i5-520M (2.4GHz, 4 Threads, turbo Boost up to 2.93GHz, 3M cache)</li>
<li>17.3&#8243; WLED High Definition+ (1600&#215;900) TFT Display</li>
<li>1GB ATI Mobility Radeon HD 5450</li>
<li>4096MB 1067MHz Dual Channel DDR3 SDRAM (2&#215;2048)</li>
<li>500GB (5400RPM) Serial ATA Hard Drive</li>
<li>DVD +/- RW Drive (read/write CD &#038; DVD)</li>
<li>Dell Wireless 1520 (802.11a/b/g/n)</li>
<li>Dell Bluetooth 365</li>
<li>Integrated 1,3MP webcam</li>
</ul>
<h2>Devices that works with Linux</h2>
<ul>
<li>CPU: both cores and HT works, recent Linux kernels support speedstep,</li>
<li>USB: works (even with Debian Installer images),</li>
<li>DVD+/-RW: works (even with Debian Installer images),</li>
<li>Graphic: basic features (2D, hardware accelerated 3D rendering) works with <strong>proprietary drivers only</strong>, most other features (CAL, POWERplay, multihead) unsupported; <strong>no FLOSS alternative</strong>,</li>
<li>Sound: works, but I need to pass options to module to make sound work properly,</li>
<li>Ethernet: works (even with Debian Installer images),</li>
<li>Wireless LAN: basic features (STA mode) supported by <strong>proprietary drivers only</strong>, other features (monitor mode and packet injection) not supported; <strong>no FLOSS alternative</strong>,</li>
<li>Bluetooth: works (as HCI only after reset with hid2hci),</li>
<li>Card reader: works (tested with MicroSD and Memory Stick PRO Duo, both with adapters),</li>
<li>Webcam: works.</li>
</ul>
<p></p>
<p>Also &#8220;Suspend to RAM&#8221; works using sysfs method of hibernate script. &#8220;Suspend to disk&#8221; works using ususpend method.</p>
<h2>Devices that does not work with Linux</h2>
<ul>
<li>none :-D</li>
</ul>
<h2>Devices</h2>
<ul>
<li><a href='/wp-content/uploads/2010/04/dmesg.txt' title='Linux kernel messages'>Linux kernel messages</a></li>
<li><a href='/wp-content/uploads/2010/04/lspci.txt' title='PCI devices list'>PCI devices list</a></li>
<li><a href='/wp-content/uploads/2010/04/lsusb.txt' title='USB devices list'>USB devices list</a></li>
<li><a href='/wp-content/uploads/2010/04/cpuinfo.txt' title='Processor details'>Processor details</a></li>
</ul>
<h2>Configuration</h2>
<h3>Graphic</h3>
<p>Download and install <a href="http://support.amd.com/us/gpudownload/Pages/index.aspx">fglrx</a> driver. <a href="http://www.google.com/search?q=fglrx+install">Google</a> is full of instruction how to install it, so I skip this step.</p>
<p>When driver is installed and fglrx is loaded into kernel its time to configure X.Org. Probably aticonfig would be best choice, but it fails on Mobility Radeon HD 5000 series cards with message:</p>
<pre>
# aticonfig --initial
aticonfig: No supported adapters detected
</pre>
<p>Download <a href='/wp-content/uploads/2010/04/xorg.txt'>my xorg.conf</a> and put it into <em>/etc/X11</em> directory. Then start X-server using <em>startx</em> command. My default layout include Inspiron&#8217;s built-in TFT screen, ATI Mobility Radeon HD 5450, ALPS touchpad and any other mice connected to it.</p>
<p>You will probably see &#8220;AMD unsupported hardware&#8221; watermark in lower right corner of the screen. There is no configuration option to remove it. Removal is possible by patching <em>fglrx_drv.so</em> file. <a href="http://www.phoronix.com/forums/member.php?u=6147">Kano</a> posted small script to replace call to EnableLogo with NOPs on <a href="http://www.phoronix.com/forums/showthread.php?t=19875">Phoronix Forums&#8217; thread &#8220;Unsupported Hardware watermark&#8221;</a>:</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"><span style="color: #666666; font-style: italic;">#!/bin/sh</span><br />
<span style="color: #007800;">DRIVER</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>xorg<span style="color: #000000; font-weight: bold;">/</span>modules<span style="color: #000000; font-weight: bold;">/</span>drivers<span style="color: #000000; font-weight: bold;">/</span>fglrx_drv.so<br />
<span style="color: #000000; font-weight: bold;">for</span> x <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>objdump <span style="color: #660033;">-d</span> <span style="color: #007800;">$DRIVER</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'/call/&amp;&amp;/EnableLogo/{print &quot;\\x&quot;$2&quot;\\x&quot;$3&quot;\\x&quot;$4&quot;\\x&quot;$5&quot;\\x&quot;$6}'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>; <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp;<span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-i</span> <span style="color: #ff0000;">&quot;s/<span style="color: #007800;">$x</span>/\x90\x90\x90\x90\x90/g&quot;</span> <span style="color: #007800;">$DRIVER</span><br />
<span style="color: #000000; font-weight: bold;">done</span></div></div>
<h3>Sound</h3>
<p>Create file <em>/etc/modprobe.d/sound</em> with following content:</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">alias snd-card-0 snd-hda-intel<br />
options snd-hda-intel model=dell index=0</div></div>
<p>Reload alsa driver (or reboot).</p>
<h3>Wireless LAN</h3>
<p>Drivers need to be compiled from sources. First prepare your system for kernel module building. Install <em>build-essential</em> and <em>module-assistant</em> packages.Then prepare kernel headers:</p>
<pre>
# aptitude install build-essential module-assistant
# m-a prepare
</pre>
<p>When kernel headers are ready download <a href="http://www.broadcom.com/support/802.11/linux_sta.php">802.11 Linux STA driver</a> for Broadcom&#8217;s IEEE 802.11a/b/g/n devices (this includes BCM4311, BCM4312, BCM4313, BCM4321 and BCM4322). Compile it. Install. And finally load into running kernel:</p>
<pre>
# cd /usr/src
# wget http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_64-v5.60.48.36.tar.gz
# mkdir hybrid-portsrc-x86_64-v5.60.48.36
# cd hybrid-portsrc-x86_64-v5.60.48.36
# tar zxf ../hybrid-portsrc-x86_64-v5.60.48.36.tar.gz
# make
# mkdir /lib/modules/`uname -r`/local
# cp wl.ko /lib/modules/`uname -r`/local
# depmod -A
# modprobe -v wl
</pre>
<p>Command <em>dmesg | tail</em> should output something similar to this:</p>
<pre>
wlan0: Broadcom BCM4353 802.11 Hybrid Wireless Controller 5.60.48.36
</pre>
<h3>Bluetooth</h3>
<p>Dell Bluetooth 365 is detected as HCI on kernel <a href="http://packages.debian.org/lenny-backports/linux-headers-2.6.32-bpo.4-amd64">2.6.32-bpo.4-amd64</a> only if previously reset with hid2hci (get a copy form <a href="http://packages.debian.org/lenny-backports/bluez">bluez 4.6</a>). This is actually <a href="http://idebian.wordpress.com/2008/07/06/manage-hid-bluetooth-devices-in-linux/">a feature, not a bug</a>. Use recent hid2hci to put device into HCI mode:</p>
<pre>
# hid2hci -m dell -v 413c -p 8162
Attempting to switch device 413c:8162 to HCI mode was successful
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2010/04/debian-gnulinux-on-dell-inspiron-1764/feed/</wfw:commentRss>
		<slash:comments>3</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>Source code (security) auditing utilities available in Debian</title>
		<link>http://blog.burghardt.pl/2009/01/source-code-security-auditing-utilities-available-in-debian/</link>
		<comments>http://blog.burghardt.pl/2009/01/source-code-security-auditing-utilities-available-in-debian/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 21:05:12 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[static checker]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=153</guid>
		<description><![CDATA[<p>Debian GNU/Linux provides several packages that can be used to audit C/C++ source code. First three search for programming errors that might lead to potential security flaws:</p> flawfinder rats pscan <p>Next two tools find bugs in C and C++ source code by doing a static check too, but their checks are not security-related:</p> splint cppcheck [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.debian.org/">Debian GNU/Linux</a> provides several packages that can be used to audit C/C++ source code. First three search for programming errors that might lead to potential security flaws:</p>
<ul>
<li><a href="http://packages.debian.org/flawfinder">flawfinder</a></li>
<li><a href="http://packages.debian.org/rats">rats</a></li>
<li><a href="http://packages.debian.org/pscan">pscan</a></li>
</ul>
<p>Next two tools find bugs in C and C++ source code by doing a static check too, but their checks are not security-related:</p>
<ul>
<li><a href="http://packages.debian.org/splint">splint</a></li>
<li><a href="http://packages.debian.org/cppcheck">cppcheck</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2009/01/source-code-security-auditing-utilities-available-in-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to build RPM packages in CentOS chroot on&#8230; Debian!</title>
		<link>http://blog.burghardt.pl/2008/12/how-to-build-rpm-packages-in-centos-chroot-on-debian/</link>
		<comments>http://blog.burghardt.pl/2008/12/how-to-build-rpm-packages-in-centos-chroot-on-debian/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 23:31:09 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[chroot]]></category>
		<category><![CDATA[mach]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=189</guid>
		<description><![CDATA[<p>Debian GNU/Linux has its sbuild and (much easier) pbuilder, but can you imagine that Debian includes software to create RPM-based chroots and build RPM packages under them?! Package called mach provides tool similar to pbuilder. It create chroots, manage them and allow user to create RPMs in separated, clear and reproducible environment. Just like packages [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.debian.org/">Debian GNU/Linux</a> has its <a href="http://packages.debian.org/sbuild">sbuild</a> and (much easier) <a href="http://packages.debian.org/pbuilder">pbuilder</a>, but can you imagine that Debian includes software to create <a href="http://en.wikipedia.org/wiki/RPM_Package_Manager">RPM</a>-based chroots and build RPM packages under them?! Package called <a href="http://packages.debian.org/mach">mach</a> provides tool similar to pbuilder. It create chroots, manage them and allow user to create RPMs in separated, clear and reproducible environment. Just like packages should be build. Moreover its as easy to use as pbuilder is (if not even easier).<br />
<span id="more-189"></span></p>
<h2>Installing mach</h2>
<p>This package is available in current stable release of Debian (named &#8220;etch&#8221;), so installing is easy:</p>
<pre>
# aptitude install mach
</pre>
<p>According to bug <a href="http://bugs.debian.org/484514">#484514</a> installing <a href="http://packages.debian.org/createrepo">createrepo</a> which is its dependency have to be done by hand:</p>
<pre>
# aptitude install createrepo
</pre>
<h2>Setting mach users</h2>
<p>To give user permision to run mach add him to mach group with command:</p>
<pre>
# adduser username mach
</pre>
<p>Re-login or use <em>sg mach</em> command to obtain new rights.</p>
<h2>Creating chroot</h2>
<p>Creating chroots with <em>mach</em> is really simple. Just choose your target distribution and run:</p>
<pre>
$ mach -r centos-5-i386-updates setup base
</pre>
<p>Full list of supported distributions, version and their options is available at <em>/etc/mach/dist.d/</em>. This includes <a href="http://www.centos.org/">CentOS</a> 4 and 5; <a href="http://www.fedoraproject.org/">Fedora</a> 1, 2, 3, 4, and 6 for both i386 and x86_64; <a href="http://www.redhat.com/">RedHat</a> 7.0, 7.1, 7.2, 7.3, 8.0 and 9; <a href="http://www.novell.com/linux/">SUSE</a> 8.1, 8.2 and 9.0 and&#8230; other. Distributions also have <strong>-os</strong>, <strong>-updates</strong> and other suffixes that enables additional repositories.</p>
<h3>RPM locking (bug)</h3>
<p>As I reported in <a href="http://bugs.debian.org/507500">#507500</a> documentation about setting host&#8217;s <em>rpm</em> is a bit misleading. If method that invole <em>/etc/rpm/macros.mach</em> does not work try to create <em>/var/lib/rpm</em> (and don&#8217;t forget to remove <em>/etc/rpm/macros.mach</em>).</p>
<h2>Entering chroot</h2>
<p>To enter chroot run:</p>
<pre>
$ mach -r centos-5-i386-updates chroot
</pre>
<p>To leave it use <em>exit</em>.</p>
<h2>Installing additional packages in chroot</h2>
<p>Major difference between <em>pbuilder</em> and <em>mach</em> is in approach to use of package manager. While <em>pbuilder</em> use <em>apt</em> and <em>dpkg</em> from chroot, <strong><em>mach</em> always use host&#8217;s <em>yum</em> and <em>rpm</em></strong>. Also RPM database is kept outside the chroot. This approach make <em>yum</em> and <em>rpm</em> in chroot useless for package managing.</p>
<p>To install or uninstall package you need to use:</p>
<pre>
$ mach -r centos-5-i386-updates rpm -Uhv package.rpm
</pre>
<p>or yum with:</p>
<pre>
$ mach -r centos-5-i386-updates yum install package
</pre>
<p><a href="http://en.wikipedia.org/wiki/Advanced_Packaging_Tool">APT</a>-based RPM repository support is currently broken in Debian&#8217;s <em>mach</em> package (according to README.Debian), because Debian&#8217;s APT only support &#8220;deb&#8221; repositories.</p>
<p>Finally, if you make too much mess you can always clean your chroot with:</p>
<pre>
$ mach -r centos-5-i386-updates clean
</pre>
<p>Packages are cached in <em>/var/cache/mach</em> on host, so re-creating chroots is fast and do not involve any package downloading.</p>
<h2>(Re)building a (source) RPM</h2>
<p>This is probably the easiest part of the whole process. Just run:</p>
<pre>
$ mach -r centos-5-i386-updates rebuild package.src.rpm
</pre>
<p>Results will be placed in <em>/var/tmp/mach/centos-5-i386-updates/package</em>.</p>
<h2>~/.machrc</h2>
<p>Whole process can be a bit simpler if you create a configuration file. You can set default chroot name in it and omit <em>-r</em> option in all commands:</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<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #ff0000;">'defaultroot'</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> = <span style="color: #ff0000;">'centos-5-i386-updates'</span></div></div>
<p>Also you can set <em>yum</em> as default package manager (to keep it if package default will change in future):</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<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #ff0000;">'installer'</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> = <span style="color: #ff0000;">'yum'</span></div></div>
<h2>See also</h2>
<ul>
<li><a href="http://thomas.apestaart.org/projects/mach/">Mach&#8217;s upstream homepage</a></li>
<li><a href="http://packages.qa.debian.org/mach">Overview of mach  source package in Debian</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2008/12/how-to-build-rpm-packages-in-centos-chroot-on-debian/feed/</wfw:commentRss>
		<slash:comments>0</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>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>ESE Key Daemon 1.2.4 released</title>
		<link>http://blog.burghardt.pl/2008/09/ese-key-daemon-124-released/</link>
		<comments>http://blog.burghardt.pl/2008/09/ese-key-daemon-124-released/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 19:10:58 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[daemon]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[funkey]]></category>
		<category><![CDATA[input]]></category>
		<category><![CDATA[key]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[userspace]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=144</guid>
		<description><![CDATA[<p>New version of ESE Key Daemon was released today.</p> <p>Release notes:</p> Fixed cross-compilation bug reported by hartleys. Removed debian directory (will try to include esekeyd in Debian). Removed old directory (Linux 2.4 users can use 1.2.3, but 2.4 support is no longer maintained). Removed lib directory (any modern (g)libc has getopt). <p>Download: esekeyd-1.2.4.tar.gz (.asc)</p> <p>MD5: [...]]]></description>
			<content:encoded><![CDATA[<p>New version of <a href="/2007/12/ese-key-daemon/">ESE Key Daemon</a> was released today.</p>
<p>Release notes:</p>
<ul>
<li>Fixed cross-compilation bug reported by hartleys.</li>
<li>Removed debian directory (will try to <a href="http://bugs.debian.org/499917">include esekeyd in Debian</a>).</li>
<li>Removed old directory (Linux 2.4 users can use 1.2.3, but 2.4 support is no longer maintained).</li>
<li>Removed lib directory (any modern (g)libc has <a href="http://www.gnu.org/software/libc/manual/html_node/Getopt.html">getopt</a>).</li>
</ul>
<p>Download: <a href="http://www.burghardt.pl/files/esekeyd-1.2.4.tar.gz">esekeyd-1.2.4.tar.gz</a> (<a href="http://www.burghardt.pl/files/esekeyd-1.2.4.tar.gz.asc">.asc</a>)</p>
<p>MD5: 5eb8d1b02cdd99d0681e946768e529db<br />
SHA1: 12395b670dbf9ae93573e9cd5f57c51c3572a8aa</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2008/09/ese-key-daemon-124-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dostęp do Internetu przez telefon z Bluetooth i GPRS</title>
		<link>http://blog.burghardt.pl/2008/04/dostep-do-internetu-przez-telefon-z-bluetooth-i-gprs/</link>
		<comments>http://blog.burghardt.pl/2008/04/dostep-do-internetu-przez-telefon-z-bluetooth-i-gprs/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 15:41:11 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Polish]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[CSD]]></category>
		<category><![CDATA[GPRS]]></category>
		<category><![CDATA[ifscheme]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[Orange]]></category>
		<category><![CDATA[PPP]]></category>
		<category><![CDATA[pppd]]></category>
		<category><![CDATA[rfcomm]]></category>
		<category><![CDATA[telefon]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/?p=89</guid>
		<description><![CDATA[<p>Wczorajsza awaria u mojego providera, która trwa do dziś (i podobno potrwa do 21:00) uświadomiła mi, że modemy kablowe to nie jedyny sposób łączenia się z Internetem. Większość współczesnych telefonów posiada interfejsy bezprzewodowe Bluetooth i IrDA oraz GPRS i CSD. Korzystając z komputera z adapterem Bluetooth (np. na USB) i telefonu możemy zestawić połączenie z [...]]]></description>
			<content:encoded><![CDATA[<p>Wczorajsza awaria u mojego <a href="http://pl.wikipedia.org/wiki/Internet_Service_Provider">providera</a>, która trwa do dziś (i podobno potrwa do 21:00) uświadomiła mi, że <a href="http://pl.wikipedia.org/wiki/Modem_kablowy">modemy kablowe</a> to nie jedyny sposób łączenia się z Internetem. Większość współczesnych telefonów posiada interfejsy bezprzewodowe <a href="http://pl.wikipedia.org/wiki/Bluetooth">Bluetooth</a> i <a href="http://pl.wikipedia.org/wiki/IrDA">IrDA</a> oraz <a href="http://pl.wikipedia.org/wiki/GPRS">GPRS</a> i <a href="http://pl.wikipedia.org/wiki/Circuit_Switched_Data">CSD</a>. Korzystając z komputera z adapterem Bluetooth (np. na <a href="http://pl.wikipedia.org/wiki/USB">USB</a>) i telefonu możemy zestawić połączenie z Internetem przez publiczny <a href="http://pl.wikipedia.org/wiki/Access_Point_Name">APN</a>. W Polsce każdy operator <a href="http://pl.wikipedia.org/wiki/GSM">GSM</a> posiada APN poprzez który można łączyć się z internetem.</p>
<p><span id="more-89"></span></p>
<p>Ponieważ używam systemu operacyjnego <a href="http://www.debian.org/">Debian GNU/Linux</a> i telefonu w sieci <a href="http://www.orange.pl/">Orange</a> poniższy opis będzie związany z konfiguracją w takim właśnie przypadku. Dla pozostałych operatorów i innych dystrybucji niektóre kroki będą inne, ale sposób konfiguracji nie powinien bardzo się różnić.</p>
<h2>Bluetooth</h2>
<p>Komputer i telefon komórkowy należy ze sobą sparować. Jest to krok konieczny, a sposób jego wykonania jest opisany w każdej instrukcji podłączania jakiegokolwiek urządzenia Bluetooth do komputera z Linuksem więc nie będę tego omawiał.</p>
<p>Gdy telefon i komputer komunikują się bez przeszkód należy poszukać kanału usługi portu szeregowego w telefonie. Wystarczy jeden port szeregowy. Możemy włączyć na chwilę "widoczność" telefonu i wydać komendę:</p>
<pre>
$ sdptool browse
</pre>
<p>Jeśli znamy adres sprzętowy naszego telefonu wystarczy podać go jako kolejny parametr (w tym przypadku urządzenie nie musi być "widoczne").</p>
<p>Naszym oczom ukaże się lista usług telefonu. Najbardziej interesujący na fragment wygląda tak:</p>
<pre>
Service Name: Serial Port
Service RecHandle: 0x10003
Service Class ID List:
  "Serial Port" (0x1101)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 2
</pre>
<p>Teraz dopisujemy do pliki konfiguracyjnego <em>/etc/bluetooth/rfcomm.conf</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">rfcomm0 <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; bind yes<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; device <span style="color: #208080;">00</span><span style="color: #339933;">:??:??:??:??:??;</span> <span style="color: #339933;"># adres sprzętowy telefonu wyświetlony przez sdptool</span><br />
&nbsp; &nbsp; channel <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span> <span style="color: #339933;"># numer kanału wyświetlony przez sdptool dla portu szeregowego</span><br />
&nbsp; &nbsp; comment <span style="color: #ff0000;">&quot;Serial Port&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Restartujemy usługę bluetooth:</p>
<pre>
# invoke-rc.d --force bluetooth restart
</pre>
<p>Telefon będzie obsługiwany tak ja modem podłączony przez port szeregowy. Jako pliku urządzenia użyjemy <em>/dev/rfcomm0</em>.</p>
<h2>IrDA</h2>
<p>Dla połączeń IrDA plikiem urządzenia jest <em>/dev/ircomm0</em>. Po szczegóły konfiguracji odsyłam do <a href="http://irda.sourceforge.net/docs/">Linux-IrDA project</a>.</p>
<h2>CSD</h2>
<p>Choć pewnie wszyscy czekają na sposób konfiguracji połączeń GPRS zacznę od <a href="http://pl.wikipedia.org/wiki/Circuit_Switched_Data">CSD</a>. Łatwiej je skonfigurować i przetestować, a skonfigurowane już połączenie CSD łatwo przerobić na działające połączenie GPRS.</p>
<p>Połączenia CSD (tzw. "wdzwaniane") przesyłają dane protokołem <a href="http://pl.wikipedia.org/wiki/Point_to_Point_Protocol">PPP</a>. W systemie GNU/Linux za obsługe połączeń PPP odpowiada demon <strong>pppd</strong>.</p>
<h3>Konfiguracja pppd</h3>
<p>Aby skonfigurować pppd tworzymy w katalogu <em>/etc/ppp/peers</em> nowy plik opisujący połączenie (nazwałem go <em>orange-csd</em>) z następującą zawartością:</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">user <span style="color: #ff0000;">&quot;internet&quot;</span><br />
connect <span style="color: #ff0000;">&quot;/usr/sbin/chat -v -f /etc/chatscripts/pap -T +48501808080&quot;</span><br />
<br />
<span style="color: #339933;">/</span>dev<span style="color: #339933;">/</span>rfcomm0<br />
<span style="color: #0000dd;">57600</span><br />
<br />
noipdefault<br />
usepeerdns<br />
defaultroute<br />
<br />
persist<br />
<br />
noauth</div></div>
<p>Jeśli nie korzystasz z sieci Orange, prawdopodobnie powinieneś zmienić login (pierwsza linia) i numer telefonu (druga linia) na właściwy dla danej sieci.</p>
<p>Następnie dla podanego w tym pliku loginu dopisujemy w pliku <em>/etc/ppp/chap-secrets</em> odpowiednie hasło. Dla Orange (hasło i login są takie same) będzie to linia:</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">internet * internet *</div></div>
<p>W pliku <em>chap-secrets</em> cztery pola oznaczają po kolei: login, serwer, hasło i adres IP. Jeśli dostawca wymaga protokołu <a href="http://pl.wikipedia.org/wiki/Password_Authentication_Protocol">PAP</a> zamiast <a href="http://pl.wikipedia.org/wiki/Challenge_Handshake_Authentication_Protocol">CHAP</a> hasło wpisujemy do <em>/etc/ppp/pap-secrets</em>.</p>
<h3>Konfiguracja skryptów sieciowych</h3>
<p>Konfiguracja pppd jest niezależna od dystrybucji. Połączenie PPP możemy nawiązać poleceniem:</p>
<pre>
pppd call orange-csd
</pre>
<p>Jeśli chcemy aby ifup i ifdown obsługiwały również połączenia PPP należy zainstalować pakiet <strong>ifscheme</strong> i <strong>resolvconf</strong>, a następnie dopisać do <em>/etc/network/interfaces</em>:</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">iface ppp0 inet ppp<br />
mapping ppp0<br />
&nbsp; &nbsp; &nbsp; &nbsp; script ifscheme-mapping<br />
&nbsp; &nbsp; &nbsp; &nbsp; map orange-csd ppp0-orange-csd<br />
&nbsp; &nbsp; &nbsp; &nbsp; map orange-gprs ppp0-orange-gprs<br />
<br />
iface ppp0-orange-csd inet ppp<br />
&nbsp; &nbsp; &nbsp; &nbsp; provider orange-csd<br />
<br />
iface ppp0-orange-gprs inet ppp<br />
&nbsp; &nbsp; &nbsp; &nbsp; provider orange-gprs</div></div>
<p>Przełączanie pomiędzy trybem GPRS i CSD następuje poprzez wydanie jednego z poleceń:</p>
<pre>
# ifscheme orange-gprs
# ifscheme orange-csd
</pre>
<h2>GPRS</h2>
<p>Jeśli CSD działa (nie działa, albo pominęliśmy jego konfigurację - niepotrzebne skreślić) możemy skonfigurować telefon (o ile nigdy tego nie robiliśmy i nigdy nie korzystaliśmy z Internetu na telefonie np. przez program <a href="http://www.operamini.com/">Opera Mini</a>). Jeśli telefon kupiliśmy w salonie i nic nie zmienialiśmy powinien być już skonfigurowany. Po opis konfiguracji telefonu odsyłam na stronę operatora lub do instrukcji obsługi telefonu. Mając działające połączenie GPRS w telefonie możemy przystąpić do konfigurowania Linuksa.</p>
<h3>Konfiguracja pppd</h3>
<p>Konfiguracja pppd jest analogiczna jak dla CSD. Tworzymy plik <em>/etc/ppp/peers/orange-gprs</em> z następującą zawartością:</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">user <span style="color: #ff0000;">&quot;internet&quot;</span><br />
connect <span style="color: #ff0000;">&quot;/usr/sbin/chat -v -f /etc/chatscripts/orange-gprs&quot;</span><br />
disconnect <span style="color: #ff0000;">&quot;/usr/sbin/chat -v -f /etc/chatscripts/orange-gprs-off&quot;</span><br />
<br />
<span style="color: #339933;">/</span>dev<span style="color: #339933;">/</span>rfcomm0<br />
<span style="color: #0000dd;">57600</span><br />
<br />
noipdefault<br />
usepeerdns<br />
defaultroute<br />
<br />
persist<br />
<br />
noauth</div></div>
<h3>Konfiguracja chat</h3>
<p>Połączenia CSD nie potrzebowały skryptów chat do konfiguracji telefonu. W przypadku GPRS jest inaczej. Konieczne jest wybranie konfiguracji telefonu i nazwy APN. Utwórzmy dwa skrypty. Pierwszy znich - <em>/etc/chatscripts/orange-gprs</em> połaczy nas z APN:</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 />
OK AT<span style="color: #339933;">+</span>CGDCONT<span style="color: #339933;">=</span><span style="color: #0000dd;">6</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;IP&quot;</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;internet&quot;</span><br />
OK ATD<span style="color: #339933;">*</span><span style="color: #0000dd;">99</span><span style="color: #339933;">#</span><br />
CONNECT ``</div></div>
<p>Najważniejsza w tym skrypcie jest komenda AT+CGDCONT tworząca kontekst <a href="http://en.wikipedia.org/wiki/Packet_Data_Protocol">PDP</a>. Jej parametry to numer kontekstu (od 1 do 32), tryb pracy (do połączeń z Internetem będzie to "IP") oraz nazwa APN. Nazwa APN jest specyficzna dla sieci GPRS (operatora). Numer kontekstu jest istotny jedynie dla styku <a href="http://pl.wikipedia.org/wiki/Data_Terminating_Equipment">DTE</a>-<a href="http://pl.wikipedia.org/wiki/Data_Communications_Equipment">DCE</a> (komputer-telefon) i odpowiada on numerowi konfiguracji połączenia GPRS w telefonie.</p>
<p>Drugi - <em>/etc/chatscripts/orange-gprs-off</em> - będzie służył do rozłączania sesji GPRS:</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>
<h3>Konfiguracja skryptów sieciowych</h3>
<p>Połączenie GPRS możemy zainicjować poleceniem:</p>
<pre>
pppd call orange-gprs
</pre>
<p>Konfiguracja <em>/etc/network/interfaces</em> jest identyczna jak w przypadku CSD.</p>
<h2>Podsumowanie</h2>
<p>Osoby używające innych dystrybucji powinny dostosować konfigurację do specyfiki dystrybucji. Konfiguracja pppd i chata nie wymaga poprawek (poza ścieżkami oczywiście, jeśli są inne należy je poprawić). Konfiguracja ifup i ifdown przyda się tylko w Debianie, <a href="http://www.ubuntu.com/">Ubuntu</a> i podobnych. Dla innych niż Orange sieci GSM zmienić należy numer telefonu dla CSD, numer konfiguracji telefonu oraz nazwę APN dla GPRS oraz login i hasło w obu przypadkach.</p>
<h3>Telefony</h3>
<p>Prędkość połączenia szeregowego została dobrana eksperymentalnie na zasadzie "najwyższa przy której jeszcze działa". Prawdopodobnie inne telefony mogą obsługiwać wyższe prędkości niż 57600. Stabilność połączenia podnosi również wyłączenie użycia protokołu <a href="http://en.wikipedia.org/wiki/Link_Control_Protocol">PPP Link Control Protocol (LCP)</a>:</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">lcp<span style="color: #339933;">-</span>echo<span style="color: #339933;">-</span>interval <span style="color: #0000dd;">0</span></div></div>
<p>W modelu Sony Ericsson T610 jest ona wręcz konieczna. Niektórzy polecają ustawienie jak najdłuższego czasu pomiędzy ramkami LCP (np. maksymalnego - 65535). Należy jednak pamiętać, że jest to czas (0 wyłącza użycie protokołu LCP). Długi czas co prawda, ale gdy upłynie modem i tak nas rozłączy. W połączeniu z opcją <strong>lcp-echo-failure 4</strong> będzie on cztery razy dłuższy, ale ryzyko rozłączenia jedynie odwlecze się w czasie (65535 sekund to około 18 godzin).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2008/04/dostep-do-internetu-przez-telefon-z-bluetooth-i-gprs/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Instalacja tunera DVB-T Asus My Cinema-U3000 Mini w Debianie</title>
		<link>http://blog.burghardt.pl/2008/03/instalacja-tunera-dvb-t-asus-my-cinema-u3000-mini-w-debianie/</link>
		<comments>http://blog.burghardt.pl/2008/03/instalacja-tunera-dvb-t-asus-my-cinema-u3000-mini-w-debianie/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 22:13:33 +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[Asus]]></category>
		<category><![CDATA[DVB]]></category>
		<category><![CDATA[EeePC]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[LKM]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[tuner]]></category>
		<category><![CDATA[TV]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/2008/03/instalacja-tunera-dvb-t-asus-my-cinema-u3000-mini-w-debianie/</guid>
		<description><![CDATA[<p>Ostatnio stałem się szczęśliwym posiadaczem tunera DVB-T, z interfejsem USB, firmowanego przez Asusa. Urządzenie wielkości pendrive&#8217;a zbudowane zostało z tunera Microtune MT2266 i frontendu Dibcom DiB7000PC (z demodulatorem DVB-T). Nie to jednak przesądziło o zakupie tego modelu. Asus udostępnił źródła zmodyfikowanego na potrzeby My Cinema-U3000 Mini otwartego sterownika, co gwarantuje wsparcie dla tego urządzenia. Niestety [...]]]></description>
			<content:encoded><![CDATA[<p>Ostatnio stałem się szczęśliwym posiadaczem tunera <a href="http://pl.wikipedia.org/wiki/DVB-T">DVB-T</a>, z interfejsem <a href="http://pl.wikipedia.org/wiki/USB">USB</a>, firmowanego przez <a href="http://pl.wikipedia.org/wiki/ASUS">Asusa</a>. Urządzenie wielkości pendrive&#8217;a zbudowane zostało z tunera Microtune MT2266 i frontendu Dibcom DiB7000PC (z demodulatorem DVB-T). Nie to jednak przesądziło o zakupie tego modelu. Asus udostępnił źródła zmodyfikowanego na potrzeby <strong>My Cinema-U3000 Mini</strong> <a href="http://pl.wikipedia.org/wiki/Otwarte_Oprogramowanie">otwartego</a> sterownika, co gwarantuje wsparcie dla tego urządzenia. Niestety sam frontend wymaga firmware, który jest <a href="http://pl.wikipedia.org/wiki/Zamkni%C4%99te_oprogramowanie">niewolny</a>. Asus przygotował również pakiety binarne dla EeePC, ale bez oryginalnej dystrybucji z EeePC są one zupełnie bezużyteczne.</p>
<p><span id="more-78"></span></p>
<p>Instalacja składa się z dwóch etapów. Instalacji firmware oraz instalacji sterownika. Firmware (<a href="http://www.wi-bw.tfh-wildau.de/~pboettch/home/linux-dvb-firmware/dvb-usb-dib0700-1.10.fw">dvb-usb-dib0700-1.10.fw</a>) należy umieścić w katalogu <em>/lib/firmware/</em>. Użytkownicy <a href="http://www.ubuntu.com/">Ubuntu</a> mogą zainstalować <em>linux-restricted-modules</em> (w wersji przynajmniej 2.6.24.8-7.18), który zawiera potrzebny plik.</p>
<p>Instalacja sterownika jest bardziej skomplikowana. Sterownik został co prawda zintegrowany z wersją 2.6.25-rc1 jądra, ale w starszych wersjach wymagana jest instalacja zmodyfikowanej wersji z repozytorium <a href="http://www.selenic.com/mercurial/wiki/">Mercurial</a> <a href="http://www.linuxtv.org/">linuxtv.org</a>. Instalacja sprowadza się do kilku komend:</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">$ hg clone http://linuxtv.org/hg/v4l-dvb<br />
$ cd v4l-dvb<br />
$ make<br />
# make install</div></div>
<p>Sterownik można załadować poleceniem:</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"># modprobe -v dvb-usb-dib0700</div></div>
<p>Do kompilacji niezbędne są pakiety make, gcc i nagłówki aktualnie używanego kernela.</p>
<p>Instrukcję instalacji w języku angielskim i kilka innych przydatnych informacji umieściłem w <a href="http://www.linuxtv.org/wiki/">DVB Wiki</a> na stronie zatytułowanej <a href="http://www.linuxtv.org/wiki/index.php/ASUS_My_Cinema-U3000_Mini">Asus My Cinema-U3000 Mini</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2008/03/instalacja-tunera-dvb-t-asus-my-cinema-u3000-mini-w-debianie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitoring mailbox in Maildir format with bash and pam_mail</title>
		<link>http://blog.burghardt.pl/2008/03/monitoring-mailbox-in-maildir-format-with-bash-and-pam_mail/</link>
		<comments>http://blog.burghardt.pl/2008/03/monitoring-mailbox-in-maildir-format-with-bash-and-pam_mail/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 22:09:18 +0000</pubDate>
		<dc:creator>Krzysztof Burghardt</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mailbox]]></category>
		<category><![CDATA[Maildir]]></category>
		<category><![CDATA[PAM]]></category>
		<category><![CDATA[pam_mail]]></category>

		<guid isPermaLink="false">http://www.burghardt.pl/2008/03/monitoring-mailbox-in-maildir-format-with-bash-and-pam_mail/</guid>
		<description><![CDATA[<p>After switch to Maildir format mailbox my bash stopped monitoring new mail. To bring this functionality back I need to set location of my new mailbox:</p> export MAIL=~/Maildir <p>And after $MAILCHECK seconds I got You have new mail in /home/kb/Maildir.</p> <p>To set $MAIL for all login shells and for all user I use pam_mail. To [...]]]></description>
			<content:encoded><![CDATA[<p>After switch to <a href="http://en.wikipedia.org/wiki/Maildir">Maildir</a> format mailbox my <a href="http://en.wikipedia.org/wiki/Bash">bash</a> stopped monitoring new mail. To bring this functionality back I need to set location of my new mailbox:</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"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">MAIL</span>=~<span style="color: #000000; font-weight: bold;">/</span>Maildir</div></div>
<p>And after <em>$MAILCHECK</em> seconds I got <em>You have new mail in /home/kb/Maildir</em>.</p>
<p>To set $MAIL for all login shells and for all user I use pam_mail. To enable checking <em>~/Maildir</em> for new mail use:</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">session &nbsp; &nbsp;optional &nbsp; pam_mail.so standard dir=~/Maildir</div></div>
<p>Probably modification in <em>/etc/pam.d/login</em> and <em>/etc/pam.d/sshd</em> are sufficient.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.burghardt.pl/2008/03/monitoring-mailbox-in-maildir-format-with-bash-and-pam_mail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

