Hacking devices can/will void your warranty and can turn your expensive consumer electronics into worthless trash if you don't know what you're doing. This blog is for information purposes only, and if you try to hack into your own consumer electronics, you do so at your own risk. The device I'm currently hacking is the Canon SX10 IS camera.

Saturday, October 24, 2009

Organization, and yet another toolchain (conceptronic / media giant)

Organization. I have two external 1 TB drives with ISOs and I've moved all of my stuff off of the screenplay so I can experiment with it. In the process, I decided to switch back to EXT3 for the screenplay. The screenplayprohd.wikia.com wiki details how to do that in filesystem. Anyway, after reformatting the drive, I then organized all of the videos on the other two drives under one directory called Alphabetical, and then subdirectories from there ABC, DEF, GHI, JKL, and so on with VWXYZ all in the same. So both external drives had that. Underneath each of those directories, I put another directory for each movie / group of movies. For instance, all of the Star Wars ISOs are under Alphabetical/STU/Star Wars.
On the Screenplay, I setup a small, hidden script in the root directory that removes the contents of the Alphabetical directory and recreates the same directory structure as on the USB drives. So it's a mirror image, but empty. Then I use symbolic links to link the contents of each of the USB drives. I do it this way because if you do a symbolic link of an ISO file, the screenplay can't mount and play it.
So here's the script:

