Brad For Dem Bedded

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Wednesday, 30 November 2011

Dithering, NVIDIA Quadro 1000M, and HP ZR2440w

Posted on 05:28 by Unknown
My new laptop is an HP Elitebook Workstation 8560w. It's sweet and well supported by Debian 6. I also have a HP ZR2440w monitor, also sweet.

For some reason, with the NVIDIA proprietary drivers, version 290.10 with a 2.6.38 backports kernel on Debian Squeeze, when ever I have the monitor connected via DisplayPort, the NVIDIA driver turns on dithering for the external display. This is not what I want.

The HP ZR2440w is an 8 bit monitor, it doesn't need dithering, and with dithering enabled some colors flicker which is very annoying. The built in LCD on the Elitebook is only 6 bits and so dithering can help make it look like there's a wider color gamut.

To disable dithering on my ZR2440w but keep it enabled on the built-in LCD, my "Screen" section of my /etc/X11/xorg.conf looks like this (DFP-0 is the internal LCD, DFP-6 is the ZR2440w, and I have them mirrored so I only use the ZR2440w when it's connected):



With this config, now my ZR2440w is always non-dithered while the internal LCD always is dithered.
Read More
Posted in debian, linux | No comments

Saturday, 26 November 2011

Google AdWords - Gone

Posted on 07:38 by Unknown
I've removed Google AdWords from my blog and RSS feed. So not worth it to have ads. I've not yet made enough in ad impressions to get paid by Google and I've had ads up for almost 6 months.

For those of you using AdBlock, you shouldn't notice any difference. And yes, there were quite a few visitors blocking ads. For those of you not using AdBlock, the blog should load a little faster and there won't be any more ads.

Enjoy!
Read More
Posted in google | No comments

Google's New Look - It Sucks

Posted on 07:32 by Unknown
I'm not a fan of Google's new look for GMail or Blogger. I use GMail on a daily basis, many times per day. I use Blogger enough, almost daily, to at least check if any new comments came up on this blog or to write up some draft ideas rumbling around in my head.

Both GMail and Blogger complain now when I log in using Firefox / Iceweasel 3.5, which is what ships with Debian Squeeze. They tell me my browser is out of date and that my experience won't work well. This is for a browser that's not that old and is still supported with security updates from Debian. GMail also reverts to the old school plain HTML version which isn't pretty and for some reason keyboard shortcuts and priority inbox are disabled (very annoyed at that).

I'm taking my email to IMAP, goodbye GMail web interface, and I've rolled back Blogger's new look to the older version. If I'm on someone else's computer or using my wife's iPhone, I'll deal with GMail's web access. The worst part of this is before the new GMail and Blogger interfaces went live, neither complained about using Firefox / Iceweasel 3.5 and everything worked as I liked.

I'm seriously considering taking my email business elsewhere, possibly to FastMail where I can avoid ads and get my own domain for a very reasonable price. For blogging, in the past I had tried Tumblr but wasn't impressed. I'm going to take a serious look at Posterous. I do all my blog editing in the HTML mode on Blogger anyway, losing some editing features isn't a concern.

I'd love to say goodbye to Google. It's looking like it will be easier every day. I don't think that's a good thing.

PS: Google AdWords, not worth it. So far, with thousands of ad impressions on my blog, I've make a nice $2.50 over 6 months. Not even enough that Google will pay me (gotta hit $10 for that). Don't blog for the money, blog for the reputation, skills, to help others, and because you want to improve your writing. Future post on that ;)
Read More
Posted in computers, google, web 2.0, work | No comments

Wednesday, 23 November 2011

Debian 6 amd64 on HP Elitebook Workstation 8560w

Posted on 14:15 by Unknown
I got my new laptop this week, it's a spiffy HP Elitebook Workstation 8560w. Dual core i7 at 2.7 GHz, 8 GB ram, SSD, NVIDIA Quadro 1000M, all good stuff.

I've installed Debian Squeeze and found that I needed to do a few tweaks beyond what I expected in order to get the graphics and wifi working. First, get the wifi working, then deal with graphics.

You'll need to enable squeeze-backports. Follow the directions. Install the linux-kernel-2.6.38, linux-headers-2.6.38, and firmware-iwlwifi packages. Then modify your /etc/default/grub file, the 7th line should look like this:

GRUB_CMDLINE_LINUX_DEFAULT="nouveau.modeset=0 quiet"

Run update-grub2 to make the change permanent.

Now you can reboot and you should be running the 2.6.38 kernel. If you don't pass the nouveau.modeset line to your kernel when booting, it will hang. Mine likes to hang just after "hp_accel: driver loaded" which isn't very helpful.

Now, go grab the NVIDIA drivers from nvidia.com. Make sure you have gcc-4.4 installed. Go to a terminal with cmd-alt-F1 and log in as root. "killall gdm3" to shutdown X. Now run the NVIDIA installer.

Whamo! After another reboot you should be up and running with both wifi and graphics!
Sadly, with the stock kernel, the webcam worked awesomely. With 2.6.38, it's broken. If I determine the root cause I'll update.

UPDATE 20111123 5:30pm: To get webcam working again, don't use Camorama. Use something like cheese. Camorama wants the camera to be located at /dev/video0, it's not there any more. Things like Skype and cheese find the webcam with no issue. I'm happy! :)

UPDATE 20111126 10:00am: In order to get suspend working again with kernels newer than 2.6.35, you may need to blacklist a few modules, namely "firewire_ohci" and "firewire_core". Put the below in a file named /etc/modprobe.d/8560w-blacklist.conf, run and give the laptop a reboot. I've included here the pcspkr module as well to make that stupid beep go away ;) Now I have (I believe) all the hardware working on my 8560w except Firewire (I don't have any Firewire devices so I'm not that upset). Thanks go out to an Ubuntu bug report, scroll down to #50.



UPDATE 20111129 3:00pm: If you'd like ExpressCard hot plugging to work, you need to add "pciehp" to your /etc/modules and "options pciehp pciehp_force=1" to a new file called /etc/modprobe.d/pciehp. Both those are to be added without the quotes. Hat tip to Mark Lord on the LKML, part 1 and part 2.

UPDATE 20111208 7:00am: I'm going to recommend against encrypted LVM on an SSD with Debian Squeeze. The SSD in my 8560w says it supports TRIM but I'm having a hard time verifying that it's working, either automatically or manually. I have "discard" in my fstab and the 2.6.38 kernel supports it.
I'm thinking the way to go about encrypting important info is to just encrypt the directories I care about rather than the whole file system. I might do a backup, reformat, and restore, then enable just directory level encryption where needed (for example, I don't really care if my /usr directory is encrypted since it just has Debian sourced programs installed).
Read More
Posted in debian, linux | No comments

Monday, 21 November 2011

Embedded Linux Long Term - Part 3

Posted on 04:24 by Unknown
I wrote about long term support for embedded Linux before, a few times, but I'm back for more!

Recently in LWN, there have was another article about various embedded groups, like Linaro and LTSI, maintaining an official policy on long term support kernels. That's cool and all, if you're developing consumer electronics that will get replaced in 2 years (like cell phones in the US), but it's not that helpful for embedded industrial systems that will have lifetimes measured in decades. Especially industrial systems where the customer is scared to death of software upgrades because they've been burned before by past providers that assured them, "Nothing will go wrong." (It did)

Upgrading a kernel at one of these customers' sites will not happen. Security updates for the same kernel version, maybe. Beyond that, NO WAY!

So how does the embedded developer deal with this?

The best way I've thought up so far is to ride coat-tails for as long as possible and do extensive testing when absolutely forced to move to a new kernel version. That means grabbing sources from something like Red Hat or Ubuntu LTS at the beginning of a long term support cycle and riding that as far as it will go (usually 5 years). For example, Ubuntu 12.04 LTS is most likely going to have Linux 3.2 as the kernel for both the desktop and server versions. If your embedded system is supported by 3.2 (most established, non-cutting edge designs will be), grab that and let the Canonical team deal with the security updates for you. Be a good community supporter and send anything you can up-stream but otherwise just ride their coat-tail.

Another thing to keep in mind is your distribution. Although most embedded developers already keep installed packages to a minimum, you'll want to take this as far as you can. Once who ever's coat-tails you're riding for all your software, other than the kernel, goes end-of-life (i.e.: no more security updates for free), you've got two choices: 1) Ask your customer to upgrade (probably not going to happen), or 2) Backport security fixes yourself. Neither is much fun. Minimize this!

Don't pick something targeted towards mobile phones. Historically, everyone making mobile phones (ironically, except Apple) sucks at providing software updates beyond a year or two. The embedded Linux teams working to provide systems to compete with Android aren't much better. You're going to get stuck taking a server distribution and making it work on your embedded system (becoming less of an issue but still not as straight forward as something like OpenEmbedded).

Or you can pay... But that's no fun and you'll still deal with these issues down the road in about the same time frames.

It'd be cool to see a long term support version of Emdebian. Emdebian already has way less packages than real Debian so it's less daunting to apply security fixes. Debian has fairly long release cycles and is community driven. Lenny's already been around for a while and will be supported at least 1 year beyond Wheezy's release. Having a community support project to keep Squeeze and beyond supported for 5+ years would be cool...
Read More
Posted in community, debian, embedded, linux | No comments

Wednesday, 16 November 2011

Build the PandaBoard or BeagleBoard-xM x-loader on Debian Squeeze

