Phoronix Forums  

Go Back   Phoronix Forums > Software > Mobile Linux

Mobile Linux Discussion of Linux on mobile and embedded devices.

Reply
 
Thread Tools Display Modes
  #1  
Old 07-24-2008, 01:47 AM
drosky drosky is offline
Junior Member
 
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.
Reply With Quote
  #2  
Old 07-24-2008, 05:00 AM
Kano Kano is offline
Debian Developer
 
Join Date: Aug 2007
Posts: 2,893
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.
Reply With Quote
  #3  
Old 07-25-2008, 02:05 AM
drosky drosky is offline
Junior Member
 
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.
Reply With Quote
  #4  
Old 07-28-2008, 08:26 PM
Kano Kano is offline
Debian Developer
 
Join Date: Aug 2007
Posts: 2,893
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.
Reply With Quote
  #5  
Old 07-28-2008, 09:13 PM
drosky drosky is offline
Junior Member
 
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.
Reply With Quote
  #6  
Old 07-29-2008, 09:52 AM
Kano Kano is offline
Debian Developer
 
Join Date: Aug 2007
Posts: 2,893
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.
Reply With Quote
  #7  
Old 07-29-2008, 12:51 PM
Kano Kano is offline
Debian Developer
 
Join Date: Aug 2007
Posts: 2,893
Default

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
Reply With Quote
  #8  
Old 07-29-2008, 02:33 PM
drosky drosky is offline
Junior Member
 
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.
Reply With Quote
  #9  
Old 07-29-2008, 02:42 PM
drosky drosky is offline
Junior Member
 
Join Date: Jul 2008
Posts: 38
Default

Quote:
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.
Reply With Quote
  #10  
Old 07-29-2008, 03:28 PM
Kano Kano is offline
Debian Developer
 
Join Date: Aug 2007
Posts: 2,893
Default

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
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 07:13 AM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Copyright ©2004 - 2009 by Phoronix Media.