![]() |
|
|||||||
| Mobile Linux Discussion of Linux on mobile and embedded devices. |
![]() |
|
|
Thread Tools | Display Modes |
|
#1
|
|||
|
|||
|
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; 07-31-2008 at 03:38 AM. |
|
#3
|
|||
|
|||
|
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
|
|||
|
|||
|
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
|
|||
|
|||
|
Quote:
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
|
|||
|
|||
|
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;
Last edited by Kano; 07-29-2008 at 09:54 AM. |
|
#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 |
|
#8
|
|||
|
|||
|
Quote:
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. |
|
#9
|
|||
|
|||
|
Quote:
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. |
|
#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
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|