<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7195929</id><updated>2012-01-02T08:49:37.459Z</updated><title type='text'>O blogue do knux</title><subtitle type='html'>^_^ My personal blog where I discuss computers, technology, and other random crap that interests me</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7195929.post-7619334857646413576</id><published>2012-01-02T08:47:00.000Z</published><updated>2012-01-02T08:47:28.929Z</updated><title type='text'>Loop-mounting a backup of an entire disk, and accessing its partitions</title><content type='html'>The following is a short howto on how to mount a full-disk backup (that you took using dd, for example), and access its partitions.&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; margin: 0px; overflow: auto; padding: 6px; text-align: left;"&gt;# Assuming that the backup is called diskbackup.bin&lt;br /&gt;$ losetup /dev/loop0 diskbackup.bin&lt;br /&gt;$ kpartx -a /dev/loop0&lt;br /&gt;&lt;br /&gt;# Your partitions should now show up on /dev/mapper/&lt;br /&gt;$ ls -lah /dev/mapper/&lt;br /&gt;total 0&lt;br /&gt;drwxr-xr-x  2 root root       80 2012-01-02 08:45 .&lt;br /&gt;drwxr-xr-x 18 root root     3.9K 2012-01-02 08:45 ..&lt;br /&gt;crw-------  1 root root  10, 236 2012-01-02 08:00 control&lt;br /&gt;brw-rw----  1 root disk 253,   0 2012-01-02 08:45 loop0p1&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-7619334857646413576?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/7619334857646413576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=7619334857646413576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/7619334857646413576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/7619334857646413576'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2012/01/loop-mounting-backup-of-entire-disk-and.html' title='Loop-mounting a backup of an entire disk, and accessing its partitions'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7195929.post-5420285164290681400</id><published>2011-12-11T14:53:00.001Z</published><updated>2012-01-02T08:48:15.037Z</updated><title type='text'>New "BetterKubuntu" blog project</title><content type='html'>Wow, long time no update.&lt;br /&gt;&lt;br /&gt;I've recently started a separate blog with Kubuntu tips &amp;amp; tweaks at&lt;br /&gt;&lt;a href="http://betterkubuntu.blogspot.com/"&gt;http://betterkubuntu.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Be sure to visit it :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-5420285164290681400?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/5420285164290681400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=5420285164290681400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/5420285164290681400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/5420285164290681400'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2011/12/wow-long-time-no-update.html' title='New &quot;BetterKubuntu&quot; blog project'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7195929.post-2524791325325742939</id><published>2010-03-21T16:15:00.005Z</published><updated>2010-03-21T16:19:27.340Z</updated><title type='text'>Package testing system for a rolling upgrades linux distribution: a proposal</title><content type='html'>Lately, I've been thinking about the issue of package testing on a linux distribution that does rolling upgrades.&lt;br /&gt;&lt;br /&gt;I've arrived at the idea of mainly using three different repositories: &lt;span style="font-weight: bold;"&gt;stable&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;testing&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;unstable&lt;/span&gt;. You may notice that I borrowed the same nomenclature that the debian project uses, and that's because I intend these repositories to mean more or less the same that they mean for debian.&lt;br /&gt;&lt;br /&gt;So, what is different about my idea? I shall explain that during the course of the article, but mainly it is different because I am referring to rolling upgrades, which debian does not use on their stable repositories. Also, for my approach to work, tight integration with a new GUI package manager is required, to support the workflow that I am about to describe. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small; font-weight: bold;"&gt;The Unstable Branch&lt;/span&gt;&lt;br /&gt;Packages are first uploaded by packagers to the unstable branch. I shall ignore the issue of who can upload to this branch -- most distributions already have a packaging team or some kind of organizational structure to support this.&lt;br /&gt;&lt;br /&gt;Only stable upstream releases should reach this branch. I will come back to the issue of unstable development packages later on.&lt;br /&gt;&lt;br /&gt;Now, the interesting part is: how do packages retire from the unstable branch into the testing branch, or are "popped out" of the unstable branch because they do not work?&lt;br /&gt;&lt;br /&gt;I propose the usage of a GUI package manager that allows users to easily select from which branch they want to install an application, and to mix-and-match versions from the three branches, whenever possible. Of course there isn't much sense in a user that has a stable KDE SC 4.3.5 release to install Konqueror from KDE SC 4.4.1 -- the usual package management rules must be applied here, so the user either installs an older stable Konqueror, or KDE SC 4.4.1 as a whole.&lt;br /&gt;&lt;br /&gt;But imagine now, that the stable branch contained Firefox 3.5 and Firefox 3.6 was just released and uploaded to the unstable branch. In the package manager, users can see that there is a new version for Firefox on the unstable branch.&lt;br /&gt;&lt;br /&gt;Let's imagine that a user -- John -- chooses to install this package. The package manager does its work, and notifies John that Firefox 3.6 is done installing. It also adds the package to the "Verification queue" for John.&lt;br /&gt;&lt;br /&gt;John fires up Firefox 3.6, goes to slashdot, and all seems ok. He can then go back to the package manager, and tick Firefox 3.6 on his verification queue as "Ok".&lt;br /&gt;&lt;br /&gt;The idea is that packages retire from unstable to testing not on a time-based schedule, but when sufficient users give it an "Ok" after a quick test. If there was an issue and the Firefox package had something wrong, for example if it crashed on startup, a "Failure" would be reported on the verification queue on the package manager. Attached to this Failure, a small comment could be made explaining it, and optionally, links to more detailed bug reports could be added (either to the distro's own bug reporting system, or to an upstream bug).&lt;br /&gt;&lt;br /&gt;To choose at which point a package with a number of "Ok" and "Failure" reports gets picked to the testing branch or is popped off the unstable branch, I think a scoring system could be adopted, but to simplify matters for now, let's say if a package has &amp;gt; 20:1 ratio of Ok/Failure reports and more than 100 Oks it is selected to the testing branch, and if it has more than 10 Failure reports it gets popped off unstable.&lt;br /&gt;&lt;br /&gt;The main idea of this unstable branch is really a quick "does it seem to work?" test. Open Firefox, browse to a site. No problems? Check "Ok". With a Kernel release, boot it. It booted and you're back staring at your desktop?  Check "Ok".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small; font-weight: bold;"&gt;The Testing Branch&lt;/span&gt;&lt;br /&gt;The testing branch works on a time-based schedule. Users can also choose to install packages from here, and they will also be added to the Verification Queue, but in a different way: they will be there, but users will need to have the package installed for &lt;b&gt;at least a week&lt;/b&gt; to be able to do mark them as "Ok".&lt;br /&gt;&lt;br /&gt;On the other hand, if they experience any problem, they can flag a "Failure" right away, and follow the same procedures that they did on the unstable branch to comment on why they marked their test of the package as a "Failure" and to link it to bug reports.&lt;br /&gt;&lt;br /&gt;The idea is that a week is usually enough for users to notice problems in usage of the package for their normal work.&lt;br /&gt;&lt;br /&gt;After enough users have verified the package as "Ok", and not enough users had problems (again I shall discuss my ideas for scoring later on), the package gets transferred to the Stable branch.&lt;br /&gt;&lt;br /&gt;If there are too many problems with a package, it might go back to the unstable branch or popped off completely. I'm not entirely sure what would work better for this case yet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small; font-weight: bold;"&gt;The Stable Branch&lt;/span&gt;&lt;br /&gt;The stable branch behaves as expected from other distros.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small; font-weight: bold;"&gt;Development Packages&lt;/span&gt;&lt;br /&gt;Many distributions also want to make it easy for users and other developers to test development versions of upstream packages. For these, I propose a parallel repository system with just two different repositories: &lt;span style="font-weight: bold;"&gt;unstable-development&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;testing-development&lt;/span&gt;. Both of these should work as the ones above, but the difference is that a package never retires from testing-development to any other repository; it either stays there, or is deleted by the packagers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small; font-weight: bold;"&gt;Scoring System and "Social" Stuff&lt;/span&gt;&lt;br /&gt;This scheme might work even with a simple scoring system, but I think that a more complex system might yield better results. I've held back on explaining this part so far because I think that although this &lt;span style="font-style: italic;"&gt;should be&lt;/span&gt; part of the integral solution, it is not the main part, and Social-whatever is used too much as a buzzword nowadays.&lt;br /&gt;&lt;br /&gt;The first part of this idea is that users should have an account on the package testing system. I don't know if anonymous voting would work without trying it out, so it might be an option, but anonymous votes should have the least weight on verification queue voting.&lt;br /&gt;&lt;br /&gt;This account could be used across multiple computers by the same user (laptop, desktop), allowing the user to, for example, install Firefox 3.6 from the testing repository on their work computer on monday, install the same package on their laptop on the following friday, and report it as "Ok" on the following monday on their laptop -- that is, the testing week is not tied to the system the package is installed, but to the time and date it was first installed by that user on one of his systems.&lt;br /&gt;&lt;br /&gt;Also, the weight of a user's "Ok" to a package would be tied to multiple things: account creation time (long-time users are more likely to give more trust-worthy reviews), number of correct verifications (the user could be penalized for giving an "Ok" to a package that was eventually popped off unstable, and rewarded if a package it marked "Ok" on testing and unstable made it through to stable), maybe a community rating (part of the distro team, helps people on the forums regularly, etc).&lt;br /&gt;&lt;br /&gt;These combined values would determine the weight of a user's vote, and this weighted vote would be the one used when determining if a package is ready or is too buggy. For example, if 15 very trusted users gave an "Ok" for a package, maybe it can retire from unstable into testing right away, instead of having to wait for 200 anonymous users to test it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small; font-weight: bold;"&gt;Epilogue&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;br /&gt;I hope some (or even all) of these ideas can be applied in the creation of a simple linux distribution (or transformation of an existing one) that does rolling upgrades. Most binary, easy-to-use distros currently do not possess such a feature, and users are normally left to pick and match from experimental "repositories" that have different degrees of testing and readiness, and normally there is no standard way to flag problems or open bug reports on them.&lt;br /&gt;&lt;br /&gt;If you read this entry so far, I thank you, and I hope I was able to spark some ideas about this issue. Please do leave your opinions on my proposal, or anything else you think is important, on the comments below.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-2524791325325742939?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/2524791325325742939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=2524791325325742939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/2524791325325742939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/2524791325325742939'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2010/03/package-testing-system-for-rolling.html' title='Package testing system for a rolling upgrades linux distribution: a proposal'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7195929.post-4001543408948066478</id><published>2010-03-13T15:50:00.003Z</published><updated>2010-03-13T17:52:53.795Z</updated><title type='text'>Hacking pommed 1.31 to use nvclock / smartdimmer to control lcd backlight</title><content type='html'>Recently a MacBook Pro 5,5 came into my hands. It seems this model has a known gotcha that is kind of hard to find clearly stated online: &lt;span style="font-weight: bold;"&gt;currently, you can only adjust your backlight while using the nvidia proprietary linux driver by using nvclock&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I tried using pommed without a kernel driver, I tried mbp_nvidia_bl, I've tried nvidia_bl, but using any one of those I can only adjust my backlight outside of X.&lt;br /&gt;&lt;br /&gt;Using nvclock, and its buddy smartdimmer, you can adjust it from within X. As I'm lazy and I like pommed, I did a quick hack for pommed to use nvclock, and here it is:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(20, 19, 18);"&gt;&lt;b&gt;diff --git a/pommed/dimmerhack.sh b/pommed/dimmerhack.sh&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt;new file mode 100755&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt;index 0000000..52f0036&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;--- /dev/null&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;+++ b/pommed/dimmerhack.sh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;@@ -0,0 +1,3 @@&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;+#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;+&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;+exit `smartdimmer -g | grep level | cut -d " " -f 3`&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt;&lt;b&gt;diff --git a/pommed/lcd_backlight.h b/pommed/lcd_backlight.h&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt;index 20feecc..f141b9d 100644&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;--- a/pommed/lcd_backlight.h&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;+++ b/pommed/lcd_backlight.h&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;@@ -56,8 +56,8 @@ gma950_backlight_probe(void);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; /* nv8600mgt_backlight.c */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-#define NV8600MGT_BACKLIGHT_OFF    0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-#define NV8600MGT_BACKLIGHT_MAX    15&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;+#define NV8600MGT_BACKLIGHT_OFF    15&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;+#define NV8600MGT_BACKLIGHT_MAX    100&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; void&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; nv8600mgt_backlight_step(int dir);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt;&lt;b&gt;diff --git a/pommed/mactel/nv8600mgt_backlight.c b/pommed/mactel/nv8600mgt_backlight.c&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt;&lt;br /&gt;index 79373f4..94b4a2c 100644&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;&lt;br /&gt;--- a/pommed/mactel/nv8600mgt_backlight.c&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;+++ b/pommed/mactel/nv8600mgt_backlight.c&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;@@ -35,6 +35,7 @@&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; #include &amp;lt;sys/mman.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; #include &amp;lt;sys/types.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; #include &amp;lt;sys/stat.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;+#include &amp;lt;sys/wait.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; #include &amp;lt;fcntl.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; #include &amp;lt;unistd.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;@@ -60,27 +61,15 @@ static unsigned int bl_port;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; static unsigned char&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; nv8600mgt_backlight_get()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-  unsigned char value;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-  if (nv8600mgt_inited == 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-    return 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-  outb(0x03, bl_port + 1);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-  outb(0xbf, bl_port);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-  value = inb(bl_port + 1) &amp;gt;&amp;gt; 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-  return value;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;+  return (unsigned char) WEXITSTATUS(system("dimmerhack.sh"));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; static void&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; nv8600mgt_backlight_set(unsigned char value)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-  if (nv8600mgt_inited == 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-    return;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-  outb(0x04 | (value &amp;lt;&amp;lt; 4), bl_port + 1);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-  outb(0xbf, bl_port);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;+  char buffer[200];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;+  snprintf(buffer, 200, "smartdimmer -s %u", value);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;+  system(buffer);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(20, 19, 18);"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;I know it is a very ugly hack, but it works for me.&lt;br /&gt;&lt;br /&gt;I may be motivated to implement this in a less hacky way if anyone finds this useful, but for now, this will do.&lt;br /&gt;&lt;br /&gt;That is all for now :)&lt;br /&gt;&lt;br /&gt;P.s.: Don't forget to put step=15 or something big like that on the lcd_8600mgt section of /etc/pommed.conf otherwise it will take a while to change the setting, and also don't forget to put smartdimmer and the above bash script somewhere pommed can find them (I recommend /usr/bin).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-4001543408948066478?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/4001543408948066478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=4001543408948066478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/4001543408948066478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/4001543408948066478'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2010/03/hacking-pommed-131-to-use-nvclock.html' title='Hacking pommed 1.31 to use nvclock / smartdimmer to control lcd backlight'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7195929.post-1576448635704226531</id><published>2009-11-30T22:37:00.003Z</published><updated>2009-12-01T14:50:21.682Z</updated><title type='text'>Minimal xorg.conf</title><content type='html'>This minimal xorg.conf file may come in handy if you need to configure something in X, but you don't have a minimal xorg.conf base file you can start with.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; text-align: left;"&gt;Section "Device"&lt;br /&gt;     Identifier      "Configured Video Device"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Monitor"&lt;br /&gt;     Identifier      "Configured Monitor"&lt;br /&gt;EndSection&lt;br /&gt;&lt;br /&gt;Section "Screen"&lt;br /&gt;     Identifier      "Default Screen"&lt;br /&gt;     Monitor         "Configured Monitor"&lt;br /&gt;     Device          "Configured Video Device"&lt;br /&gt;EndSection&lt;/pre&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-1576448635704226531?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/1576448635704226531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=1576448635704226531' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/1576448635704226531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/1576448635704226531'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2009/11/minimal-xorgconf.html' title='Minimal xorg.conf'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7195929.post-4204618491491210773</id><published>2009-09-03T14:58:00.003+01:00</published><updated>2009-09-09T09:21:47.289+01:00</updated><title type='text'>Qt confused about multimedia?</title><content type='html'>I've always had a very high opinion of &lt;s&gt;Trolltech's&lt;/s&gt; &lt;s&gt;Qt Software's&lt;/s&gt; Nokia's Qt framework.&lt;br /&gt;&lt;br /&gt;But after a &lt;a href="http://labs.trolltech.com/blogs/2009/09/03/multimedia/"&gt;post&lt;/a&gt; today on Qt Labs Blogs, it seems that there are two upcoming Qt multimedia frameworks that seem to duplicate and ignore the existing &lt;a href="http://doc.trolltech.com/4.6-snapshot/phonon-module.html"&gt;Phonon module&lt;/a&gt; -- these are the &lt;a href="http://doc.trolltech.com/4.6-snapshot/qtmultimedia.html"&gt;Qt Multimedia module&lt;/a&gt; and the &lt;a href="http://labs.trolltech.com/blogs/2009/09/03/multimedia/"&gt;Multimedia framework&lt;/a&gt; for QtMobility.&lt;br /&gt;&lt;br /&gt;Dear trolls, what is going on with all of this? Is Phonon going to be abandoned? Is Phonon the new arts?&lt;br /&gt;&lt;br /&gt;Update: It seems that indeed &lt;a href="http://labs.trolltech.com/blogs/2009/09/09/multimedia-in-qt-whats-the-story/"&gt;Phonon is the new arts&lt;/a&gt;, as Nokia is putting it on life support. Fortunately, it seems that some KDE hackers (including Phonon's original author) will &lt;a href="http://martinsandsmark.wordpress.com/2009/09/07/multimedia-frameworks-in-qt/"&gt;support and develop Phonon&lt;/a&gt; further, so it might not be so bad after all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-4204618491491210773?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/4204618491491210773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=4204618491491210773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/4204618491491210773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/4204618491491210773'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2009/09/qt-confused-about-multimedia.html' title='Qt confused about multimedia?'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7195929.post-5672174832550469117</id><published>2009-07-22T16:25:00.004+01:00</published><updated>2009-07-22T16:41:10.478+01:00</updated><title type='text'>Contar tráfego 3G vodafone</title><content type='html'>Recentemente subscrevi o serviço 3G internet da vodafone, com uns extraordinários 75Mb, que têm que ser bem controlados.&lt;br /&gt;&lt;br /&gt;Infelizmente, o único sitio onde se pode controlar o tráfego é no "my vodafone", e este vem discriminado, obrigando a arranjar alguma maneira de somar os valores em Kb para obter o total do tráfego.&lt;br /&gt;&lt;br /&gt;Para facilitar o processo, escrevi um pequeno javascript que pode ser executado nessa página, que trata de somar os valores e dizer o total.&lt;br /&gt;&lt;br /&gt;Para o utilizar, basta arrastar a link seguinte para as bookmarks do browser:&lt;br /&gt;&lt;a href="javascript:%20{%20/**%20Script%20de%20c%C3%A1lculo%20de%20tr%C3%A1fego%20no%20site%20da%20vodafone%20%20%20*%20vers%C3%A3o%201%20por%20Ivo%20Anjo%20-%20knuckles@gmail.com%20%20%20**/%20var%20trafego%20=%200;%20var%20elementos%20=%20document.getElementsByClassName('meioMeio%20carrinhoDotVertical');%20for%20(var%20x%20=%200;%20x%20&lt;%20elementos.length;%20x++)%20{%20var%20elem%20=%20elementos.item(x).innerHTML;%20%20%20%20%20%20%20%20%20var%20pos%20=%20elem.lastIndexOf('Kb');%20if%20(pos%20&gt;=%200)%20{%20/*%20Elemento%20%C3%A9%20trafego%20web%20*/%20trafego%20+=%20parseInt(elem.slice(0,%20pos-1));%20}%20}%20alert('Tr%C3%A1fego%20total%20%C3%A9:%20'%20+%20trafego%20+%20'%20Kb%20['%20+%20(trafego/1024).toFixed()%20+%20'%20Mb]');%20}"&gt;Script de soma de tráfego&lt;/a&gt;&lt;br /&gt;aceder ao site onde está discriminado o tráfego,&lt;br /&gt;&lt;a href="https://my.vodafone.pt/eb/online/onlineInvoice.aspx"&gt;Link directa&lt;/a&gt;&lt;br /&gt;e carregar na bookmark para obter a soma de todos os valores &lt;span style="font-weight: bold;"&gt;na página actual&lt;/span&gt;. Para somar os totais do mês, colocar as datas de inicio e fim bem, e usar o ver todas para obter todos os valores do mês, e carregar na bookmark.&lt;br /&gt;&lt;br /&gt;Esta foi a minha primeira experiência com javascript, mas espero que seja útil para alguém.&lt;br /&gt;&lt;br /&gt;P.s.: Isto é apenas um pequeno script para facilitar a tarefa, obviamente que não me responsabilizo se alguma coisa correr mal e depois a vodafone vier com uma factura enorme atrás de alguém.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-5672174832550469117?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/5672174832550469117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=5672174832550469117' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/5672174832550469117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/5672174832550469117'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2009/07/contar-trafego-3g-vodafone.html' title='Contar tráfego 3G vodafone'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7195929.post-1603578395445623953</id><published>2009-06-27T16:03:00.005+01:00</published><updated>2009-06-27T17:33:30.454+01:00</updated><title type='text'>zomgnotes is now on gitorious :)</title><content type='html'>Today I finally decided to publish my work so far on zomgnotes on gitorious.&lt;br /&gt;&lt;br /&gt;But what is zomgnotes? zomgnotes aims to be a simple note-taking application for symbian smartphones, because nokia forgot to include such a thing on the base OS software :)&lt;br /&gt;&lt;br /&gt;zomgnotes is qt-based, so it runs on symbian, linux, mac and others, so it is easy to develop and test.&lt;br /&gt;&lt;br /&gt;I still have some work to do before I'm ready to do a release (and supply compiled binaries), but in the meantime, here is the link for the zomgnotes project: &lt;a href="http://gitorious.org/zomgnotes"&gt;http://gitorious.org/zomgnotes&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;Thanks and see you soon.&lt;br /&gt;&lt;br /&gt;Edit: Here are some screenshots from the current development version&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_VPmcjCUbmWY/SkZHEQEFV1I/AAAAAAAAAC4/wxpnWCfn5GY/s1600-h/Scr000002.png"&gt;&lt;img style="cursor: pointer; width: 180px; height: 320px;" src="http://3.bp.blogspot.com/_VPmcjCUbmWY/SkZHEQEFV1I/AAAAAAAAAC4/wxpnWCfn5GY/s320/Scr000002.png" align="center" hspace="4" /&gt;&lt;/a&gt; &lt;a href="http://3.bp.blogspot.com/_VPmcjCUbmWY/SkZHEQ6Rb9I/AAAAAAAAADA/h2XroXBkNEc/s1600-h/Scr000006.png"&gt;&lt;img style="cursor: pointer; width: 180px; height: 320px;" src="http://3.bp.blogspot.com/_VPmcjCUbmWY/SkZHEQ6Rb9I/AAAAAAAAADA/h2XroXBkNEc/s320/Scr000006.png" align="center" hspace="4" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_VPmcjCUbmWY/SkZJtcFIqwI/AAAAAAAAADY/xTDaQ2Dc4Ik/s1600-h/Scr000008.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 180px; height: 320px;" src="http://2.bp.blogspot.com/_VPmcjCUbmWY/SkZJtcFIqwI/AAAAAAAAADY/xTDaQ2Dc4Ik/s320/Scr000008.png" align="center" hspace="4" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-1603578395445623953?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/1603578395445623953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=1603578395445623953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/1603578395445623953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/1603578395445623953'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2009/06/zomgnotes-is-now-on-gitorious.html' title='zomgnotes is now on gitorious :)'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VPmcjCUbmWY/SkZHEQEFV1I/AAAAAAAAAC4/wxpnWCfn5GY/s72-c/Scr000002.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7195929.post-7724517707006080501</id><published>2009-06-17T16:20:00.003+01:00</published><updated>2009-06-17T16:22:43.916+01:00</updated><title type='text'>Spring cleaning</title><content type='html'>Today I finally decided to upgrade the blog to blogspot's latest layout version, and to clean up my old blog entries from 2005.&lt;br /&gt;&lt;br /&gt;Soon I hope to have some new content like the Symbian S60 Qt stuff I'm working on.&lt;br /&gt;&lt;br /&gt;Laters!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-7724517707006080501?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/7724517707006080501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=7724517707006080501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/7724517707006080501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/7724517707006080501'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2009/06/spring-cleaning.html' title='Spring cleaning'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7195929.post-4049329131823562596</id><published>2009-06-17T14:29:00.010+01:00</published><updated>2010-10-03T19:05:34.815+01:00</updated><title type='text'>Silicom EtherModem PCMCIA card (SEM) and Linux</title><content type='html'>Recently one of these PCMCIA cards came in to my hands. I was very interested in getting it to work because I don't own any PCMCIA 16bit (non-cardbus) ethernet cards that are not Type III (the fat Xircom ones). It seems to use the Intel 82595 ethernet controller.&lt;br /&gt;&lt;br /&gt;Unfortunately, it seems that although there was a linux driver for this card at some point, it was never integrated upstream, so it became unmaintained and very difficult to find.&lt;br /&gt;&lt;br /&gt;This driver, silpcmcia-1.02b.tar.gz, originally hosted at www.silicom.co.il/linux.htm (&lt;a href="http://web.archive.org/web/20010813190054/http://www.silicom.co.il/linux.htm"&gt;Web Archive Link&lt;/a&gt;) seemed to have fallen off the intarwebs.&lt;br /&gt;&lt;br /&gt;After some e-mails I finally got someone to send me this file (thanks!). Here it is, in hopes that it doesn't get lost again:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;MD5SUM:&lt;br /&gt;f4788eeef4db3aeb7565dc926f573517  silpcmcia-1.02b.tar.gz&lt;br /&gt;&lt;br /&gt;SHA1SUM:&lt;br /&gt;e8bfea6f338864302f3d007327b4b924b5132033  silpcmcia-1.02b.tar.gz&lt;br /&gt;&lt;br /&gt;Download links:&lt;br /&gt;&lt;span style="font-size: 85%;"&gt; &lt;a href="http://knuckles.googlepages.com/silpcmcia-1.02b.tar.gz"&gt;http://knuckles.googlepages.com/silpcmcia-1.02b.tar.gz&lt;/a&gt;&lt;br /&gt;&lt;a href="http://web.ist.utl.pt/%7Eist155460/silicom/silpcmcia-1.02b.tar.gz"&gt;http://web.ist.utl.pt/~ist155460/silicom/silpcmcia-1.02b.tar.gz&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tuxmobil.org/software/silicom/silpcmcia-1.02b.tar.gz"&gt;http://tuxmobil.org/software/silicom/silpcmcia-1.02b.tar.gz&lt;/a&gt;&lt;br /&gt;(Courtesy of &lt;a href="http://tuxmobil.org/"&gt;tuxmobil.org&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;For completeness, other related, useful files:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;pcmcia-cs-3.0.9.tar.gz mirrors: &lt;a href="http://knuckles.googlepages.com/pcmcia-cs-3.0.9.tar.gz"&gt;2&lt;/a&gt; &lt;a href="http://web.ist.utl.pt/%7Eist155460/silicom/pcmcia-cs-3.0.9.tar.gz"&gt;3&lt;/a&gt; &lt;a href="http://ftp.icm.edu.pl/packages/linux-pcmcia/OLD/pcmcia-cs-3.0.9.tar.gz"&gt;4&lt;/a&gt;&lt;br /&gt;pcmcia-cs-3.2.8.tar.gz mirrors: &lt;a href="http://knuckles.googlepages.com/pcmcia-cs-3.2.8.tar.gz"&gt;2&lt;/a&gt; &lt;a href="http://web.ist.utl.pt/%7Eist155460/silicom/pcmcia-cs-3.2.8.tar.gz"&gt;3&lt;/a&gt; &lt;a href="http://ftp.icm.edu.pl/packages/linux-pcmcia/pcmcia-cs-3.2.8.tar.gz"&gt;4&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Another driver sil_cs, which should work for 2.4 kernels (the silpcmcia one is for 2.2), and is based on the etherexpress pro/10 driver. It was originally hosted at http://lemon.malinov.com/sil_cs/ (&lt;a href="http://web.archive.org/web/*/http://lemon.malinov.com/sil_cs/"&gt;Web Archive to the rescue&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;This one is also hard to find, but thankfully web archive kept a copy of the files:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;MD5SUM:&lt;br /&gt;046aac61000ccf7b82c791790ce55ce1  sil_cs-1.0a.tar.bz2&lt;br /&gt;ecc0e0b9d8d3c1f2340b0bf9a5e2ec52  sil_cs-1.0b.tar.bz2&lt;br /&gt;&lt;br /&gt;SHA1SUM:&lt;br /&gt;d9875899fbaa93e7da20413995da9a368acc5862  sil_cs-1.0a.tar.bz2&lt;br /&gt;534c897fe784b1de933178eaee69e8662f1907cc  sil_cs-1.0b.tar.bz2&lt;br /&gt;&lt;br /&gt;Download links:&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;a href="http://knuckles.googlepages.com/sil_cs-1.0a.tar.bz2"&gt;http://knuckles.googlepages.com/sil_cs-1.0a.tar.bz2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://knuckles.googlepages.com/sil_cs-1.0b.tar.bz2"&gt;http://knuckles.googlepages.com/sil_cs-1.0b.tar.bz2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://web.ist.utl.pt/%7Eist155460/silicom/sil_cs-1.0a.tar.bz2"&gt;http://web.ist.utl.pt/~ist155460/silicom/sil_cs-1.0a.tar.bz2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://web.ist.utl.pt/%7Eist155460/silicom/sil_cs-1.0b.tar.bz2"&gt;http://web.ist.utl.pt/~ist155460/silicom/sil_cs-1.0a.tar.bz2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://web.archive.org/web/20070411141642/http://lemon.malinov.com/sil_cs/sil_cs-1.0a.tar.bz2"&gt;http://web.archive.org/web/20070411141642/http://lemon.malinov.com/sil_cs/sil_cs-1.0a.tar.bz2&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt; (courtesy of &lt;a href="http://www.archive.org/web/web.php"&gt;archive.org&lt;/a&gt;)&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-size: 85%;"&gt;&lt;a href="http://web.archive.org/web/20070411141642/http://lemon.malinov.com/sil_cs/sil_cs-1.0b.tar.bz2"&gt;http://web.archive.org/web/20070411141642/http://lemon.malinov.com/sil_cs/sil_cs-1.0b.tar.bz2&lt;/a&gt; (courtesy of &lt;a href="http://www.archive.org/web/web.php"&gt;archive.org&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Conclusion: there seems to be no usable driver for 2.6 kernels, so if you found this site hoping for a quick download, I'm sorry. I'm trying to preserve this info in hopes that someday a bored kernel hacker might pick this up :) . If you do have some info/something that you think is useful about this card, please DO post in the comments section.&lt;br /&gt;&lt;br /&gt;As an addendum, it's a pity that small files like these just fall off the internet, never to be found again. As a fan of older computers, it's disappointing when you can't find that old bios or configuration file because all sites linked to the same 20kb file, and when the original site hosting it went down, nobody had a backup link.&lt;br /&gt;&lt;br /&gt;Some related links:&lt;br /&gt;&lt;a href="http://bsdimp.blogspot.com/2008/06/old-cards-and-information-gap.html"&gt;http://bsdimp.blogspot.com/2008/06/old-cards-and-information-gap.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tuxmobil.org/pcmcia_ci10241.html"&gt;http://tuxmobil.org/pcmcia_ci10241.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://forum.ubuntu-it.org/index.php?topic=96994.10"&gt;http://forum.ubuntu-it.org/index.php?topic=96994.10&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Update: One of the mirrors stopped working, removed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-4049329131823562596?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/4049329131823562596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=4049329131823562596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/4049329131823562596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/4049329131823562596'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2009/06/silicom-ethermodem-pcmcia-card-sem-and.html' title='Silicom EtherModem PCMCIA card (SEM) and Linux'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7195929.post-2835395246520493600</id><published>2008-10-18T16:13:00.006+01:00</published><updated>2008-10-18T17:15:45.298+01:00</updated><title type='text'>On using Konqueror as my daily browser, and bookmark woes</title><content type='html'>Recently I decided to use only konqueror as my daily browser on one of my machines.&lt;br /&gt;&lt;br /&gt;I've been a KDE user for 5 years or so now, and I've used konqueror for the occasional page, but firefox has always been my main browser.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;KHTML&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's a well known fact that KHTML has some shortcomings in rendering some popular ajax-y, web2.0-y pages. That affected me, as a gmail user, and also a (my)foxmarks user, because I use those two sites daily.&lt;br /&gt;&lt;br /&gt;I know this is a sensitive issue, and as a developer myself, I can fully understand the problem from the developers side, but putting my user hat on, webkit handles both sites well, and I wish it was more integrated with konqueror (thru webkitpart), so I could use it fulltime (currently it has no support for kwallet, and also widgets on the page look strange).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Bookmarks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now what really really really sucks is the bookmark system:&lt;br /&gt;- You can't move bookmarks on the bookmarks bar.&lt;br /&gt;- Ellipsis for big names are not shown (but names are shortened), so sometimes if you have a site called "I use konqueror I try each day to love it and I do not absolutely hate it" for me I get a button called "I use konqueror I absolutely hate it". &lt;br /&gt;- Maximum bookmarks bar button size is too big, which especially affects the next bullet.&lt;br /&gt;- Items are added to the toolbar by default when you do Bookmarks &gt; Add Bookmark, with no other possible choices. Combine this with not being able to move them and sites having big names, and you have absolute disaster: any user who likes his bookmarks organized is going to have to open the bookmark editor to move or rename a bookmark *very often*.&lt;br /&gt;- When you drag from the address bar, the bookmark is named after the site url, not after the site's title.&lt;br /&gt;- When clicking on a bookmarks folder, either on the bar or on the menu, the folder contents are shown, but also at the bottom are the same four options that are shown when you right-click, and I don't think most users use those options that often, so at least some of them could be removed from this menu.&lt;br /&gt;- If you have multiple folders on your bookmarks bar, you can't click on one, and move you mouse to the next one on the bar (like menu bars behave). You have to click on each one you want to open.&lt;br /&gt;- If you open the bookmarks menu, if you right click on a folder you get a context menu allowing you to delete it, but if you hover on the folder first, and the submenu with the subitems is shown, and then right-click, nothing will happen.&lt;br /&gt;- (Very very minor: &amp; on a site name will be interpreted as an accelerator).&lt;br /&gt;&lt;br /&gt;The bookmarks editor ( keditbookmarks) also has many problems. Unfortunately, it is very easy to crash it. But even forgetting that, using it is very hard: &lt;br /&gt;- By default bookmarks are *copied* when you drag and drop them. Only today I learned that by holding down shift they are moved. I can't think of many reasons for copying to be the default behavior. Does anyone out there like to copy bookmarks (and have duplicate bookmarks), instead of moving them?&lt;br /&gt;- It is very hard to place items in some important places like the beginning and end of the list, and at the end of a folder.&lt;br /&gt;&lt;br /&gt;A positive point: I love how when you do a search on keditbookmarks, it doesn't hide the parent folders of the matching items, so if I search for "xpto" and it is inside the folder "crap", the search will show the folder crap and the xpto entry inside, which is a thing I always hated firefox for not doing (sometimes I want to know *where* I left a bookmark so I can navigate directly to it next time).&lt;br /&gt;&lt;br /&gt;I file lots of bugs on bugs.kde.org (and also occasionally contribute patches), but where to begin with all these issues? I don't really know. I guess that's why I decided to post this entry.&lt;br /&gt;&lt;br /&gt;As you can see I'm a big bookmarks user, so I hate to have all this struggle to use them on konqueror.&lt;br /&gt;&lt;br /&gt;Finally, I'm a big KDE user, fan, and occasional contributor.&lt;br /&gt;I use it every single day, and love doing it. So I hope this isn't taken as a troll.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-2835395246520493600?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/2835395246520493600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=2835395246520493600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/2835395246520493600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/2835395246520493600'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2008/10/on-using-konqueror-as-my-daily-browser.html' title='On using Konqueror as my daily browser, and bookmark woes'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7195929.post-5671572324668974916</id><published>2008-06-11T21:09:00.005+01:00</published><updated>2008-06-11T22:45:55.833+01:00</updated><title type='text'>Cool Visual Effects on Linux without 3D Support</title><content type='html'>Recently I discovered that with the Kwin window manager on KDE 4.1 (and 4.0) you can have many of the cool special effects people love without any special driver or hardware support, using XRENDER instead of OpenGL for compositing (see last picture).&lt;br /&gt;&lt;br /&gt;These screenshots are from my old laptop, with a 500Mhz cpu and a Trident Cyber 9525 with an amazing 2.5mb video ram, and of course no 3d support.&lt;br /&gt;&lt;br /&gt;Also, it works with Virtual Machines too! I can get cool effects using just the vesa driver on VirtualBox.&lt;br /&gt;&lt;br /&gt;Screenshots taken with KDE 4.1 Beta 1 on Kubuntu.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tvtel.pt/knuckles/pictures/desktop0.png"&gt;&lt;img src="http://tvtel.pt/knuckles/pictures/thumbnails/desktop0.png" align="left" hspace="4"/&gt;&lt;/a&gt; &lt;a href="http://tvtel.pt/knuckles/pictures/desktop1.png"&gt;&lt;img src="http://tvtel.pt/knuckles/pictures/thumbnails/desktop1.png" hspace="4" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tvtel.pt/knuckles/pictures/desktop2.png"&gt;&lt;img src="http://tvtel.pt/knuckles/pictures/thumbnails/desktop2.png" align="left" hspace="4" /&gt;&lt;/a&gt; &lt;a href="http://tvtel.pt/knuckles/pictures/desktop3.png"&gt;&lt;img src="http://tvtel.pt/knuckles/pictures/thumbnails/desktop3.png" hspace="4" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tvtel.pt/knuckles/pictures/desktop4.png"&gt;&lt;img src="http://tvtel.pt/knuckles/pictures/thumbnails/desktop4.png" align="left" hspace="4" /&gt;&lt;/a&gt; &lt;a href="http://tvtel.pt/knuckles/pictures/desktop5.png"&gt;&lt;img src="http://tvtel.pt/knuckles/pictures/thumbnails/desktop5.png" hspace="4" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tvtel.pt/knuckles/pictures/desktop6.png"&gt;&lt;img src="http://tvtel.pt/knuckles/pictures/thumbnails/desktop6.png" align="left" hspace="4" /&gt;&lt;/a&gt; &lt;a href="http://tvtel.pt/knuckles/pictures/desktop7.png"&gt;&lt;img src="http://tvtel.pt/knuckles/pictures/thumbnails/desktop7.png" hspace="4" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tvtel.pt/knuckles/pictures/desktop8.png"&gt;&lt;img src="http://tvtel.pt/knuckles/pictures/thumbnails/desktop8.png" hspace="4" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can also have shadows, that were fixed to work with XRENDER after beta 1 (so I don't have them on my laptop yet).&lt;br /&gt;&lt;br /&gt;Most effects are completely usable, consuming of course some cpu, but as they are one-time (animations, alt+tab, etc) don't have that much impact. Semi-transparent windows of course take their toll (especially when dragging them), but if you have a decent cpu, it can probably handle it fine.&lt;br /&gt;&lt;br /&gt;Thanks to the kwin folks, your rock!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-5671572324668974916?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/5671572324668974916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=5671572324668974916' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/5671572324668974916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/5671572324668974916'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2008/06/cool-visual-effects-on-linux-without-3d.html' title='Cool Visual Effects on Linux without 3D Support'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7195929.post-2886639876686609395</id><published>2007-07-26T21:47:00.000+01:00</published><updated>2007-07-27T02:07:18.061+01:00</updated><title type='text'>How I made my linux Multiseat X setup using faketty</title><content type='html'>&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;I haven't updated my blog in a long time, but I decided to post my multiseat setup using faketty, hoping it's useful to someone.&lt;br /&gt;&lt;br /&gt;My setup is pretty simple (only two heads), but I wasn't able to get it to work using userful [1], and I had various keyboard troubles using evdev.&lt;br /&gt;&lt;br /&gt;Hardware:&lt;br /&gt;Pentium III 800mhz&lt;br /&gt;256Mb RAM&lt;br /&gt;nVidia Geforce 2 MX 400 (nv driver)&lt;br /&gt;S3 Virge DX (s3virge driver)&lt;br /&gt;&lt;br /&gt;Software:&lt;br /&gt;Ubuntu Linux 6.10&lt;br /&gt;  &lt;span style=";font-family:arial;font-size:100%;"  &gt;(Should work with 7.04; faketty 0.06 doesn't compile with linux &gt;= 2.6.22, so you will have problems under 7.10)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;I pretty much followed the wikibooks faketty guide [2], except for the xorg probe stuff, I didn't need it. If you hack you own xorg.conf (like I did), don't forget to include&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;Option          "CorePointer"&lt;/pre&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:100%;"&gt; on each mouse.&lt;br /&gt;&lt;br /&gt;For reference, you'll find my xorg.conf and gdm.conf at the end of this post.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;The problem with faketty is that /dev symlinks go away each boot, and the ftty's also like to change once in a while.&lt;br /&gt;&lt;br /&gt;So I did a script, called findkeyb.sh, that runs every boot before gdm and sets up the symlinks:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;# This script finds keyboards and sets up the tty symlinks for use with &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;# multiseat and faketty&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;# how many keyboards are there&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;QT_TEC=&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;`&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;cat&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; /proc/bus/input/devices &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Keyboard -A 3 &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v Name &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Sys"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"\-\-"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; input0 -A 1 &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"\-\-"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"input"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;wc&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -l&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;`&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(136, 0, 136);"&gt;echo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;$QT_TEC&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt; keyboards:"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;cat&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; /proc/bus/input/devices &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Keyboard -A 3 &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v Name &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Sys"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"\-\-"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; input0 -A 1 &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"\-\-"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"input"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;awk&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'{print $4;}'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(136, 0, 136);"&gt;echo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;$QT_TEC&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt; keyboards:"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(34, 51, 136);"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; /findkeyb.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;cat&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; /proc/bus/input/devices &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Keyboard -A 3 &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v Name &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Sys"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"\-\-"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; input0 -A 1 &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"\-\-"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"input"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;awk&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'{print $4;}'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(34, 51, 136);"&gt;&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; /findkeyb.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;TEC=&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;`&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;cat&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; /proc/bus/input/devices &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Keyboard -A 3 &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v Name &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Sys"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"\-\-"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; input0 -A 1 &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"\-\-"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;grep&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -v &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"input"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;awk&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'{print $4;}'&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;`&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;COUNTER=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;50&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;for&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; i &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;in&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;$TEC&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;rm&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -f /dev/tty&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;$COUNTER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 204);"&gt;ln&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; -s /dev/&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;$i&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; /dev/tty&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;$COUNTER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(136, 0, 136);"&gt;let&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;COUNTER=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;COUNTER+1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;done&lt;/span&gt; &lt;/pre&gt;&lt;span style=";font-family:monospace;font-size:100%;"  &gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;I added symlinks to this script to /etc/rc.2, rc3.d, rc4.d and rc5.d (ugly ugly hack, heh).&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;ln -sf &lt;path to="" sh=""&gt; /etc/rc.2/S11keyb&lt;br /&gt;ln -sf &lt;path to="" sh=""&gt; /etc/rc.3/S11keyb&lt;br /&gt;ln -sf &lt;path to="" sh=""&gt; /etc/rc.4/S11keyb&lt;br /&gt;ln -sf &lt;path to="" sh=""&gt; /etc/rc.5/S11keyb&lt;br /&gt;&lt;br /&gt;&lt;/path&gt;&lt;/path&gt;&lt;/path&gt;&lt;/path&gt;&lt;/pre&gt; &lt;span style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Hope this helps, and soon someone comes up with an easier way to set up multiseat.&lt;br /&gt;&lt;br /&gt;Links:&lt;br /&gt;[1] &lt;a href="http://userful.com/"&gt;Userful Desktop Multiplier / Desktop Server&lt;/a&gt;&lt;br /&gt;[2] &lt;a href="http://en.wikibooks.org/wiki/Multiterminal_with_faketty"&gt;http://en.wikibooks.org/wiki/Multiterminal_with_faketty&lt;/a&gt;&lt;br /&gt;[3] &lt;a href="http://www.ltn.lv/%7Eaivils/files/faketty-0.06.tar.bz2"&gt;Faketty 0.06&lt;/a&gt;&lt;br /&gt;[4] &lt;a href="http://www.ltn.lv/%7Eaivils/?proj_id=multiseat&amp;amp;menu_id=3"&gt;Other faketty versions and multiseat patches&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Files:&lt;br /&gt;&lt;a href="http://knuckles.googlepages.com/xorg.conf"&gt;xorg.conf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://knuckles.googlepages.com/findkeyb.sh"&gt;findkeyb.sh&lt;/a&gt;&lt;br /&gt;&lt;a href="http://knuckles.googlepages.com/gdm.conf"&gt;gdm.conf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://knuckles.googlepages.com/faketty-0.06.tar.bz2"&gt;faketty-0.06.tar.bz2&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Multiseat links not related to my setup (but might be useful):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.ronaldcosta.pro.br/sistemas/wiki/index.php/Multiterminais"&gt;MULTILINUX&lt;/a&gt;&lt;br /&gt;&lt;a href="http://netpatia.blogspot.com/"&gt;netpatia (ubuntu)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikibooks.org/wiki/Multiterminal_with_Xephyr"&gt;Multiterminal with Xephyr - Wikibooks, collection of open-content textbooks&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gentoo-wiki.com/HOWTO_Multiseat_X"&gt;HOWTO Multiseat X - Gentoo Linux Wiki&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.chris.tylers.info/index.php?/archives/14-Multiseat-X-Under-X11R6.97.0.html"&gt;Multiseat X Under X11R6.9/7.0 - Chris Tyler's Blog&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.linuxtoys.org/multiseat/multiseat.html"&gt;Build a Six-headed, Six-user Linux System&lt;/a&gt;&lt;br /&gt;&lt;a href="http://linuxagora.com/vbforum/showthread.php?p=3924"&gt;Multiseat Linux - One computer, multiple monitors, mice, and keyboards - Linux Agora Forums&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Multiseat"&gt;Multiseat - Wikipedia, the free encyclopedia&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.thinsoftinc.com/product_pc_sharing_betwin.aspx"&gt;BeTwin 2000/XP&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ask.slashdot.org/article.pl?sid=07/04/27/021241"&gt;Slashdot | Multiple Desktop Users on a Single Machine?&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikibooks.org/wiki/Multiterminal_with_Xnest"&gt;http://en.wikibooks.org/wiki/Multiterminal_with_Xnest&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7195929-2886639876686609395?l=knuxblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://knuxblog.blogspot.com/feeds/2886639876686609395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7195929&amp;postID=2886639876686609395' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/2886639876686609395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7195929/posts/default/2886639876686609395'/><link rel='alternate' type='text/html' href='http://knuxblog.blogspot.com/2007/07/how-i-made-my-linux-multiseat-x-setup.html' title='How I made my linux Multiseat X setup using faketty'/><author><name>IAnjo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
