ivoras’ FreeBSD blog

August 29, 2007

finstall alpha version

Filed under: FreeBSD — ivoras @ 8:17 am

As some of you might now, I’ve been working on a GUI installer for FreeBSD as a Google Summer of Code 2007 project that would one day, with some luck, replace the aging sysinstall. The SoC is now officially over and it’s time to make a public release of what’s been done so far.

But first, I’d like to write a bit about the project itself. Here are some of the more important ideas planned for the project, in no particular order:

  • Make a modern installer for a modern FreeBSD system, with support for advanced features not present in sysinstall.
  • Make the installer run directly of a FreeBSD Live CD
  • Separate the installer (as a tool) into the front-end and the back-end.
  • Make both the front-end and the back-end extensible enough so new features can be easily added.
  • Make the front-end and the back-end interchangeable so people can write their own replacements.
  • Make the back-end network-aware so it can support network (remote) installations. Use a service announcement and configuration technology such as Zeroconf.
  • Eventually, make the back-end a part of FreeBSD base to be used for regular system configuration.

I’m happy to say the project is going on nicely, and that I’ve created infrastructure that can support the above features (as well as some other goodies discussed at the recent BSDCan). The project itself is hosted in the FreeBSD’s Perforce depot. It consists of three parts / subprojects:

  • installer – the installer application, created in Python with PyGTK as the GUI library
  • pybackend – the backend daemon. For speedy coding, it was also implemented in Python, but if the project gains popularity, a C version that can be included in FreeBSD base system is planned.
  • makeimage – a Python script that creates a LiveCD ISO image with the installer. It can be customized to produce generic FreeBSD LiveCDs.

The back-end is a mostly stateless XML-RPC server that provides two kind of services: synchronous RPC calls and asynchronous “jobs” (that can take a long time and have progress checking infrastructure). The front-end is a modular PyGTK application that provides the user interface and uses the back-end for all “real” work.

I’ve created an ISO image with the installer embedded in it that can be used primarily for testing. The LiveCD is a fully working FreeBSD 7-CURRENT installation (i386) with X.Org 7.0, Xfce 4.2 desktop environment, Firefox, Thunderbird and a couple of supporting utilities. The image was built with mtune=generic CPU optimizations (pentium-m, pentium-4 and others). The installer version included in this LiveCD is a test version, more like a technology preview than a usable application. It can only install the system on a blank, unpartitioned drive and has only been tested on VMWare so far. I’ve disabled features that I know will not work (yet) but there’s still a chance there are bugs in the existing/enabled options.

Speaking of bugs, the overall state of FreeBSD 7-CURRENT is not very stable right now, and there are several known bugs and panics that will hopefully be resolved before 7.0. The system on the LiveCD (that is also used for the new installation) is *not* the “official” system that can be downloaded from FreeBSD source repositories. It contains several local patches I’ve made (or found from other developers and applied) to resolve some of the bugs and instabilities. I’ve submitted the patches to re@ some time ago, but they have still not been applied to the official source tree. Even so, there are several more-or-less known problems in the kernel I’m using, so you can expect random panics (you can imagine it’s hard do develop something like this with random panics happening all the time :( ). In particular, the LiveCD kernel might panic during the last phase (configuration), which is a problem I currently can’t solve.

I think that’s all that needs to be said. Download the installer image, try it out and see for yourself how it works. As I’ve said, there’s still a lot to be done and some planned features are not present in this release – but have fun trying it out. I won’t make an official announcement on current@ because I think it’s too early for that, so if you have any suggestions or questions you can post them as comments to this blog post. Please post both successes and failures (but keep the reports short :) ). (n.b. I’ll delete all comments that don’t have something useful to say, e.g. “I’m downloading it and I’ll try it tomorrow” type of posts).

P.S. If you don’t want to try it yet, I’ve created several screenshots of finstall.

