Page 1 of 25 12311 ... LastLast
Results 1 to 10 of 260

Thread: Hacking Express gate (Asus Splashtop)

Hybrid View

  1. #1
    Join Date
    Jul 2008
    Posts
    38

    Default 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. #2
    Join Date
    Aug 2007
    Posts
    6,626

    Default

    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; 07-31-2008 at 03:38 AM.

  3. #3
    Join Date
    Jul 2008
    Posts
    38

    Default 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.

  4. #4
    Join Date
    Aug 2007
    Posts
    6,626

    Default

    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.

  5. #5
    Join Date
    Jul 2008
    Posts
    38

    Default

    Quote 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.

  6. #6
    Join Date
    Feb 2009
    Posts
    1

    Default Terminal in ExpressGate

    Hi,

    Can any of you post a set of instructions (step by step) so as to get the terminal working in express gate? I have read Drosky's posting but is a bit confusing to me.

    Thanks in advance,

    Quote Originally Posted by drosky View Post
    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.

  7. #7
    Join Date
    Feb 2009
    Posts
    1

    Default

    This is somewhat outside the thread's scope but I have a question:
    Is it somehow possible to replace Express Gate with another *nix distro?
    I'm dual booting Vista (I need it for university) and Ubuntu on an Asus laptop (M51Va) and it would really be great to boot Ubuntu right away just by pressing a different button instead of using a bootloader. I know it wont be exactly an instant-on but I don't care that much.

    Although I'm studying Informatics Engineering (Computer Engineering in some countries), I'm still rather noobish in the land of the *nix. But I found this thread really interesting and I'm planning to experiment around with this stuff.

    Thanks in advance.

  8. #8
    Join Date
    Apr 2009
    Posts
    14

    Default

    Quote Originally Posted by Amarus View Post
    This is somewhat outside the thread's scope but I have a question:
    Is it somehow possible to replace Express Gate with another *nix distro?
    I'm dual booting Vista (I need it for university) and Ubuntu on an Asus laptop (M51Va) and it would really be great to boot Ubuntu right away just by pressing a different button instead of using a bootloader. I know it wont be exactly an instant-on but I don't care that much.

    Although I'm studying Informatics Engineering (Computer Engineering in some countries), I'm still rather noobish in the land of the *nix. But I found this thread really interesting and I'm planning to experiment around with this stuff.

    Thanks in advance.
    I don't think that it is out of scope and I think it's a very interesting question: Would it be possible to load a custom linux kernel that initializes all necessary hardware and then starts the /sbin/init on the given "root=/dev/sdaX"?
    Nearly half of the total time to login is wasted by the BIOS (22 seconds until grub) and from then only 26 seconds for the OS itself. If only the grub bootloader would come up as fast as the Express Gate menu it would be a great improvement.

    I had a closer look on the skin0000.bin file and it seems that this is the menu that is shown first. I could find many GIF pictures some strings that look like a kernel init: ":/kernel.bin initva=firefox baseva=scan". Maybe it helps digging further into this direction.

    Darkstar.

  9. #9
    Join Date
    Aug 2007
    Posts
    6,626

    Default

    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; 07-29-2008 at 09:54 AM.

  10. #10
    Join Date
    Jul 2008
    Posts
    38

    Default

    Quote 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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •