<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-8939125534858322326</atom:id><lastBuildDate>Fri, 19 Mar 2010 10:16:52 +0000</lastBuildDate><title>PaNiC Random Rant (or how we used to call it: .plan)</title><description>Linux news and stuff</description><link>http://www.linuxconsulting.ro/news.html</link><managingEditor>noreply@blogger.com (panic)</managingEditor><generator>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8939125534858322326.post-1334903424432952241</guid><pubDate>Fri, 19 Mar 2010 10:16:00 +0000</pubDate><atom:updated>2010-03-19T12:16:52.261+02:00</atom:updated><title>This blog has moved</title><description>&lt;br /&gt;       This blog is now located at http://blog.linuxconsulting.ro/.&lt;br /&gt;       You will be automatically redirected in 30 seconds, or you may click &lt;a href='http://blog.linuxconsulting.ro/'&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;       For feed subscribers, please update your feed subscriptions to&lt;br /&gt;       http://blog.linuxconsulting.ro/feeds/posts/default.&lt;br /&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8939125534858322326-1334903424432952241?l=www.linuxconsulting.ro%2Fnews.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.linuxconsulting.ro/2010/03/this-blog-has-moved.html</link><author>noreply@blogger.com (panic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8939125534858322326.post-1900495138630395219</guid><pubDate>Tue, 24 Nov 2009 05:44:00 +0000</pubDate><atom:updated>2009-11-30T13:49:03.969+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>search engines</category><category domain='http://www.blogger.com/atom/ns#'>apache</category><category domain='http://www.blogger.com/atom/ns#'>microsoft</category><title>The irrepressible ... Bing</title><description>Rumors grew of a "new" search engine shadowing the internet. It uses the power of &lt;a href="http://www.theregister.co.uk/2009/05/28/microsoft_bing/"&gt;lie&lt;/a&gt;, &lt;a href="http://www.theregister.co.uk/2009/02/04/another_microsoft_cashback_glitch/"&gt;deceit&lt;/a&gt; and &lt;a href="http://news.slashdot.org/story/09/11/23/0644233/Murdoch-Microsoft-Deal-In-the-Works"&gt;bribery&lt;/a&gt; to grow, soon it will engulf everything in predetermined results (we have 1000+ monkeys and we're using them), devious filters (we see no point in indexing open source websites since most of them are out of date) and evil spell checking (Did you mean IIS server ? No? Apache ? Well I still think you are looking for IIS so I'll show you the IIS results).&lt;br /&gt;So how can it be stopped ? Well this is no ordinary (or should I say &lt;a href="http://www.robotstxt.org/"&gt;standard&lt;/a&gt; ?) bad guy, so it won't be &lt;a href="http://www.bing.com/community/forums/t/648889.aspx"&gt;stopped&lt;/a&gt; with your measly robots.txt file by adding:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;User-agent: msnbot&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Disallow: /&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;in it. No, this requires a higher magic, but we can rely on apache &lt;a href="http://httpd.apache.org/docs/2.0/mod/mod_setenvif.html"&gt;mod_setenvif&lt;/a&gt; wisdom by adding:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;BrowserMatchNoCase msnbot goBang&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Order Deny,Allow&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Deny from env=goBang&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;in your .htaccess file.&lt;br /&gt;This should make Bing go with a Bang.&lt;br /&gt;If you're using something light(http)er you might want to check &lt;a href="http://www.laconicsecurity.com/detecting-and-blocking-bad-robots.html"&gt;this&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8939125534858322326-1900495138630395219?l=www.linuxconsulting.ro%2Fnews.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.linuxconsulting.ro/2009/11/irrepressible-bing.html</link><author>noreply@blogger.com (panic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8939125534858322326.post-1898688261091695753</guid><pubDate>Mon, 03 Aug 2009 09:44:00 +0000</pubDate><atom:updated>2009-11-30T13:49:03.971+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>visual studio</category><category domain='http://www.blogger.com/atom/ns#'>qmake</category><category domain='http://www.blogger.com/atom/ns#'>qt</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>QMake with Visual Studio: Generating debug information (pdb) files</title><description>Working with multiple libraries on different subdirs in Visual Studio using QMake tools brings a problem when you try to debug code that is contained in those libraries: the debug files (pdb) are generated with same name (vc80.pdb or similar) in libraries dirs which results in visual studio being unable to get the right debug information. To fix this problem pdb files need to be renamed and placed in the location where the executable is run for debugging.&lt;br /&gt;As an example we have a main .pro file which it's a subdirs template to compile code in multiple subdirs:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;TEMPLATE = subdirs&lt;br /&gt;CONFIG += ordered&lt;br /&gt;SUBDIRS += mbl_utils    \&lt;br /&gt;         mbl_usb      \&lt;br /&gt;         mbl_encoder  \&lt;br /&gt;         mbl_renderer \&lt;br /&gt;         nanoGUI&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;For each .pro file in the libraries subdirectory we will have to add on a debug:win32 entry the following code:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;debug:win32 {&lt;br /&gt;      # Hack to get pdb files generated with proper name&lt;br /&gt;      QMAKE_CXXFLAGS += -Fd$${TARGET}.pdb&lt;br /&gt;      # Hack to get pdb files copied in Bin folder from where the binary is run&lt;br /&gt;      pdbtarget.files = $${TARGET}.pdb&lt;br /&gt;      pdbtarget.path = $${BINDIR}&lt;br /&gt;      pdbtarget.command = copy /y $${TARGET}.pdb $${BINDIR}&lt;br /&gt;      INSTALLS += pdbtarget   &lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Where TARGET is defined as the library name and BINDIR is where the executable file is copied after compilation. This should create proper debug information files where the project executable is being run.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8939125534858322326-1898688261091695753?l=www.linuxconsulting.ro%2Fnews.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.linuxconsulting.ro/2009/08/qmake-with-visual-studio-generating.html</link><author>noreply@blogger.com (panic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8939125534858322326.post-3750140237198308897</guid><pubDate>Mon, 22 Jun 2009 06:38:00 +0000</pubDate><atom:updated>2009-11-30T13:38:21.619+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>lcdproc</category><category domain='http://www.blogger.com/atom/ns#'>picolcd</category><category domain='http://www.blogger.com/atom/ns#'>ubuntu</category><title>lcdproc 0.5.3 released and ubuntu package for picoLCD</title><description>A new version(0.5.3) of lcdproc has been released. This release has a lot of improvements for picoLCD and other drivers.&lt;br /&gt;I made a quick ubuntu package for picoLCD (models 20x2 and 20x4) which can be downloaded from the link below. This package has only the picoLCD driver and the configuration is made for picoLCD (note that ServerScreen is set to off to fix some problems with mythtv).&lt;br /&gt;To start lcdproc execute /etc/init.d/LCDd start and start any client you want (lcdproc, lcdvc etc).&lt;br /&gt;&lt;br /&gt;If you intend to use the IR functionality don't forget to add :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;REMOTE="Network (UDP)"&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;REMOTE_MODULES=""&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;REMOTE_DRIVER="udp"&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;REMOTE_LIRCD_ARGS="--listen=8765"&lt;/span&gt; &lt;br /&gt;to&lt;span style="font-family:courier new;"&gt; /etc/lirc/hardware.conf &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To start lirc manually you can use:&lt;span style="font-family:courier new;"&gt; lircd --driver=udp --listen=8765&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linuxconsulting.ro/uploads-blog/lcdproc_0.5.3-1_i386.deb"&gt;uploads-blog/lcdproc_0.5.3-1_i386.deb&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8939125534858322326-3750140237198308897?l=www.linuxconsulting.ro%2Fnews.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.linuxconsulting.ro/2009/06/lcdproc-053-released.html</link><author>noreply@blogger.com (panic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8939125534858322326.post-1542186300695364582</guid><pubDate>Thu, 18 Jun 2009 16:39:00 +0000</pubDate><atom:updated>2009-11-30T13:49:03.973+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>hacks</category><category domain='http://www.blogger.com/atom/ns#'>kernel</category><title>Using video RAM ...</title><description>Since I was playing with some jffs images, I wanted to quickly write to a "dummy" mtd device and test the image from there. I remembered some time ago on slashdot there was an interesting article on how to use the video ram as storage. As I couldn't find it anymore I decided to try it myself.&lt;br /&gt;&lt;br /&gt;Usually mounting jffs images requires some steps and the mtd2block kernel module:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;losetup /dev/loop0 rootfs.jffs2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;modprobe block2mtd block2mtd=/dev/loop0,131072&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;modprobe jffs2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;modprobe mtdblock&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;mkdir /mnt/loop0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;mount -t jffs2 -o ro /dev/mtdblock0 /mnt/loop0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Using the video ram:&lt;br /&gt;&lt;br /&gt;1. Find out &lt;span style="font-family:georgia;"&gt;the starting&lt;/span&gt; address of video memory:&lt;br /&gt;&gt; &lt;span style="font-family:courier new;"&gt;lspci -v &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2:00.0 VGA compatible controller: nVidia Corporation G94 [GeForce 9600 GT] (rev a1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Subsystem: LeadTek Research Inc. Device 2ac1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Flags: bus master, fast devsel, latency 0, IRQ 18&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Memory at fd000000 (32-bit, non-prefetchable) [size=16M]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    Memory at d0000000 (64-bit, prefetchable) [size=256M]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Memory at fa000000 (64-bit, non-prefetchable) [size=32M]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    I/O ports at ec00 [size=128]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    [virtual] Expansion ROM at feb80000 [disabled] [size=512K]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As above the video memory starts at 0xd0000000&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;2.&lt;/span&gt; Map the video ram into a mtd block&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&gt;  modprobe slram map=VRAM,0xd2000000,+0x4000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note that I maped from &lt;span style="font-family: courier new;"&gt;0xd0000000&lt;/span&gt; + 32Mb to let some video memory to be used by framebuffer/X (if you use nv driver you can specify VideoRam 32765 in xorg.conf to limit the memory mappings).&lt;br /&gt;The third parameter (+0x4000000) is the memory size (64Mb)&lt;br /&gt;If everything is ok you should see something like this in dmesg log:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;slram: Mapped from 0xf8f00000 to 0xfaf00000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;slram: devname=VRAM, devstart=0xd2000000, devlength=0x2000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;devstart and devlength depend on your parameters.&lt;br /&gt;&lt;br /&gt;Doing &lt;span style="font-family:courier new;"&gt;cat /proc/mtd &lt;/span&gt;should output:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mtd0: 02000000 00004000 "VRAM"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Add the kernel mtd modules and create the mtdblock devices&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;modprobe mtd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;modprobe  mtd_blkdevs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;modprobe mtdblock&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;mknod /dev/mtdblock0 b 31 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;mknod /dev/mtd0 c 90 0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now you can use the &lt;span style="font-family: courier new;"&gt;/dev/mtdblock0&lt;/span&gt; to write jffs images or use it as a very fast swap (&lt;span style="font-family: courier new;"&gt;mkswap /dev/mtdblock0&lt;/span&gt;, &lt;span style="font-family: courier new;"&gt;swapon&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Notice that you can't create partitions directly in &lt;span style="font-family: courier new;"&gt;/dev/mtdblock0&lt;/span&gt; with fdisk and use &lt;span style="font-family: courier new;"&gt;/dev/mtdblock0p1&lt;/span&gt;. Partitions are usually created in a device driver mapping or by specifing mtdparts= parameter at kernel boot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8939125534858322326-1542186300695364582?l=www.linuxconsulting.ro%2Fnews.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.linuxconsulting.ro/2009/06/using-video-ram.html</link><author>noreply@blogger.com (panic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8939125534858322326.post-8588335671562017219</guid><pubDate>Thu, 18 Jun 2009 13:42:00 +0000</pubDate><atom:updated>2009-11-30T13:49:03.976+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>libc</category><category domain='http://www.blogger.com/atom/ns#'>hacks</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>Hijacking library calls</title><description>&lt;span style="font-family:georgia;"&gt;From time to time you might want to override a function call by a binary or library with your own supplied code. This might be useful for example binding a program to a certain address considering  that the program doesn't have an option for that. It can also be used for debugging or other obscure tasks.&lt;/span&gt;  &lt;span style="font-family:georgia;"&gt;The attached example it's pretty simple, it saves the real address of connect function from libc to a function pointer named&lt;/span&gt;&lt;span style="font-style: italic;font-family:georgia;" &gt; real_connect&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;, reads the address/port information from environment and issues the new parameters &lt;/span&gt;&lt;span style="font-weight: bold;font-family:georgia;" &gt;after&lt;/span&gt;&lt;span style="font-family:georgia;"&gt; the bind call has been performed to the &lt;/span&gt;&lt;span style="font-style: italic;font-family:georgia;" &gt;real_connect&lt;/span&gt;&lt;span style="font-family:georgia;"&gt; function.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For your "library" to be preloaded it has to be added to /etc/ld.so.preload by simply doing:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo "/path/to/libc-highjack.so" &gt; /etc/ld.so.preload&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;To use it, before starting a program, export HIGHHACK_PORT and HIGHJACK_IP to the values that you need.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The compiling&lt;/span&gt; instructions are in the source code.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linuxconsulting.ro/uploads-blog/libc-highjack.c"&gt;uploads-blog/libc-highjack.c&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8939125534858322326-8588335671562017219?l=www.linuxconsulting.ro%2Fnews.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.linuxconsulting.ro/2009/06/highjacking-library-calls.html</link><author>noreply@blogger.com (panic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8939125534858322326.post-1402324471196933384</guid><pubDate>Sun, 11 May 2008 19:25:00 +0000</pubDate><atom:updated>2009-11-30T13:49:03.979+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>macos</category><category domain='http://www.blogger.com/atom/ns#'>ubuntu</category><category domain='http://www.blogger.com/atom/ns#'>apple</category><title>Ubuntu  (8.04) Linux on MacBook Air (updated)</title><description>&lt;span style="font-size:78%;"&gt;&lt;span style="font-style: italic;"&gt;Ubuntu 9.04 looks like it's working out of the box on MacBook Air. The new intel video card driver in 9.04 it's pretty bad and it's suggested to use the old driver till a fix is issued.  (June 18, 2009)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;As I received a MacBook Air for development "on-the-road", I installed Ubuntu on it.&lt;br /&gt;Installation is pretty easy:&lt;br /&gt;1. Use MacOS BootCamp to create a "Windows" partition.&lt;br /&gt;2. Get a external USB cdrom or use isotostick script to install from a USB stick.&lt;br /&gt;3. Press C to start booting from CDROM and install Ubuntu (don't forget to make the "Windows" partition active after the installation or it won't show up in BootCamp).&lt;br /&gt;&lt;br /&gt;What works:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Video Card&lt;/span&gt;&lt;br /&gt;Works ok without tweaks even with 3D support/Compiz/XV. I noticed some vertical flickering might be from dot clock but till now ModeLine settings didn't help.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Update:&lt;/span&gt;&lt;br /&gt;Flickering is caused by backlight settings a flicker free backlight setting for me is&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;xrandr --output LVDS --set BACKLIGHT 8000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. TouchPad/Multitouch&lt;/span&gt;&lt;br /&gt;Basic TouchPad/1 button click works ok but if you want multitouch for mouse gestures/scroll/right-click you need to get touchd from &lt;a href="http://touchd.sf.net/"&gt;http://touchd.sf.net&lt;/a&gt; and add a&lt;br /&gt;small modification to multitouch.c by changing the USB IDs looked up by openusb_find_dev_* to: &lt;span style="font-style: italic;"&gt;0x05ac, 0x0223&lt;/span&gt;.&lt;br /&gt;The only issue is that touchd has problems comming up from suspend/resume, which can be solved by adding a new script in /etc/acpi/resume.d/ to restart touchd process.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Wireless&lt;/span&gt;&lt;br /&gt;Need to install ndiswrapper and use the winxp broadcom drivers supplied on DVD or look-up Apple BootCamp drivers on torrents. Other drivers don't work ok either freeze on suspend/resume or have limited capabilities.&lt;br /&gt;Broadcom drivers seems to work ok and also power_profile can be set (iwpriv wlan0 power_profile 0) along with other powersaving settings.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Sound&lt;/span&gt;&lt;br /&gt;Works by adding: options snd_hda_intel model=mbp3 to /etc/modprobe.d/options. Microphone might need a little alsa patching but haven't tested yet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. iSight Camera&lt;/span&gt;&lt;br /&gt;Works ok after install the module is uvcvideo&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6. CPU Freq Scaling&lt;/span&gt;&lt;br /&gt;Works ok after install. Can be tweaked further from /etc/laptop-mode or powerd&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7. BlueTooth&lt;/span&gt;&lt;br /&gt;Works ok after install.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8. LCD Brightness levels.&lt;/span&gt;&lt;br /&gt;This should be handled by pommed/applesmc kernel module but didn't work for me (even tried a 2.6.25 applesmc module with mactel patches) looks like macbook air isn't yet supported by applesmc.&lt;br /&gt;Instead xbacklight (apt-get install xbacklight) works fine which can be binded to F1/F2 keys (I use xmodmap to define keys with scancode 101 and 212 and xbindkeys to bind them to actions like xbacklight +2 or xbacklight -2)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;9. Keyboard Leds&lt;/span&gt;&lt;br /&gt;Works with a small patch to applesmc.c (in drivers/hwmon/applesmc.c). You can set the keyboard leds levels by echoing values here:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/sys/devices/platform/applesmc.768/leds/smc::kbd_backlight/brightness&lt;/span&gt;&lt;br /&gt;This can be done with a small script and xbindkeys to assing the script to F5/F6 keys.&lt;br /&gt;&lt;br /&gt;See below for patch download and a sample script.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;10. Multimedia keys&lt;/span&gt;&lt;br /&gt;Sound keys/Eject keys are working by default the rest can be detected/added to keyboard shorcuts by detecting them with xev&lt;br /&gt;&lt;br /&gt;For power saving I recommed using powertop (apt-get install powertop), iwconfig/iwpriv to set wireless power mode, xbacklight and power management tweaks to blank screen faster with DPMS. At this moment battery times in Mac OS X and Ubuntu Hardy are similar (touchd wakes up CPU pretty often but it's not a big drain).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linuxconsulting.ro//applesmc-macbookair-2.6.24-17-patch.txt"&gt;/applesmc-macbookair-2.6.24-17-patch.txt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linuxconsulting.ro//keybacklight.sh"&gt;/keybacklight.sh&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8939125534858322326-1402324471196933384?l=www.linuxconsulting.ro%2Fnews.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.linuxconsulting.ro/2008/05/ubuntu-804-linux-on-macbook-air.html</link><author>noreply@blogger.com (panic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8939125534858322326.post-2102556316149397674</guid><pubDate>Fri, 19 Oct 2007 15:44:00 +0000</pubDate><atom:updated>2009-11-30T13:49:03.981+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>misc</category><title>New monitor, new desktop.</title><description>&lt;b&gt;&lt;a href="http://www.dict.org/bin/Dict?Form=Dict2&amp;amp;Database=gcide&amp;amp;Query=Although"&gt;&lt;/a&gt;&lt;/b&gt;Although I'm not a big fan of LCD monitors I finally got myself one. It's a Samsung 2232 BW and I'm pretty satisfied by it's quality except that I believe it's too bright on top and bottom parts of the screen and gradients don't look that great. With new monitor came a new desktop based on ubuntu beryl and stuff from gnome-look.org. I got the highest ranked themes (seems that everybody likes the look of vista :P ) and icon packs. I'm not sure that it will have a long life since it's too dark for my taste. Here is a screenshot:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.linuxconsulting.ro/uploaded_images/Screenshot-770054.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://www.linuxconsulting.ro/uploaded_images/Screenshot-766133.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8939125534858322326-2102556316149397674?l=www.linuxconsulting.ro%2Fnews.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.linuxconsulting.ro/2007/10/new-monitor-new-desktop.html</link><author>noreply@blogger.com (panic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8939125534858322326.post-4738700794890535335</guid><pubDate>Wed, 08 Aug 2007 13:08:00 +0000</pubDate><atom:updated>2009-11-30T13:49:03.982+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>python</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><category domain='http://www.blogger.com/atom/ns#'>picolcd</category><title>Python Wrapper for picoLCD</title><description>Chris Jones has created a python wrapper for my &lt;a href="http://www.linuxconsulting.ro/picoLCD20x2/"&gt;picoLCD SDK&lt;/a&gt; which is available&lt;br /&gt;for download &lt;a href="http://projects.sucs.org/svn/LiFiPod/pyusblcd/"&gt;here&lt;/a&gt;. You can read more about this at his blog and watch a nice video&lt;br /&gt;of his python application and picoLCD in action &lt;a href="http://sucs.org/blogs/rollercow/entry/the-holiday-project"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8939125534858322326-4738700794890535335?l=www.linuxconsulting.ro%2Fnews.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.linuxconsulting.ro/2007/08/python-wrapper-for-picolcd.html</link><author>noreply@blogger.com (panic)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8939125534858322326.post-2537867682912776798</guid><pubDate>Wed, 08 Aug 2007 11:52:00 +0000</pubDate><atom:updated>2009-11-30T13:49:03.984+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>games</category><category domain='http://www.blogger.com/atom/ns#'>linux</category><title>Savage: The Battle For Newerth:  Free and Improved.</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.linuxconsulting.ro/uploaded_images/shot00002-709042.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://www.linuxconsulting.ro/uploaded_images/shot00002-709013.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;While browsing the linux games sites I noticed that Savage: The Battle For Newerth from &lt;a href="http://www.blogger.com/www.s2games.com"&gt;www.s2games.com&lt;/a&gt; it's free and recently received a complete overhaul from the&lt;br /&gt;community put together as Savage: Full Enhancement available to download from &lt;a href="http://www.notforidiots.com/SFE/"&gt;http://www.notforidiots.com/SFE/ &lt;/a&gt;. The enhancements are pretty impressive and include a modified 3D engine which adds raytraced weather effects, real-time commander mini-map drawing etc. The game is multiplayer,looks good, has a lot and fast action and you get addicted pretty fast. There are lots of servers on the internet so it shouldn't be a problem to get into action fast.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.linuxconsulting.ro/uploaded_images/shot00004-786821.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://www.linuxconsulting.ro/uploaded_images/shot00004-786803.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You can play as a commander which let's you give commands and control the game as in a RTS or as a warrior if you like FPS games. Of course I choose FPS mode since it's not easy to be a commander...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note: &lt;/span&gt;&lt;br /&gt;I installed the game on Ubuntu 7.04 and noticed choppy and distorted sound under ALSA. The game doesn't seem to accept SDL_AUDIODRIVER env variable (which works for other games) and modifying sound_output variable didn't make a difference. My solution was to install OSS (recently open sourced) from &lt;a href="http://www.blogger.com/www.opensound.com"&gt;www.opensound.com&lt;/a&gt; and blacklist alsa devices to make oss load ok.&lt;br /&gt;As usual OSS gives better sound and latency versus ALSA (not to mention the imux device which is very usefull for streaming), but they are a little too late with opensourcing their driver and because of that GStreamer used in&lt;br /&gt;Ubuntu desktop and other application won't work with the latest OSS release because the mixer API changed and there is no release with the latest OSS API for&lt;br /&gt;osssink gstreamer plugin.&lt;br /&gt;If you intend to compile  OSS from source  if might need to modify  &lt;span style="font-style: italic;"&gt;setup/srcconf.c&lt;/span&gt; and add    &lt;span style="font-style: italic;"&gt;-fno-stack-protector &lt;/span&gt;to CFLAGS around lines 652 and 657.&lt;br /&gt;&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&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/8939125534858322326-2537867682912776798?l=www.linuxconsulting.ro%2Fnews.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.linuxconsulting.ro/2007/08/savage-battle-for-newerth-free-and.html</link><author>noreply@blogger.com (panic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8939125534858322326.post-8379053415477708030</guid><pubDate>Tue, 07 Aug 2007 16:58:00 +0000</pubDate><atom:updated>2009-11-30T13:49:03.985+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>web</category><title>Redesigned www.linuxconsulting.ro</title><description>Welcome to the new layout of my projects page,     although not everything has been finished most of my current work is now public.   &lt;br /&gt;The page is very, very ... lynx/links friendly so browse away.&lt;br /&gt;On the rant section I intend to post my views on interesting linux news from the web.   &lt;br /&gt;Cya soon.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note&lt;/span&gt;: There are still some minor problems with my template for blogger.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8939125534858322326-8379053415477708030?l=www.linuxconsulting.ro%2Fnews.html' alt='' /&gt;&lt;/div&gt;</description><link>http://www.linuxconsulting.ro/2007/08/redesigned-wwwlinuxconsultingro.html</link><author>noreply@blogger.com (panic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item></channel></rss>