Next Previous Contents

5. Create your own developer live CD

From this point on, it is very easy to create your own developer live CD.

As the different necessary parts are too large to get a CD for e.g. sharp and ipaq running, the next section describes the way to get an iPaq developer CD.

The next section of this chapter describes the more complicated way to configure and create a CD containing Embedded, iPaq and a Sharp version using the "cloop" method. This CD finally contains all necessary copies of qte and opie using the transparent compressing method of cloop, which is e.g. used to get 2GByte of programs/data onto one Knoppix CD.

5.1 ipaq CD

Create a directory e.g. ipaq-cd and copy the following stuff inside.

  1. the arm kernel
    Mine is 2.4.18 (familiar 0.6.2) located inside the armdev dir.
  2. the qte ipaq version you need (compiled)
  3. the opie ipaq version you need (compiled)
  4. the toolchain
    I use 2.95.3 (from handhelds)
  5. the environment scripts into its own directory (you will need only the .goqtopiearm2953rc file.
  6. I copied also the opiedev and ipaqhelp doc.
  7. create a bin dir, which gets a copy of uic, qvfb, qmake and designer (all statically linked against qt2).

The following paragraph shows the directory structure of the CD.

ipaq-cd
ipaq-cd/armdev
ipaq-cd/armdev/kernel
ipaq-cd/armdev/kernel/2.4.18-rmk3-hh10
ipaq-cd/qt-vers
ipaq-cd/qt-vers/qt-2.3.7-opie-ipaq
ipaq-cd/opie-vers
ipaq-cd/opie-vers/opie_280603-099-ipaq
ipaq-cd/environ
ipaq-cd/environ/.goqtopiearm2953rc
ipaq-cd/arm
ipaq-cd/arm/2.95.3
ipaq-cd/doc
ipaq-cd/doc/ipaqhelp
ipaq-cd/doc/opiedev_doc
ipaq-cd/bin
        

The resulting "ls -ls" is shown in the next paragraph. You may recognize, that beside the dirs arm, armdev, bin, doc, qt-vers, opie-vers and environ there are some scripts and some links existing. They are only used to make it more comfortable. In principle the the following action items may also be done manually.

   4 drwxr-xr-x    9 root     root         4096 2003-06-29 19:31 .
   4 drwxr-xr-x   13 root     root         4096 2003-06-29 19:32 ..
   4 -rwxr-xr-x    1 root     root         1235 2003-06-29 18:22 .resetsymlinks.rc
   4 -rwxr-xr-x    1 root     root         1405 2003-06-29 18:09 .setsymlinks.rc
   4 -rw-r--r--    1 root     root          296 2003-06-29 17:23 README
   4 drwxr-xr-x    3 root     root         4096 2003-06-29 17:15 arm
   4 drwxr-xr-x    4 root     root         4096 2003-06-29 17:20 armdev
   4 drwxr-xr-x    2 root     root         4096 2003-06-29 09:05 bin
   4 -rwxr-xr-x    1 root     root         2280 2003-06-29 18:14 crossprep.rc
   4 drwxrwxrwx    4 root     root         4096 2003-06-29 19:31 doc
   4 drwxr-xr-x    2 root     root         4096 2003-06-29 17:40 environ
   0 lrwxrwxrwx    1 root     root           31 2003-06-29 17:24 opie-ipaq -> opie-vers/opie_280603-099-ipaq/
   4 drwxr-xr-x    3 root     root         4096 2003-06-29 09:00 opie-vers
   4 drwxr-xr-x    3 root     root         4096 2003-06-29 08:57 qt-vers
   0 lrwxrwxrwx    1 root     root           27 2003-06-29 17:23 qt2opie-ipaq -> qt-vers/qt-2.3.7-opie-ipaq/
        

The following links (all should be relative) have to be set inside ipaq-cd dir.

The following scripts are used (required : bash and awk, "su root -c" possibility).

You also have to modify the environ/.goqtopiearm2953rc to the special need of the CD version. Find the modified script here.

Burn your CD and you will be able to use it on every PC you want, without installing large source directories.

Just mount the CD and call ipaqprep.rc. This script will take care on all related items. You are in the CD environment now and able to cross-compile using the CDs toolchain and libraries.

5.2 Developer CD 0.2.3 using single cloop (embedded, ipaq, sharp)

The method described here is similar, than the above one, but uses the cloop device to compress the data stored on a CD. This allows the user to put more data on a CD than just 650MB.

The described example contains mainly qte and opie vesions for embedded, ipaq and sharp use, as well as an arm kernel and two toolchains (2.95.3 from hh and Embedix from sharp). All items together copied into a directory increases the used space to approx. 1.8GByte. After the cloop file is created, only 330MBytes are left, which can be easily copied onto a CD.

Beside the opiedev stuff itself, you will need the cloop programs / device binary to get the system running. I use the modified cloop version available at http://www.knopper.net/knoppix.

Create a directory e.g. opie-cd and a subdir e.g. opie-cd/OPIEDEV.src and copy the following stuff inside.

  1. cloop sources
    I have them in an extra utils dir.
  2. _createcloop.rc script
    creates the cloop file (see here).
  3. _mkcloopdevice.rc script
    generates and installs a cloop device module from the sources (see here).
  4. _mountcloop.rc script
    a short script, which allows the user to do all mount steps interactive (see here).
  5. OPIEDEC.src directoty with the following content

The following paragraph shows the directory structure of the CD.

opie-cd
opie-cd/utils
opie-cd/utils/cloop-0.68
opie-cd/OPIEDEV.src
opie-cd/OPIEDEV.src/Embedix
opie-cd/OPIEDEV.src/arm
opie-cd/OPIEDEV.src/arm/2.95.3
opie-cd/OPIEDEV.src/armdev
opie-cd/OPIEDEV.src/armdev/kernel
opie-cd/OPIEDEV.src/armdev/kernel/2.4.18-rmk3-hh10
opie-cd/OPIEDEV.src/qt-vers
opie-cd/OPIEDEV.src/qt-vers/qt-2.3.7-opie-emb
opie-cd/OPIEDEV.src/qt-vers/qt-2.3.7-opie-ipaq
opie-cd/OPIEDEV.src/qt-vers/qt-2.3.7-opie-sharp
opie-cd/OPIEDEV.src/opie-vers
opie-cd/OPIEDEV.src/opie-vers/opie_280603-099-emb
opie-cd/OPIEDEV.src/opie-vers/opie_280603-099-ipaq
opie-cd/OPIEDEV.src/opie-vers/opie_280603-099-sharp
opie-cd/OPIEDEV.src/environ
opie-cd/OPIEDEV.src/environ/.goqtopieembrc
opie-cd/OPIEDEV.src/environ/.goqtopiearm2953rc
opie-cd/OPIEDEV.src/environ/.goqtopiearmsharprc
opie-cd/OPIEDEV.src/doc
opie-cd/OPIEDEV.src/doc/ipaqhelp
opie-cd/OPIEDEV.src/doc/opiedev_doc
opie-cd/OPIEDEV.src/bin
opie-cd/README
        

The resulting "ls -lsa OPIEDEV.src" is shown in the next paragraph. You may recognize, that beside the dirs arm, armdev, bin, doc, qt-vers, opie-vers and environ there are some scripts and some links existing. They are only used to make it more comfortable. In principle the the following action items may also be done manually.

   4 drwxr-xr-x   10 root     root         4096 2003-09-21 11:10 .
   4 drwxr-xr-x    4 root     root         4096 2003-09-21 11:11 ..
   4 -rwxr-xr-x    1 root     root         1481 2003-09-21 10:20 .resetlinks.rc
   4 -rwxr-xr-x    1 root     root         1502 2003-09-21 10:19 .setlinks.rc
   4 drwxr-xr-x    3 root     root         4096 2003-09-20 18:12 Embedix
   4 drwxr-xr-x    3 root     root         4096 2003-09-21 09:29 arm
   4 drwxr-xr-x    4 root     root         4096 2003-06-29 17:20 armdev
   4 drwxr-xr-x    2 root     root         4096 2003-06-29 09:05 bin
   4 drwxrwxrwx    4 root     root         4096 2003-06-29 19:31 doc
   4 -rwxr-xr-x    1 root     root         2638 2003-09-21 10:20 embprep.rc
   4 drwxr-xr-x    2 root     root         4096 2003-09-21 10:37 environ
   4 -rwxr-xr-x    1 root     root         2654 2003-09-21 10:20 ipaqprep.rc
   0 lrwxrwxrwx    1 root     root           29 2003-09-20 18:05 opie-emb -> opie-vers/opie_280603-099-emb
   0 lrwxrwxrwx    1 root     root           31 2003-06-29 17:24 opie-ipaq -> opie-vers/opie_280603-099-ipaq/
   0 lrwxrwxrwx    1 root     root           31 2003-09-20 18:05 opie-sharp -> opie-vers/opie_280603-099-sharp
   4 drwxr-xr-x    5 root     root         4096 2003-09-21 11:08 opie-vers
   4 drwxr-xr-x    5 root     root         4096 2003-09-20 18:04 qt-vers
   0 lrwxrwxrwx    1 root     root           25 2003-09-20 18:05 qt2opie-emb -> qt-vers/qt-2.3.7-opie-emb
   0 lrwxrwxrwx    1 root     root           27 2003-06-29 17:23 qt2opie-ipaq -> qt-vers/qt-2.3.7-opie-ipaq/
   0 lrwxrwxrwx    1 root     root           27 2003-09-20 18:05 qt2opie-sharp -> qt-vers/qt-2.3.7-opie-sharp
   4 -rwxr-xr-x    1 root     root         2655 2003-09-21 10:24 sharpprep.rc
        

The following links (all should be relative) have to be set inside ipaq-cd dir.

The following scripts are used (required : bash and awk, "su root -c" possibility).

You also have to modify the environ/.goqtopieXXXrc to the special need of the CD version. Find the modified scripts here.

Use the cloop feature

Either compile the cloop source your own, or use the _mkcloopdevice.rc script (always as superuser).

The script will ask you, where your kernel source (includes) are installed. After that, the sources are compiled and a cloop.o module for your kernels usage, as well as some programs to create and extract your cloop file will be the result.

The script will copy the sources into /tmp and compile it there using the "su root" feature. If successfull, the cloop.o file will be copied into a dir /lib/modules/misc.

To create the cloop file, you can use the script _mkcloop.rc. The script expects two parameters one to define the sources dir and one to define the outputs file name. The cloop utilities take some time and need a lot of memory. So be carefull always.

Once ready, you can test the result by mounting the cloop file.

Test the result

A insmod cloop.o file=./OPIEDEV followed by a mount -o ro /dev/cloop /mnt will mount the cloop file to /mnt. Cd there and check, whether everything is correct, by trying out the prepare scripts.

Burn the CD

Select the cloop file OPIEDEV, the dirctoty utils and the cloop scripts and burn it onto a CDs root dir using your favorite burn software.

Use your CD

Mount the CD to e.g. /cdrom. If used the first time on e.g. your laptop, you may have to create the cloop device first. Call the _mkcloopdevice.rc script for that (superuser) (more info about what happens see here).

If ready with that (or already done on your laptop) call _mountcloop.rc to mount the cloop file to e.g. /mnt.

Cd to /mnt (as standard user) and call e.g. ./ipaqprep.rc to change to ipaq environment. The script will ask you some questions and stores the results in some temporary files in you home dir. To get all environment variables available, a new bash is started.

If you start kdevelop from this bash, you are able to crosscompile.

5.3 Developer CD 0.2.7 using multiple cloop (embedded, ipaq, sharp)

The method described here is similar, than the above one, but uses the cloop device with multiple files to split the different parts into 5 cloop files (cloop-1.02 needed). This guarantees an easy update without uploading always 400MB.

The described example contains mainly qte and opie vesions for embedded, ipaq and sharp use, as well as arm kernels and three toolchains (2.95.3 and 3.2.3 from hh and Embedix from sharp).

Beside the opiedev stuff itself, you will need the cloop programs / device binary to get the system running. I use the modified cloop version available at http://developer.linuxtag.net/knoppix/sources.

Create a directory e.g. opie-cd and the subdirs e.g.

  1. opie-cd/BASE.src
  2. opie-cd/OPIE.src
  3. opie-cd/QTE.src
  4. opie-cd/TOOLCHAIN.src
  5. opie-cd/KERNEL.src

and copy the following stuff inside.

  1. cloop sources
    I have them in an extra utils dir.
  2. _createcloop.rc script
    creates the cloop files (see here).
  3. _mkcloopdevice.rc script
    generates and installs a cloop device module from the sources (see here) and generates the device files cloop0-4.
  4. _mountcloop.rc script
    a short script, which allows the user to do all mount steps interactive (see here).
  5. _umountcloop.rc script
    a short script, which allows the user to do all umount steps automatically).
  6. BASE.src directoty with the following content
  7. OPIE.src directoty with the following content
  8. QTE.src directoty with the following content
  9. TOOLCHAIN.src directoty with the following content
  10. KERNERL.src directoty with the following content

The following paragraph shows the directory structure of the CD.

opie-cd
opie-cd/utils
opie-cd/utils/cloop-1.02
opie-cd/BASE.src
opie-cd/BASE.src/Embedix -> kernel/arm/Embedix
opie-cd/BASE.src/arm -> kernel/arm
opie-cd/BASE.src/opie-emb -> opie-vers/opie_100-emb
opie-cd/BASE.src/opie-ipaq -> opie-vers/opie_100-ipaq
...
opie-cd/BASE.src/environ
opie-cd/BASE.src/environ/.goqtopieembrc
opie-cd/BASE.src/environ/.goqtopiearm2953rc
opie-cd/BASE.src/environ/.goqtopiearmsharprc
opie-cd/BASE.src/doc
opie-cd/BASE.src/doc/ipaqhelp
opie-cd/BASE.src/doc/opiedev_doc
opie-cd/BASE.src/bin
opie-cd/TOOLCHAIN.src/arm/2.95.3
opie-cd/TOOLCHAIN.src/arm/Embedix
opie-cd/KERNEL.src/arm/2.4.18-rmk3-hh10
opie-cd/QTE.src/qt-2.3.7-opie-emb
opie-cd/QTE.src/qt-2.3.7-opie-ipaq
opie-cd/QTE.src/qt-2.3.7-opie-sharp
opie-cd/OPIE.src/opie_280603-099-emb
opie-cd/OPIE.src/opie_280603-099-ipaq
opie-cd/OPIE.src/opie_280603-099-sharp
opie-cd/README
        

The following links (all should be relative) have to be set inside ipaq-cd dir.

The following scripts are used (required : bash and awk, "su root -c" possibility).

You also have to modify the environ/.goqtopieXXXrc to the special need of the CD version. Find the modified scripts here.

Use the cloop feature

Either compile the cloop source your own, or use the _mkcloopdevice.rc script (always as superuser).

The script will ask you, where your kernel source (includes) are installed. After that, the sources are compiled and a cloop.o module for your kernels usage, as well as some programs to create and extract your cloop file will be the result.

The script will copy the sources into /tmp and compile it there using the "su root" feature. If successfull, the cloop.o file will be copied into a dir /lib/modules/misc.

To create the cloop files, you can use the script _createcloop.rc. The script expects two parameters one to define the sources dir and one to define the outputs file name. The cloop utilities take some time and needs a lot of memory. So be carefull always.

The following cloop files should be created (if you want to use the provided cloop scripts).

Once ready, you can test the result by mounting the cloop file.

Test the result

A insmod cloop.o file=./OPIEDEV followed by a mount -o ro /dev/cloop /mnt will mount the cloop file to /mnt. Cd there and check, whether everything is correct, by trying out the prepare scripts.

With the multiple CLOOP-Files, you are able to use losetup to define, which cloop-files uses which /dev/cloopx file. You may want to use the _mountcloop.rc script to mount all cloop files.

Burn the CD

Select the cloop file OPIEDEV, the dirctoty utils and the cloop scripts and burn it onto a CDs root dir using your favorite burn software.

Use your CD

Mount the CD to e.g. /cdrom. If used the first time on e.g. your laptop, you may have to create the cloop device first. Call the _mkcloopdevice.rc script for that (superuser) (more info about what happens see here).

If ready with that (or already done on your laptop) call _mountcloop.rc to mount the cloop file to e.g. /mnt.

Cd to /mnt (as standard user) and call e.g. ./ipaqprep.rc to change to ipaq environment. The script will ask you some questions and stores the results in some temporary files in you home dir. To get all environment variables available, a new bash is started.

If you start kdevelop from this bash, you are able to crosscompile.

Download prepared CD

If you dont want to create your CD yourself (following the above documentation) you can download a prepared version (0.2.3 and 0.2.7) from http://www.handhelds.org/pub/linux/dists/opiedev.

Find a usage and installation documentation there.


Next Previous Contents