[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [pkg-fso-maint] GSoC 2010: Debian Installer on Freerunner

[ Gismo: don't know if you have seen this, CCing you because you were
also interested on working on this.

debian-boot: Thibaut showed interest on the pkg-fso-maint list to work
on d-i for the Neo Freerunner as a Google Summer of Code project. Your
input would be welcome as well. ]

Hi Thibaut

On Sat, Mar 20, 2010 at 09:17:18AM +0100, Thibaut GIRKA wrote:
> Although I don't know much about d-i yet, I use Debian daily on several
> machines, and I am maintaining a Debian package: bluemindo.
> By the way, I've built custom Debian CD images and PXE boot images using
> live-helper, and knows what an initial ram disk or a kernel is.
> I also have skills in C and Python, and I have some experience in
> contributing to FLOSS projects.

Fine. Knowledge of C might help in some parts, but most of the installer
is written in Shell. Because d-i runs in a fairly constraind environment
there is no Perl or Python available. 

> Regarding the FreeRunner, I've got one since the beginning of the year,
> and I use it as my sole phone.
> I have flashed SHR unstable on the NAND, and I've manually (reading the
> so-called install.sh script) installed Debian on a µSD card, although I rarely
> use it.

For porting d-i to it it would be good if we could get you a second
freerunner or if you have another phone you could use during this
time... Calls won't work during installation ;-) And you probably will
do many installations...

> I haven't tried d-i on the FreeRunner yet, but I think the main
> issues/things to do would be:
> * Starting d-i. I can see two ways of doing it:
>   - Putting it on a µSD card, maybe not the easiest thing if there's
> already something on it.
>   - Using kexec on a host system to run d-i without altering the
> partition table beforehand.

I and Luca Capello (gismo) worked on d-i for the freerunner at Debconf
9. We decided back then that whatever method we choose it should be
supported by the factory default settings of the u-boot on the

This means that you have to combine the kernel and initramfs into one
u-boot image. This is possible but a bit tricky to get right. 

> * Using the kernel from pkg-fso

This won't work. Period. If you want to integrate your work into the
official d-i you have to use a kernel built from the linux-2.6 package
in the main archive. 

So first all the bits to support the freerunner so that it can run d-i
must go into Linus kernel tree. As the kernel team most probably won't
accept any patches not accepted upstream. 

We basically need glamo mmc support in addition to basic boot support
for the freerunner to be able to support d-i. The glamo mmc support is
needed to access the SD card because the SD card is connected to the

Then we need a kernel configuration for the s3c24xx architecture and a
patch to enable an image for this architecture for linux-2.6. The kernel
configuration should be as similar as possible to the configurations of
the other kernel images (especially the other arm images). This is where
I stopped by the end of last year because of lack of time. If you want
to continue this work I can provide you with a partially working patch
for linux-2.6. 

> * Hacking g-i to work with the touchscreen and
> provide an on-screen keyboard.

Gismo and I were rahter targetting the network-console mode of d-i that
is used on headless NAS devices. The idea was that d-i would setup the
usb network and you could connect to it by sshing over this usb network.
I think that would be far easier. I will need networking anyway to
download packages and wifi is not an option for the installer because
the support for connecting to encrypted networks in d-i is minimal AFAIK
and ar6000 won't most probably go upstream ever and therefore not be
included in the Debian kernel.

>   As far as I know, directfb is being dropped in favor of X11, so, it
> shouldn't be that much of an issue.
> * Including all those things in a fairly lightweight initrd.

It depends on your definition of lightweight. I would call all the d-i
initramfs (it's technically not an initrd anymore) fairly heavyweight. 

I expect the core d-i part of all of this to be small and not very
difficult. AFAIR we had it already running until the bootloader step at
Debconf with a custom version of the pkg-fso kernel. The hard parts are:
- Create a kernel package for the freerunner based on the linux-2.6
  package in main
- Figure out the best layout for booting Debian in parallel to another
  distribution in NAND and configure u-boot to do the right thing and
  warp all this into an udeb for the d-i.
- Post installation stuff like creating a fso/freerunner task which gets
  automatically installed if a freerunner is detected. 

I would be willing to be your mentor if your commited to properly integrate
your work into the existing Debian infrastructure (like useing a kernel
based on linux-2.6, make your modifications so that they are acceptable
to the d-i team). My d-i knowledge is a bit rusty, but I think I know
the basic things and could point you in the right direction if you have
any questions.

I'm glad to see someone taking up this work, because I fear I won't have
time to do any serious work on this until next Debconf.


Attachment: signature.asc
Description: Digital signature

Reply to: