[Nook Touch General] straygecko:
A better way - Linux only for now

I wasn't happy with booting a noogie image and not being able to back up the Nook. So I've been digging into it and using the omap3_aboot that the Nook Color stuff used wasn't doing all the proper initialization before running u-boot. Digging around I found that B&N added in USB boot capabilities when they eliminated the SD slot on the NG2. So instead of using omap3_aboot.bin we can use the x-boot.bin from the NG2 boot partition that jwxuan has posted from his NG2. More digging and I found over on elinux.org's BeagleBoard page the patch that B&N used to add the USB boot stuff to x-loader. It also included a Linux utility to boot with the patched x-loader. Thanks to Martin Mueller for the patch & utility.

The upshot of all this rambling is I have now got booting into noogie working properly so that a full backup of the Nook can be taken before tinkering. It will also boot a stock kernel just fine (which won't work with omap3_aboot). Tested on an NST but since it using NG2 x-load.bin and uboot.bin should work just as well on the NG2. For those kernel tinkers out there it will be a nice addition to their toolkit to make it easier to quickly test changes.

Its Linux only for now. I've PM'd Renate with the details and hopefully she will develop the Windows version soon. To use the attachment:

Extract on your Linux box and open a terminal in the folder created.

Power off your NST or NG2

sudo ./noogie

Plug your Nook into your PC

Your output should look like this:

gecko@gecko-VirtualBox ~/Downloads/linux-usbload-nst-ng2-noogie $ sudo ./noogie
[sudo] password for gecko:
..........

found device 0x0451:0xd00e
download ok
while loop size = 162996
filesize = 162996
f: size = 162996, addr = 0x80e80000
send_val code = 0x73425355, val1 = 0x27cb4, val2 = 0x80e80000
sending file, size 162996 8
Program stored in memory: 162996 bytes
while loop size = 1839448
filesize = 1839448
f: size = 1839448, addr = 0x82000000
send_val code = 0x73425355, val1 = 0x1c1158, val2 = 0x82000000
sending file, size 1839448 8
Program stored in memory: 1839448 bytes
while loop size = 180318
filesize = 180318
f: size = 180318, addr = 0x83000000
send_val code = 0x73425355, val1 = 0x2c05e, val2 = 0x83000000
sending file, size 180318 8
Program stored in memory: 180318 bytes
send_val code = 0x6a425355, val1 = 0x80e80000, val2 = 0x0
Sending jump 0x80e80000
gecko@gecko-VirtualBox ~/Downloads/linux-usbload-nst-ng2-noogie $

You may get an occasional failure somewhere in the process. Just power off and try again.

Depending on how your Linux system is configured you might get a whole bunch of drives automount and file manager windows open. Resist the temptation to tinker and take a backup first. You can use whatever disk imaging method you like. On my box the Nook appears as /dev/sdb - YMMV. For a simple backup you can use dd like this:

dd if=/dev/sdb bs=1000k | gzip -1 > /tmp/backups/nookbackup.full.gz

Make sure the uncompressed size is about 4GB. Then go ahead and root. The same methods used for Windows can be used on Linux. But you'll have access to all the partitions so you do things like modify build.prop and install busybox in the system partition without having to reboot and use adb. Patching the uRamdisk on Linux without Renate's nifty Windows utility requires a couple of more commands though - lots of info on extracting and building ramdisks with a quick google.

Happy rooting!

Edit: Only included an NST kernel. See later post for separate NST & NG2 versions.