cd Alphabetical
rm -r *
mkdir ABC
mkdir DEF
mkdir GHI
mkdir JKL
mkdir MNO
mkdir PQR
mkdir STU
mkdir VWXYZ
ln -s /tmp/usbmounts/sda1/Alphabetical/ABC/* ABC &
ln -s /tmp/usbmounts/sda1/Alphabetical/DEF/* DEF &
ln -s /tmp/usbmounts/sda1/Alphabetical/GHI/* GHI &
ln -s /tmp/usbmounts/sda1/Alphabetical/JKL/* JKL &
ln -s /tmp/usbmounts/sda1/Alphabetical/MNO/* MNO &
ln -s /tmp/usbmounts/sda1/Alphabetical/PQR/* PQR &
ln -s /tmp/usbmounts/sda1/Alphabetical/STU/* STU &
ln -s /tmp/usbmounts/sda1/Alphabetical/VWXYZ/* VWXYZ &

ln -s /tmp/usbmounts/sdb1/Alphabetical/ABC/* ABC &
ln -s /tmp/usbmounts/sdb1/Alphabetical/DEF/* DEF &
ln -s /tmp/usbmounts/sdb1/Alphabetical/GHI/* GHI &
ln -s /tmp/usbmounts/sdb1/Alphabetical/JKL/* JKL &
ln -s /tmp/usbmounts/sdb1/Alphabetical/MNO/* MNO &
ln -s /tmp/usbmounts/sdb1/Alphabetical/PQR/* PQR &
ln -s /tmp/usbmounts/sdb1/Alphabetical/STU/* STU &
ln -s /tmp/usbmounts/sdb1/Alphabetical/VWXYZ/* VWXYZ &

I know that's ugly and I could have used a for statement on it. But this follows a script I am making that I'm not ready to divulge yet.

The result of that is that all of my movies appear on the main drive and I don't have to guess as to which USB drive has the movie. I just navigate to the screenplay (now automatically done during bootup, as explained in my last post). It has vastly simplied finding any of the more than 250 movies in my collection. Next, I'm going to try to add some dvd covers in some way so that the kids can browse all of the covers when just looking for a movie to view. I'll probably just put all of them in a single directory, maybe 8 to a JPG and add some background music to the folder...

Media Giant Now that I've finally gotten some time on my hands, I pulled down Fedora 11 virtual machine (from vmware appliances, I used the LinHost one
Then I pulled down the conceptronic GPL sources. 2.00.004 linux one is corrupt, so I used the 1.00.011 sources. Copied them onto the virtual machine (I put them in a windows shared directory and just accessed it from the VM).
Although the instructions are there in the readme for the doing the kernel and the app, the instructions did not work exactly as indicated. First, you need GCC. But not just any GCC. If you do a yum gcc command you'll end up with the latest stable gcc, and that won't compile the OS. Instead, I've found you have to pull down gcc 3.4.6. Do yum install compat-gcc34. Of course, you have to do this under su mode. sudo should work, but I just did su and I'm doing everything under that mode (I know, I know, bad idea).
Now at that point, you're going to have a gcc34 in the /usr/bin, but still no gcc, so you'll still get an error about compiling. I created a symlink to gcc ln -s /usr/bin/gcc34 /usr/bin/gcc and then followed the rest of the directions. When I was finished, I had a full image of everything, app included.

I haven't tried flashing the image in. Instead, I searched for DvdPlayer and then copied that onto my ScreenPlay, along with the Resources and the symlinks of the two font files in the Resources directory. I executed a kill -9 95 (my root app proces from ps was 95) and then stopall. Switched over to the /tmp/hddmedia/mediagiant directory where I had put the other DvdPlayer and executed it.
It came up.
Unfortunately, it is in PAL mode, so I can't see the screen very clearly right now and it is not responding to keystrokes, remote codes,or anything else to allow me to switch it to NTSC. When I get a chance, I'm going to hook it to my HD TV and see if I can see it better. Although, without any way to control it, it's basically worthless to me. But I can see the "Grab 'n Go" interface, so I'm pretty happy that I've gotten this far with it. I ended up having do terminate the process, which left info on the screen even though the process was no longer running. When I ran a stopall, then the info cleared from the screen and I was able to restart the Iomega DvdPlayer version.

The ellion open source code posted at MHDWorld has the source necessary to rebuild and change the DvdPlayer app, so next step will be to get that one compiled with this environment and see if it comes up. If it does, this will probably be the start of a new interface.


  1. Hi, still me. I think it is more correct to add comments here now... since I have tried this toolchain and the result is the same: module disagrees about version of symbol struct_module, so I have the same problems with CRC of the symbols. Facing a wall. Any other suggestions? Thank you, bye...

  2. Sorry. I'm sure you've googled the message and found the same info I did. I don't know what makes it different. I also used this tool and came up with the same thing. It may take replacing the whole OS with the one compiled here, since we can't get it to match. I'll look into further another day.

  3. OK, thank you for your interest. I guess you downloaded the kernel source from the Iomega website, haven't you? So I think the problem must be in the .config of the kernel, I cannot think of any other thing we could get wrong. I'll try to ask in the Iomega forum to deliver the .config file they used to build the package, otherwise it's pretty useless of them to deliver the sources of the kernel. I'll keep following your blog to see if you are successful in finding a way to build modules for this kernel. Good work 'till now dude! ;-)
    Thanks, bye

  4. Hello Joman,

    I finally got the toolchain working as you suggested in this post. Went through the steps twice. The first time around I still got the C++ not found in this system. However, the second time, it simply worked.

    I tried the Hello World App. Excellent stuff.

    I was wondering though, about rendering the graphics on the screen. I understand that you can control every pixel on the screen, how will things go from here?
    Would it be a graphics API with a set of functions to display common components for a UI? Or could it be expanded into a graphics driver that X or tinyX could recognize? If an X server is used, would the realtek still be able to decode the media, or would the processor have to do it? (Does depending on the Dvdplayer library prevent creating a driver?)

    I know that this is getting ahead of things, but I'm trying to get up to speed with how all this fits together.

    Another idea comes to mind. Might be a bit early, but I believe it would be a good idea to divide the work into different categories. This way anyone who is interested can do some research and contribute to any of those categories. As things start to develop more and converge it would take the shape of a customizable replacement firmware. In other words, sort of a road map for this firmware.

    Am I being too ambitious?

    Thanks again for the effort you put in all this.

  5. When it comes to the screen driver/framebuffer driver, I have a long way to go before I understand that.

    Here's my situation: I've spent a long time working on this and very little to show to my family. My whole purpose in doing this is to provide a method of selecting the movies based on JPG movie covers. The shortest path there is to modify the HelloWorld to do that. I have four items of discovery left before I can finish adapting HW. 1) Control power light. 2) Control wifi. 3) Passthrough input. 4) Record input. Then I can finish adapting HW to be a simple DvdPlayer.

    After that, I can start researching how to do display drivers for linux, then figure out how to replace the bootcode and the entire Linux environment with the one I started doing in OpenSPHD main project.

    Offtopic, rather than trying to conduct conversation / coordination on this blog, it would be more appropriate to do this in a forum. I was doing it at Xtreamer, and the folks there were great. I was able to make some progress. But then they found an alternative method of accomplishing the movie jukebox, and our goals are no longer in sync.

    http://minimodding.com/tiki-forums.php has a forum I requested to have created for this very purpose before xtreamer won me over with a conversation already in progress. So I'll go to mini-modding and post areas I'm researching and what I've tried/know. I will continue posting progress here as I make discoveries, and over there as I'm working toward those discoveries. I'm just having a hard time tracking down conversations on this blog and it's not being helpful in recruiting more people who can work on the ScreenPlay or very similar device.

  6. @ Joman - Good luck in your progress.

    I know we went about our goals in very different ways but I just wanted to re,ind you to view the source when the Jukebox is released soon as I am astounded just how much of DVDPlayer functionality we can control from RSS.

    We can in effect rewrite the entire GUI to run from the RTL RSS AP (The main gui is a basterdised version of it already).

    Keep up the good work and I will of course keep track of progress. <o/