You are not logged in.
i'm trying to decipher the boot process in order to make my eeepc full multiuser (with icewm, not kde).
are the sources for fastinit available somewhere?
Offline
Well....
I don't know what the forum stand is on reverse engineering, but in your boat I would run something like "strings /sbin/fastinit". It looks like fastinit spends most of the boot process fork/exec'ing various things, and those strings are quite enlightening.
Jacques
Offline
Strings is cheaper.... ![]()
Realistically, If I was in the OP's position, I'd probably start with something like busybox's init, and work my way forward or reconfigure the box to run sysvinit. You could RE it easily enough with GDB, but there's not a whole lot of point. Init has been done several times - there's sysvinit, initng, busybox init, and a few others on other free *nix operating systems that could be ported easily enough.
Offline
why are the sources not available ? Arent they obliged to make them available?
Offline
fastinit is presumably their own program. As long as it doesn't include components with freedom-preserving open source licenses, they are under no obligation to distribute the source. Would be nice if they did though.
For example, at work I am developing a product that runs linux. So we make the linux kernel source available. It runs busybox, so we make the busybox source available. It has a couple of custom kernel modules that I wrote as adaptations of existing ones, so we make the source for those available.
It also has a main program that makes the product work. I wrote that from scratch, so we do not make the source available. We could, but we are under no obligation to. A future version of the program may link against an lgpl-licensed library that would require us to make the object (.o) files available so that the user could re-link it against another version of the library, but we would still not have to make the source available.
I do think a community effort to create a fastinit replacement would be a good idea. We could approach it either by documenting what fastinit does and duplicating that, or by taking a normal linux init sequence and tailoring it to the Eee.
One of the other things I'd like to get is to get binary packages for all the installed files - Asus is not providing as current versions of some things in .debs as they are in the disk image. So we could either compile the out of date packages from source, or we could try to repackage them from the installed versions.
Taken together, these would all be keys to being able to recustomize the stock installation - not start over with ubuntu (which is a worthwhile but seperate project), but take the basic idea asus had, which seems a good one, and add and subtract components until we get something even better.
Last edited by tuxpocket (2007-12-15 1:59:08 pm)
Offline
Rather than messing about with strings, it might be better to just bite the bullet and use strace. fastinit probably does the same thing every time it runs, by its nature, so aside from obscure error handling, strace will almost write your code for you (at a rather low level, granted).
Offline
I guess it depends to what extent fastinit relies on being PID 1. I doesn't seem to be a traditional init process anyway. By setting INIT on the command line I think you could run something else and chain to fastinit via strace if you want to spy on it.
e.g. XANDROSBOOTDEBUG=1 INIT=/bin/sh, perhaps, then ctrl-d out of the initial shell to get to the second one with unionfs mounted and switch_rooted, based on the standard script.
I doubt it does anything particularly advanced though - using a more traditional setup you could probably work out a cut-down list of services to start - it's probably what 'they' did anyway.
Offline
Kibobo wrote:
strace for the first executed process ?
I was thinking maybe we boot in a vm with gdb remote debugging (common embedded systems trick, except for the vm part)
Or maybe we set strace up to dump to a log file and make stract fastinit be the init.
I keep trying to launch bash as my init program but so far that isn't working.
Incidentally fastinit is not the original first process. However it is exec'd by the first process so it inherits that PID 1.
Last edited by tuxpocket (2007-12-16 8:27:33 pm)
Offline
For what its worth I just registered my Eeepc and put in a Tech inquiry statinf the following:
Hi
I am trying to secure my EeePC better by setting up sudo to require a password. To do this I need to modify the startup scripts to remove sudo from them. Looking into this I realised that some of the processes in the startup could possibly be done prior to the startx command started by the fastinit process.
To do this I was hoping you would be willing to release the source for fastinit allowing members of the linux community to add more functionality to it.
Would it be possible to get fastinit source code covered by the GPL and released to the public?
Thanks in advance.
Randall Crook.
I am not overly optimistic, but you never know.
Randall.
Last edited by Sarazar (2008-01-06 7:59:52 am)
Offline
vang wrote:
are the sources for fastinit available somewhere?
Came across this, hope it helps: http://helllabs.org/blog/20071231/asus- … n/#more-68
Offline