12 Comments

  1. really nice work indeed!

    Comment by rdivacky — August 29, 2007 @ 9:20 pm

  2. neuer FreeBSD-Installer finstall…

    FreeBSD hat nen neuen Installer
    Der ist jetzt grafisch, kann als Livesystem gebootet werden und bringt nen Klicki-Installer mit. Sehr cool. Jetzt fehlt nur noch der ZFS-Button, der ist bei mir noch nicht anklickbar.Allgemeine ProjektinfosScreenshotsDo…

    Trackback by Ollis Notizblog — August 31, 2007 @ 9:52 am

  3. This is great work Ivan!

    Comment by lulf — August 31, 2007 @ 3:33 pm

  4. Please keep sysinstall!…

    I read today about the finstall effort for FreeBSD. It is a GUI installer for FreeBSD. Although it sounds like a helpful tool for some users, I don’t think I’d want it to replace the existing sysinstall installation system.

    One of the ma…

    Trackback by Pain and Glory from the Trenches of the IT World — September 3, 2007 @ 7:06 pm

  5. FYI:
    I ran this on Fedora 8 (updated pass Test2 a bit)
    using Virtual-Box 1.5.
    (Pent IV t.4 ht 1GB 400 dual channel mem, Intel865GBF)

    Also on Pioneer StageCoach (fully updated – a Ubuntu 7.04 engine.
    Pent III 800 1GB 133 mem.)

    The live cd booted fine and the installer started ok.
    I used the defaults that were checked and a 3GB vd space.
    VB used a lot of cpu, but the progress was reasonable on both.
    Going from =378 MB of memory on the VM made a big difference.

    At the Host Name and Root Password screen – clicking or keying next resulted in full CPU usage by VB for …
    I stopped it on the Pent IiI after 1 hour.
    I tried to boot the results on the Pent IV and it had many not found program items and hung.

    Is this the expected result for the installer to not complete? i.e. The test was to install but the installed system was a dud?

    I am very glade someone has created this. It took me 2 years to get BSD 6, 6.1, 6.2 installed and recompiled using the text installer.

    So now I will try the Aug Snapshot in VB. I might get lucky. :)

    thanks for coding this installer, more polish welcomed,
    Darwin

    Comment by Darwin — September 4, 2007 @ 8:44 pm

  6. so nice !

    Comment by xiaoqi — September 16, 2007 @ 9:09 am

  7. well i hope it does not show the “wrong geometry” error. It had scared the shit out of me when i first tried to install freeBSD with my winxp.

    Comment by Bhupendra Atre — September 19, 2007 @ 5:55 pm

  8. RE: Wrong geometry error: No tester has complained so far :)

    Comment by ivoras — September 19, 2007 @ 6:57 pm

  9. Software Development Guide…

    I couldn’t understand some parts of this article, but it sounds interesting…

    Trackback by Software Development Guide — September 25, 2007 @ 3:23 am

  10. [...] reading about the FreeBSD Graphical Installer here I was immediately tempted by the inclusion of the recently ported ZFS. I quickly decided I would [...]

    Pingback by Yousef Ourabi » FreeBSD 7 and the FreeBSD installer — October 24, 2007 @ 5:50 am

  11. [...] read more | digg story [...]

    Pingback by Mighty Linuxz » FreeBSD 7.0 Graphical Installer w/ screen-shots — November 7, 2007 @ 12:29 pm

  12. For all the users still reading this post: please see newer posts on this subject – there are newer version(s) of finstall available. I will not update this comment or answer requests related to it any more.

    To William O. Yates: The development has moved to SourceForge some time ago (http://www.sf.net/projects/finstall) but the ISO images will not be hosted there. I’m hosting them myself until a production version of the whole thing is finished – then I hope that the official FreeBSD mirrors will start carrying it. For custom “flavours” of finstall, see the makeimage.py script in the sources of finstall (on SourceForge) – it was created to do just that.

    Comment by ivoras — December 17, 2007 @ 10:54 am

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress