View Full Version : Hacking Express gate (Asus Splashtop)
Darkstar2000
05-13-2009, 04:09 AM
I have send them an email asking for some information about the kernel and if it would be possible to modify the bootloader in a way that it loads the kernel without parameter when the timeout has expired. Maybe they answer... we will see.
Darkstar2000
05-15-2009, 07:41 AM
Here some news:
I installed the files from the harddisk installation on an USB stick as described in the other thread. Then I switched the SATA configuration in the BIOS to AHCI so that the BIOS can not read the harddisk installation. If I boot now with the USB Stick plugged in the BIOS reads the files from the stick and the system starts. What I don't see anymore is the menu with the different options (Firefox, Skype etc) and the system starts immediately with the "initva=firefox" option. This means that my first point "Boot Express Gate immediately" is already accomplished. I moved most of the *.sqx files to a temp directory to see what is necessary to run a minimal graphical environment with my rxvt shell. I also have a shellscript running to start my own kernel with kexec right after the loading of the splashtop kernel. Unfortunately my kernel hangs for 16 seconds during the USB initialization with an error messages, that is addressed by one of the patches "disable_quirk_usb_early_handoff.patch". This delays the overall boot process to 55 seconds. So I assume I could boot in less then 40 seconds with this method. Next would be to either load another bootmanager or to modify the kernel in order to save another 15 or so seconds.
I never have heard of that patch, for which kernel is it and whats the url?
slothdnk
05-16-2009, 03:49 AM
Hi
Did you get the direct boot to work with out using a USB key?
I might be able to live with the 2.6.25 kernel if it boots up quick.
Regards
Here some news:
I installed the files from the harddisk installation on an USB stick as described in the other thread. Then I switched the SATA configuration in the BIOS to AHCI so that the BIOS can not read the harddisk installation. If I boot now with the USB Stick plugged in the BIOS reads the files from the stick and the system starts. What I don't see anymore is the menu with the different options (Firefox, Skype etc) and the system starts immediately with the "initva=firefox" option. This means that my first point "Boot Express Gate immediately" is already accomplished. I moved most of the *.sqx files to a temp directory to see what is necessary to run a minimal graphical environment with my rxvt shell. I also have a shellscript running to start my own kernel with kexec right after the loading of the splashtop kernel. Unfortunately my kernel hangs for 16 seconds during the USB initialization with an error messages, that is addressed by one of the patches "disable_quirk_usb_early_handoff.patch". This delays the overall boot process to 55 seconds. So I assume I could boot in less then 40 seconds with this method. Next would be to either load another bootmanager or to modify the kernel in order to save another 15 or so seconds.
Darkstar2000
05-16-2009, 07:17 PM
The patch is in the source package from Splashtop. It's in the patches directory under "core" (source version 1.4.6.2).
To be honest, I am not shure how I did get the direct boot. Actually I wanted to install the system on a USB stick to play around without having to boot another system in between whenever I want to change a sqx-file and so I plugged in the USB stick where I installed an old 1.3.2.x according to the "Splashtop on USB stick"-thread. When I switched to AHCI I realized that the BIOS takes the file from the stick instead from the harddisk. Then I just copied the contents of the "ASUS.SYS" folder to the stick and after that it booted always without the boot menu. First I thought this was because there where not the right skin*.bin file (only german) and so I deleted all skins, but then it refused to boot at all. So I copied the skin*.bin and skin*.idx back to the stick and it booted again without the menu. I think I will do a quick diff and see what is different between the stick and the harddisk installation. Maybe this is a hint: whenever I start up the system asks me for the language settings like during the very first start. Does anybody knows where these information are stored?
I think as long as there is no SDK it is difficult to build own applications for the kernel, as I don't know which libraries are already installed and which version is used. The kernel version looks like an old Debian etch, but when I installed it in a virtual machine the libraries from the repository where already to new. If it is not possible to exchange the kernel.bin with a custom version I would really like to pass a custom "root=XXX" to the kernel and start my own full operational development system. But for that I need to know the exact library versions. Passing "root=/dev/sda2" where my Ubuntu 9.04 is installed does not work.
If I have something new, I will post it here.
Packageing is not hard, you can reuse Debian 4.0 or Kanotix Thorhammer binaries - I have realtively new ones there. The glibc is compatible. I also made menu entries, all pretty easy. If you use a distro with new glibc then you can only compile static binaries. But basically the kernel.bin does not really matter, you can replace it. As bootsplash is stored in there you can even mix some funny things like Lenovo menu and Expressgate kernel.bin.
grassmudhorse
06-18-2009, 11:56 AM
Hi, Kano and Darkstar2000,
I have a question about the boot screen (first screen) of the Express gate. On my machine (eeepc 901), it always start with 1024*768, and if I pass vga=788 in grub, I will get a disturbed screen.
I see there are several skin****.bin in the asus.sys folder, I replace them to skin0000.bin, but none of them seems to work.
Is there a way that I can get a 800*600 boot screen? there should be a 800*600 version since N10 is 1024*600 too. But all the versions I downloaded does NOT seem to have 800*600.
Do you know how to get 800*600 ones? Thanks!
PC-maniak
07-02-2009, 10:43 AM
Hello everyone, could someone explain me step by step how to add terminal into SplashTop which I have installed on USB flash and make it work? SplashTop alone works flawlessly. Thanks.
Joker
07-17-2009, 06:54 AM
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.
Hello everybody!
I'm just getting acquainted with Linux. Could you kindly provide more information on how to modify the settings to get 1440x900@75 res.? 1 I've unsquashed the bs-tinyx.sqx file OK and got standard bin , etc, lib, usr folders. Please advice what is the target file(s) and how do I adjust the settings/.
PS Intersting, the was a background jpg with the right resolution in the 'etc' folder ("desktop1440x900.jpg"). May just I replace it with a custom jpg to change the EG background?
PS I use Ubuntu 9.04
Cheers!
Joker
07-20-2009, 03:08 AM
Express Gate source code is available for download here:
http://support.asus.com.tw/download/download.aspx?product=1&SLanguage=en-us&type=map&model=M3N78-VM
(Choose "others" in the drop-down OS selection menu)
_Cyber_
08-09-2009, 12:02 PM
hi guys!
I hope anybody can help me ...
I've an Asus M3N-HT Deluxe with ExpressGate SSD ...
I've downloaded and extracted the dfi with gzip, but, how can I mount now this image? I tried with -o loop -t squashfs - but it always tells me that it's not an valid file ...
Do I need extra options?
thanks in advance!
>>>Cyber
Look:
http://www.phoronix.com/forums/showthread.php?t=11653&page=6
_Cyber_
08-09-2009, 12:18 PM
oh, this post I missed, and i tought I've read this whole thread ...
thanks kano!
>>>cyber
Here even how to create a DFI again:
http://www.phoronix.com/forums/showpost.php?p=40759&postcount=17
_Cyber_
08-10-2009, 04:00 PM
ok, i was a little bit successfull ... ;)
I was able to unsquashfs now the image with your srcipt from post No. 2.
I built my own "modules", but as I don't know if I need to make the structure as it is like one of the other modules ... uff, it did even not boot. ):
some questions:
-) is it absolute necessary to use squashfs-binaries from debian etch? I've got here debian lenny with squashfs-tools 1:3.3-7
-) must i use the complete structure? i.e., for xterm, I made an dircetory named va-xterm, in it I only made a bin and usr/share directory (like I see it from /var/lib/dpkg/info/xterm.list) ... no va* files in top directory.
-) must I use the binary sources from debian etch? I used i.e. the debian lenny pidgin, xterm and rdesktop
I read here that I only have to press "ALT+F1" for an prompt - and there I only have to type xterm, right? will all *.sqx-files get extracted on ExpressGate-Boot?
my target:
-) an xterm to play
-) new pidgin with working ICQ
-) rdesktop to make an VNC-connection to my debian lenny vnc-server, where my emails are "waiting" for me in an icedove-mailclient
-) perhaps using opera instead of firefox as browser - I like opera much more
-) perhaps get java installed to use java-apps in browser (opera or firefox)
I appreciate helping me (:
>>>cyber
You need basically all from etch (or Kanotix Thorhammer), because you can not convert lenny binaries. At least that was not possible with the versions i tested. Partly i have got already done the things you want about 1 year ago, thereofore i have got lots of prepared packages, but i do not intend to update em again.
_Cyber_
08-11-2009, 02:26 PM
Hello Kano!
first thanks for your help here ... ;)
sure, i could use your packages, but as soon as there is an update needed ... ): ... so I would like to get rid of this problem and so I am asking for further help.
I am familar with linux, so I hope I need not much of your time ... ;)
I've now setted up debian etch in an vmware.
I used debian etch r8 with etch'n'half kernel - but I don't think this matters, does it?
here are some versions:
squashfs-tools -> 3.1r2-6.1
pidgin -> 2.4.3-4lenny2~bpo40+1
pidgin-data -> 2.4.3-4lenny2~bpo40+1
xterm -> 222-1etch4
rdesktop -> 1.5.0-1etch2
gcc-3.4-base -> 3.4.6-5
gcc-4.1-base -> 4.1.1-21
libgcc1 -> 4.1.1-21
here are my used scripts:
extractDFI.sh
#! /bin/bash
dd if=$1 of=header bs=1 count=32
dd if=$1 of=FILE.IMG bs=48 skip=1
expandIMG.sh
#!/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=/home/Splashtop/mounted-image
FIX=/home/Splashtop/extracted
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
cd ..
umount $INPUT
rm -rf $FIX
rm -rf $INPUT
makeDFI.sh
#!/bin/bash
openssl dgst -md5 -binary $1 >new-md5sum
cat header new-md5sum $1 > MINE.IMG
gzip -9 MINE.IMG
mv MINE.IMG.gz ST_ASUSEG00_256MB_v1.3.3.1_MINE.DFI
as I have not enough space in vm I did there only generating the squashfs-files and copied from there the binaries. I assume that dd / gzip from debian lenny does nothing wrong in comparishon to debian etch, does it?
during expandIMG.sh opened the new bash I generated the following three files with my debian etch VM:
va-pidgin.sqx: I only replaced the existing binaries --> http://uploaded.to/file/i3v2j5
va-rdesktop.sqx: I copied the structure from /var/lib/dpkg/info/rdesktop.list into the folder --> http://uploaded.to/file/rpxqyu
va-xterm.sqx: I copied the structure from var/lib/dpkg/info/xterm.list into the folder --> http://uploaded.to/file/tvnidn
then i copied the generated *.sqx to the debian lenny machine and let there your scrip do the rest of the work, made a new DFI with makeDFI.sh and flashed it to the SSD.
Now it looks a little bit better: I see the bootscreen, after clicking on Web or Skype or what else I can see the "loading" screen and ... thats it, nothing else until I make a hard reset.
Can you tell me what I am doing wrong?
Thanks in advance!
>>>cyber
First of all begin with a tiny package that gives your a terminal. Most easy way add to a xterm package a symlink to gnome-terminal, then you can press ctrl+alt+f1. In most cases you missed too many depends (libs). For debugging should use my script to inject grub into image file, but beware that you have to delete the idx file before flashing to usb. I always used VirtualBox for debugging (with a custom made vmdk), but VMware should allow you to boot that file too. It is not usefull to boot that always on read hw. You may find out that a ce_bz is missing in new images, but search a bit in the forum how to create this file.
SynchronE
08-24-2009, 12:33 PM
Can anyone tell me, where to change resolution in tinyx ?
I've modified /etc/xserverrc and /etc/xserverrc.alps like that:
exec X -force -s 0 -screen 1024x600x24x60 -dpi 90 -br -zaphod -mouse /dev/psaux,5 -shadow -nolisten tcp $1 -I
But display of my asus n10j is still 800x600. Maybe the thing is that tinyx does not support non-standart resolution ?
Have not learned just where to create a new post, so I will just add on here.
I noticed that you cannot print to a USB port printer (no drivers installed) or save a page or even text from a the Splashtop Browser to anything.
For instance, my install of Vista has lost its NTLDR and I need to rebuild it. A real blessing to have the Splashtop feature when you cannot boot the operating system, but wow, a lot of notes to take...if only I could save the text some where.
Any such features? I have read no add-ons but I also see that some members can be rather creative.:rolleyes:
Looking for input.
Thanks
ST is very restrictive by default. You can only store onto usb drives. When you add a terminal however you can do much more. But after a certain time you get to a point where adding extra features is lost time. I. e. you have to update pidgin over and over again. Basically you would need to update the browser, flash and if you packaged java yourself even this again. And that you do only for yourself which i consider really lost time. I provide updates for my own distro, but there i am not the only user.
Just wondering if something simple like a notepad that you can paste text into is that big a deal for these vendors to do? Could I be the only person that thinks like this? Say it isn't so.
SynchronE
10-18-2009, 03:23 PM
I'm not getting, did someone unpacked CEFULL, CE.CEX and kernel.bin ?
Seems like there is initial filesystem somewhere, which is copied to RAM and then *.sqx are merged with it. I suppose it's the most interesting part of it.
Moreover, i found apt in one of the sqx. Seems like we can arrange expressgate repository and maintain packets...if someone will do it, of course. I can even provide some hosting.
lilas
10-25-2009, 08:29 AM
Hello everybody,
I have an Asus notebook and the Express Gate (EG) works well, but I need to power-off the laptop first, then push the
Express Gate button to start it. Since I have grub4dos isntalled, I would like to add a menu item to menu.lst
to start EG. So the menu item would be:
title Splashtop
kernel (hd0,0)/ASUS.SYS/ce_bz
But I only have CE.CEX, CEFULL and kernel.bin files in ASUS.SYS directory.
How can I proceed?
Thank you in advance.
b3nz0l
10-28-2009, 05:50 AM
Hello,
i saw some people wondering that splashtop/ExG doesn't support ahci mode...
i own the M51Vr Notebook with HDD ExG
installed by default (by ASUS Support, i had my notebook sent to repair)
on a 9.77GB Partition (sda1) with
FS-Id: 0x1C Hidden Win95
containing the both dirs (asus.000 and asus.sys)
this partition is hidden and if i set it active, the vista recovery is booting. to boot splashtop i can leave it inactive and hidden. i also have to turn off my notebook and press a seperate ExG power-on button
with the mp3-app i have access to my ntfs partitions (with sata controller in ahci mode) an to usb sticks of course, unfortunately not to ext3 partitions, where my music is stored
perhaps my bios automatically switches the operation mode of my sata controller when i boot splashtop..?
it would be great if we had webspace to collect the modified splashtop versions to make it easier to add apps and functions to ExG, sure, everyone could read the things posted here and try this for himself, but why if someone else has done this already...
at lest we could organize the tips and hints in a wiki with how-to s
it should be also possible to create patches for ExG and ExG SSD, (for the non SSD version it would be way easier)
to e.g. enable a terminal, enabe more fs support etc.
http://k-oz-mafia.dyndns.biz/misc/pa281293b.jpg
this picture shows the mp3 app with access to the partition where ExG is installed and my other two ntfs partitions for winxp
in the info popup you see the ExG Version and a wrong description text XD as it should read ExG instead of HP instant on OS...
SynchronE
10-28-2009, 09:21 AM
Hey, i did a .sqx with xterm. You just need to set recovery partition non-hidden (but not active) to have access to it from windows, and place va-term.sqx (http://game.theon.ru/my/eg/va-term.sqx) to ASUS.SYS.
There will be an icon in the panel...
Oh and dont forget to strip .sqx version information from ASUS.SYS/version file, as said Kano:
dd of=version bs=1 seek=32 count=0
this should be done in linux(or you can use dd for windows (http://game.theon.ru/my/eg/dd-0.5.zip)), or you just cut this file to 32-byte length manually (using a hex-editor)
You can add extra files without that mod, just not replace existing ones. The name does not need to have .sqx ending btw. but va- prefix.
SynchronE
10-28-2009, 10:34 AM
2 Kano:
You said, you did some .sqx packages with useful soft. Would you be so king to send them to my email syn [at] li dot ru ? I will setup some kind of .sqx storage, so anyone could download cool things for his expressgate.
b3nz0l
10-28-2009, 02:03 PM
so this sounds like a good step... i could also provide a few Gib to host something (on my private server)...
additional i'd like to have something like this: (but it should be written by someone knows what he writes :p
Asus Express Gate (ExG) is a branded and more or less modified version of DeviceVMs Splashtop pre-boot / Instant-on environment wich allows very fast access to teh internet, music and pictures.
ExG was shipped in 2 versions, the original and actually best version is located on an onboard SSD. The other "lite" version was installed on a seperate or on the ntfs partition of Windows on the HDD.
splashtop uses TinyX
the splashtop system is basically read out of *.sqx packages which are squashfs files wich can be accessed and unsquashed with the following tools .... and you should use the versions from ... to... newer versions will produce errors on unsquashing.
the sqx files are named bs-*.sqx , va-*.sqx and there is some kind of bootloader named cefull and of course the kernel.bin
in the HDD version the splashtop files are located in a folder called asus.sys, the SSD version is packed in an image file witch is compressed as tar.gz and renamed to .dfi.
to, say, change something in the configuration of splashtop you have to extract and unsquash (all?) te files until you get the usual linux folder structure. there you can edit the files and repack them.
---
now lets upgrade the system
to add a console and other apps you have to get a packages fom another linux version e.g. debian etch, kanotix thorhammer or puppy linux, the ones from ... should work best as they can be converted
its important that the sqx files in witch you squash your packages are named starting with va-... so they are loaded automatically on startup and and can be started with...
a key binding made with an .... entry in the file .... to add a symlink (what is rxvt and how to create symlinks?)
or you call them via console
so the added sqx packages are accessible with the automatically added icons in ???
to convert the packages you have to......
lets explain it with adding the following commandline app and the konsole of course....
when do you have to modify/ cut witch header in what way to reach what?
i mean some kind of "user-proof" how-to ....:D
i could translate it into german ;D
SynchronE
10-28-2009, 02:16 PM
I think the most user-proof solution is to make own package...
There should be dev branch, so advanced users could take advantage of our work and move it further, and 1-click-magic-installers, so users could use it.
I think we also need to setup some wiki, just to organize existing knowledge.
b3nz0l
10-28-2009, 02:31 PM
ok, making own packages prevents people who don't know what they are doing from adding packages / if you don't know how you can't add apps
i think we don't need 1-click-magic but prebuild sqx packages witch you can copy'n'paste would be great..^^
SynchronE
10-28-2009, 02:43 PM
but they will need to make their RECOVERY hidden partition visible first.
Okay, so what do we need ? We have xterm, i think we also need Midnight commander. b3nz0l, could you take care of it ?
b3nz0l
10-28-2009, 03:05 PM
ok, this will be different for everyone.. i think as i bought my notebook ExG was installed on the Vista partition.. and its not absolutely necessary to set the partition unhidden as (at least in my case) linux is able to mount it anyway, only MS users will have to unhide it in order to modify/add packages
as i haven't made any changes to my ExG installation i first have to try a little bit to get along with this... additional i'm pretty new to the "world of linux" so i have to research and read a lot.... i will take time but i'll try :)
any help is welcomed...
SynchronE
10-28-2009, 03:09 PM
Oh... okay. I thought about this thread as guru-lounge, and considered myself newb. It turns out that it's not only me who's new to all of it.
@SynchronE
Linux does not interest the id, nothing needs to be unhidden to access. Usually ST installs to a normal Win partition, but it seems to like hidden partitions too. It can boot from ntfs or fat, the uuid is defined in the splash.idx file on hd - that file may NOT exist on ssd/usb.
SynchronE
10-28-2009, 04:46 PM
I mean for user to place a file to ASUS.SYS. He needs somehow to get access to it, while my n10j shipped with ExG installed on hidden partition named RECOVERY. So i thought it was common practice to install it there...
b3nz0l
10-29-2009, 07:38 AM
what if we had some kind of script that can be executed in the running ExG where you can put in the app packages (maybe directly from a repo) and it converts, squashes and stores the packages in asus.sys folder
then you only have to restart ExG...
did you notice http://www.phoronix.com/forums/showthread.php?t=15047 ?
he creates new entries in the rmenu that appears when you right-click your splashtop desktop... i can imagine this could be easier than placing new items in the launch bar...
SynchronE
10-29-2009, 07:51 AM
I'm not getting, why do we need all of this hacking stuff, whereas we can just place icon in the launchbar and files to filesystem by adding new .sqx files ...it's kind of easy.
lilas
10-30-2009, 01:18 PM
@Kano
Do you have answer to my question in post #124 please? http://phoronix.com/forums/showpost.php?p=97171&postcount=124
Thank you.
Waika
11-04-2009, 06:52 AM
I find the ExpressGate/SplashTop Linux Distros rather marginal, awkward, and limited -- especially for their intended platforms. Distros like Slax (http://www.slax.org/) (which also uses SquashFS), and Moblin (http://moblin.org/) (which has some sort of partnership and/or has coded used by SplashTop) would be a lot more functional flavors of Linux.
There's some indication that Darkstar2000 was making progress at booting his preferred Linux using the fast boot capability SplashTop/Expressgate offers, but some of the details went over my head... Just wondering if anyone else has made any progress at using Splash/Gate to fast boot an alternative Linux Distro?
:)
I find the ExpressGate/SplashTop Linux Distros rather marginal, awkward, and limited -- especially for their intended platforms. Distros like Slax (http://www.slax.org/) (which also uses SquashFS), and Moblin (http://moblin.org/) (which has some sort of partnership and/or has coded used by SplashTop) would be a lot more functional flavors of Linux.
There's some indication that Darkstar2000 was making progress at booting his preferred Linux using the fast boot capability SplashTop/Expressgate offers, but some of the details went over my head... Just wondering if anyone else has made any progress at using Splash/Gate to fast boot an alternative Linux Distro?
:)
I too am interested in this. What is the boot process with this? Where is the actual kernel image even located? Is it CEFULL or kernel.bin or a combination of the two? And if the bootloader is located in the bios rom would that mean there would be no way to pass options to a custom kernel?
lilas
11-06-2009, 09:51 AM
I am waiting for Mandriva Instant On which will be publicly available soon!
http://wdata.mandriva.com/g/docs/instanton/en/FP_InstantOn_ENG_1108.pdf
http://www.dailymotion.com/video/xain5c_apercu-des-fonctionnalites-de-mandr_tech
I am waiting for Mandriva Instant On which will be publicly available soon!
http://wdata.mandriva.com/g/docs/instanton/en/FP_InstantOn_ENG_1108.pdf
http://www.dailymotion.com/video/xain5c_apercu-des-fonctionnalites-de-mandr_tech
Sounds interesting, but i want to put gentoo on lol
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.