Complete Guide to Installing, Configuring CyanogenMod 7 Stable Release (Android 2.3, Gingerbread) on the Nook Color
If you are new to Nook Color operating system and install options, I strongly recommend reading this guide to picking your Nook Color operating system and installer. And if you're just starting to explore what Android is and are a little hesitant, you can always try Android for free on your computer with a virtual machine.
Within 30 minutes your Nook Color can be running the latest stable, available version of Google's Android 2.3 (Gingerbread) OS (technically the CyanogenMod 7 Stable manifestation of it), and thanks to its use of the SD card, all safely achieved without altering your existing Nook Color's setup or violating the warranty. Included in all the new features, performance benefits, and elevation of your own personal coolness, you get Bluetooth support. The Nook Color can do VOIP (e.g., Skype), GPS navigation, sending music to wireless headets or stereos, and much more!
My goal in this document is to help less technical people through the slightly more technical and slightly more we-assume-you-know what-you're-doing verygreen's CyanogenMod 7 (CM 7) to SD install instructions, covering things left out, additional problems you might encounter, and configuration you might want to do post install. If you have any basic questions or run into trouble, please check out this Nook Color Modding FAQ which might save us both some time.
Be aware, I experienced lingering and frustrating stability and file system corruption issues with several installs to several SD cards. Other people are not having this experience, but if you do be aware that your SD cards may be too "fast". Your choice is then to try and find other workable SD cards or do an eMMC (internal memory) install, such as you'll find in my guide to phiremod install on the Nook Color.
Step 1: Installing CM7 Stable to your SD card
The first step is to follow verygreen's instructions on how to take the SD card image he made, combined with the latest updated CM7 install, combined with the Google apps pack (gapps) to get a bootable system.
Before you begin, though, let me give you some tips.
- Windows users will need Win32DiskImager to flash the requisite .img file to your SD card. It's free, download Win32DiskImager now.
- Mac / Linux / FreeBSD users will use "dd" to flash the requisite .img file to your SD card. The command you will execute looks like:
# dd if=generic-sdcard-v1.1.img of=/dev/sdcard
If needed, replace /dev/sdcard with the real path of your mounted SD card and specify the real path of the data image (after unpacking the gz version you downloaded).
- I strongly recommend against using class 10 rated SD cards! Testing over several days proved that my system would not run reliably (tons of "force close" errors and the file system reverting to read-only) on a class 10 rated card, the Patriot LX series. Whereas the system works flawlessly on my PNY class 4 card, which cost less than half as much and actually operates just as fast, according to SD Tools it writes at 12 MB/s and reads at 84 MB/s read, which exceeds class 10.
- If you insist on using a class 10 card, the verygreen install script will probably hang when it goes to create the disk structure. A workaround for this is to first burn the image to a working (and dirt cheap, $7-10) class 4 PNY or Sandisk (or other) microSD card (of equivalent or, to be safe, smaller size) and then when you've got the install completed clone the microSD card by using Win32DiskImager to create a .img file of the working class 4 SD card and then write that image to your class 10 SD card. It's a hassle, you'll be waiting 15 minutes to read, 15 minutes to write, but it works! And you've now got a backup to boot. Assuming your class 10 was larger than your class 4 SD card you can then expand the virtual SD partition using any non-destructive partitioning product (the partition is fat32) so that you get all your space used. If you've got Windows 7, use its Disk Mangement feature to safely expand the partition, if you've got another Windows version you may need to use EASUS's Partition Master Professional Edition ($19) or Acronis' DiskDirector ($49).
- The CM7 build you want is "update-cm-7.0.0-encore-signed.zip", so make sure you get that one! (Obviously if you're reading this document in the distant future, make your best choice!)
- You might want to initially avoid the Dalingrin OC kernel/ROM upgrade instructions for now, I'll cover that separately below.
- If you get hung up trying to install the Google apps pack because it seems like the recovery console isn't installing it, you may be going into the wrong recover mode or no mode at all! Turn off the device and then turn it back on holding both power and N for 6 seconds, one to two seconds after the "Touch the Future of Reading" comes on the screen. You'll see the Linux penguin at the top and a bunch of console messages, one of which will indicate it's looking for "gapps". If you don't see that you're not in the right recovery screen!
Those tips being given:
Go to and follow carefully verygreen's CyanogenMod 7 (CM 7) to SD install instructions!
The entire process will only take you about 15 - 20 minutes. If you were using a class 10 card you can do the class 4 to class 10 clone at this point, or at the very end when you've got everything set up, it's your choice.
Step 2: Turn on Bluetooth (optional)
If you're ready to turn on Bluetooth, there's a trick. If you don't do this, Bluetooth will just refuse to turn on / be enabled.
- Turn off wifi (Settings > Wireless & Networks > Wi-Fi)
- Turn on Bluetooth (Settings > Wireless & Networks > Bluetooth)
- Turn on wifi
It seems a bit odd, but that's what you have to do. From then on out it'll work fine.
Bluetooth Keyboard Instructions
Pair as you normally pair a Bluetooth keyboard, that all works just as you'd expect. But, if you don't do this next step you'll likely want to throw your keyboard and Nook Color out the window within the first 30 minutes of typing. When you type on your Bluetooth keyboard the virtual keyboard will very likely appear, or re-appear if you've hidden it. I am not sure why this is. You close the keyboard, you type, maybe it stays closed for a moment or two, but invariably it opens up again. And, because it's open not only do you have much of your screen real estate wasted by a keyboard you're not using, your physical keyboard presses will often linger long enough to pop up the Gingerbread character selector. In other words, type "e" on the keyboard and about 5% of the time it will think you held "e" down in order to bring up the list of international "e" variations, which you then need to close. And, as if that's not annoying enough, the predictive text completion that will go on with the virtual keyboard open will lead to sometimes sluggish responses to your keypresses, and even missing text. The solution? Buy and install the Null Keyboard ($2)! It's money well spent. You install it, enable it in settings, and then when you are going to use your BT keyboard you hold your finger down on an input box for a few seconds, it asks you to choose your input method, you choose Null Keyboard, and voila! You can now type on your BT keyboard with joy. And when you put away the keyboard don't forget you'll need to switch the input back to your Android (or Gingerbread) keyboard next time you need to type with the virtual one.
Step 3: Adding Important Apps
CM7 is great, but you'll need some other free apps to really get the best experience out of it. The list had gotten rather long so I have now put it on its own page. I strongly recommend you go now and install all of the free Must Have Apps for your Nook Color.
Obviously you can add more apps beyond those, but you walking that list you will cover the basics and be in good shape to proceed.
Step 4: Overclocking!
If you want to at this point you can try some overclocking. It appears to be pretty stable, pretty safe, and potentially makes your Nook Color 40% faster than when you bought it! It can arguably run as fast as the Samsung Galaxy Tab!
This process is pretty simple, it involves replacing the uImage file on the SD partition of your microSD card with an alternative that has been "hacked" for performance (and/or features). The one everyone is using now for CM7 is Dalingrin's.
- Download the 2.6.29 Dalingrin OC kernel (or earlier version, DO NOT DOWNLOAD THE LATEST) for CM7 on SD card. You do not want to download the latest, it requires a test build of CM 7 that isn't stable. Do not pick the wrong kernel! Follow the link in Dalingrin's kernel announcement thread for the “Froyo and CM7 kernel”. Then choose the most recent dated folder, then pick the kernel called “update-CM7-dalingrin-OC-sd-MMDDYY.zip” (where the MMDDYY is replaced with the date of the recent version). MAKE SURE YOU PICK THE ONE WITH "CM7" AND "SD" IN THE NAME!
- On your Nook Color go into the installed "Terminal Emulator" app, type "su" to make you the superuser. You should see the prompt change to "#" instead of "$". If this doesn't change, close out and try again. I've seen Terminal Emulator seem to have issues getting super user permission at first. Once it has accepted your "su" and the prompt changes, type in "rm -rf /data/dalvik-cache/*". As soon as this is done, shutdown your Nook Color (hold the power button down, then choose power off) and put the microSD card in your computer.
- Rename the existing file in your mounted SD card "uImage" as "uImage.original".
- Open the kernel file you downloaded and copy the "uImage" file inside it to the SD card, so it sits next to the original uImage file.
- Safely eject the SD card from your computer, pop it in your Nook Color and power on!
Your Nook Color will now be running the latest kernel!
To turn on the overclocking, go to Settings > CyanogenMod Settings > Performance > CPU Settings > Max CPU Frequency.
If something goes wrong and your device won't boot or in some other way seems seriously screwed up, just shut down, pop out the microSD card, put it back into your computer and delete the "uImage" file, and rename the "uImage.original" to "uImage". Dealing with any problems is beyond the scope of this article, your best bet for support would be the people in this thread. And don't forget, we're doing all this on the microSD, you can always pop-out the microSD and your original Nook Color is still there.
Step 5: Backup
You really should back up at this point. Shut down and make an image of your SD card if possible. Things can easily get screwed up, corrupted, etc. with an alpha-stage release like this, so it's best to be able to easily get back to where you were. I've seen a lot of things get corrupted and had to reinstall more than a few things. Better safe than sorry. Also, use Titanium Backup to backup your app data!
Step 6: Keeping Up to Date
Once you've got your system up and running you'll inevitably want to update it as new bug fixes and features are released. This process is a lot less painful than it used to be, thanks to the clever way these installs are distributed and also thanks to the great apps available for backup and restore.
I do not recommend people update to the 2.6.32 kernel yet, since it requires the test/dev version of CM 7 and isn't ready for prime time yet. If you do you'll also need to update u-boot file.
The details of how you do this are too big to insert here, but can be found in this separate guide to keeping your Nook Color up to date.
Post Script - Addendum
If you see a lot of "force close" events happening randomly or you find that files you were working on suddenly become unusable, your problem is most likely with your SD cards. You can try to find other SD cards that will work, or you can try an eMMC (internal memory) install such as the one I describe in my guide to phiremod install on the Nook Color.
I've been running CM7 for a week now, and tried quite a few kernels along the way. I am mostly thrilled. My setup has been stable ever since I ditched the class 10 rated cards. Everything I need works, including most notably Bluetooth! Admittedly the range is terrible, but good enough for my purposes, and I'm sure range will improve soon. Wifi is stable, since the device never sleeps. And battery life is good, though because the device never sleeps it isn't nearly as good as a stock Nook Color. The video is works at very respectable frame rate since the RC4 update. And I've had no trouble with overclocking.
CM7 Versus Froyo
CM7 feels much faster than Froyo, the responsiveness of the interfaces, the boot time, maybe it's all in my head, but hopefully not. One major issue gone is the crippling slowness of Market downloads/etc. I experienced with Froyo on a class 4 SD card were totally gone on CM7 with the same class 4 SD card.
Don't Forget to Use Your Internal Memory!
You can access the contents of your Nook Color's original, internal memory within your CM7 OS by browsing to /mnt/emmc with an appropriate file manager (see above). In this way you can still use most (5+ GB) of your internal storage for things like music and video files (not apps, since the system doesn't know to use that location). So don't forget that space is available if you need it.
Responding to Force Close Messages
Unfortunately at this stage you can expect some instability in the OS, and this seems to manifest itself primarily as "force close" messages when an app fails. My experience suggests the best thing to do when you get any such message is to reboot. On my system a force close can correspond with the file system having become or about to become read only. I assume the OS tries to protect itself by becoming read only and once the system starts going, baby, it's gone! So, the best policy seems to be to immediately reboot, and if you have any more problems on reboot do the "rm -rf /data/dalvik-cache/*" and reboot again.
One particular force close message I got frequently was from Google apps ("gapps") and Google framework. I suspect the issue related to network issues, perhaps it trying to run when the wifi wasn't yet reconnected after a wake. I was able to eliminate this by disabling the automatic sync, go to Settings > Accounts & sync > Auto-sync and set it to unchecked. This means my email won't automatically come in, but I can manually retrieve it by choosing "Refresh" from the Gmail menu. Personally, my phone alerts me on every email, so it's not vital for my tablet to do it as well. Warning, do not uncheck the "Background data" checkbox on the same page, Market and a few other more vital things will refuse to work if you do that.
Another cause of force closes seems to be corrupted installs / configuration / filesystem. If an app in particular isn't working try the following, first one, then if you're still having the problem go to the next one, and so on:
- Clear dalvik-cache and reboot (rm -rf /data/dalvik-cache/*). Then reboot.
- Use ClockwordMod's permission fix option. Then reboot.
- Backup your data related to the app (using Titanium Backup) then uninstall and reinstall the app using Market. And only if the app is working try to restore the data (only) from the backup you made.
This approach has resolved several different force close problems I had.
(FYI, ClockworkMod still crashes and reboots the NC when I try to back up a ROM, and refuses utterly to enter CWM recovery on a reboot.)
As I mentioned above, further testing has suggested that most of my were the result of my using a class 10 card. Since I cloned my SD card from class 10 to class 4 I've seen almost no instability, and what problems remain are likely down to problems with individual applications and their compatibility. I'd encourage people to just use class 4 or 6... And as I mentioned, my PNY class 4 cards all perform as well as my class 10 card, but with greater stability!
Dalingrin is frequently releasing new kernels, and it's tempting to jump to the latest, but always check the change log first (in the beginning of his thread) to see if it resolves any problems you have. Sometimes you may wish to hold off and see how others embrace it. Ultimately it's a matter of the bugs you can live with versus the ones you can't.
I'm thrilled with my new mobile set up, which was only possible with the Bluetooth ability of CM7! I used to do the same with my OQO Model 02, but sadly that device was a little before its time...
(The iGo Stowaway keyboard is the single great gadget I've ever had! I got it for $30 at a Tuesday Morning discount store, and four or five years later it's still the best mobile keyboard I've seen, and they are so loved you can't get an old stock one online for less than $175!)
If you are new to Nook Color operating system and install options, I strongly recommend reading this guide to picking your Nook Color operating system and installer. And if you want something even better and easier than the Froyo install documented below, check out my more recent Complete Guide to Installing CyanogenMod 7 (CM7) on the Nook.
I recently stumbled onto the most amazing tablet I've seen yet, amazing not because it rivals Apple's iPad or Motorola's Xoom in features but because it blows them away in price (about $250), utility (it's screen is just big enough to be comfortable, just small enough to fit easily in a jacket pocket), and style (it's got a quirky, rugged charm that grows on you). The Barnes & Noble Nook Color was not intended to be a tablet, it was intended to be an e-reader, but some clever folks have figured out how to unleash its potential by unlocking and/or replacing its limited version of Google's Android OS, and by doing so they have created what I think is one of the best tablets out there. It may lack a forward and rear facing camera, it may lack a microphone, but by god is this thing a pleasure to own. And now I'm going to share with you the lessons I learned in a brutal, sleepless weekend trying to get up to speed with the Nook Color modding community and what they could do. If you have a Nook Color and you follow through with the steps outlined in this guide, in a matter of an hour or two you'll have a very stable, highly functional, overclocked Android tablet running Android 2.2 (aka Froyo); more recent versions, 2.3 (Eclair) and 3.0 (Honeycomb), have not yet been sufficiently tailored to be reliable on the Nook Color. Your new Froyo Nook Color will be almost as stable a store bought tablet at half the price, while running at 1.1 GHz, 40% faster than the original Color Nook and about the same speed as other much more expensive tablets like the Samsung Galaxy Tab.
The approach documented here is to run the OS on a bootable microSD card rather than replace the original Nook Color firmware. I like this approach because the performance I'll experience is roughly similar to that using the built-in memory, and I can still access the original device in its original form if I like, for the e-reader features, should I choose to use them. And if the device proves itself defective in time, the device is still "original".
Step 0: Buy a Nook and a High Speed microSD Card
Before we begin you'll need the hardware, specifically:
- Barnes & Noble Nook Color $249
- Buy a microSD card $7 - 15
You want to make sure you get a microSD card that is fast, but stay away from the class 10 rated cards! I can recommend the PNY class 4 microSD cards because of the three I've purchased all perform at class 10 speeds (they all write at ~12 MB/s and read at ~84 MB/s) and they actually work well in the Nook Color. The class 10 Patriot LX SD cards I bought behaved very badly, making my system very unstable; the kernel would freak out randomly and every app would start to crash as the filesystem became read only. My experience was not unique, people using all makes of class 10 cards have had problems getting them to work reliable (if at all) with the Nook Color.
Step 1: Make Android Froyo SD card
Simply follow the painless guide on NookDevs and within a few minutes you'll have a bootable microSD with Froyo on it that you can stick in your Nook Color:
You'll only be using a fraction of the total size of the card at this point, we'll cover accessing the rest of it later.
Step 2: Android Debug Bridge
To add the initial, critical apps (e.g., Google's Market, app store) and do the required customization you will need to install the Android Debug Bridge (ADB) tools as well as the necessary USB drivers, and a Java JDK if you don't have one:
The process isn't fun, but you only have to do it once.
Make sure to change your Windows PATH variable to include the platform-tools folder (where adb.exe is located). I have found that some adb commands will not accept the path to a file as a parameter, and will tell you the file does not exist even though it does (very frustrating and confusing). By including the platform-tools directory you can run adb from the directory where the file in question is so that you have no such problems.
Step 3: Basic Froyo Customization
It is now time to do the basic mods of your vanilla Froyo install to make the Nook Color a fully functional (and usable) tablet. Here again we rely on the great:
Walk through this document doing all the items listed. Be careful to note the text indicating which steps are not required because your version of Froyo already includes those enhancements. Also, I recommend against doing the Adobe Flash step listed on this page, as it did not appear to do anything for me. Below I list apps you should add to your device and Adobe Flash will be covered there.
Ignore the section on overclocking, we'll tackle that separately down below.
Softkeys Versus Remapped Volume Keys
The reason you want to map the hardware keys is because the Nook Color is missing two critical physical buttons that you desperately need, Menu and Back. If you don't map the hardware keys (in the section Remapping Volume Buttons to MENU and BACK Buttons) you can use the Softkeys app, which will make virtual buttons appear on screen when you need them by clicking an always-on-top virtual button. Personally I think you'd be silly to use Softkeys, since these keys are so needed. Adjusting your volume is far less critical; I separately add a widget to the home screen to easily adjust volume.
Slow to Start
When you first run your new Froyo install you may initially feel the OS is painfully slow. Not to worry! Services are still starting up and various caches are being created. After an hour or two of use the responsiveness will be much improved.
I haven't read about this happening for anyone else, but on my Nook Color the battery indicator went crazy at some point during the upgrading, artificially reading 53% when the battery was nearly full, and at another time reading -20435%. I left the device plugged into the wall over night and when I turned it on in the morning the battery was reading properly, and has been ever since.
Step 4: Adding Important Apps
Now it's time to install a bunch of apps (almost all of them free) to get the most out of your Froyo experience. The list of apps I was recommending got rather long so it now has its own page. I strongly recommend you go now and install all of these Must Have Apps for your Nook Color.
Obviously you can add more apps beyond those, but you walking that list you will cover the basics and be in good shape to proceed.
Froyo seems to have a serious peculiarity where downloading apps in the Market may go very, very, very slowly. I experienced this with my class 10 performing but class 4 rated PNY cards, but others reported no such problems when they used a class 6 card. When I installed Gingerbread / CM 7 instead of Froyo the problem was completely absent.
Step 5: Backup Your Progress
Now we back up the progress we've made so far, so that if something goes wrong in the next step (replacing the kernel) we can just revert and try again.
Shut down your Nook Color. Remove the microSD card and plug it into your computer's card reader.
If you're a Windows user, use the free software Image Writer to create the backup image, if you're on anything else you can use "dd".
The backup might take 5 - 15 minutes, depending on the size and speed of your card.
Step 6 : Upgrade the kernel!
If you don't know what the kernel (aka ROM) is, it's the core OS code upon which everything else depends. And we're now going to replace your stock Froyo kernel with a greatly enhanced version. The main reason to do this is to allow overclocking of your Nook Color, but it also fixes things like volume issues with the headphones, solves touch screen problems, and adds Bluetooth support!
The first thing to do is to download the kernel you need. We're going to use Dalingrin's OC (overclocking) kernel. Follow the link in Dalingrin's kernel announcement thread for the “Froyo and CM7 kernel”. Then choose the most recent dated folder, navigate the hellishly confusing minefield that is the Mediafire download hosting site, and get the download you need which will be called “update-froyo-dalingrin-OC-sd-MMDDYY.zip” (where the MMDDYY is replaced with the date of the recent version).
Unzip this file to a folder you can easily get to in a DOS window. FYI, the only file we will actually be needing in the zip is the “uImage” file, which is the new kernel.
The installation path given in the discussion thread isn't right for our Nook Color with Froyo SD. So, instead of what they say, do this:
> adb shell mount -t vfat /dev/block/mmcblk1p1 /sdcard
> adb push uImage /mnt/sdcard/uImage
And immediately after this, clear the Dalvik Cache (it's a cache of JIT binaries):
> adb shell
# rm -rf /data/dalvik-cache/*
Your Nook Color will shut down and when it comes back it will be running the latest kernel!
If something goes wrong and your device won't boot or in some other way seems seriously screwed up, just shut down, pop out the microSD card and use Image Writer to restore the image you previously backed up. Dealing with any problems is beyond the scope of this article, your best bet for support would be the people in this thread. And don't forget, we're doing all this on the microSD, you can always pop-out the microSD and your original Nook Color is still there.
If you experience subsequent WiFi problems (such as wifi refusing to stay on, where it loops trying to turn it on then going off) clear your Dalvik Cache with the adb shell and rm -rf /data/dalvik-cache/* reboot approach I listed above! Or buy the pro version of Titanium Backup which includes a cache cleaning feature.
ClockworkMod Recovery is a system which facilitates kernel upgrades and prevents you from getting into a situation where you would need to revert to a previous backup of your kernel/ROM. Serious kernel upgraders would be better off using that approach, but if you're just doing it once, or every once in a while, the above approach should suffice. Unfortunately, for some reason it won't work properly on my (and presumably this) installation of Froyo to an SD card. When I try to back up ROMs it crashes the Nook Color, and when I try to go into ClockworkMod Recovery (from the app or from cold boot and the Power + Nook button combo it ignores me); it does however sometimes randomly drop me into ClockworkMod Recovery after a spontaneous Nook Color crash.
Step 7: Overclocking
Go into the CPU Tuner app you installed and adjust the upper limits of the CPU to 1100 MHz. I set the upper limit to 1100 MHz for only the Performance, Good, and Normal profiles. I made sure the lower limit was 300 MHz for all profiles. Most people report no problems overclocking their Nook Color. If you have problems, you can always revert your CPU Tuner settings.
Step 8: Repartitioning your Virtual SD Card
The final task is to expand the partition containing your virtual SD card. At the moment you are using only 2 GB of your real microSD card, because that was the size of the image we used to write the original Froyo card. The rest of the microSD card is currently wasted, and we want to add that the partition that is used for your virtual microSD card. Repartitioning while preserving your data requires special software that can expand a Linux partition. One such product for a Windows user is EASUS Partition Master, which is under $20. Simply shutdown your Nook Color, move the microSD card into the PC's card reader and use that software to expand the sdcard partition to occupy the rest of the card; if anyone knows of a good free alternative, let me know!
Hopefully my time wasted figuring all this out will be your time saved and enjoying a truly fantastic tablet experience.
While your Nook Color may not compete with the iPad 2 in terms of power and features, you'll probably find you use it more than you would an iPad 2 because it's compact enough to always be with you.
The wifi turn of/off loop (mentioned above) can be pretty irritating; the solution involves rebooting and clearing the Dalvik Cache. It didn't happen to me at all yesterday, but did three times today. A solution I'm now trying is using the "Green Power FREE battery saver" app.
Bluetooth is available in the Nook Color, meaning you can use Bluetooth keyboards, GPS dongles, and audio devices! But... the Bluetooth features are not available as yet in the Froyo kernel. The features are available in the CM7 kernel. Since I ran the CM7 kernel accidentally a few days ago on my Froyo install without seeming complaint I'm wondering if perhaps switching to the CM7 kernel would give my Froyo Bluetooth support. I'm guessing running the CM7 kernel on a Froyo install would lead to subtly serious problems in the long run. I've got a great iGo Stowaway Ultra-Slim Bluetooth keyboard ready to use, so this deserves more investigating.
CyanogenMod 7 Early Experience
Just today I got a new class 10 microSD card in the mail and decided that I'd give CyanogenMod 7 (CM7) a try since "verygreen" had a great description on how to install CM7 to SD card and it sure looked easy. And, well, it was! Within a couple hours I'd installed CM7, ported all my apps (and data) over (with Titanium Backup's help), installed Dalingrin's OC latest kernel! I wanted to explore CM7 because people are getting Bluetooth working on it, and I wanted that. Also, others were talking about how it was "better". So far all I can say is it feels much faster! The major slowness of Market downloads/etc. I experienced with Froyo on a class 4 card were totally gone on CM7. Also, a pretty cool Softkeys like set of buttons is in the status bar at the top as part of CM7, though unless you want to remap the hardware keys you still need something when apps go fullscreen. This time I tried Button Savior which I like a lot better than Softkeys. I elected not to remap the hardware keys this time, since the status bar solution means I'm fine 85% of the time, it's just when fullscreen is employed that I need virtual buttons, and Button Savior's solution is elegant enough for that. Had a few hiccups during the process, but nothing that you'll probably experience. I did get BT working with my iGo Stowaway keyboard, which is awesome! (The secret is, turn off wifi, reboot, then turn on BT, then turn wifi back on.) The Dalvik Cache got screwed up at one point and everything was doing force closes. I manually deleted the cache and rebooted, since then things behaved. Also ran ClockwordMod's permission fix feature, just in case. ClockworkMod still won't back up my ROM. Everything so far seems great, except video... Video framerates are like 8-10 fps, across the board in every app and even as you scroll windows in the OS. I'm sure this will get fixed soon, but just be aware that's what you'll have right now if you jump over to this. Froyo had perfect video playback, but no BT.
Here are some photos from my sweet CM7 RC4 setup (with iGo Stowaway Bluetooth keyboard)!