Posted on 06:54 by Unknown
EDIT 20111116 15:37: This post and the git repo have been updated to include info on the BeagleBoard-xM.

I wrote up some quick instructions on building the PandaBoard and BeagleBoard-xM x-loader on a Debian Squeeze host this morning. You can find them below, but also in my GitHub x-loader repo. My x-loader repo is only slightly modified from mainline. Enjoy!


To build x-loader on Debian:

Install the emdebian-archive-keyring:
$ sudo aptitude install emdebian-archive-keyring

Add to your apt sources:
deb http://www.emdebian.org/debian/ squeeze main

Perform an aptitude update:
$ sudo aptitude update

Install the Emdebian cross compilers:
$ sudo aptitude install gcc-4.4-arm-linux-gnueabi g++-4.4-arm-linux-gnueabi

Install git and partitioning tools:
$ sudo aptitude install git parted

Clone the repo from github, this will create a directory called "x-loader":
$ git clone git://github.com/bradfa/x-loader.git

Enter the directory, make the configuration you desire, then compile the MLO
file (actual x-loader). For the PandaBoard use "omap4430panda_config" and
for BeagleBoard-xM use "omap3530beagle_config" in the second step
(example uses Panda):
$ cd x-loader
$ make CROSS_COMPILE=arm-linux-gnueabi- distclean
$ make CROSS_COMPILE=arm-linux-gnueabi- omap4430panda_config
$ make CROSS_COMPILE=arm-linux-gnueabi-

Now we'll partition and format an SDcard.

***************************************
* THIS PROCESS WILL DESTROY ALL DATA! *
***************************************

Make sure your SDcard is not mounted. Then run the partitioning script to
create a 64 MB FAT partition followed by an ext3 partition taking up the rest
of the SDcard space (SDcards are slow, this may take some time). The arugment
passed to the script is the device node of the SDcard itself (/dev/sdb in our
example), not a partition!:
$ sudo ./format_sd.sh /dev/sdb

Some systems may automatically mount the newly created file systems. If not,
mount the boot file system:
$ sudo mkdir -v /mnt/boot
$ sudo mount /dev/sdb1 /mnt/boot

The _VERY_FIRST_ file written to the FAT partition should be the MLO.
$ sudo cp -v MLO /mnt/boot/

Unmount the FAT partition and boot the board to verify operation!
Read More
Posted in embedded, git, linux, open source, pandaboard | No comments

Saturday, 12 November 2011

The BeagleBone!

Posted on 06:09 by Unknown
Somehow I missed the introduction of the BeagleBone! I don't know how that could be!

The BeagleBone looks like a really exciting little ARM board. It's a single core 720 MHz Cortex-A8 with 256 MB of RAM, gigabit Ethernet MAC built into the SoC with 10/100 PHY external, some very nifty USB on-the-go capabilities, and headers for expansion similar to Arduino (but not pin compatible). All for $89!

Hopefully the BeagleBone will be available for purchase later this month or, at the latest, early in December.

TI seems to be targeting a very wide audience with the BeagleBone this time. The expansion connectors pit it against some higher end applications for hobbyists where an Arduino may not have had enough power but where the expansion provided by Arduino is really handy.

