# HG changeset patch
# User Pascal Bellard
# Date 1332527858 -3600
# Node ID 55f97ee147e89f990633bfdfe0899d57707d2c93
Initial move from slitaz-pizza
diff -r 000000000000 -r 55f97ee147e8 bootloader
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bootloader Fri Mar 23 19:37:38 2012 +0100
@@ -0,0 +1,213 @@
+#!/bin/sh
+#
+# This script creates a floppy image set from a linux bzImage and can merge
+# a cmdline and/or one or more initramfs.
+# The total size can not exceed 15M because INT 15H function 87H limitations.
+#
+# (C) 2009 Pascal Bellard - GNU General Public License v3.
+
+usage()
+{
+cat < /dev/null
+ [ -n "$DEBUG" ] && printf "store16(%04X) = %04X\n" $1 $2 1>&2
+}
+
+# write a 32 bits data
+# usage: storelong offset data32 file
+storelong()
+{
+ echo $2 | awk '{ printf "\\\\x%02X\\\\x%02X\\\\x%02X\\\\x%02X",
+ $1%256,($1/256)%256,($1/256/256)%256,($1/256/256/256)%256 }' | \
+ xargs echo -en | \
+ dd bs=4 conv=notrunc of=$3 seek=$(( $1 / 4 )) 2> /dev/null
+ [ -n "$DEBUG" ] && printf "storelong(%04X) = %08X\n" $1 $2 1>&2
+}
+
+# read a 32 bits data
+# usage: getlong offset file
+getlong()
+{
+ dd if=$2 bs=1 skip=$(( $1 )) count=4 2> /dev/null | \
+ hexdump -e '"" 1/4 "%d" "\n"'
+}
+
+floppyset()
+{
+ # bzImage offsets
+ CylinderCount=496
+ SetupSzOfs=497
+ FlagsOfs=498
+ SyssizeOfs=500
+ VideoModeOfs=506
+ RootDevOfs=508
+ CodeAdrOfs=0x214
+ RamfsAdrOfs=0x218
+ RamfsLenOfs=0x21C
+ ArgPtrOfs=0x228
+
+ # boot+setup address
+ SetupBase=0x90000
+
+ stacktop=0x9E00
+
+ bs=/tmp/bs$$
+
+ # Get and patch boot sector
+ # See http://hg.slitaz.org/wok/raw-file/711d076b277c/linux/stuff/linux-header-2.6.34.u
+ dd if=$KERNEL bs=512 count=1 of=$bs 2> /dev/null
+ uudecode < /dev/null
+begin-base64 644 -
+/L+6nWgAkAcGF4n8McC5HQDzq1sfD6mg8X1ABlfFd3ixBvOlZWaPR3gGH8ZF
++D/6l1hB6DQBvgACA3QO6HYBWwseKAJ0LFNH6AoBXuhmAbAgzRCwCM0QTuhl
+ATwIdAOIBK05NigCdPDoPgE8CnXgiHz+ieb/TBD/TBi/9AGBTRz/gMdFMACc
+sBCxBUi0k4lEHLABiUQUmGaY0+BIZgMFZtPoaAAQB7+AACn4nHMCAccx21BW
+6J4AXrkAgLSH/kQczRVYnXfcoRoCvxwCsQk4RBxyuJPNE+oAACCQsEYoyL7b
+AejSAF3rI4D5E3IEOMF3a4D+AnIEOOZ3bGCB/QAGdCoGUlFTlrQCULEGtQTB
+xQSwDyHoBJAnFEAn6IwA/s117LAgzRDitOiWAJjNE2FSUCjIdwKwAZg5+HIC
+ifhQtALNE5VeWFpyoJVBjuGAxwJPdFFOdfSM4ZU4wXVFiMj+xrEBOOZ1O4j0
+/sW2AID9UHIwOi7wAXIqtQBgvt4B/kQMU+gxAFvoOAB1FlKYzRO4AQLNE1rQ
+1Dpk/nXqRgjkdeVh64sWB7AxLAO0DrsHAM0QPA1088OwDejv/6wIwHX4w79s
+BLFbZQINuA0BZToNdArNFnT0mM0Wju9Hw1g6AEluc2VydCBkaXNrIDEuBw0A
+AA==
+====
+EOT
+
+ # Get setup
+ setupsz=$(getlong $SetupSzOfs $bs)
+ setupszb=$(( $setupsz & 255 ))
+ dd if=$KERNEL bs=512 skip=1 count=$setupszb 2> /dev/null >> $bs
+
+ if [ -n "$TRACKS" ]; then
+ [ -n "$DEBUG" ] && echo -n "--tracks " 1>&2
+ n=$(getlong $CylinderCount $bs)
+ store16 $CylinderCount $(( ($n & -256) + $TRACKS )) $bs
+ fi
+ if [ -n "$FLAGS" ]; then
+ [ -n "$DEBUG" ] && echo -n "--flags " 1>&2
+ store16 $FlagsOfs $FLAGS $bs
+ fi
+ if [ -n "$VIDEO" ]; then
+ [ -n "$DEBUG" ] && echo -n "--video " 1>&2
+ store16 $VideoModeOfs $VIDEO $bs
+ fi
+ if [ -n "$RDEV" ]; then
+ if [ "$(dirname $RDEV)" == "/dev" -a -b $RDEV ]; then
+ [ -n "$DEBUG" ] && echo -n "--rdev " 1>&2
+ RDEV=$(stat -c '0x%02t%02T' $RDEV 2> /dev/null)
+ store16 $RootDevOfs $RDEV $bs
+ fi
+ fi
+
+ # Store cmdline after setup
+ if [ -n "$CMDLINE" ]; then
+ [ -n "$DEBUG" ] && echo -n "--cmdline '$CMDLINE' " 1>&2
+ echo -n "$CMDLINE" | dd bs=512 count=1 conv=sync 2> /dev/null >> $bs
+ storelong $ArgPtrOfs $(( $SetupBase + $stacktop )) $bs
+ fi
+
+ # Compute initramfs size
+ initrdlen=0
+ for i in $( echo $INITRD | sed 's/,/ /' ); do
+ [ -s "$i" ] || continue
+ [ -n "$DEBUG" ] && echo "--initrd $i " 1>&2
+ initrdlen=$(( ($initrdlen + $(stat -c %s $i) + 3) & -4 ))
+ done
+ if [ $initrdlen -ne 0 ]; then
+ [ -n "$DEBUG" ] && echo "initrdlen = $initrdlen " 1>&2
+ storelong $RamfsAdrOfs \
+ $(( (0x1000000 - $initrdlen) & 0xFFFF0000 )) $bs
+ storelong $RamfsLenOfs $initrdlen $bs
+ fi
+
+ # Output boot sector + setup + cmdline
+ dd if=$bs 2> /dev/null
+
+ # Output kernel code
+ dd if=$KERNEL bs=512 skip=$(( $setupszb + 1 )) 2> /dev/null
+
+ # Pad to next sector
+ Kpad=$(( 512 - ($(stat -c %s $KERNEL) & 511) ))
+ [ $Kpad -eq 512 ] || dd if=/dev/zero bs=1 count=$Kpad 2> /dev/null
+
+ # Output initramfs
+ padding=0
+ for i in $( echo $INITRD | sed 's/,/ /' ); do
+ [ -s "$i" ] || continue
+ [ $padding -ne 0 ] && dd if=/dev/zero bs=1 count=$padding 2> /dev/null
+ dd if=$i 2> /dev/null
+ padding=$(( 4 - ($(stat -c %s $i) & 3) ))
+ [ $padding -eq 4 ] && padding=0
+ done
+
+ # Cleanup
+ rm -f $bs
+}
+
+if [ "$FORMAT" == "0" ]; then # unsplitted
+ floppyset > $PREFIX
+ PAD=$(( 512 - ($(stat -c %s $PREFIX) % 512) ))
+ [ $PAD -ne 512 ] && dd if=/dev/zero bs=1 count=$PAD >> $PREFIX 2> /dev/null
+ exit
+fi
+floppyset | split -b ${FORMAT}k /dev/stdin floppy$$
+i=1
+ls floppy$$* | while read file ; do
+ output=$PREFIX$(printf "%03d" $i)
+ cat $file /dev/zero | dd bs=1k count=$FORMAT conv=sync of=$output 2> /dev/null
+ echo $output
+ rm -f $file
+ i=$(( $i + 1 ))
+done
diff -r 000000000000 -r 55f97ee147e8 download.php
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/download.php Fri Mar 23 19:37:38 2012 +0100
@@ -0,0 +1,38 @@
+
diff -r 000000000000 -r 55f97ee147e8 helper
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/helper Fri Mar 23 19:37:38 2012 +0100
@@ -0,0 +1,358 @@
+#!/bin/sh
+# $0 kernel size [initrd]
+
+list_pkgs()
+{
+ TMPDIR=$2
+ shift 2
+ cat <
+
+
+Package
+Version
+Description
+Disk
+Memory
+
+
+EOT
+ for i in $TMPDIR/pkgs/*/receipt pkgs/*/receipt ; do
+ [ -s $i ] || continue
+ case "$i" in
+ pkgs/kernel-*/receipt) continue;;
+ pkgs/module-*/receipt) continue;;
+ esac
+ AUTO_SELECTION=""
+ UNPACKED_SIZE="-"
+ PACKED_SIZE="-"
+ checked=""
+ . $i
+ case " $@ " in
+ *\ $PACKAGE\ *) checked='checked="checked"';;
+ *) [ -n "$2" ] && checked="";;
+ esac
+ grep -qs "^$PACKAGE " $TMPDIR/uploadconf &&
+ checked='checked="checked"'
+ if [ -n "$AUTO_SELECTION" ]; then
+ checked='checked="checked" disabled'
+ cat <
+EOT
+ fi
+ cat <
+
+$PACKAGE
+$VERSION
+$SHORT_DESC
+$PACKED_SIZE
+$UNPACKED_SIZE
+$(grep -qs ^config_form $i && echo '»')
+
+EOT
+ done
+ cat <
+
+
+EOT
+ exit
+}
+
+list_kernels()
+{
+ TMPDIR=$2
+ shift 2
+ cat <
+
+
+Kernel
+Version
+Description
+
+
+EOT
+ checked='checked="checked"'
+ for i in $TMPDIR/pkgs/*/receipt pkgs/*/receipt ; do
+ [ -s $i ] || continue
+ case "$i" in
+ pkgs/kernel-*/receipt);;
+ *) continue;;
+ esac
+ UNPACKED_SIZE="-"
+ . $i
+ case " $@ " in
+ *\ $PACKAGE\ *) checked='checked="checked"' ;;
+ *) [ -n "$2" ] && checked="";;
+ esac
+ cat <
+
+${PACKAGE#kernel-}
+$VERSION
+$SHORT_DESC
+
+
+EOT
+ checked=""
+ done
+ cat <
+EOT
+ exit
+}
+
+list_modules()
+{
+ TMPDIR=$2
+ shift 2
+ cat <
+
+
+Module
+Version
+Description
+Size
+
+
+EOT
+ for i in $TMPDIR/pkgs/*/receipt pkgs/*/receipt ; do
+ [ -s $i ] || continue
+ case "$i" in
+ pkgs/module-*/receipt);;
+ *) continue;;
+ esac
+ UNPACKED_SIZE="-"
+ . $i
+ checked=""
+ case " $@ " in
+ *\ $PACKAGE\ *) checked='checked="checked"' ;;
+ esac
+ grep -qs "^$PACKAGE " $TMPDIR/uploadconf &&
+ checked='checked="checked"'
+ cat <
+
+${PACKAGE#module-}
+$VERSION
+$SHORT_DESC
+$UNPACKED_SIZE
+$(grep -qs ^config_form $i && echo '?')
+
+EOT
+ done
+ cat <
+EOT
+ exit
+}
+
+get_receipt()
+{
+ grep -l "PACKAGE=\"$1\"" $2/pkgs/*/receipt pkgs/*/receipt | head -1
+}
+
+get_package()
+{
+ local pkg
+ pkg=pkgs/$1/receipt
+ [ -s $pkg ] || pkg=$2/pkgs/$1/receipt
+ [ -s $pkg ] || pkg=$(get_receipt $@)
+ . $pkg
+ cd $(dirname $pkg)
+ pkg=$2$PACKAGE-$VERSION.tazpkg
+ find * | cpio -o -H newc > $pkg
+ echo -n $pkg
+}
+
+get_note()
+{
+ pkg=$(get_receipt $1 $2)
+ [ -n "$pkg" ] || exit
+ grep -qs ^config_note $pkg || exit
+ . $pkg
+ config_note
+}
+
+get_form()
+{
+ pkg=$(get_receipt $1 $2)
+ [ -n "$pkg" ] || exit
+ grep -qs ^config_form $pkg || exit
+ . $pkg
+ if [ -s $2/uploadconf ]; then
+ awk "{
+if (found) {
+ if (/^ /) print;
+ else exit;
+}
+if (/^$PACKAGE /) found=1
+}" < $2/uploadconf | sed -e 's/ //' -e 's/ \([A-Z_0-9]*=\)/export \1/' > $2/vars
+ . $2/vars
+ fi
+ config_form $2/fs
+ exit
+}
+
+do_pre_install()
+{
+ pkg=$(get_receipt $1 $2)
+ [ -n "$pkg" ] || exit
+ CONFIG_FILES=""
+ . $pkg
+ grep -qs ^pre_install $pkg && pre_install $2/fs
+ [ -n "$CONFIG_FILES" ] && for i in $CONFIG_FILES; do echo $i >> $2/config_files; done
+ unlzma -c $(dirname $pkg)/fs.cpio.lzma | ( cd $2 ; cpio -idmu )
+ exit
+}
+
+do_post_install()
+{
+ pkg=$(get_receipt $1 $2)
+ [ -n "$pkg" ] || exit
+ . $pkg
+ echo "$1 $VERSION $(md5sum $(dirname $pkg)/fs.cpio.lzma | awk '{ print $1 }')" >> $2/fs/etc/packages.conf
+ if grep -qs ^post_install $pkg; then
+ . $2/vars
+ echo "=== $pkg: $(date) ===" >> $2/post_install.log 2>&1
+ post_install $2/fs >> $2/post_install.log 2>&1
+ sed -e 's/^export/ /' -e 's/^/ /' < $2/vars >> $2/fs/etc/packages.conf
+ fi
+ rm -f $2/vars
+ exit
+}
+
+scan_depends()
+{
+ local pkg
+ for pkg in $@ ; do
+ case " $OUTPUT " in
+ *\ $pkg\ *) continue ;;
+ esac
+ DEPENDS=""
+ . $(get_receipt $pkg $TMPDIR)
+ scan_depends $DEPENDS
+ case " $OUTPUT " in
+ *\ $pkg\ *) continue ;;
+ esac
+ OUTPUT="$OUTPUT $pkg"
+ done
+}
+
+get_depends()
+{
+ TMPDIR=$2
+ shift 2
+ OUTPUT=""
+ scan_depends $@
+ echo -n $OUTPUT
+ exit
+}
+
+pkgs_extract()
+{
+ cd $2
+ mkdir pkgs
+ if cpio -t < $1 | grep -q receipt; then
+ mv $1 pkgs
+ elif tar tf $1 | grep -q tazpkg; then
+ tar xf $1 -C pkgs
+ elif tar tzf $1 | grep -q tazpkg; then
+ tar xzf $1 -C pkgs
+ elif tar tjf $1 | grep -q tazpkg; then
+ tar xjf $1 -C pkgs
+ else
+ rm -rf $1 pkgs
+ exit
+ fi
+ cd pkgs
+ for i in *; do
+ mkdir tmp
+ cd tmp
+ cpio -i < ../$i
+ . ./receipt
+ cd ..
+ mv tmp $PACKAGE-$VERSION
+ done
+ exit
+}
+
+lzma_set_size()
+{
+ n=$(unlzma -c $1 | wc -c)
+ for i in $(seq 1 8); do
+ printf '\\\\x%02X' $(($n & 255))
+ n=$(($n >> 8))
+ done | xargs echo -en | dd of=$1 conv=notrunc bs=1 seek=5 2> /dev/null
+}
+
+case "$1" in
+--list-modules) list_modules $@ ;;
+--list-kernels) list_kernels $@ ;;
+--list-pkgs) list_pkgs $@ ;;
+--get-form) get_form $2 $3 ;;
+--get-note) get_note $2 $3 ;;
+--pre-install) do_pre_install $2 $3 ;;
+--post-install) do_post_install $2 $3 ;;
+--depends) get_depends $@ ;;
+--pkgs-extract) pkgs_extract $2 $3 ;;
+--remove) rm -rf $2; exit ;;
+--get-pkg) get_package $2 $3 ;;
+esac
+
+if [ "x$1" == "x--mkrootfs" ]; then
+ tmp=$2
+ cd $tmp/fs
+ if [ ! -d boot -a -s ../kernel ]; then # custom kernel
+ mkdir boot
+ cp ../kernel boot/bzImage
+ fi
+ find -user bellard -exec chown root.root {} \;
+ find | grep -v ^./boot | cpio -o -H newc | lzma e ../rootfs.gz -si
+ lzma_set_size ../rootfs.gz
+fi
+if [ "x$1" == "x--mkiso" ]; then
+ tmp=$2
+ mkdir -p $tmp/iso/boot/isolinux $tmp/iso/data
+ cat $tmp/fs/boot/System.map | gzip -9 > $tmp/iso/data/sysmap.gz
+ cat $tmp/fs/boot/config | gzip -9 > $tmp/iso/data/linconf.gz
+ cat $tmp/fs/boot/config-busybox | gzip -9 > $tmp/iso/data/bbconf.gz
+ cp $tmp/config_files $tmp/iso/data/files.cnf
+ cp $tmp/fs/etc/packages.conf $tmp/iso/data/packages.cnf
+ cp $tmp/fs/boot/bzImage $tmp/iso/boot/bzImage
+ cp $tmp/rootfs.gz $tmp/iso/boot/rootfs
+ cp /boot/isolinux/isolinux.bin $tmp/iso/boot/isolinux
+ cat > $tmp/iso/boot/isolinux/isolinux.cfg < /dev/null 2>&1
+ [ -x /usr/bin/isohybrid ] &&
+ /usr/bin/isohybrid $tmp/slitaz.iso 2> /dev/null
+fi
+if [ "x$1" == "x--mkimg" ]; then
+ tmp=$2
+ exe=$PWD
+ cd $tmp
+ $exe/bootloader fs/boot/bzImage --initrd rootfs.gz --format 0
+ mv floppy. slitaz.img
+# $exe/bootloader fs/boot/bzImage --initrd rootfs.gz
+# cat floppy.* > slitaz.img && rm -f floppy.*
+fi
+if [ "x$1" == "x--mkcfg" ]; then
+ tmp=$2
+ cd $tmp/fs
+ for i in $(sed 's#^/##' < ../config_files); do find $i; done | \
+ sort | uniq | cpio -o -H newc | gzip -9 > ../config_files.cpio.gz
+fi
diff -r 000000000000 -r 55f97ee147e8 index.php
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/index.php Fri Mar 23 19:37:38 2012 +0100
@@ -0,0 +1,132 @@
+
+
+
+
+ Tiny SliTaz - Builder
+
+
+
+
+
+
+ " />
+
+
+ favicon.ico" />
+ slitaz.css" />
+
+
+
+
+
+
+
+
+
+
+"; ?>
+
+Build your configuration from binary packages
+
+
+
+
+
+
Tiny SliTaz goals
+
+ Useful software, expansible, easy to configure, runs fully in RAM,
+ simple, light and fast for minimum hardware resources: ie fits on
+ one floppy disk (IDE disk optional), runs on a 386sx processor and
+ needs as little memory as possible (currently 8 MB with a 2.6.34
+ kernel).
+
+ Example
+
+
+
+
+
Why this builder ?
+
+ Tiny SliTaz should be as small as possible. Only the necessary
+ software is kept. The package manager is run using this website.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 55f97ee147e8 step1.php
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/step1.php Fri Mar 23 19:37:38 2012 +0100
@@ -0,0 +1,136 @@
+ strtotime("-1 hour")) continue;
+ shell_exec("sudo ./helper --remove /tmp/$name");
+ }
+ closedir($dir);
+ if (isset($_POST["tmp_dir"])) return;
+ $_POST["tmp_dir"] = tempnam('','tiny_webgen');
+ if (file_exists($_POST["tmp_dir"])) unlink($_POST["tmp_dir"]);
+ mkdir($_POST["tmp_dir"]);
+ $_POST["tmp_dir"] .= '/';
+}
+
+set_tmp_dir();
+
+function post_hidden()
+{
+ global $usedvars;
+ foreach ($usedvars as $var) {
+ if (isset($_POST[$var]) && $var != "continue" &&
+ $var != "configuring") {
+?>
+
+
+
+
+The file /etc/packages.conf in the initramfs holds all information
+to rebuild your Tiny SliTaz system. You should upload your
+/etc/packages.conf first if you want to upgrade your system only.
+
+
+
+
+
+
+You can upload a tazpkg file (.tazpkg) or a tarball of tazpkg files (.tar).
+These packages will extend the official packages list and will be chosen when
+the package names are found to be matching. You can find some examples in the
+Tiny SliTaz repository .
+
+
+
+
+
+
+
+
+
+Linux kernel
+
+
+You can upload a custom kernel or use an official one.
+Your kernel should have an embedded initramfs with busybox like
+this one .
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 55f97ee147e8 step2.php
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/step2.php Fri Mar 23 19:37:38 2012 +0100
@@ -0,0 +1,36 @@
+
+
+
+Additionnal modules
+
+
+
+
diff -r 000000000000 -r 55f97ee147e8 step3.php
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/step3.php Fri Mar 23 19:37:38 2012 +0100
@@ -0,0 +1,48 @@
+
+
+
+Additional RAM filesystem
+
+
+
+
diff -r 000000000000 -r 55f97ee147e8 step4.php
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/step4.php Fri Mar 23 19:37:38 2012 +0100
@@ -0,0 +1,60 @@
+ $val) {
+ if (in_array($key, $usedvars)) continue;
+ fwrite($fp,"export ".$key."='".$val."'\n");
+ }
+ fclose($fp);
+ shell_exec("sudo ./helper --post-install $pkg ".$_POST['tmp_dir']);
+}
+
+$output = '';
+if (isset($_POST['toconfigure']) && $_POST['toconfigure'] != "") {
+ $pkgs = explode(" ",$_POST['toconfigure']);
+ foreach ($pkgs as $key => $pkg) {
+ shell_exec("sudo ./helper --pre-install $pkg ".$_POST['tmp_dir']);
+ $output = shell_exec("./helper --get-form $pkg ".
+ $_POST['tmp_dir']);
+ unset($pkgs[$key]);
+ $_POST['toconfigure'] = implode(" ", $pkgs);
+ if ($output == "") {
+ shell_exec("sudo ./helper --post-install $pkg ".
+ $_POST['tmp_dir']);
+ continue;
+ }
+?>
+
+
+ configuration
+
+
+
+
diff -r 000000000000 -r 55f97ee147e8 step5.php
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/step5.php Fri Mar 23 19:37:38 2012 +0100
@@ -0,0 +1,122 @@
+
+
+
+Get Tiny SliTaz files
+
+
+
+Files for bootloaders
+
+
+ )" type="submit" />
+
+ )" type="submit" />
+
+
+
+Configuration info
+
+
+
+
+ )" type="submit" />
+
+
+
+
+Debug info
+
+
+ )" type="submit" />
+
+ )" type="submit" />
+
+
+
+
+ )" type="submit" />
+
+ )" type="submit" />
+
+
+
+
+
+
+Going further
+
+Tiny SliTaz should be smaller to have more functionality
+and/or needs less RAM.
+The kernel can be tuned/patched
+or you can use an earlier version.
+
+
+You can test Tiny SliTaz without pre-historic hardware using qemu:
+
+
+qemu -cpu 486 -m 8 -net nic,model=ne2k_isa -net tap -fda slitaz.img
+
+
+Or
+
+
+qemu -cpu 486 -m 8 -net nic,model=ne2k_isa -net tap -snapshot \
+ -kernel kernel -initrd rootfs.gz /dev/zero
+
+
+And the executable file /etc/qemu-ifup:
+
+
+#!/bin/sh
+
+if [ -x /usr/sbin/openvpn ]; then
+ openvpn --mktun --dev $1 --user `id -un`
+else
+ tunctl -u `id -un` -t $1
+fi
+ifconfig $1 192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0
+
+
+You can also update the file /etc/resolv.conf on the Tiny SliTaz guest with your
+nameserver(s) and enable the ip routing on your desktop:
+
+
+# echo 1 > /proc/sys/net/ipv4/ip_forward
+# yes y | tazpkg get-install iptables
+# iptables -t nat -A POSTROUTING -j MASQUERADE
+
+
+
diff -r 000000000000 -r 55f97ee147e8 tiny.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tiny.css Fri Mar 23 19:37:38 2012 +0100
@@ -0,0 +1,14 @@
+
+#header {
+ border-bottom: 6px solid #d66018;
+ color: #ffffff;
+ font-weight: bold;
+}
+
+#copy {
+ text-align: center;
+}
+
+#bottom {
+ text-align: center;
+}
diff -r 000000000000 -r 55f97ee147e8 tinyslitaz-boot.png
Binary file tinyslitaz-boot.png has changed
diff -r 000000000000 -r 55f97ee147e8 tinyslitaz-httpinfo.png
Binary file tinyslitaz-httpinfo.png has changed
diff -r 000000000000 -r 55f97ee147e8 tinyslitaz.png
Binary file tinyslitaz.png has changed