idl0r's bloghttps://idl0r.qasl.de/blog/2011-04-14T15:37:00+02:00Graphics cards with *extended* VESA modes2011-04-14T15:37:00+02:002011-04-14T15:37:00+02:00idl0rtag:idl0r.qasl.de,2011-04-14:/blog/posts/2011/04/14/graphics-cards-with-extended-vesa-modes/<p>I noticed that a lot of graphics card vendors don't know their product
as good as they should, esp. since all modern graphics card have a
resolution of >=1680x1050...
So you'll have trouble to use a resolution of >1600x1200 when also
using the linux framebuffer e.g. uvesafb.
The max …</p><p>I noticed that a lot of graphics card vendors don't know their product
as good as they should, esp. since all modern graphics card have a
resolution of >=1680x1050...
So you'll have trouble to use a resolution of >1600x1200 when also
using the linux framebuffer e.g. uvesafb.
The max. resolution defined by the VESA VBE is 1600x1200, I'm glad to
have a XFXForce GF9600GT in my desktop which has a <em>extended</em> VBE
which allows (take a loot at /sys/devices/platform/uvesafb.0/vbe_modes
when using uvesafb) me to use a resolution up to 1680x1050 in my
framebuffer.</p>
<p>Intel or other KMS users shouldn't be affected at all, so mainly NVIDIA
users are affected.</p>
<p>I also have a brand new card from Zotac but unfortunately limited to
max. 1600x1200. I tried to get a new VBIOS from Zotac but they a) don't
have BIOS upgrades at all and b) they didn't even get it at all.. So it
seems there is no way to get a fixed version from Zotac.</p>
<p>Spock, the uvesafb author, had the idea to write a "patch" similar to
915resolution but my skills in this area are too weak :(.</p>
<p>So I'm writing about this because I'm looking for a new card atm but I
do want to have high resolutions supported on the framebuffer as well.
XFX doesn't seem to have recent cards and I don't know about the other
vendors.</p>
<p>Do you guys know any other vendors besides XFX which have such a
extended version of the video bios? It may be a good idea to start
creating of a public list of such vendors...</p>Merge your old Bugzilla account with your new one2011-03-26T10:01:00+01:002011-03-26T10:01:00+01:00idl0rtag:idl0r.qasl.de,2011-03-26:/blog/posts/2011/03/26/merge-your-old-bugzilla-account-with-your-new-one/<p>I noticed that we have a lot of "duplicate" accounts in our Bugzilla DB.
Did you know that we can merge your old account with your new one?
That means the entire history of your old account will be linked with
the new one, so that we can remove the …</p><p>I noticed that we have a lot of "duplicate" accounts in our Bugzilla DB.
Did you know that we can merge your old account with your new one?
That means the entire history of your old account will be linked with
the new one, so that we can remove the old one later.</p>
<p>Just poke me (idl0r) in <a href="irc://irc.gentoo.org/">IRC</a>
(<a href="irc://irc.gentoo.org/gentoo-infra">#gentoo-infra</a> or
<a href="irc://irc.gentoo.org/gentoo-bugs">#gentoo-bugs</a>) or by mail <strong>idl0r AT
gentoo DOT org</strong>.</p>
<p><em>UPDATE</em></p>
<p>I totally forgot this part...</p>
<p>It seems many users don't even know that they can simply change their
login name/mail address in Bugzilla.
Simply change your mail address in the
<a href="https://bugs.gentoo.org/userprefs.cgi?tab=account">Account</a> tab of your
Bugzilla <a href="https://bugs.gentoo.org/userprefs.cgi">Preferences</a>. So there
is no need to create a new account just because you have/want a new mail
address for it. :)</p>git.overlays.gentoo.org/git.gentoo.org (gitolite) extra options2011-03-25T20:56:00+01:002011-03-25T20:56:00+01:00idl0rtag:idl0r.qasl.de,2011-03-25:/blog/posts/2011/03/25/git-overlays-gentoo-orggit-gentoo-org-gitolite-extra-options/<p>I bet the most of you didn't know about those options at all so I'll try
to briefly explain some...</p>
<p>We can set a project name for your repository, useful mostly for
<a href="http://cia.vc">CIA.vc</a>. In some cases the repository name differs from
the CIA.vc project name so it would …</p><p>I bet the most of you didn't know about those options at all so I'll try
to briefly explain some...</p>
<p>We can set a project name for your repository, useful mostly for
<a href="http://cia.vc">CIA.vc</a>. In some cases the repository name differs from
the CIA.vc project name so it would make sense to specify the right one.</p>
<p>Since CIA.vc notifications are enabled by default for almost all
repositories it is also possible to disable CIA.vc notifications for
your repository.</p>
<p>We can exclude some files for you to hide those in commit mails (e.g.
CIA.vc or gentoo-commits). A good example are "Manifest" files.</p>
<p>If your commits will be send to <strong>gentoo-commits AT lists DOT gentoo DOT
org</strong> and you don't want them to be send to the list anymore then just
poke us, we can disable it for you.</p>
<p>We can also add additional mail addresses to where commit mails will be
send. (Please request this only for mailinglists or so if you and your
teammates want to review your commits)</p>
<p>Last but not least: It is possible to ignore single branches from commit
mails, neither CIA.vc notifications nor mails to gentoo-commits or
additional specified addresses will be send at all.</p>
<p>The Overlays team can be found in <a href="irc://irc.gentoo.org/">IRC</a>
(<a href="irc://irc.gentoo.org/gentoo-overlays">#gentoo-overlays</a>) or via mail
<strong>overlays AT gentoo DOT org</strong>.
Also see <a href="http://www.gentoo.org/proj/en/overlays/">Gentoo Overlays
Team</a></p>Bugzilla feeds2010-12-13T14:13:00+01:002010-12-13T14:13:00+01:00idl0rtag:idl0r.qasl.de,2010-12-13:/blog/posts/2010/12/13/bugzilla-feeds/<p>If you ever wanted to use Bugzilla's feed to get <strong>each</strong> bug since your
last query? Read on...</p>
<p>Bugzilla has two interesting variables, "chfieldfrom" and "chfieldto"
which can be a time value. It can be a timestamp like from:
<code>date -u "+%Y-%m-%d+%H:%M"</code>.</p>
<p>But a small script …</p><p>If you ever wanted to use Bugzilla's feed to get <strong>each</strong> bug since your
last query? Read on...</p>
<p>Bugzilla has two interesting variables, "chfieldfrom" and "chfieldto"
which can be a time value. It can be a timestamp like from:
<code>date -u "+%Y-%m-%d+%H:%M"</code>.</p>
<p>But a small script is needed to use them properly. Some feed reader may
have own variables which you can use directly in the source URL.</p>
<div class="highlight"><pre><span></span><span class="ch">#!/bin/sh</span>
<span class="nv">DATE_FILE</span><span class="o">=</span><span class="nv">$HOME</span>/.bugfeed
<span class="nv">FEED_URL</span><span class="o">=</span><span class="s1">'https://bugs.gentoo.org/buglist.cgi?chfield=%5BBug%20creation%5D&amp;chfieldfrom=DATE&amp;chfieldto=Now&amp;query_format=advanced&amp;remaction=&amp;title=Bug%20List&amp;ctype=atom'</span>
<span class="k">if</span> <span class="o">[</span> -f <span class="s2">"</span><span class="si">${</span><span class="nv">DATE_FILE</span><span class="si">}</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
<span class="nv">LAST_DATE</span><span class="o">=</span><span class="k">$(</span><span class="p">&</span>lt<span class="p">;</span> <span class="nv">$DATE_FILE</span><span class="k">)</span>
<span class="k">else</span>
<span class="nv">LAST_DATE</span><span class="o">=</span><span class="s2">"-1d"</span>
<span class="k">fi</span>
<span class="nv">FEED_URL</span><span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">echo</span> <span class="s2">"</span><span class="nv">$FEED_URL</span><span class="s2">"</span><span class="p">|</span>sed <span class="s2">"s/DATE/</span><span class="si">${</span><span class="nv">LAST_DATE</span><span class="si">}</span><span class="s2">/"</span><span class="k">)</span><span class="s2">"</span>
<span class="c1">#echo $FEED_URL</span>
<span class="nv">DATE_NOW</span><span class="o">=</span><span class="k">$(</span>date -u <span class="s2">"+%Y-%m-%d+%H:%M"</span><span class="k">)</span>
curl <span class="s2">"</span><span class="nv">$FEED_URL</span><span class="s2">"</span>
<span class="nb">echo</span> <span class="nv">$DATE_NOW</span> <span class="p">&</span>gt<span class="p">;</span> <span class="nv">$DATE_FILE</span><span class="p">&</span>lt<span class="p">;</span>/code<span class="p">&</span>gt<span class="p">;</span>
</pre></div>
<p>The script stores the date value of your last query and uses it later as
"chfieldfrom", "chfieldto" is always "now".</p>
<p>To use it in e.g. <a href="http://liferea.sourceforge.net/">Liferea</a>:</p>
<p>Liferea->Subscriptions->New Subscription->Advanced, select Command
and choose your script. That's it.</p>Migrating from gitosis to gitolite2010-11-07T20:12:00+01:002010-11-07T20:12:00+01:00idl0rtag:idl0r.qasl.de,2010-11-07:/blog/posts/2010/11/07/migrating-from-gitosis-to-gitolite/<p>So we finally
<a href="http://archives.gentoo.org/gentoo-dev/msg_2812c9b9e768f64b46360ab17b9d0024.xml">migrated</a>
successfully from <a href="http://eagain.net/gitweb/?p=gitosis.git">gitosis</a> to
<a href="https://github.com/sitaramc/gitolite">gitolite</a>. I'll try to explain
how to do it easily.</p>
<p>Client side, part 1:</p>
<ol>
<li>Update your local gitosis-admin repository</li>
</ol>
<p>Server side, part 1:</p>
<ol>
<li>Disable write access to your gitroot by either changing the "git"
users homedir (I prefer this method) or by …</li></ol><p>So we finally
<a href="http://archives.gentoo.org/gentoo-dev/msg_2812c9b9e768f64b46360ab17b9d0024.xml">migrated</a>
successfully from <a href="http://eagain.net/gitweb/?p=gitosis.git">gitosis</a> to
<a href="https://github.com/sitaramc/gitolite">gitolite</a>. I'll try to explain
how to do it easily.</p>
<p>Client side, part 1:</p>
<ol>
<li>Update your local gitosis-admin repository</li>
</ol>
<p>Server side, part 1:</p>
<ol>
<li>Disable write access to your gitroot by either changing the "git"
users homedir (I prefer this method) or by renaming the
~/.ssh/authorized_keys file. This is important to ensure gitolite
gets a clean authorized_keys file</li>
<li>Make a backup of your gitroot by using rsync, tar or whatever else..</li>
<li>Cleanup/Remove your old gitroot</li>
<li>Install gitolite</li>
<li>Copy the example gitolite.rc into the git users homedir (e.g.
~/.gitolite.rc) and set your settings (Don't forget to chown/chmod
it later)</li>
<li>Run "gl-setup /path/to/your/pubkey" as "git" user</li>
</ol>
<p>Client side, part 2:</p>
<ol>
<li>git clone git+ssh://git.yourdomain.tld/gitolite-admin.git</li>
<li>Grab
my <a href="https://idl0r.qasl.de/blog/files/2010/11/convert.pl">convert.pl</a>
script</li>
<li>cd /path/to/gitosis-admin</li>
<li>perl
~/<a href="https://idl0r.qasl.de/blog/files/2010/11/convert.pl">convert.pl</a>
[/path/to/your/gitosis.conf] >> /path/to/gitolite.conf</li>
<li>Commit & Push your changes but <strong>DON'T</strong> add your old keys from
keydir yet!</li>
</ol>
<p>All repositories will be created after your push, ignore the pubkey
warnings for now.</p>
<p>Server side, part 2 (Run commands as user "git"):</p>
<ol>
<li>Create a tmp directory and cd into it</li>
<li>git clone -q --bare /path/to/your/gitroot/backup/repository.git</li>
<li>cd repository.git</li>
<li>GL_BYPASS_UPDATE_HOOK=1 git push -q --mirror
/path/to/the/new/gitroot/repository.git</li>
</ol>
<p>With clone and push --mirror we ensure that we don't keep any old hooks
or other stuff from gitosis.</p>
<p>In most cases it might be enough to simply remove the old hooks e.g. by
running "find /path/to/gitroot/ -type d -name hooks -exec rm -f {}/*
\;", then you could skip the server part 2 and use your old gitroot
instead.</p>
<p>I did part 2 to ensure we really have a clean new gitroot. So decide
yourself.</p>
<p>If you need to push via ssh, create a migration user in gitolite.conf</p>
<div class="highlight"><pre><span></span><span class="n">repo</span><span class="w"> </span><span class="nv">@all</span><span class="w"> </span><span class="n">RW</span><span class="o">+</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">migration</span><span class="w"></span>
</pre></div>
<p>and add the public key as well.</p>
<p>Then start a ssh-agent and ssh-add your public key. Now you don't need
to enter the passphrase for each push.</p>
<p>If you have a lot of repositories then just write a small shell script
including the git clone/push stuff.</p>
<p>Once you're done: Remove the migration user and its key.</p>
<p>Now add all your old gitosis keys to gitolite. That's it!</p>
<p>If you need the post-update hook from git (update-git-server-info) then
just link it into your ~/.gitolite/hooks/common dir.</p>
<div class="highlight"><pre><span></span><span class="n">ln</span> <span class="o">-</span><span class="n">s</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="k">share</span><span class="o">/</span><span class="n">git</span><span class="o">-</span><span class="n">core</span><span class="o">/</span><span class="n">templates</span><span class="o">/</span><span class="n">hooks</span><span class="o">/</span><span class="n">post</span><span class="o">-</span><span class="k">update</span><span class="p">.</span><span class="n">sample</span> <span class="o">~/</span><span class="p">.</span><span class="n">gitolite</span><span class="o">/</span><span class="n">hooks</span><span class="o">/</span><span class="n">common</span><span class="o">/</span><span class="n">post</span><span class="o">-</span><span class="k">update</span>
</pre></div>
<p>Run gl-setup again (as user "git") and you're done.</p>
<p>Each time when you modify your .gitolite.rc, add/change hooks or update
gitolite itself then simply run gl-setup. <strong>NOTE</strong>: Old hooks will not
be removed by gitolite/gl-setup!</p>
<p>Gentoo user can choose between the upstream/vanilla version
dev-vcs/gitolite or our own fork
<a href="http://git.overlays.gentoo.org/gitweb/?p=proj/gitolite-gentoo.git;a=summary">dev-vcs/gitolite-gentoo</a>.</p>The "OpenPGP Card V2" with authentication key2010-08-19T19:54:00+02:002010-08-19T19:54:00+02:00idl0rtag:idl0r.qasl.de,2010-08-19:/blog/posts/2010/08/19/the-openpgp-card-v2-with-authentication-key/<p>I recently bought two used(ebay) card reader, an <a href="http://www.scmmicro.com/en/products-services/smart-card-readers-terminals/smart-card-reader/scr243.html">SCM
SCR243</a>(PCMCIA)
and an <a href="http://www.scmmicro.com/en/products-services/smart-card-readers-terminals/smart-card-reader/scr3310.html">SCM
SCR3310</a>(USB),
both together for about 14 Euro.</p>
<p>The SCR243 is currently not working due to incompatibilities between the
vendor driver and the PCMCIA kernel stack (>=2.6.33 only) but I've
already requested a …</p><p>I recently bought two used(ebay) card reader, an <a href="http://www.scmmicro.com/en/products-services/smart-card-readers-terminals/smart-card-reader/scr243.html">SCM
SCR243</a>(PCMCIA)
and an <a href="http://www.scmmicro.com/en/products-services/smart-card-readers-terminals/smart-card-reader/scr3310.html">SCM
SCR3310</a>(USB),
both together for about 14 Euro.</p>
<p>The SCR243 is currently not working due to incompatibilities between the
vendor driver and the PCMCIA kernel stack (>=2.6.33 only) but I've
already requested a driver update by <a href="http://www.scmmicro.com/">SCM</a></p>
<blockquote>
<p>thank you very much for bringing this to our attention.
I requested an adapted driver from development that incorporates the
recent changes to the pcmcia API.
I will inform you when and if an updated driver will be available.</p>
</blockquote>
<p>so lets wait and hope it doesn't take too long. :)</p>
<p>The SCR3310 works out of the box as long as your kernel has USB support
enabled.</p>
<p>To upgrade the reader's firmware you have to select a windows 32bit OS
in the download center otherwise you might not see any firmware
upgrades.</p>
<p>You'll get a <a href="http://www.g10code.de/p-card.html">OpenPGP Card</a> either
through donating the <a href="http://fellowship.fsfe.org/">FSFE (Fellowship)</a> or
directly through the distributor <a href="http://shop.kernelconcepts.de/index.php?cPath=1_26&sort=2a&language=en">Kernel
Concepts</a>.
The cards are equal.</p>
<p>So for setup steps just follow the <a href="http://wiki.fsfe.org/Card_howtos/Card_with_subkeys_using_backups">FSFE
guide</a>
until "Generating subkeys for the card". If you want to use your card
for e.g. SSH authentication too, then you need to do some further steps
before making the backup at "Save public and secret keyring".</p>
<p>It seems to be important to keep the right order (First create the keys,
then make a backup and then copy the key to the card) because the key
will be associated with the card number! Otherwise it may cause some
issues later.</p>
<p>To create an authentication key do the following:</p>
<div class="highlight"><pre><span></span><span class="n">gpg</span> <span class="c1">--expert --edit YOURKEYID addkey</span>
<span class="n">Please</span> <span class="k">select</span> <span class="n">what</span> <span class="n">kind</span> <span class="k">of</span> <span class="k">key</span> <span class="n">you</span> <span class="n">want</span><span class="p">:</span>
<span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="n">DSA</span> <span class="p">(</span><span class="n">sign</span> <span class="k">only</span><span class="p">)</span>
<span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="n">RSA</span> <span class="p">(</span><span class="n">sign</span> <span class="k">only</span><span class="p">)</span>
<span class="p">(</span><span class="mi">5</span><span class="p">)</span> <span class="n">Elgamal</span> <span class="p">(</span><span class="n">encrypt</span> <span class="k">only</span><span class="p">)</span>
<span class="p">(</span><span class="mi">6</span><span class="p">)</span> <span class="n">RSA</span> <span class="p">(</span><span class="n">encrypt</span> <span class="k">only</span><span class="p">)</span>
<span class="p">(</span><span class="mi">7</span><span class="p">)</span> <span class="n">DSA</span> <span class="p">(</span><span class="k">set</span> <span class="n">your</span> <span class="n">own</span> <span class="n">capabilities</span><span class="p">)</span>
<span class="p">(</span><span class="mi">8</span><span class="p">)</span> <span class="n">RSA</span> <span class="p">(</span><span class="k">set</span> <span class="n">your</span> <span class="n">own</span> <span class="n">capabilities</span><span class="p">)</span>
<span class="n">Your</span> <span class="n">selection</span><span class="o">?</span>
</pre></div>
<p>Now choose either 7 or 8 or whatever else has the "set your own
capabilities" addition.</p>
<div class="highlight"><pre><span></span><span class="nv">Possible</span> <span class="nv">actions</span> <span class="k">for</span> <span class="nv">a</span> <span class="nv">RSA</span> <span class="nv">key</span>: <span class="nv">Sign</span> <span class="nv">Encrypt</span> <span class="nv">Authenticate</span>
<span class="nv">Current</span> <span class="nv">allowed</span> <span class="nv">actions</span>: <span class="nv">Sign</span> <span class="nv">Encrypt</span>
<span class="ss">(</span><span class="nv">S</span><span class="ss">)</span> <span class="nv">Toggle</span> <span class="nv">the</span> <span class="nv">sign</span> <span class="nv">capability</span>
<span class="ss">(</span><span class="nv">E</span><span class="ss">)</span> <span class="nv">Toggle</span> <span class="nv">the</span> <span class="nv">encrypt</span> <span class="nv">capability</span>
<span class="ss">(</span><span class="nv">A</span><span class="ss">)</span> <span class="nv">Toggle</span> <span class="nv">the</span> <span class="nv">authenticate</span> <span class="nv">capability</span>
<span class="ss">(</span><span class="nv">Q</span><span class="ss">)</span> <span class="nv">Finished</span>
<span class="nv">Your</span> <span class="nv">selection</span>?
</pre></div>
<p>Note the "<strong>Current allowed actions: Sign Encrypt</strong>" line!</p>
<p>Now press S and hit enter, the same for E. Finally press A and hit enter
until you see "<strong>Current allowed actions: Authenticate</strong>", then press Q
to finish the selection and create your authentication key.</p>
<p>You'll now see a sub-key like "<strong>sub 2048R/A3773C83 created: 2010-08-17
expires: never usage: A</strong>", note the "usage: A" that means
Authentication. Save your changes and continue with the FSFE guide till
the end</p>
<p>Once you're done just export your public ssh key with the following
command: [codespan]gpgkey2ssh A3773C83[/codespan].
<strong>NOTE: you need to select the authentication sub-key id!</strong></p>
<p>That's it! Enjoy your new toy! :)</p>
<p>Thanks to the <a href="http://www.fsfe.org/">FSFE</a> guys who wrote the guide as
well as <a href="http://blog.flameeyes.eu/tag/smartcard">Diego Elio “Flameeyes”
Pettenò</a> because I came to the
SmartCard through his blog.</p>My new laptop2009-12-15T19:57:00+01:002009-12-15T19:57:00+01:00idl0rtag:idl0r.qasl.de,2009-12-15:/blog/posts/2009/12/15/my-new-laptop/<p>A few days ago I bought a used <a href="http://www.thinkwiki.org/wiki/Category:T60">ThinkPad
T60</a> and I'm really happy
with my decision. My old Sony Vaio PCG-GRT915M was my first and worst
experience with laptops also it was very expensive... but it wasn't
worth all the money. :/</p>
<p>It had an <a href="http://en.wikipedia.org/wiki/Pentium_4">Intel Pentium 4</a>
(<strong>NOT</strong> mobile …</p><p>A few days ago I bought a used <a href="http://www.thinkwiki.org/wiki/Category:T60">ThinkPad
T60</a> and I'm really happy
with my decision. My old Sony Vaio PCG-GRT915M was my first and worst
experience with laptops also it was very expensive... but it wasn't
worth all the money. :/</p>
<p>It had an <a href="http://en.wikipedia.org/wiki/Pentium_4">Intel Pentium 4</a>
(<strong>NOT</strong> mobile!) which will be very hot if you compile something or
play games. After several months even through usual use, the Fan became
louder and louder, like a Jet.</p>
<p>I noticed later that the default clocksource didn't work as expected,
esp. in 2.6(iirc) versions of the kernel it hung during boot until I
pressed some random keys, it was even unuseable. The boot progress took
sometimes up to several minutes.</p>
<p>A workaround was to force jiffies as clocksource which is the fallback
clocksource. Everything else didn't work.</p>
<p>Another big problem (at least to me) was that just p4-clockmod was
"working" so proper <a href="http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufreq.html">CPU Frequency
scaling</a>
wasn't possible at all. ondemand and other useful governors didn't work,
powersave and performance were the only working governors. As
side-effect usability and battery life-time was bad. Battery time was
between 1 hour and 30 minutes.</p>
<p>There were even more things, <a href="http://www.popies.net/sonypi/">sonypi</a> was
buggy so Fn functions were b0rked and so on.
Several months later I was also pissed of due to the max. resolution of
1024x768...</p>
<p>Anyway... <strong>everything</strong> works fine now, with my T60.</p>
<p>lspci:</p>
<div class="highlight"><pre><span></span><span class="n">loki</span><span class="w"> </span><span class="o">~</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="n">lspci</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mf">00.0</span><span class="w"> </span><span class="k">Host</span><span class="w"> </span><span class="nl">bridge</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="n">Mobile</span><span class="w"> </span><span class="mi">945</span><span class="n">GM</span><span class="o">/</span><span class="n">PM</span><span class="o">/</span><span class="n">GMS</span><span class="p">,</span><span class="w"> </span><span class="mi">943</span><span class="o">/</span><span class="mi">940</span><span class="n">GML</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="mi">945</span><span class="n">GT</span><span class="w"> </span><span class="n">Express</span><span class="w"> </span><span class="n">Memory</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="n">Hub</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">03</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mf">02.0</span><span class="w"> </span><span class="n">VGA</span><span class="w"> </span><span class="n">compatible</span><span class="w"> </span><span class="nl">controller</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="n">Mobile</span><span class="w"> </span><span class="mi">945</span><span class="n">GM</span><span class="o">/</span><span class="n">GMS</span><span class="p">,</span><span class="w"> </span><span class="mi">943</span><span class="o">/</span><span class="mi">940</span><span class="n">GML</span><span class="w"> </span><span class="n">Express</span><span class="w"> </span><span class="n">Integrated</span><span class="w"> </span><span class="n">Graphics</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">03</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mf">02.1</span><span class="w"> </span><span class="n">Display</span><span class="w"> </span><span class="nl">controller</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="n">Mobile</span><span class="w"> </span><span class="mi">945</span><span class="n">GM</span><span class="o">/</span><span class="n">GMS</span><span class="o">/</span><span class="n">GME</span><span class="p">,</span><span class="w"> </span><span class="mi">943</span><span class="o">/</span><span class="mi">940</span><span class="n">GML</span><span class="w"> </span><span class="n">Express</span><span class="w"> </span><span class="n">Integrated</span><span class="w"> </span><span class="n">Graphics</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">03</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">b</span><span class="mf">.0</span><span class="w"> </span><span class="n">Audio</span><span class="w"> </span><span class="nl">device</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">G</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">High</span><span class="w"> </span><span class="n">Definition</span><span class="w"> </span><span class="n">Audio</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">c</span><span class="mf">.0</span><span class="w"> </span><span class="n">PCI</span><span class="w"> </span><span class="nl">bridge</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">G</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">PCI</span><span class="w"> </span><span class="n">Express</span><span class="w"> </span><span class="n">Port</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">c</span><span class="mf">.1</span><span class="w"> </span><span class="n">PCI</span><span class="w"> </span><span class="nl">bridge</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">G</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">PCI</span><span class="w"> </span><span class="n">Express</span><span class="w"> </span><span class="n">Port</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">c</span><span class="mf">.2</span><span class="w"> </span><span class="n">PCI</span><span class="w"> </span><span class="nl">bridge</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">G</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">PCI</span><span class="w"> </span><span class="n">Express</span><span class="w"> </span><span class="n">Port</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">c</span><span class="mf">.3</span><span class="w"> </span><span class="n">PCI</span><span class="w"> </span><span class="nl">bridge</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">G</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">PCI</span><span class="w"> </span><span class="n">Express</span><span class="w"> </span><span class="n">Port</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">d</span><span class="mf">.0</span><span class="w"> </span><span class="n">USB</span><span class="w"> </span><span class="nl">Controller</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">G</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">USB</span><span class="w"> </span><span class="n">UHCI</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="n">#1</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">d</span><span class="mf">.1</span><span class="w"> </span><span class="n">USB</span><span class="w"> </span><span class="nl">Controller</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">G</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">USB</span><span class="w"> </span><span class="n">UHCI</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="n">#2</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">d</span><span class="mf">.2</span><span class="w"> </span><span class="n">USB</span><span class="w"> </span><span class="nl">Controller</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">G</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">USB</span><span class="w"> </span><span class="n">UHCI</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="n">#3</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">d</span><span class="mf">.3</span><span class="w"> </span><span class="n">USB</span><span class="w"> </span><span class="nl">Controller</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">G</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">USB</span><span class="w"> </span><span class="n">UHCI</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="n">#4</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">d</span><span class="mf">.7</span><span class="w"> </span><span class="n">USB</span><span class="w"> </span><span class="nl">Controller</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">G</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">USB2</span><span class="w"> </span><span class="n">EHCI</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">e</span><span class="mf">.0</span><span class="w"> </span><span class="n">PCI</span><span class="w"> </span><span class="nl">bridge</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="w"> </span><span class="n">Mobile</span><span class="w"> </span><span class="n">PCI</span><span class="w"> </span><span class="n">Bridge</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="n">e2</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">f</span><span class="mf">.0</span><span class="w"> </span><span class="n">ISA</span><span class="w"> </span><span class="nl">bridge</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">GBM</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="o">-</span><span class="n">M</span><span class="p">)</span><span class="w"> </span><span class="n">LPC</span><span class="w"> </span><span class="n">Interface</span><span class="w"> </span><span class="n">Bridge</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">f</span><span class="mf">.1</span><span class="w"> </span><span class="n">IDE</span><span class="w"> </span><span class="nl">interface</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">G</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">IDE</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">f</span><span class="mf">.2</span><span class="w"> </span><span class="n">SATA</span><span class="w"> </span><span class="nl">controller</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">GBM</span><span class="o">/</span><span class="n">GHM</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">SATA</span><span class="w"> </span><span class="n">AHCI</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">00</span><span class="err">:</span><span class="mi">1</span><span class="n">f</span><span class="mf">.3</span><span class="w"> </span><span class="nl">SMBus</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82801</span><span class="n">G</span><span class="w"> </span><span class="p">(</span><span class="n">ICH7</span><span class="w"> </span><span class="n">Family</span><span class="p">)</span><span class="w"> </span><span class="n">SMBus</span><span class="w"> </span><span class="n">Controller</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">02</span><span class="err">:</span><span class="mf">00.0</span><span class="w"> </span><span class="n">Ethernet</span><span class="w"> </span><span class="nl">controller</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="mi">82573</span><span class="n">L</span><span class="w"> </span><span class="n">Gigabit</span><span class="w"> </span><span class="n">Ethernet</span><span class="w"> </span><span class="n">Controller</span><span class="w"></span>
<span class="mi">03</span><span class="err">:</span><span class="mf">00.0</span><span class="w"> </span><span class="n">Network</span><span class="w"> </span><span class="nl">controller</span><span class="p">:</span><span class="w"> </span><span class="n">Intel</span><span class="w"> </span><span class="n">Corporation</span><span class="w"> </span><span class="n">PRO</span><span class="o">/</span><span class="n">Wireless</span><span class="w"> </span><span class="mi">3945</span><span class="n">ABG</span><span class="w"> </span><span class="o">[</span><span class="n">Golan</span><span class="o">]</span><span class="w"> </span><span class="n">Network</span><span class="w"> </span><span class="k">Connection</span><span class="w"> </span><span class="p">(</span><span class="n">rev</span><span class="w"> </span><span class="mi">02</span><span class="p">)</span><span class="w"></span>
<span class="mi">15</span><span class="err">:</span><span class="mf">00.0</span><span class="w"> </span><span class="n">CardBus</span><span class="w"> </span><span class="nl">bridge</span><span class="p">:</span><span class="w"> </span><span class="n">Texas</span><span class="w"> </span><span class="n">Instruments</span><span class="w"> </span><span class="n">PCI1510</span><span class="w"> </span><span class="n">PC</span><span class="w"> </span><span class="n">card</span><span class="w"> </span><span class="n">Cardbus</span><span class="w"> </span><span class="n">Controller</span><span class="w"></span>
</pre></div>
<p>The battery (a used one as well) time is now ca. 3 hours +/- 1hour,
depending on the usage.</p>
<p>The Fn functions are great! I use
<a href="http://tpctl.sourceforge.net/">tp_smapi</a> and
<a href="http://www.thinkwiki.org/wiki/Thinkpad-acpi">thinkpad_acpi</a>.</p>
<p>clocksource=jiffies isn't necessary anymore, pit will now be used by
default.</p>
<p>acpi-cpufreq is working fine as well as ondemand and other governors.</p>
<p>I believe WLAN (<a href="http://www.intel.com/network/connectivity/products/wireless/prowireless_mobile.htm">Intel
3945ABG</a>)
works better than the Atheros (don't rember which one) in my old Sony.
Might be driver related...</p>
<p>I'm glad about the Intel Graphics card, I can now use a resolution of
1400x1050 in X and console/framebuffer. I start loving KMS, its very
fast when switching from/to console.</p>
<p>Bluetooth and everything else works as expected so I'm really happy and
I'll never buy something else than a ThinkPad.</p>
<p>So as hint I recommend you: Go and get a <a href="http://grml.org/">grml</a> or
other livecd and check all important things first before you buy a new
or used laptop.</p>