Windows 7 MBR
If you happen to have Windows 7, and it craps out on you like mine did (Power outage, when it attempted to boot it would simply say Disk read error, Press Ctrl+Alt+Del to restart) then in order to fix it, you just need to run the following command from the Windows 7 DVD (or USB disk if you happen to have it written to a USB key)
bootsect /nt60 c: /mbr
Once I did this, that machine was back in action. And it only took me two weeks or so in order to get around to it.
Blizzard Authenticators
As some people know, I do play World of Warcraft. Recently there have been quite a few people in our guild who have been "hacked" - as in, someone got a hold of their password some way or another, and was able to take over their account, and do naughty things like steal items from the guild's bank, sell all of that character's gear, and so forth. All well and good, Blizzard, in an attempt to allow people to be a tad bit more secure, offered up the ability to use a free authenticator, which runs on your mobile phone (iPhone, Android, and a few other misc phones as well) or you can get a hardware key, for 6.99 or 6.50 USD - somewhere there abouts.
Our guild was recently discussing them, as someone in the guild had this happen to them for a second time... And in going back and forth between myself and someone who thinks that Blizzard is making a mint off these things (hint: they don't) Someone else replied with the following in the thread, and I thought I would share it with a much more general audience.
PERSONALLY
I think the only real, permanent, and logical way for blizzard to fix this 'hacker' problem is by raising up a massive army of Undead Nazi Vampires, lead by a shirtless Gerard Butler to lead an invasion into China and Russia, overthrowing the local governments on a crusade to flush the hackers out from where they live! Blizzard would then consolidate power and turn the two largest countries in Asia into worlds first corporately owned country. With this display of power, combined with their new military might, no one would dare try to hack a blizzard game ever again!
This plan has drawbacks however, as legions of undead vampires (who happen to be nazi's) would soon grow restless, and crave human flesh. After blizzard loses its hold on such creatures, the Vampires would launch a full scale assault on Israel, instantly springing the United States, the UN, and NATO to its aid. By this time the other middle eastern countries, now coupled with their new found undead allies, would join in the onslaught and unite against the rest of the world. World War III would break out, the devestation would be horrible, and the world would cower before the unstoppable Undead Vampire Nazi's.
That is...until the Dave creates a super virus that will specifically target and destroy the 'undead' plague; Effectively crippling the Undead army, and their lust for flesh. With the them out of the way, the path would be clear for the Allied nations to finish the war in a quick manner. Millions would have died in the first global war in nearly 70 years.
The world will want someone to blame. At the UN trial, all the execs from Blizzard will be put on trial, and tried for war crimes for creating the Undead Nazi Vampires in the first place. All of their property will be seized, and all the WOW servers will be shut down, effectively ending the happiness of me, and millions of others around the world.
.....
So unless you want THAT to happen...Get an Authenticator. Its not a perfect solution, but its better than undead Nazi Vampires.
Well done.
DBus Tutorial (from Dan Williams)
In a thread on the NetworkManager mailing list explaining why a dbus-python script wasn't working, Dan posted this tutorial, and I thought it was a good one, and should go out to a bit of a broader audience. (This is copied verbatim from the email, no spell checking or such - again, I did not write this, I am merely posting it here for others to consume)
Speaking of wireless…
Thanks to Jeremy Olexa (aka darkside) I now have 2 new Atheros based cards.
One is a Belkin N1 Wireless Notebook card, Part #F5D8011 - ath9k based, although I've gotten it recognized by the kernel and I can get an IP address via dhcp, as well as connected via WPA2, I can't seem to pass traffic.
Two is a Buffalo AG54 WLI-CB-AG54L, this one seems to be ath5k based, although I haven't attempted to use this one at all yet.
Currently towards the bottom of the todo list, is to get these both working, preferably using the N1 as an access point, so I can test out the speeds of the Efika MX's wireless. This has a secondary goal of seeing if the wireless issue that I have (currently I cannot seem to ssh into any wireless clients) is the AP I am using (pfSense based) or if it is something more; I'm guessing the former.
Kismet and the Efika MX
Back in June of 2009, a bug was opened about a new Kismet release. I was extremely busy, and eventually, I had some time, so I looked in to it, but I couldn't quite get things working right, so I put it back on the back burner. Fast forward even more, and yngwin saw the bug, and asked me if I had any issues with him dropping the new Kismet (based on Kismet-newcore) in the Gentoo-x86 tree, and since I didn't respond, he went ahead and did so. And I am glad he did, because it reminded me that I wanted to get back to it. (I did actually fix a minor issue that the setuid bit was getting reset so it wasn't getting installed properly, still also need to look into the plugins)
As some people have read, I got an Efika MX OpenClient from Genesi, and I've had a chance to work with it quite a bit. One of the things that I wanted to play with was Kismet on it, as I think the Efika MX Smartbook would make an excellent platform for wardriving (amongst many other things), being compact, lightweight, and having gps and wireless built in, with a very long battery life.
So, I gave it a shot, and it most definitely works (I've keyworded Kismet ~arm for the 2010.01.1 release) using the latest kernel (2.6.31.12.3-ER1) as of this writing, as well as the latest firmware for the wireless card from Ralink ( USB Firmware 22 released 03/31/2010. This is with the mac80211-based rt2800usb driver, NOT the rt3070sta driver from staging.
There is definitely a lot of potential in these little machines, and I really wish I had the means to buy more of them, just so that I had a few around to play with different things rather than having the one and swapping out the sdcard (assuming I'm not doing it on the pata ssd drive in the device.) I am really looking forward to when the smartbook gets released.
Bustle
While working on the Gnome overlay with the Gnome team, I decided to give Empathy a go. I talk to maybe 3 total people on AIM, and no one on Yahoo, which just leaves me with Jabber (Gmail) contacts that I actually talk to. So I installed it, I even enabled webkit so that I could use Adium themes with it (I personally prefer Stockholm, just be sure to look inside the folder and only move the style into the right place.)
It was kind of a disaster. I'm running on a Quad Core, 2.4ghz machine, and double clicking on a contact would take up to 25 seconds for the window to show up. I was not a happy camper. Watching htop, I could see that my DBus session bus was working hardcore. 100% cpu usage on 1 core.
No problem, I thought to myself, whipped open my handy terminal, ran "dbus-monitor --session" to watch the traffic that was causing it to use so much cpu and.... nothing. Zilch. There was no (apparent) traffic going on but the session bus was still using 100% cpu.
I popped over to the Gnome bugzilla, and started reading through bugs, but none were coming close to what I was seeing. In desperation, I turned to the faithful Google. And I searched... and came up empty - not so much empty as simply results that weren't helpful at all.
I let it go for a few days, asked a couple people if they were having any issues, and most don't use Empathy, so that was a bust. Then I was looking around while I was "at work" which really meant I was sitting in the office as opposed to my room using the computer, and I came across Bustle; http://willthompson.co.uk/bustle/
Bustle is very nice, in that it can show you timings. Once I had that compiled, I used Recordmydesktop to take a video of me using Empathy, with Bustle running, logging everything that went on with Empathy. Then I popped in to the Empathy IRC channel (#empathy on irc.gnome.org) and mentioned in the channel that it was taking a long time for my IM windows to open, and pointed them at the video ( http://dev.gentoo.org/~steev/files/empathy-dbus.ogv (21MB)) and then at the two screenshots of Bustle ( http://dev.gentoo.org/~steev/files/screenshots/empathy-bustle1.png andhttp://dev.gentoo.org/~steev/files/screenshots/empathy-bustle2.png ), and Danni replied to me, asking why I was using the logger, when it shouldn't be enabled. So I disabled it, and removed telepathy-logger from my system, re-compiled Empathy, and sure enough, the IM window pops up instantly. I've removed the dependency as well as got rid of the useflag (with a note in the ebuild about why) and committed it to the Gnome overlay. Due to Danni saying that no one should be using telepathy-logger, I've also package.masked it in the Gnome overlay. I must say, using Bustle is *very* nice, and I'd like to thank Will Thompson for writing it.
I also smiled at the "How?" section of the Bustle website, considering that was the exact purpose for me downloading it.
I'm hoping to write an ebuild for Bustle, and apparently it is really easy to do with Haskell as the Gentoo Haskell team has a script that you run that will write the ebuild for you. I haven't started working with it yet, but I definitely plan to, as Bustle is now definitely on my radar for usage in debugging what is going on with apps and their DBus usage.
Rocks, as presents…
Gentoos build their nests out of rocks, which are then jealousy guarded. Particularly nice rocks are offered as gifts by male Gentoos to females to curry favor.
All this time my ex's thought I was just being cheap...
Deauthentication Reason Codes
Client Reason Code...Description...Meaning
0...noReasonCode...Normal operation.
1...unspecifiedReason...Client associated but no longer authorized.
2...previousAuthNotValid...Client associated but not authorized.
3...deauthenticationLeaving...The access point went offline, deauthenticating the client.
4...disassociationDueToInactivity...Client session timeout exceeded.
5...disassociationAPBusy...The access point is busy, performing load balancing, for example.
6...class2FrameFromNonAuthStation...Client attempted to transfer data before it was authenticated.
7...class2FrameFromNonAssStation...Client attempted to transfer data before it was associated.
8...disassociationStaHasLeft...Operating System moved the client to another access point using non-aggressive load balancing.
9...staReqAssociationWithoutAuth...Client not authorized yet, still attempting to associate with an access point.
99...missingReasonCode...Client momentarily in an unknown state.
Just posting it here for future reference
gpu_z430
Out of curiosity, I ran strings on the binary drivers for the Efika MX's gpu.
gsl.ko:
license=Proprietary
description=GSL driver
author=Advanced Micro Devices Inc.
depends=
gpu_z430.ko:
license=Dual BSD/GPL
description=Device driver for AMD 3D graphics core
author=Advanced Micro Devices Inc.
depends=gsl
Anyone happen to know where to find the GPL source for that gpu_z430 module?
Efika MX
So, I have an overlay set up for the Efika MX. If anyone out there has one, you are free to use it, keep in mind that some of these ebuilds are very rough and some (imx-lib) are perfect examples of how not to write an ebuild
I've got it hosted on Github, http://github.com/steev is the main page. There *are* other packages than just Efika MX related, simply because I use it for keyword testing, as well as for a few things that I want on the Efika MX without enabling some other full overlay.
What I currently have working is :
Xorg 1.8 RC2 (xorg-server-9999, mesa-9999, libdrm-9999) 2D acceleration in X, still no 3D driver yet (I'm watching the msm kernel closely as the video card in the Efika MX *seems* to be the same one that is in a Snapdragon.)
I need to write an ebuild for the Ralink driver for wireless. I'm not a huge fan of it, but having used it, it DOES work. My own attempts at getting the one in staging for the kernel by backporting the 2.6.34 stuff ended in lots of kernel panics and divide by zero errors.
TODO:
Clean up the current ebuilds, make sure they do the right thing.
Ebuild for Ralink driver Thanks to Arnaud Patard from Mandriva, this isn't needed as he got the rt2800usb in-kernel driver working.
Ebuild for the binary amd-gpu driver (this one is more along the lines of copying a bunch of files into the right place(s))
Look into what is needed to get the fsl_linux_sdk_codec_1.7.1 installed and working, and then write ebuilds. A preliminary glance at the contents shows 3 tarballs, and a PDF. One of the tarballs is just docs, the other appears to be a gstreamer plugin, so that shouldn't be too difficult to compile itself, however the fsl-mm-codeclib Makefile looks like its going to make baby jesus cry.
Other things I'd like to do:
Move the Efika MX into my room, out of the office, which would put it on a different switch in the home network. This would also put it on a slightly smaller monitor since it is currently plugged into the DVI input of one of my monitors used for work.
Get the PPC Efika back up and running - the main issue here is the lack of an outlet to plug it in. This last one will probably have to wait for spring cleaning to come around, as I know I have some more UPSs in the garage, I just don't remember where.
Xorg and udev (redux)
So it has been a bit over 3 years since my last post here... And oddly enough, it is quite similar to my previous post.
Xorg 1.8 should be coming soonishly - using the scm version gives the awesomeness that is Xorg with hotplugging, without hal (hooray!)
In order for it to work though, you do need a very minimal xorg.conf :
Section "InputClass"
Identifier "default"
Driver "evdev"
EndSection
Alternately, with git, xorg-server supports /etc/X11/xorg.conf.d - I've got that little snippet in a file in there called 90-input-default.conf
Hattip: "iamben" on freenode: #gentoo-desktop
The Efika MX has arrived!
Got my Efika MX from Genesi today! I took a few pictures, although mine aren't that high quality, my roommate was out so I couldn't use his digital camera. Anyway - here we go
First up, is the FedEx box --
http://dev.gentoo.org/~steev/efika/mx/pics/12-04-09_1206.jpg
Next we see the box that it comes in:
http://dev.gentoo.org/~steev/efika/mx/pics/12-04-09_1207.jpg
And we open that box and we start to get giddy...
http://dev.gentoo.org/~steev/efika/mx/pics/12-04-09_1208.jpg
And we pull everything out, and take a picture of the contents:
http://dev.gentoo.org/~steev/efika/mx/pics/12-04-09_1210.jpg
And the back of the Efika (and I do apologize, this is very blurry for some reason):
http://dev.gentoo.org/~steev/efika/mx/pics/12-04-09_1212.jpg
And a small comparison, the Efika MX sitting on top of my Boondock Saints DVD case (awesome movie, go rent and watch it now...), also in the picture, the staple of my diet - Mt. Dew.
http://dev.gentoo.org/~steev/efika/mx/pics/12-04-09_1315.jpg
Can't wait to get started, unfortunately, I'm waiting on my Newegg shipment of http://www.newegg.com/Product/Product.aspx?Item=N82E16882021059 ( Rosewill - HDMI to DVI Cable (24+1) - 6 FEET - Retail ) to arrive so that I can have some video, since I don't have any hdmi cables lying around.
I do also have the dmesg,free, and cpuinfo posted.
It comes with Ubuntu minimal installed, however, I intend to install Gentoo on it.
I really must say, this is definitely a nice looking machine, a LOT smaller than I expected it to be - I was thinking it was a lot bigger than it actually is.
Titanium Beta Launch Party
If you’re in the San Francisco area on June 9th, check out the Titanium Beta Launch Party.
I can’t go so you should go for me!
Full details found here: http://bit.ly/5YAv
I know it’s a little redundant because most people stumbling here will already know about it but just in case you don’t, well now you do.
Running Titanium on Gentoo
(This assumes an x86 system - although ppc also works as long as you replace all the so files!)
In order to get Titanium working on Gentoo, you will need to build a few things yourself since they don't have a patch for webkit (yet - they are working on it
) and also a few other files will need to be replaced.
This is how I did it. First I checked out the titanium git repository
cd ~/sandbox
git clone git://github.com/marshall/titanium.git
git submodule update --init
cd kroll
git pull origin master
cd ~/sandbox
I read through the readme, and installed the different dependencies.
sudo apt-get install build-essential ruby rubygems libzip-ruby scons libxml2-dev libgtk2.0-dev python-dev ruby-dev libdbus-glib-1-dev libnotify-dev libgstreamer0.10-dev libxss-dev libcurl4-openssl-dev
is their suggestion, however on Gentoo, these are a lot different.
I found that libzip-ruby (rubyzip?) was not needed, and on Gentoo installing the packages themselves gives you the "dev" packages, so
emerge ruby rubygems scons libxml2 gtk+ dbus-glib libnotify gstreamer libXScrnSaver curl gperf
Once this is finished, you will have to do a little bit more work - We don't need poco installed, but we will need to compile it ourselves, along with the titanium version of webkit (they've got it "patched" to support app:// urls - no actual patch yet (but they are working on it!))
We also need to use their version of libcurl, which is also patched, however again, we don't need to install it to our system, just build it.
git clone git://github.com/mrobinson/libcurl_titanium.git
after the checkout, we just ./configure && make
Now we need to check out their copy of webkit, please note that this one WILL take a while to check out, so go grab a coffee, watch a good TV show, or perhaps hit the pub with some friends (I prefer the latter)
git clone git://github.com/marshall/webkit_titanium.git
... some random amount of time later...
git checkout --track -b titanium_pr2 origin/titanium_pr2
Now we are on the titanium_pr2 branch, which is what is currently in use, although they are migrating to ToT for WebKit which will allow us to use libsoup in the future, rather than the curl that is currently in use.
We need to link against the libcurl_titanium and not against the system libcurl, so we need to export 2 variables.
export LIBCURL_CFLAGS ="-I/home/username/sandbox/libcurl_titanium/include"
export LIBCURL_LIBS ="-L/home/username/sandbox/libcurl_titanium/lib/.libs -lcurl"
and then we just use the build.py script to build since we won't be installing this into the system either. so...
./autogen.sh
./build.py
Depending on your processor (this takes around 15 hours on my Efika which is 400mhz with 128mb of ram) go ahead and go back to the pub, go to work, cook yourself a nice meal... you get the picture.
Once it is finished, assuming the titanium checkout is in ~/sandbox/titanium and the webkit_titanium checkout is in ~/sandbox/webkit_titanium you just run ./copy-libs-to-kroll.sh
Now we need to build poco, you can either emerge it, or just fetch it via emerge, and build it in your ~/sandbox (or wherever you are doing this at) once it is built (it really doesn't take that long) you need to copy the .so files to ~/sandbox/titanium/kroll/thirdparty/linux/poco/lib/ - you can look at what is currently in there to know which files to copy. I tend to use cp -a so that the symlinks stay symlinks. You need to copy the libcurl .so files that were built in ~/sandbox/libcurl_titanium/lib/.libs into ~/sandbox/titanium/kroll/thirdparty/linux/libcurl/lib - again just the files that are needed.
As part of building webkit (assuming you didn't have it installed on your system, you need to build icu, currently 3.8.1-r1 is the latest in portage, which is what is currently used in titanium as well.
I've submitted a few patches that have already been implemented to allow for the different paths for python and ruby that Gentoo uses, so at this point you should be able to go into ~/sandbox/titanium and run scons debug=1 dist and it should build. Once the compilation is completed, you should have a ~/sandbox/titanium/build/linux/dist directory which includes the titanium sdk as a .bin file as well as a .tgz file. Simply run either sudo sh titanium-sdk-0.4.bin or chmod +x titanium-sdk-0.4.bin && sudo ./titanium-sdk-0.4.bin in order to install it.
Please note - at the time of this writing, PR3 has been released, and the current master is what PR4 (or beta) is going to be based on. This is *very* much in flux, and it may be hit or miss on compiling and/or installing. Currently when installed (which needs to be done as root) the files do not all get the proper permissions, and you will likely need to go into /opt/titanium/modules and change all the .so files to be 755 and all the manifest files to 644. There may be others as well, but I cannot recall at the moment.
As a side note: if you want to use what is known as the PR3 release, you can (and probably should) use checkout --track -b titanium_pr3 origin/titanium_pr3 inside ~/sandbox/titanium as well as making sure to switch to the titanium_pr3 branch in kroll if you do that. (but why would we? We're Gentoo users, we like bleeding edge
)
At this point you have a working Titanium Developer that you can run via the console ~/TitaniumApps/Titanium\ Developer/Titanium\ Developer
Enjoy writing webapps that don't require Adobe Air!
Also, if you find any issues with this post please leave a comment and I will try to get it corrected as soon as possible.