Dissecting A Firmware Image

dissecting-a-firmware-image

[Leland Flynn] did a great job of picking apart the firmware image for a Westell 9100EM FiOS router. Unfortunately he didn’t actually find the information he was looking for. But he’s not quite done poking around yet either. If you have never tried to make sense of an embedded Linux firmware image this serves as a great beginner’s example of how it’s done.

He was turned on to the project after port scanning his external IP and finding a random login prompt which he certainly didn’t set up. Some searching led him to believe this is some kind of back door for Verizon to push automatic firmware updates to his router. He figured why not see if he could yank the credentials and poke around inside of the machine?

He started by downloading the latest firmware upgrade. Running ‘hexdump’ and ‘strings’ gives him confirmation that the image is based on Linux. He’s then able to pick apart the package, getting at just the filesystem portion. His persistence takes him through extracting and decompressing three different filesystems. Even though he now has access to all of those files, broken symlinks meant a dead-end on his login search.

[CNLohr]’s Microscope Slide Linux AVR Minecraft… Thing

We’ve been following [CNLohr]’s process of creating an AVR-powered microscope slide running Linux and interfacing redstone circuits in Minecraft to real world electronic for a while now, but we’re really at a loss for words on how it works. Well, now there’s a video explaining everything you want to know about this amazingly complicated and overwrought thing.

The device is powered by an AVR microcontroller and Ethernet controller running [Fabrice Bellard]’s JSLinux in a browser. [CNLohr] added a few bits to JSLinux allowing him map the x86 IO ports emulated inside JSLinux to the AVR’s IO ports. This allows him to query the status – both analog and digital – using just a browser. Very cool, but [CNLohr] can also run his Minecraft server optimized for 8-bit devices on this microscope slide server to create a bridge between real electronics and redstone circuits.

To sum up what’s going on here, [Bellard] created an x86 emulator in JavaScript, and put Linux on it. [CNLohr] is serving this from a microcontroller attached to a circuit built on a microscope slide so he can blink an LED from within Minecraft. It’s the most beautifully over engineered and useless thing we’ve ever seen, basically.

In the video after the break, you can see [CNLohr]’s overly convoluted walk through of what’s going on with this microscope slide server. As a little bonus, you can also catch a glimpse of Hackaday at 00:20 in [CNLohr]’s most visited / new tab thingy in Firefox. We’re honored, really.

Continue reading “[CNLohr]’s Microscope Slide Linux AVR Minecraft… Thing”

Breaking The New Neo Geo Handheld Wide Open

neo

In case you weren’t aware, there’s a new Neo Geo console on the block. It’s called the Neo Geo X and brings back more than a few pains of nostalgia for classic arcade games of the 90s. After receiving their brand new Neo Geo portables, members of the Neo Geo forum decided to do a teardown on one of their newest consoles and found something interesting: this thing was made for hacking.

Officially, the Neo Geo X will get new games released on SD cards. The first run of these consoles – the gold edition – have 20 games preloaded onto the system convientently stored on a microSD card buried underneath the screen. After looking at this microSD card, forum user [Lectoid] discovered the 20 preloaded games and the bios for the system, all completely unlocked and ready for hacking.

Already a few forum members have  the AES Unibios running on this tiny portability Neo Geo, giving them the capability to play every Neo Geo game ever made. Since the Neo Geo X uses the same processor as some other handhelds, there’s great hope for completely unlocking this new console and running emulators on it.

Common Linux Tools On Android Without Root By Installing BusyBox

[Adam Outler] shows us how to expand the Linux tools available on Android without rooting the device. He does this by installing BusyBox. The binary is copied to the device using the Android Developer Bridge. He then opens an ADB shell, adds execution permissions to the binary, and runs it. BusyBox calls itself the Swiss Army Knife of Embedded Linux. It provides a set of very common tools which you’ll find useful in your tinkering. The one that [Adam] shows off in his video is the vi editor, but the basics that make a shell work are all there like: ls, mkdir, grep, dmesg, mount… you get the point.

So what are you going to do with your unrooted device now that you have these commands at your disposal? That’s really for you to figure out. [Adam] continues his demonstration by installing a package that does require root access. It’s BotBrew Basil, which adds apt-get and a few more complex packages. He then uses vi to write a C++ Hello World program, then compiles it and runs it. So if you’re looking to do some development on your phone this is one way.

Continue reading “Common Linux Tools On Android Without Root By Installing BusyBox”

Discrete 6502 Processor Sucked Into Linux By A BeagleBone

Often when we see projects using embedded Linux we think of them as not being hardware hacks. But this is a horse of an entirely different color. [Matt Porter] is leveraging a little known feature to directly access a 6502 processor from inside a Linux environment. In other words, this hack lets you write code for a 6502 processor, then load and execute it all from the same Linux shell.

The project leverages the best parts of the BeagleBone, which is an ARM development board running embedded Linux. It’s got a lot of GPIO pins that are easy to get via the boards pin sockets. And the design of the processor makes it fast enough to work well as a host for the 6502 chip. Which brings us back to how this is done. The Linux kernel has support for Remote Processors and that’s the route [Matt] traveled. With everything wired up and a fair amount of kernel tweaking he’s able to map the chip to the /dev/bvuart directory. If you want all the details the best resource is this set of slides (PDF) from his talk at Embedded Linux Conference – Europe.

This is one way to get out of all that hardware work [Quinn Dunki] has been doing to build her own computer around a 6502 chip.

[Thanks Andrew via Dangerous Prototypes]

Mesh Networking With Multiple Raspberry Pi Boards

Since he’s got several Raspberry Pi boards on hand [Eric Erfanian] decided to see what he could pull off using the robust networking tools present in every Linux installation. His four-part series takes you from loading an image on the SD cards to building a mesh network from RPi boards and WiFi dongles. He didn’t include a list of links to each article in his post. If you’re interested in all four parts we’ve listed them after the break.

He says that getting the mesh network up and running is easiest if none of the boards are using an Ethernet connection. He used the Babel package to handle the adhoc routing since no device is really in charge of the network. Each of the boards has a unique IP manually assigned to it before joining. All of this work is done in part 3 of the guide. The link above takes you to part 4 in which [Eric] adds an Internet bridge using one of the RPi boards which shares the connection with the rest of the mesh network.

If the power of this type of networking is of interest you should check out this home automation system that takes advantage of it.

Continue reading “Mesh Networking With Multiple Raspberry Pi Boards”

Linux On A Nspire CAS CX Calculator

It’s great to see Linux running on a device in a way that was never intended. [tangrs] has successfully run a Linux kernel on the ARM based Nspire CAS CX graphing calculator. He’s developed an in-place bootloader that allows a kernel to be loaded from within the stock Nspire OS. It also allows for peeking and poking at memory for debugging.

[tangrs] also managed to get USB host mode working on the calculator. This allows for a USB keyboard and Wifi dongle to be connected. At this point, the calculator can connect to the internet and browse using a text-based browser: Links. The calculator runs a SSH server for remote access, and graphical browsing is in the works.

It looks like this calculator is on the way to being a handheld Linux device. All of the source for the kernel and bootloader are available on [tangrs]’s Github and updates on his blog. After the break, check out a video of text-based browsing using a full keyboard.

Continue reading “Linux On A Nspire CAS CX Calculator”