Announcement

Collapse
No announcement yet.

Hacking Express gate (Asus Splashtop)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hacking Express gate (Asus Splashtop)

    I have been able to do a minor hack on Express gate on my P5Q-E based machine. As shipped, Express gate only supports up to 1440x1050 screen resolution. This doesn't look very good on a native 1600x1200 display and I wanted to change it.

    The P5Q-E has the HDD version of Express gate, so the files are installed normally to the Windows partition (VFAT or NTFS). The files making up the linux environment are in a directory called ASUS.SYS. Most of the files comprising the system have an unusual ".sqx" extension, but it turns out they are normal squashfs files and can be easily unsquashed with the normal tools.

    Once unsquashed, you will find a relatively familiar assortment of system and application files. Express gate uses TinyX, and the archive with the appropriate files is bs-tinyx.sqx.

    After modifying the setresolution script, re-squashing the archive, and putting it back into ASUS.SYS, Express gate now runs in 1600x1200 native screen resolution - pretty cool.

    With access to the file system and apps, it may be possible to do some other things, like hack in an xterm to make it a lot easier to poke around the Express gate environment and see what's there.

  • #2
    New updated instructions - as nice script - automatically adds all sqx files created, discards the rest.
    You have access to the image directly at /tmp/input of course to fetch your already changed sqx files for backup purpose.
    I use that together with a vbox image that directly works on the IMG.

    Code:
    #!/bin/sh
    IMAGE="FILE.IMG"
    offset=$(($(sfdisk -d $IMAGE|grep start=|head -n1|sed 's/.*start=\s*//;s/,.*//')*512))
    OPTIONS="umask=000,shortname=mixed,quiet,utf8"
    INPUT=/tmp/input
    FIX=/tmp/fix
    rm -rf $FIX
    mkdir -p $INPUT $FIX
    umount $INPUT
    mount -o loop,offset=$offset,$OPIONS $IMAGE $INPUT
    cd $INPUT
    for x in *.sqx; do unsquashfs -dest $FIX/${x/.sqx} $x; done
    cat <<EOT
    You can edit now using this way:
    
    a) Change files in the dir you want to edit.
    b) Create new package like this:
    
    mksquashfs va-xxx va-xxx.sqx -noappend
    
    c) Enter "exit" when done to apply changes.
    EOT
    cd $FIX
    bash
    cd $INPUT
    cp -v $FIX/*.sqx $INPUT
    dd of=$INPUT/version bs=1 seek=32 count=0
    umount $INPUT
    rm -rf $FIX
    Last edited by Kano; 31 July 2008, 03:38 AM.

    Comment


    • #3
      Terminal

      Got a terminal working in express gate. There was an xterm binary in /bin, but it didn't run due to a missing shared library. I copied over an rxvt binary from Puppy Linux. I don't yet know how to create a launcher for it in the normal panel, so I started it from xinitrc and it works great It's now much easier to poke around.

      The file manager that is installed with express gate is brain damaged so you can only view USB storage devices, so I also copied over ROX, which works fine other than using default icons, since I didn't bother copying over all of its data.

      Next project might be to get mplayer working so internet videos besides just flash can be viewed, maybe also xpdf to be able to view pdf files.

      Comment


      • #4
        What squashfs version did you use? Also did you alter the version file? I wanted to fix the pidgin package (1 byte change only for icq) but when I recompess it then I only get an error message when I try to start.

        Comment


        • #5
          Originally posted by Kano View Post
          What squashfs version did you use? Also did you alter the version file? I wanted to fix the pidgin package (1 byte change only for icq) but when I recompess it then I only get an error message when I try to start.
          Unfortunately, my internet connection at home is down today, and I don't have this on my work computer, so at the moment I can't answer the version question for squashfs, except that it is the version that is currently in the repository for OpenSuse 11. It might be in the main repository, or it might be in the Packman repository, I'm not sure which.

          I re-compressed it with default settings for mksquashfs. I did not alter any other files, just re-compressed, copied it back to ASUS.SYS and it worked.

          Comment


          • #6
            With the new updates from the website you have to update file size and md5sum for changed files. Therefore i wrote a pascal tool to do so. As there does not seem to be much interest in it I only show here the structure of the file called version (inside your ASUS.SYS or directly on SSD):

            Code:
            type header=record
                  vendor:array[0..15] of char;
                  date:array[0..7] of char;
                  status:qword;
                 end;
                 entry=record
                  name:array[0..31] of char;
                  date:array[0..7] of char;
                  status:qword;
                  size:longword;
                  marker:array[0..11] of byte;
                  md5sum:array[0..15] of byte;
                 end;
            With that tool I was able to fix ICQ for pidgin.
            Last edited by Kano; 29 July 2008, 09:54 AM.

            Comment


            • #7
              Btw. it is relatively easy to add command line apps in new containers, when you just create a sqx analog to the already existing ones. Just need to figure out how to add em to the menu. Also there is a nice trick to run a root terminal: just create a new pack with rxvt or whatever you like and add a symlink to gnome-terminal. Then you just have to press ALT-F1 and you are root. No need to hack another package. Also you can insmod missing nic modules like for example E1000 for vbox:
              Code:
              insmod /lib/modules/e1000.ko

              Comment


              • #8
                Originally posted by Kano View Post
                With the new updates from the website you have to update file size and md5sum for changed files. Therefore i wrote a pascal tool to do so. As there does not seem to be much interest in it I only show here the structure of the file called version (inside your ASUS.SYS or directly on SSD):


                With that tool I was able to fix ICQ for pidgin.
                I have the latest version for my MB (P5Q-E), which is version 1.2.3.1 from 2008/6/30, and that version apparently does not check. Maybe there are newer versions for some motherboards. In my version, the loop files used for persistence are checked for MD5 and date, but I guess the squashfs archives are not. Probably the next update will have that.

                I would be interested in your tool since I am still interested in hacking new things in. In fact, at some point I am thinking of maybe starting a wiki on this to organize various scripts, hacks, and improvements

                When you say a pascal tool, do you mean the pascal programming language that was very popular in the 1970's? I studied that in college, but I haven't seen it used much anymore.

                Comment


                • #9
                  Originally posted by Kano View Post
                  Btw. it is relatively easy to add command line apps in new containers, when you just create a sqx analog to the already existing ones. Just need to figure out how to add em to the menu. Also there is a nice trick to run a root terminal: just create a new pack with rxvt or whatever you like and add a symlink to gnome-terminal. Then you just have to press ALT-F1 and you are root. No need to hack another package. Also you can insmod missing nic modules like for example E1000 for vbox:
                  Code:
                  insmod /lib/modules/e1000.ko
                  Yes, I also have not figured out how to add things to the menu. I guess it's lower priority than fixing other things. Right now, I have been starting rxvt from xinitrc, so I always start with a terminal visible.

                  Yes, insmod is there. I have been looking at getting Intel iwlwifi working, since that would allow it to be used with a lot more notebooks. The problem is that the kernel may not be configured properly to use mac80211 (I'm not 100% sure yet), and if that's the case a new kernel may be required which would be a much bigger project. The source tarball from Splashtop.com contains a few patches, but there's no way of knowing if that's exactly what Asus uses.

                  Comment


                  • #10
                    I created lots of sqx files already, basically converted from the debian etch packages. I have got mc, vim, zip, rar, ... - all accessed using ALT-F1 key for xterm - and of course a fixed pidgin

                    Comment

                    Working...
                    X