Some of you might know that I've been working on getting Ubuntu 11.10 running on the Nook Tablet. Why Ubuntu 11.10? It's optimized for touchscreen. My work with Ubuntu is not totally ready yet. The touchscreen is totally wonkey and unusable for touch input.
...Well, without a 3.0 kernel tailored to our device, Ubuntu is quite unusable as a Graphical User Interface. I've tried to compile a few times without any real results to report. The best results I've come across use a 2.6 kernel based on the kernel used for our device by Android. Anyway, if anyone can help get us a operational 3.0, 3.2+ kernel with full support for our device, I can get Ubuntu running.
However, all is not lost. Ubuntu DOES boot on a 2.6 kernel and it WILL perform most tasks that do not require special device control, like wiping the disk and reflashing. I've come up with a total wipe and restore program for SDCard based on ubuntu.
So, as a result of my work, I would like to present the first ever Ubuntu Recovery. This will totally wipe your device. With the exception of the ROM Partition which contains serial information, every single partition will have zeros written to it then flashed with just enough to perform an initial factory reflash. Normally when you perform an update or flash of a device, it is simply formatted. A formatted device can be unformatted. A zeroed device cannot be unformatted. All information is overwritten with zeros.
This will also work if you've damaged the bootloaders or recovery partition.
how to create your own bootable Ubuntu Recovery SDCard
You will need:
- A Class 4 SDCard with at least 4Gigs of space
- 6 gigs of free space (for downloading sdcard image and uncompressing)
- The SDCard Image: http://ge.tt/9rVFXxC?c
- Open a terminal in Ubuntu by typing "terminal" in the search bar then hit enter
- uncompress the Downloaded SDCard Image
cd ~/Downloads tar -xvwzf ./AdamOutlerUbuntuTotalReFlash.tar.gz
- With the SDCard or reader removed from the computer, get a list of all disksCode:
- Insert your sdcard or usb sdcard reader, then press the up key and enter to repeat the last command. The new device will show up as sdb, sdc, sdd or sde. each new device gets a higher letter. Note this newly plugged in device.(ie. /dev/sdc)
- Use the following command to make your new SDCard, where "sdc" is the name of your SDCard device.
sudo dd if=./AdamOutlerUbuntuTotalReFlash of=/dev/sdc bs=4096; sync
- Shove it in your nook and turn it on by inserting the USB cable(do touch the power button, just insert the usb cable). Your nook will boot Ubuntu and perform a total factory restore. The process will take 15 minutes to complete with a Class4 micro SDcard.
Pro-tip: to copy and paste easily in Ubuntu, highlight text in the browser, then press the middle mouse button on the terminal.
Pro-tip: The tab key will auto-complete filenames.
Thanks to cyberma007 for Windows instructions.
- Extract AdamOutlerUbuntuRecoveryImage with Winrar
- Rename the resulting file to Add the .img extension to the filename
- Download and open Win32 Disk Imager. note: The open source project can be found here: https://launchpad.net/win32-image-writer
- Choose the drive letter of your SD Card from Win32 Disk Imager
- Click the Write button
- Turn of your nook and put in the SD Card and turn it back on.
Your Microsoft®™ Windows©®℠ computer sucks at reading anything except Microsoft formats. It cannot read the Open Source Linux EXT4 format. You will only see one partition after creating the SDCard but it will work fine. If you want to inspect the contents, install a Linux distribution on your computer.
Theory of operation
how it works
When you insert the SDCard and turn on the device this is what happens.
- The device boots from SDCard.
- The Ubuntu GUI will load. Personally, I recommend that you do not touch anything
- You will be presented with a 100 Second countdown
- If you wish to stop, press and hold power for 10 seconds before flashing has started
- You will be presented with a progress bar status update only. Closing this will not affect the process. the only way to stop is to turn the device off.
- At this point, the flashing process will begin
After Ubuntu has booted here is the procedure which takes place
- MLO partition will be written with all zeros, then flashed
- U-BOOT partition will be written with all zeros, then flashed
- RECOVERY partition will be written with all zeros, then flashed
- BOOT partition will be written with all zeros, then flashed
- BOOTDATA partition will be written with all zeros, then flashed
- BOOTDATA is mounted and a command is sent to factory reset the device upon next boot.
- FACTORY partition will be written with all zeros, then flashed in two parts to work around a 120 second filesystem operation bug.
- A sync operation takes place to ensure all data is written to the device
- SYSTEM partition is wiped with all zeros
- SYSTEM partition is recreated as a blank EXT4 filesystem
- CACHE partition is wiped with all zeros
- CACHE partition is recreated as a blank EXT4 filesystem
- SDCARD partition is wiped with all zeros
- SDCARD partition is recreated as a blank FAT32 filesystem
- A sync operation takes place to ensure that all data is written
- You are notified to press and hold power. When the screen goes black remove your SDCard
It's my intention that this may help someone. This will at least be one more method for people to try before giving up on restoration to 1.4.0. I generally receive 5-10 PMs per week requesting support on the acclaim_update.zip. Hopefully this will reduce those and give people another option to try.
Ubuntu isn't ready for daily use yet, but this recovery tool is more thorough than any other recovery method out there. I need some help porting the 3.0 kernel to the Nook Tablet.