The AM335x ARM SoC, however, throws the BeagleBone right up the alley of quite a few companies who are producing single board computers for various markets. The AM335x was also announced just over a week ago and TI already has high quality datasheets and reference manuals up online for free. [Side note, TI, you're awesome about this! Thanks!] The AM335x also has a reasonable 0.8mm ball pitch BGA package and is fairly low in pin count (around 300 pins depending on version). This makes designing systems with the SoC very easy for those with access to professional level schematic and layout tools (and even doable for those using Eagle, GEDA, or KiCad!).

I should be receiving at least one BeagleBone in the not-too-distant future. It's an exciting time!
Read More
Posted in beagleboard, community, embedded, linux | No comments

Thursday, 3 November 2011

Bootstrapping Fedora for ARMv7 Hard Float

Posted on 11:55 by Unknown
There's a great set of articles (part 1, part 2) from LWN discussing some of the processes and issues that were used / encountered when attempting to bootstrap a build environment for ARMv7-a hard float. Turns out, Fedora didn't really have a good set of infrastructure to do this and a lot of creativity was involved (including a 4.6GB git repo).

After a bit of reading, even Debian doesn't have a great set of infrastructure for bootstrapping onto a new architecture or ABI, although the Emdebian team is working on it.

This is awesome to see from both the Fedora and Debian teams. As much as Cross Linux From Scratch is a neat exercise, having the ability to bootstrap a "real" Linux distribution is very handy. Being able to base an embedded system on a well supported community distribution that can be customized through a well documented bootstrap process is an awesome thing. I'm looking forward to learning more about these methods.
Read More
Posted in debian, embedded, fedora, linux, open source | No comments

Calendar Interface

Posted on 05:30 by Unknown
Scott Adams recently wrote about calendar interfaces. Short version: Outlook and Google Calendar suck, they're too complex and require you to change your mental reference too many times when setting up an appointment. I got about half way though and lost interest in the article. Even his idea is too complex.

When I type something, anything, into Google, it corrects my spelling, recommends choices, and interprets my shorthand into useful search results. It does this across things like maps, email, web, patents, etc. I can help Google out by giving hints, like going to the maps interface when I'm looking for a location but even if I don't, often Google knows that's what I really want when searching for a business or address and the maps results come up first.

Why can't I just select the day for an appointment and type in "Doctor's appointment at 3pm." The calendar will parse that, pull out the time, and make the appointment in my calendar. If I've got my doctor's office in my address book, the calendar will even link that data along with doing a map lookup on my doctor's office phone number to find the location. The calendar can even ask me, after I enter this, if it got the choices right for location and other info with a listing like a Google search. Then, most likely, I'll just pick the first result (since it will be correct) and that confirms the calendar event and sticks it in my calendar. Done!

No, I can't write code to do this (not yet at least), but the infrastructure already in existence in Google's searching products, when combined, can almost do exactly this!

So, Google, why is your calendar interface so complex?
Read More
Posted in software, web 2.0 | No comments
Newer Posts Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

  • Downsides and Upsides of Altera's Configuration Via Protocol
    Yesterday, I wrote a little about reconfigurable FPGAs attached to the PCI-Express bus as an addition to the general purpose computer. The...
  • Toolchain, Check! Kernel, Check!
    I've been working on the CLFS embedded book for a few months now.  I've been learning a lot and my goal has been to get a CLFS embe...
  • KDE4 Sucks
    I upgraded to Debian 6 Squeeze last weekend on my desktop.  I was very excited to get some more up-to-date packages (git, gcc, kernel, and c...
  • Low Cost ARM Computer
    I was thinking about my ARM + FPGA computer idea some more.  There's already a lot of competition in the single board computer space an...
  • Crypto Load Balancer Using Off The Shelf Hardware
    At my day job, I work a reasonable amount of time with cryptographic and authentication systems. Lately, I've been reading about OpenCL...
  • Embedded Linux and Long Term Support / Updates - Part 2
    In my previous post about embedded Linux long term support, I neglected Ubuntu. I had not realized how much effort Canonical are putting i...
  • The TuxedoBoard has a Brain! (picked out)
    I've chosen an ARM SoC (system on chip) for the TuxedoBoard! The Texas Instruments AM1707 ARM9 core will meet my requirements. The AM1...
  • Pick an ARM ABI When Building GCC
    If you follow the CLFS embedded book for ARM , you'll see that your ABI choice isn't used until compiling packages (ie: after you...
  • SanDisk iNAND
    I stumbled upon SanDisk's iNAND products today while doing some searching about SD cards. The iNAND idea looks very appealing to me co...
  • I'm Writing a Book
    I'm writing a book about embedded Linux but I'm not going to compete with traditional technical books.  O'Reilly isn't my co...

Categories

  • beagleboard
  • blog
  • book review
  • business
  • c
  • chairs
  • clfs
  • community
  • computers
  • crypto
  • db
  • debian
  • disapointment
  • embedded
  • energy
  • fedora
  • flash
  • fpga
  • gcc
  • git
  • google
  • health
  • hp
  • internet
  • iOS
  • learning
  • license
  • linux
  • market
  • microsoft
  • movie review
  • my book
  • next steps
  • open source
  • pandaboard
  • rails
  • software
  • SOPA
  • tuxedo
  • web 2.0
  • webOS
  • windows
  • work

Blog Archive

  • ►  2012 (10)
    • ►  January (10)
  • ▼  2011 (70)
    • ►  December (10)
    • ▼  November (9)
      • Dithering, NVIDIA Quadro 1000M, and HP ZR2440w
      • Google AdWords - Gone
      • Google's New Look - It Sucks
      • Debian 6 amd64 on HP Elitebook Workstation 8560w
      • Embedded Linux Long Term - Part 3
      • Build the PandaBoard or BeagleBoard-xM x-loader on...
      • The BeagleBone!
      • Bootstrapping Fedora for ARMv7 Hard Float
      • Calendar Interface
    • ►  October (7)
    • ►  September (8)
    • ►  August (1)
    • ►  July (3)
    • ►  June (3)
    • ►  May (3)
    • ►  April (8)
    • ►  March (4)
    • ►  February (5)
    • ►  January (9)
  • ►  2010 (16)
    • ►  December (6)
    • ►  November (9)
    • ►  October (1)
Powered by Blogger.

About Me

Unknown
View my complete profile