**** Cassettepunk ****

Technological Surrealism / Alec Nerds Out

Phonetendo

The Phonetendo takes an unmodified ACN videophone, and by inserting an SD memory card, turns it into a proof-of-concept video game platform.


ACN operates by selling phone service contracts; these include the physical phone hardware. Without ACN’s services (which have often been called disappointing), these devices are essentially garbage.

Through a combination of reverse engineering by the artist and online research, this device has been sufficiently dissected to permit its use as a game platform complete use of the phone’s interactivity – speakerphone, handset, video, and the keypad.

By building an SD card with specific characteristics, it appears to the phone to be a diagnostic tool. The SD card can then intervene in the phone’s usual startup procedure and instead run the game software. This transforms the phone into a game platform, and the SD card into a game cartridge.

The proof-of-concept game is actually not a game at all; it is intended to simulate the soul-destroying employment of an office administrator. It mimics the look and feel of a game but fails to be enjoyable. Instead it is a never-ending repetition of responding to robocalls, greeting coworkers, and finding an ever-errant stapler. (This is a work in progress.)

Coverage

More Information

Free Resources Used


12 Comments

  1. Andrei says:

    Any chance you could include the commands that you used to switch over to Debian and get it (somewhat) up and running?

    • admin says:

      Andrei, have you got an SD with Debian? Have you gotten root SSH? If so, let me know and I’ll dig up the specifics.

      • Andrei says:

        I did set up a QEMU vm with Debian, however I cannot figure out how to transfer that image over to the SD card.

        “qemu-img convert -O raw diskimage.qcow2 /dev/mydevice”

        does not seem to do anything. The SD card does not have any space used.

        Also, in the Debian vm, doing “fdisk -l” outputs that each partition has different physical/logical beginnings and endings. The vm works fine, but I do wonder, could that be a reason for the transfer not working as it should?

      • Andrei says:

        Scratch that – I got the actual Debian partition from the Qemu image written to an SD card, but the phone does not recognize its contents, my Ubuntu install however, sees the SD and its contents fine.

      • Andrei says:

        After more trials, I think I got Debian on the SD (chroot seems to work).

        • admin says:

          Andrei, great!

          • Andrei says:

            Thanks! However, this is where I’m stuck. I can chroot into the SD but I’m lost when it comes into pivot_root-ing and getting Debian into some kind of running state. Got any tips/hints/specifics?

  2. admin says:

    Andrei, gotcha. I take it you’re doing this via ssh, not by modifying the startup script on another machine and booting it directly in? I had lots of trouble with the latter.

    For running pivot_root etc. via ssh, it was pretty straight-forward. I put the following into a script:
    killall mx27
    killall acn
    killall dropbear
    mount /proc /mnt/sd/proc -t proc
    mount /sys /mnt/sd/sys -t sysfs
    /sbin/pivot_root /mnt/sd /mnt/sd/mnt/mtd
    cd /etc/init.d
    ./ssh start
    exec /bin/bash

    This would kill the phone’s daemons, provide system info in the new directory tree, change the root, and start the new SSH server instead.

    • Andrei says:

      I didn’t have ssh access for some reason so I was using telnet instead. Anyways, thanks a lot for the script! One problem I ran into was upon a new ssh login, it would output “stdin: is not a tty” After some research, the fix was adding “mount -t devpts /dev/pts /dev/pts” to the script.

      One last question – do you think it is possible to get X running? Seeing ACN’s logo is nice, but pretty useless.

      Thanks again for the help!

      • admin says:

        No problem, and if you do get somewhere with this thing, please post a link here!

        X should be quite possible — the framebuffer driver in the kernel is passable, if picky about its configuration. (Playing around with mismatching resolutions and bit depths in SDL didn’t always result in an error message — just an unhappy phone.) Your problem is likely to be input configuration. The kernel doesn’t have HID support compiled in OTOH, and it’s a custom kernel besides, so you may have to hack something weird together for standard USB mouse/keyboard support. Maybe my keypad code will be useful.

        • Andrei says:

          I got X up and running. It’s pretty useless without HID, but at least it’s progress!

          • admin says:

            You may have noticed that “useless” is a compliment around here. Excellent work. By the way, if you want arrow key control over the mouse, you could wrap my work on the keypad into a quick daemon using libxdo — probably a couple of pages of C code would do it.

Leave a Reply