commit 36073d0c9a389048a7f6a4cd4e9cd28ed1bc32a9 Author: josch Date: Wed Jun 22 09:50:36 2011 +0200 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a01ee28 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.*.swp diff --git a/default/config b/default/config new file mode 100644 index 0000000..a94421a --- /dev/null +++ b/default/config @@ -0,0 +1,4 @@ +SUITE="sid" +ARCH="armel" +ROOTDIR="debian-$SUITE-$ARCH" +MIRROR="http://127.0.0.1:3142/ftp.de.debian.org/debian" diff --git a/default/config.armhf b/default/config.armhf new file mode 100644 index 0000000..2fb40d4 --- /dev/null +++ b/default/config.armhf @@ -0,0 +1,4 @@ +SUITE="sid" +ARCH="armhf" +ROOTDIR="debian-$DIST-$ARCH" +MIRROR="http://127.0.0.1:3142/ftp.debian-ports.org/debian" diff --git a/default/debconfseed.txt b/default/debconfseed.txt new file mode 100644 index 0000000..159bb44 --- /dev/null +++ b/default/debconfseed.txt @@ -0,0 +1,11 @@ +locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8 +locales locales/default_environment_locale select en_US.UTF-8 +tzdata tzdata/Zones/Europe select Berlin +tzdata tzdata/Areas select Europe +nodm nodm/xinit string /usr/bin/xinit +nodm nodm/min_session_time string 60 +nodm nodm/enabled boolean true +nodm nodm/xsession string /etc/X11/Xsession +nodm nodm/x_options string vt7 -nolisten tcp +nodm nodm/first_vt string 7 +nodm nodm/user string user diff --git a/default/hooks/create_user b/default/hooks/create_user new file mode 100644 index 0000000..0404ea2 --- /dev/null +++ b/default/hooks/create_user @@ -0,0 +1,2 @@ +fakechroot chroot $ROOTDIR useradd user -p `openssl passwd -crypt -salt // ""` -s /bin/bash --create-home +fakechroot chroot $ROOTDIR usermod -a -G audio,dialout user diff --git a/default/hooks/empty_password b/default/hooks/empty_password new file mode 100644 index 0000000..1c48613 --- /dev/null +++ b/default/hooks/empty_password @@ -0,0 +1,2 @@ +sed -i 's/\(root:\)[^:]*\(:\)/\1'`openssl passwd -crypt -salt // "" | sed 's/\(\/\|\\\|&\)/\\\&/g'`'\2/' $ROOTDIR/etc/shadow +sed -i 's/\(PermitEmptyPasswords\) no/\1 yes/' $ROOTDIR/etc/ssh/sshd_config diff --git a/default/hooks/firstboot b/default/hooks/firstboot new file mode 100644 index 0000000..7f1119e --- /dev/null +++ b/default/hooks/firstboot @@ -0,0 +1,23 @@ +cat > $ROOTDIR/etc/init.d/firstboot << __END__ +#!/bin/sh -e +### BEGIN INIT INFO +# Provides: firstboot +# Required-Start: \$all +# Required-Stop: +# Default-Start: S +# Default-Stop: +### END INIT INFO + +for f in rsa dsa ecdsa; do rm -rf /etc/ssh/ssh_host_\${f}_key; done +echo "generating ssh rsa key..." +ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -C "" -N "" +echo "generating ssh dsa key..." +ssh-keygen -q -t dsa -f /etc/ssh/ssh_host_dsa_key -C "" -N "" +echo "generating ssh ecdsa key..." +ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -C "" -N "" + +update-rc.d -f firstboot remove +__END__ + +chmod +x $ROOTDIR/etc/init.d/firstboot +fakechroot chroot $ROOTDIR update-rc.d firstboot start 99 S diff --git a/default/hooks/serial_tty b/default/hooks/serial_tty new file mode 100644 index 0000000..4066a73 --- /dev/null +++ b/default/hooks/serial_tty @@ -0,0 +1 @@ +echo "T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100" >> $ROOTDIR/etc/inittab diff --git a/default/multistrap.conf b/default/multistrap.conf new file mode 100644 index 0000000..fda0a51 --- /dev/null +++ b/default/multistrap.conf @@ -0,0 +1,22 @@ +[General] +arch=$ARCH +directory=$ROOTDIR +cleanup=true +unpack=true +noauth=true +bootstrap=Debian_bootstrap +aptsources=Debian +allowrecommends=false +addimportant=false + +[Debian_bootstrap] +packages=$PACKAGES +source=$MIRROR +suite=$SUITE +omitdebsrc=true + +[Debian] +source=http://ftp.de.debian.org/debian +keyring=debian-archive-keyring +suite=$SUITE +omitdebsrc=true diff --git a/default/multistrap.conf.armhf b/default/multistrap.conf.armhf new file mode 100644 index 0000000..e2dccf0 --- /dev/null +++ b/default/multistrap.conf.armhf @@ -0,0 +1,28 @@ +[General] +arch=$ARCH +directory=$ROOTDIR +cleanup=true +unpack=true +noauth=true +bootstrap=Debian_bootstrap Debian_unreleased +aptsources=Debian +allowrecommends=false +addimportant=false + +[Debian_bootstrap] +packages=$PACKAGES +source=$MIRROR +suite=$SUITE +omitdebsrc=true + +[Debian_unreleased] +packages=$PACKAGES +source=$MIRROR +suite=unreleased +omitdebsrc=true + +[Debian] +source=http://ftp.de.debian.org/debian +keyring=debian-archive-keyring +suite=$SUITE +omitdebsrc=true diff --git a/default/packages/audio b/default/packages/audio new file mode 100644 index 0000000..0ee1b96 --- /dev/null +++ b/default/packages/audio @@ -0,0 +1,5 @@ +alsa-base +alsa-utils +gstreamer-tools +gstreamer0.10-plugins-base +gstreamer0.10-plugins-good diff --git a/default/packages/base b/default/packages/base new file mode 100644 index 0000000..e866da9 --- /dev/null +++ b/default/packages/base @@ -0,0 +1,12 @@ +udev +module-init-tools +apt +locales +procps +conspy +man-db +fbset +openssh-server +screen +less +vim diff --git a/default/packages/bluez b/default/packages/bluez new file mode 100644 index 0000000..5b306d2 --- /dev/null +++ b/default/packages/bluez @@ -0,0 +1,4 @@ +bluez +bluez-utils +bluez-alsa +bluez-gstreamer diff --git a/default/packages/games b/default/packages/games new file mode 100644 index 0000000..ee469f8 --- /dev/null +++ b/default/packages/games @@ -0,0 +1,4 @@ +numptyphysics +hex-a-hop +wesnoth +wesnoth-music diff --git a/default/packages/net b/default/packages/net new file mode 100644 index 0000000..87d45ae --- /dev/null +++ b/default/packages/net @@ -0,0 +1,12 @@ +curl +wget +ntpdate +vpnc +rsync +dhcp3-client +ifupdown +net-tools +iproute +dnsutils +iputils-ping +ppp diff --git a/default/packages/wlan b/default/packages/wlan new file mode 100644 index 0000000..3152901 --- /dev/null +++ b/default/packages/wlan @@ -0,0 +1,2 @@ +wireless-tools +wpasupplicant diff --git a/default/packages/xorg b/default/packages/xorg new file mode 100644 index 0000000..2b131f4 --- /dev/null +++ b/default/packages/xorg @@ -0,0 +1,5 @@ +xserver-xorg-input-evdev +xserver-xorg +xserver-xorg-video-fbdev +xterm +nodm diff --git a/default/root/etc/apt/apt.conf.d/99no-install-recommends b/default/root/etc/apt/apt.conf.d/99no-install-recommends new file mode 100644 index 0000000..25ec2b3 --- /dev/null +++ b/default/root/etc/apt/apt.conf.d/99no-install-recommends @@ -0,0 +1 @@ +APT::Install-Recommends "0"; diff --git a/default/root/etc/apt/apt.conf.d/99no-pdiffs b/default/root/etc/apt/apt.conf.d/99no-pdiffs new file mode 100644 index 0000000..07d01de --- /dev/null +++ b/default/root/etc/apt/apt.conf.d/99no-pdiffs @@ -0,0 +1 @@ +Acquire::PDiffs "0"; diff --git a/default/root/etc/fstab b/default/root/etc/fstab new file mode 100644 index 0000000..a8fe557 --- /dev/null +++ b/default/root/etc/fstab @@ -0,0 +1,8 @@ +# +rootfs / auto defaults,errors=remount-ro,noatime 0 1 +proc /proc proc defaults 0 0 +tmpfs /tmp tmpfs defaults,noatime 0 0 +tmpfs /var/lock tmpfs defaults,noatime 0 0 +tmpfs /var/run tmpfs defaults,noatime 0 0 +tmpfs /var/log tmpfs defaults,noatime 0 0 +tmpfs /etc/network/run tmpfs defaults,noatime 0 0 diff --git a/default/root/etc/hostname b/default/root/etc/hostname new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/default/root/etc/hostname @@ -0,0 +1 @@ +default diff --git a/default/root/etc/hosts b/default/root/etc/hosts new file mode 100644 index 0000000..0ec197b --- /dev/null +++ b/default/root/etc/hosts @@ -0,0 +1,2 @@ +127.0.0.1 localhost +127.0.0.1 default diff --git a/default/root/etc/ld.so.conf b/default/root/etc/ld.so.conf new file mode 100644 index 0000000..a9d3ffc --- /dev/null +++ b/default/root/etc/ld.so.conf @@ -0,0 +1,2 @@ +# supply ld.so.conf for fake ldd (running libc6 postinst script will fail) +include /etc/ld.so.conf.d/*.conf diff --git a/default/root/etc/network/interfaces b/default/root/etc/network/interfaces new file mode 100644 index 0000000..f1bd92e --- /dev/null +++ b/default/root/etc/network/interfaces @@ -0,0 +1,2 @@ +auto lo +iface lo inet loopback diff --git a/default/root/etc/ssh/ssh_host_dsa_key b/default/root/etc/ssh/ssh_host_dsa_key new file mode 100644 index 0000000..e69de29 diff --git a/default/root/etc/ssh/ssh_host_ecdsa_key b/default/root/etc/ssh/ssh_host_ecdsa_key new file mode 100644 index 0000000..e69de29 diff --git a/default/root/etc/ssh/ssh_host_rsa_key b/default/root/etc/ssh/ssh_host_rsa_key new file mode 100644 index 0000000..e69de29 diff --git a/default/root/sbin/ldconfig b/default/root/sbin/ldconfig new file mode 100755 index 0000000..a7b8b6d --- /dev/null +++ b/default/root/sbin/ldconfig @@ -0,0 +1,3 @@ +#!/bin/sh -e + +exit diff --git a/default/root/usr/bin/ldd b/default/root/usr/bin/ldd new file mode 100755 index 0000000..53e9533 --- /dev/null +++ b/default/root/usr/bin/ldd @@ -0,0 +1,201 @@ +#!/usr/bin/perl + +# fakeldd +# +# Replacement for ldd with usage of objdump +# +# (c) 2003-2010 Piotr Roszatycki , LGPL + +use strict; + +my @Libs = (); +my %Libs = (); + +my $Status = 0; +my $Dynamic = 0; +my $Format = ''; + +my $Ldsodir = "/lib"; +my @Ld_Library_Path = qw(/usr/lib /lib /usr/lib32 /lib32 /usr/lib64 /lib64); + + +sub ldso { + my ($lib) = @_; + + return if $Libs{$lib}; + + my $path; + + if ($lib =~ /^\//) { + $path = $lib; + } + else { + foreach my $dir (@Ld_Library_Path) { + next unless -f "$dir/$lib"; + + my $badformat = 0; + local *PIPE; + open PIPE, "objdump -p '$dir/$lib' 2>/dev/null |"; + while (my $line = ) { + if ($line =~ /file format (\S*)$/) { + $badformat = 1 unless $1 eq $Format; + last; + } + } + close PIPE; + + next if $badformat; + + $path = "$dir/$lib"; + last; + } + } + + push @Libs, $lib; + if (-f $path) { + $Libs{$lib} = $path; + objdump($path); + } +} + + +sub objdump { + my (@files) = @_; + + foreach my $file (@files) { + local *PIPE; + open PIPE, "objdump -p '$file' 2>/dev/null |"; + while (my $line = ) { + $line =~ s/^\s+//; + + if ($line =~ /file format (\S*)$/) { + if (not $Format) { + $Format = $1; + + if ($^O eq 'linux') { + if ($Format =~ /^elf64-/) { + push @Libs, 'linux-vdso.so.1'; + $Libs{'linux-vdso.so.1'} = ''; + } + else { + push @Libs, 'linux-gate.so.1'; + $Libs{'linux-gate.so.1'} = ''; + } + } + + foreach my $lib (split /:/, $ENV{LD_PRELOAD}||'') { + ldso($lib); + } + } + else { + next unless $Format eq $1; + } + } + if (not $Dynamic and $line =~ /^Dynamic Section:/) { + $Dynamic = 1; + } + + next unless $line =~ /^ \s* NEEDED \s+ (.*) \s* $/x; + + my $needed = $1; + if ($needed =~ /^ld(-linux)?(\.|-)/) { + $needed = "$Ldsodir/$needed"; + } + + ldso($needed); + } + close PIPE; + } +} + + +sub load_ldsoconf { + my ($file) = @_; + + local *FH; + open FH, $file; + while (my $line = ) { + chomp $line; + $line =~ s/#.*//; + next if $line =~ /^\s*$/; + + if ($line =~ /^include\s+(.*)\s*/) { + my $include = $1; + foreach my $incfile (glob $include) { + load_ldsoconf($incfile); + } + next; + } + + unshift @Ld_Library_Path, $line; + } + close FH; +} + + +MAIN: { + my @args = @ARGV; + + if (not @args) { + print STDERR "fakeldd: missing file arguments\n"; + exit 1; + } + + if (not `which objdump`) { + print STDERR "fakeldd: objdump: command not found: install binutils package\n"; + exit 1; + } + + load_ldsoconf('/etc/ld.so.conf'); + unshift @Ld_Library_Path, split(/:/, $ENV{LD_LIBRARY_PATH}||''); + + while ($args[0] =~ /^-/) { + my $arg = $args[0]; + shift @ARGV; + last if $arg eq "--"; + } + + foreach my $file (@args) { + %Libs = (); + $Dynamic = 0; + + if (@args > 1) { + print "$file:\n"; + } + + if (not -f $file) { + print STDERR "ldd: $file: No such file or directory\n"; + $Status = 1; + next; + } + + objdump($file); + + if ($Dynamic == 0) { + print "\tnot a dynamic executable\n"; + $Status = 1; + } + elsif (scalar %Libs eq "0") { + print "\tstatically linked\n"; + } + + my $address = '0x' . '0' x ($Format =~ /^elf64-/ ? 16 : 8); + + foreach my $lib (@Libs) { + if ($lib =~ /^\//) { + printf "\t%s (%s)\n", $lib, $address; + } + elsif (defined $Libs{$lib}) { + printf "\t%s => %s (%s)\n", $lib, $Libs{$lib}, $address; + } + else { + printf "\t%s => not found\n", $lib; + } + } + + } +} + +END { + $? = $Status; +} diff --git a/default/root/usr/sbin/policy-rc.d b/default/root/usr/sbin/policy-rc.d new file mode 100755 index 0000000..85d823d --- /dev/null +++ b/default/root/usr/sbin/policy-rc.d @@ -0,0 +1,3 @@ +#!/bin/sh +echo "sysvinit: All runlevel operations denied by policy" >&2 +exit 101 diff --git a/kirkwood/config b/kirkwood/config new file mode 100644 index 0000000..a94421a --- /dev/null +++ b/kirkwood/config @@ -0,0 +1,4 @@ +SUITE="sid" +ARCH="armel" +ROOTDIR="debian-$SUITE-$ARCH" +MIRROR="http://127.0.0.1:3142/ftp.de.debian.org/debian" diff --git a/kirkwood/debconfseed.txt b/kirkwood/debconfseed.txt new file mode 100644 index 0000000..159bb44 --- /dev/null +++ b/kirkwood/debconfseed.txt @@ -0,0 +1,11 @@ +locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8 +locales locales/default_environment_locale select en_US.UTF-8 +tzdata tzdata/Zones/Europe select Berlin +tzdata tzdata/Areas select Europe +nodm nodm/xinit string /usr/bin/xinit +nodm nodm/min_session_time string 60 +nodm nodm/enabled boolean true +nodm nodm/xsession string /etc/X11/Xsession +nodm nodm/x_options string vt7 -nolisten tcp +nodm nodm/first_vt string 7 +nodm nodm/user string user diff --git a/kirkwood/hooks/create_user b/kirkwood/hooks/create_user new file mode 120000 index 0000000..ae9b334 --- /dev/null +++ b/kirkwood/hooks/create_user @@ -0,0 +1 @@ +../../default/hooks/create_user \ No newline at end of file diff --git a/kirkwood/hooks/empty_password b/kirkwood/hooks/empty_password new file mode 120000 index 0000000..613fec1 --- /dev/null +++ b/kirkwood/hooks/empty_password @@ -0,0 +1 @@ +../../default/hooks/empty_password \ No newline at end of file diff --git a/kirkwood/hooks/firstboot b/kirkwood/hooks/firstboot new file mode 120000 index 0000000..d978812 --- /dev/null +++ b/kirkwood/hooks/firstboot @@ -0,0 +1 @@ +../../default/hooks/firstboot \ No newline at end of file diff --git a/kirkwood/hooks/mkimage b/kirkwood/hooks/mkimage new file mode 100644 index 0000000..5f61be1 --- /dev/null +++ b/kirkwood/hooks/mkimage @@ -0,0 +1,2 @@ +mkimage -A arm -O linux -T kernel -C none -n uImage -a 0x00008000 -e 0x00008000 -d $ROOTDIR/boot/vmlinuz-*-kirkwood $ROOTDIR/boot/uImage +mkimage -A arm -O linux -T ramdisk -C none -n uInitrd -d $ROOTDIR/boot/initrd.img-*-kirkwood $ROOTDIR/boot/uInitrd diff --git a/kirkwood/hooks/serial_tty b/kirkwood/hooks/serial_tty new file mode 120000 index 0000000..f77cf2e --- /dev/null +++ b/kirkwood/hooks/serial_tty @@ -0,0 +1 @@ +../../default/hooks/serial_tty \ No newline at end of file diff --git a/kirkwood/multistrap.conf b/kirkwood/multistrap.conf new file mode 100644 index 0000000..fda0a51 --- /dev/null +++ b/kirkwood/multistrap.conf @@ -0,0 +1,22 @@ +[General] +arch=$ARCH +directory=$ROOTDIR +cleanup=true +unpack=true +noauth=true +bootstrap=Debian_bootstrap +aptsources=Debian +allowrecommends=false +addimportant=false + +[Debian_bootstrap] +packages=$PACKAGES +source=$MIRROR +suite=$SUITE +omitdebsrc=true + +[Debian] +source=http://ftp.de.debian.org/debian +keyring=debian-archive-keyring +suite=$SUITE +omitdebsrc=true diff --git a/kirkwood/packages/base b/kirkwood/packages/base new file mode 120000 index 0000000..5b0599a --- /dev/null +++ b/kirkwood/packages/base @@ -0,0 +1 @@ +../../default/packages/base \ No newline at end of file diff --git a/kirkwood/packages/kernel b/kirkwood/packages/kernel new file mode 100644 index 0000000..2355eaf --- /dev/null +++ b/kirkwood/packages/kernel @@ -0,0 +1 @@ +linux-image-kirkwood diff --git a/kirkwood/packages/net b/kirkwood/packages/net new file mode 120000 index 0000000..21c287e --- /dev/null +++ b/kirkwood/packages/net @@ -0,0 +1 @@ +../../default/packages/net \ No newline at end of file diff --git a/kirkwood/root/etc/apt/apt.conf.d/99no-install-recommends b/kirkwood/root/etc/apt/apt.conf.d/99no-install-recommends new file mode 120000 index 0000000..9cf79f1 --- /dev/null +++ b/kirkwood/root/etc/apt/apt.conf.d/99no-install-recommends @@ -0,0 +1 @@ +../../../../../default/root/etc/apt/apt.conf.d/99no-install-recommends \ No newline at end of file diff --git a/kirkwood/root/etc/apt/apt.conf.d/99no-pdiffs b/kirkwood/root/etc/apt/apt.conf.d/99no-pdiffs new file mode 120000 index 0000000..a8c3da6 --- /dev/null +++ b/kirkwood/root/etc/apt/apt.conf.d/99no-pdiffs @@ -0,0 +1 @@ +../../../../../default/root/etc/apt/apt.conf.d/99no-pdiffs \ No newline at end of file diff --git a/kirkwood/root/etc/fstab b/kirkwood/root/etc/fstab new file mode 100644 index 0000000..a8fe557 --- /dev/null +++ b/kirkwood/root/etc/fstab @@ -0,0 +1,8 @@ +# +rootfs / auto defaults,errors=remount-ro,noatime 0 1 +proc /proc proc defaults 0 0 +tmpfs /tmp tmpfs defaults,noatime 0 0 +tmpfs /var/lock tmpfs defaults,noatime 0 0 +tmpfs /var/run tmpfs defaults,noatime 0 0 +tmpfs /var/log tmpfs defaults,noatime 0 0 +tmpfs /etc/network/run tmpfs defaults,noatime 0 0 diff --git a/kirkwood/root/etc/hostname b/kirkwood/root/etc/hostname new file mode 100644 index 0000000..d01742d --- /dev/null +++ b/kirkwood/root/etc/hostname @@ -0,0 +1 @@ +kirkwood diff --git a/kirkwood/root/etc/hosts b/kirkwood/root/etc/hosts new file mode 100644 index 0000000..355ad72 --- /dev/null +++ b/kirkwood/root/etc/hosts @@ -0,0 +1,2 @@ +127.0.0.1 localhost +127.0.0.1 kirkwood diff --git a/kirkwood/root/etc/initramfs-tools/conf.d/root b/kirkwood/root/etc/initramfs-tools/conf.d/root new file mode 100644 index 0000000..afbc88e --- /dev/null +++ b/kirkwood/root/etc/initramfs-tools/conf.d/root @@ -0,0 +1 @@ +ROOT=UUID=9eada77a-5f84-49a4-838e-06abe95c8513 diff --git a/kirkwood/root/etc/ld.so.conf b/kirkwood/root/etc/ld.so.conf new file mode 120000 index 0000000..e8d9ce9 --- /dev/null +++ b/kirkwood/root/etc/ld.so.conf @@ -0,0 +1 @@ +../../../default/root/etc/ld.so.conf \ No newline at end of file diff --git a/kirkwood/root/etc/network/interfaces b/kirkwood/root/etc/network/interfaces new file mode 100644 index 0000000..f1bd92e --- /dev/null +++ b/kirkwood/root/etc/network/interfaces @@ -0,0 +1,2 @@ +auto lo +iface lo inet loopback diff --git a/kirkwood/root/etc/ssh/ssh_host_dsa_key b/kirkwood/root/etc/ssh/ssh_host_dsa_key new file mode 120000 index 0000000..3c63728 --- /dev/null +++ b/kirkwood/root/etc/ssh/ssh_host_dsa_key @@ -0,0 +1 @@ +../../../../default/root/etc/ssh/ssh_host_dsa_key \ No newline at end of file diff --git a/kirkwood/root/etc/ssh/ssh_host_ecdsa_key b/kirkwood/root/etc/ssh/ssh_host_ecdsa_key new file mode 120000 index 0000000..f5f2e31 --- /dev/null +++ b/kirkwood/root/etc/ssh/ssh_host_ecdsa_key @@ -0,0 +1 @@ +../../../../default/root/etc/ssh/ssh_host_ecdsa_key \ No newline at end of file diff --git a/kirkwood/root/etc/ssh/ssh_host_rsa_key b/kirkwood/root/etc/ssh/ssh_host_rsa_key new file mode 120000 index 0000000..9753b5a --- /dev/null +++ b/kirkwood/root/etc/ssh/ssh_host_rsa_key @@ -0,0 +1 @@ +../../../../default/root/etc/ssh/ssh_host_rsa_key \ No newline at end of file diff --git a/kirkwood/root/sbin/ldconfig b/kirkwood/root/sbin/ldconfig new file mode 120000 index 0000000..ba3ff23 --- /dev/null +++ b/kirkwood/root/sbin/ldconfig @@ -0,0 +1 @@ +../../../default/root/sbin/ldconfig \ No newline at end of file diff --git a/kirkwood/root/usr/bin/ldd b/kirkwood/root/usr/bin/ldd new file mode 120000 index 0000000..adf2fbc --- /dev/null +++ b/kirkwood/root/usr/bin/ldd @@ -0,0 +1 @@ +../../../../default/root/usr/bin/ldd \ No newline at end of file diff --git a/kirkwood/root/usr/sbin/policy-rc.d b/kirkwood/root/usr/sbin/policy-rc.d new file mode 120000 index 0000000..93e300d --- /dev/null +++ b/kirkwood/root/usr/sbin/policy-rc.d @@ -0,0 +1 @@ +../../../../default/root/usr/sbin/policy-rc.d \ No newline at end of file diff --git a/newtarget.sh b/newtarget.sh new file mode 100755 index 0000000..5f11433 --- /dev/null +++ b/newtarget.sh @@ -0,0 +1,58 @@ +#!/bin/sh -ex + +dir_depth() { + dir="$1" + while [ "$dir" != "." ] && [ "$dir" != "/" ]; do + dir=`dirname "$dir"` + echo -n ../ + done +} + +if [ "$#" -ne 1 ]; then + echo "you have to specify the new target name" + exit +fi + +PLATFORM="$1" + +if [ -e "$PLATFORM" ]; then + echo "target already exists" + exit +fi + +mkdir -p $PLATFORM/ +mkdir -p $PLATFORM/packages/ +mkdir -p $PLATFORM/root/etc/network/ +mkdir -p $PLATFORM/hooks/ + +cp default/config $PLATFORM +cp default/multistrap.conf $PLATFORM +cp default/debconfseed.txt $PLATFORM + +for f in packages/base \ + root/usr/sbin/policy-rc.d \ + root/usr/bin/ldd \ + root/etc/apt/apt.conf.d/99no-install-recommends \ + root/etc/apt/apt.conf.d/99no-pdiffs \ + root/etc/ld.so.conf \ + root/etc/ssh/ssh_host_ecdsa_key \ + root/etc/ssh/ssh_host_rsa_key \ + root/etc/ssh/ssh_host_dsa_key \ + root/sbin/ldconfig \ + hooks/create_user \ + hooks/serial_tty \ + hooks/firstboot \ + hooks/empty_password; do + mkdir -p `dirname $PLATFORM/$f` + ln -s `dir_depth $f`default/$f $PLATFORM/$f +done + +cat << __END__ > $PLATFORM/root/etc/hosts +127.0.0.1 localhost +127.0.0.1 $PLATFORM +__END__ + +echo $PLATFORM > $PLATFORM/root/etc/hostname + +cp default/root/etc/fstab $PLATFORM/root/etc/ +cp default/root/etc/network/interfaces $PLATFORM/root/etc/network/ diff --git a/notioninkadam/config b/notioninkadam/config new file mode 100644 index 0000000..a94421a --- /dev/null +++ b/notioninkadam/config @@ -0,0 +1,4 @@ +SUITE="sid" +ARCH="armel" +ROOTDIR="debian-$SUITE-$ARCH" +MIRROR="http://127.0.0.1:3142/ftp.de.debian.org/debian" diff --git a/notioninkadam/debconfseed.txt b/notioninkadam/debconfseed.txt new file mode 100644 index 0000000..159bb44 --- /dev/null +++ b/notioninkadam/debconfseed.txt @@ -0,0 +1,11 @@ +locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8 +locales locales/default_environment_locale select en_US.UTF-8 +tzdata tzdata/Zones/Europe select Berlin +tzdata tzdata/Areas select Europe +nodm nodm/xinit string /usr/bin/xinit +nodm nodm/min_session_time string 60 +nodm nodm/enabled boolean true +nodm nodm/xsession string /etc/X11/Xsession +nodm nodm/x_options string vt7 -nolisten tcp +nodm nodm/first_vt string 7 +nodm nodm/user string user diff --git a/notioninkadam/hooks/create_user b/notioninkadam/hooks/create_user new file mode 120000 index 0000000..ae9b334 --- /dev/null +++ b/notioninkadam/hooks/create_user @@ -0,0 +1 @@ +../../default/hooks/create_user \ No newline at end of file diff --git a/notioninkadam/hooks/empty_password b/notioninkadam/hooks/empty_password new file mode 120000 index 0000000..613fec1 --- /dev/null +++ b/notioninkadam/hooks/empty_password @@ -0,0 +1 @@ +../../default/hooks/empty_password \ No newline at end of file diff --git a/notioninkadam/hooks/firstboot b/notioninkadam/hooks/firstboot new file mode 120000 index 0000000..d978812 --- /dev/null +++ b/notioninkadam/hooks/firstboot @@ -0,0 +1 @@ +../../default/hooks/firstboot \ No newline at end of file diff --git a/notioninkadam/hooks/modules b/notioninkadam/hooks/modules new file mode 100644 index 0000000..5ba570f --- /dev/null +++ b/notioninkadam/hooks/modules @@ -0,0 +1 @@ +curl --silent http://mister-muffin.de/adam/modules.tar.gz | tar -xz -C $ROOTDIR diff --git a/notioninkadam/multistrap.conf b/notioninkadam/multistrap.conf new file mode 100644 index 0000000..fda0a51 --- /dev/null +++ b/notioninkadam/multistrap.conf @@ -0,0 +1,22 @@ +[General] +arch=$ARCH +directory=$ROOTDIR +cleanup=true +unpack=true +noauth=true +bootstrap=Debian_bootstrap +aptsources=Debian +allowrecommends=false +addimportant=false + +[Debian_bootstrap] +packages=$PACKAGES +source=$MIRROR +suite=$SUITE +omitdebsrc=true + +[Debian] +source=http://ftp.de.debian.org/debian +keyring=debian-archive-keyring +suite=$SUITE +omitdebsrc=true diff --git a/notioninkadam/packages/base b/notioninkadam/packages/base new file mode 120000 index 0000000..5b0599a --- /dev/null +++ b/notioninkadam/packages/base @@ -0,0 +1 @@ +../../default/packages/base \ No newline at end of file diff --git a/notioninkadam/packages/e17 b/notioninkadam/packages/e17 new file mode 100644 index 0000000..8c021a2 --- /dev/null +++ b/notioninkadam/packages/e17 @@ -0,0 +1 @@ +e17 diff --git a/notioninkadam/packages/net b/notioninkadam/packages/net new file mode 120000 index 0000000..21c287e --- /dev/null +++ b/notioninkadam/packages/net @@ -0,0 +1 @@ +../../default/packages/net \ No newline at end of file diff --git a/notioninkadam/packages/wlan b/notioninkadam/packages/wlan new file mode 120000 index 0000000..8328dad --- /dev/null +++ b/notioninkadam/packages/wlan @@ -0,0 +1 @@ +../../default/packages/wlan \ No newline at end of file diff --git a/notioninkadam/packages/xorg b/notioninkadam/packages/xorg new file mode 120000 index 0000000..7c96297 --- /dev/null +++ b/notioninkadam/packages/xorg @@ -0,0 +1 @@ +../../default/packages/xorg \ No newline at end of file diff --git a/notioninkadam/root/etc/apt/apt.conf.d/99no-install-recommends b/notioninkadam/root/etc/apt/apt.conf.d/99no-install-recommends new file mode 120000 index 0000000..9cf79f1 --- /dev/null +++ b/notioninkadam/root/etc/apt/apt.conf.d/99no-install-recommends @@ -0,0 +1 @@ +../../../../../default/root/etc/apt/apt.conf.d/99no-install-recommends \ No newline at end of file diff --git a/notioninkadam/root/etc/apt/apt.conf.d/99no-pdiffs b/notioninkadam/root/etc/apt/apt.conf.d/99no-pdiffs new file mode 120000 index 0000000..a8c3da6 --- /dev/null +++ b/notioninkadam/root/etc/apt/apt.conf.d/99no-pdiffs @@ -0,0 +1 @@ +../../../../../default/root/etc/apt/apt.conf.d/99no-pdiffs \ No newline at end of file diff --git a/notioninkadam/root/etc/fstab b/notioninkadam/root/etc/fstab new file mode 100644 index 0000000..3effbd2 --- /dev/null +++ b/notioninkadam/root/etc/fstab @@ -0,0 +1,9 @@ +# +rootfs / auto defaults,errors=remount-ro,noatime 0 1 +proc /proc proc defaults 0 0 +tmpfs /tmp tmpfs defaults,noatime 0 0 +tmpfs /var/lock tmpfs defaults,noatime 0 0 +tmpfs /var/run tmpfs defaults,noatime 0 0 +tmpfs /var/log tmpfs defaults,noatime 0 0 +tmpfs /etc/network/run tmpfs defaults,noatime 0 0 +/dev/mmcblk0p3 swap swap defaults 0 0 diff --git a/notioninkadam/root/etc/hostname b/notioninkadam/root/etc/hostname new file mode 100644 index 0000000..4e20b6c --- /dev/null +++ b/notioninkadam/root/etc/hostname @@ -0,0 +1 @@ +notioninkadam diff --git a/notioninkadam/root/etc/hosts b/notioninkadam/root/etc/hosts new file mode 100644 index 0000000..4b59efd --- /dev/null +++ b/notioninkadam/root/etc/hosts @@ -0,0 +1,2 @@ +127.0.0.1 localhost +127.0.0.1 notioninkadam diff --git a/notioninkadam/root/etc/ld.so.conf b/notioninkadam/root/etc/ld.so.conf new file mode 120000 index 0000000..e8d9ce9 --- /dev/null +++ b/notioninkadam/root/etc/ld.so.conf @@ -0,0 +1 @@ +../../../default/root/etc/ld.so.conf \ No newline at end of file diff --git a/notioninkadam/root/etc/network/interfaces b/notioninkadam/root/etc/network/interfaces new file mode 100644 index 0000000..f1bd92e --- /dev/null +++ b/notioninkadam/root/etc/network/interfaces @@ -0,0 +1,2 @@ +auto lo +iface lo inet loopback diff --git a/notioninkadam/root/etc/ssh/ssh_host_dsa_key b/notioninkadam/root/etc/ssh/ssh_host_dsa_key new file mode 120000 index 0000000..3c63728 --- /dev/null +++ b/notioninkadam/root/etc/ssh/ssh_host_dsa_key @@ -0,0 +1 @@ +../../../../default/root/etc/ssh/ssh_host_dsa_key \ No newline at end of file diff --git a/notioninkadam/root/etc/ssh/ssh_host_ecdsa_key b/notioninkadam/root/etc/ssh/ssh_host_ecdsa_key new file mode 120000 index 0000000..f5f2e31 --- /dev/null +++ b/notioninkadam/root/etc/ssh/ssh_host_ecdsa_key @@ -0,0 +1 @@ +../../../../default/root/etc/ssh/ssh_host_ecdsa_key \ No newline at end of file diff --git a/notioninkadam/root/etc/ssh/ssh_host_rsa_key b/notioninkadam/root/etc/ssh/ssh_host_rsa_key new file mode 120000 index 0000000..9753b5a --- /dev/null +++ b/notioninkadam/root/etc/ssh/ssh_host_rsa_key @@ -0,0 +1 @@ +../../../../default/root/etc/ssh/ssh_host_rsa_key \ No newline at end of file diff --git a/notioninkadam/root/sbin/ldconfig b/notioninkadam/root/sbin/ldconfig new file mode 120000 index 0000000..ba3ff23 --- /dev/null +++ b/notioninkadam/root/sbin/ldconfig @@ -0,0 +1 @@ +../../../default/root/sbin/ldconfig \ No newline at end of file diff --git a/notioninkadam/root/usr/bin/ldd b/notioninkadam/root/usr/bin/ldd new file mode 120000 index 0000000..adf2fbc --- /dev/null +++ b/notioninkadam/root/usr/bin/ldd @@ -0,0 +1 @@ +../../../../default/root/usr/bin/ldd \ No newline at end of file diff --git a/notioninkadam/root/usr/sbin/policy-rc.d b/notioninkadam/root/usr/sbin/policy-rc.d new file mode 120000 index 0000000..93e300d --- /dev/null +++ b/notioninkadam/root/usr/sbin/policy-rc.d @@ -0,0 +1 @@ +../../../../default/root/usr/sbin/policy-rc.d \ No newline at end of file diff --git a/om-gta02/config b/om-gta02/config new file mode 100644 index 0000000..a94421a --- /dev/null +++ b/om-gta02/config @@ -0,0 +1,4 @@ +SUITE="sid" +ARCH="armel" +ROOTDIR="debian-$SUITE-$ARCH" +MIRROR="http://127.0.0.1:3142/ftp.de.debian.org/debian" diff --git a/om-gta02/debconfseed.txt b/om-gta02/debconfseed.txt new file mode 100644 index 0000000..159bb44 --- /dev/null +++ b/om-gta02/debconfseed.txt @@ -0,0 +1,11 @@ +locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8 +locales locales/default_environment_locale select en_US.UTF-8 +tzdata tzdata/Zones/Europe select Berlin +tzdata tzdata/Areas select Europe +nodm nodm/xinit string /usr/bin/xinit +nodm nodm/min_session_time string 60 +nodm nodm/enabled boolean true +nodm nodm/xsession string /etc/X11/Xsession +nodm nodm/x_options string vt7 -nolisten tcp +nodm nodm/first_vt string 7 +nodm nodm/user string user diff --git a/om-gta02/hooks/create_user b/om-gta02/hooks/create_user new file mode 120000 index 0000000..ae9b334 --- /dev/null +++ b/om-gta02/hooks/create_user @@ -0,0 +1 @@ +../../default/hooks/create_user \ No newline at end of file diff --git a/om-gta02/hooks/empty_password b/om-gta02/hooks/empty_password new file mode 120000 index 0000000..613fec1 --- /dev/null +++ b/om-gta02/hooks/empty_password @@ -0,0 +1 @@ +../../default/hooks/empty_password \ No newline at end of file diff --git a/om-gta02/hooks/firstboot b/om-gta02/hooks/firstboot new file mode 120000 index 0000000..d978812 --- /dev/null +++ b/om-gta02/hooks/firstboot @@ -0,0 +1 @@ +../../default/hooks/firstboot \ No newline at end of file diff --git a/om-gta02/hooks/kernel b/om-gta02/hooks/kernel new file mode 100644 index 0000000..9493a55 --- /dev/null +++ b/om-gta02/hooks/kernel @@ -0,0 +1,2 @@ +ln -s uImage.bin $ROOTDIR/boot/uImage-GTA02.bin +echo console=tty0 rootdelay=5 > $ROOTDIR/boot/append-GTA02 diff --git a/om-gta02/hooks/serial_tty b/om-gta02/hooks/serial_tty new file mode 120000 index 0000000..f77cf2e --- /dev/null +++ b/om-gta02/hooks/serial_tty @@ -0,0 +1 @@ +../../default/hooks/serial_tty \ No newline at end of file diff --git a/om-gta02/multistrap.conf b/om-gta02/multistrap.conf new file mode 100644 index 0000000..220d949 --- /dev/null +++ b/om-gta02/multistrap.conf @@ -0,0 +1,28 @@ +[General] +arch=$ARCH +directory=$ROOTDIR +cleanup=true +unpack=true +noauth=true +bootstrap=Debian_bootstrap Debian_pkgfso +aptsources=Debian +allowrecommends=false +addimportant=false + +[Debian_bootstrap] +packages=$PACKAGES +source=$MIRROR +suite=$SUITE +omitdebsrc=true + +[Debian_pkgfso] +packages=linux-image-2.6.37-qtmoko-gta02 +source=http://pkg-fso.alioth.debian.org/debian/ +suite=unstable +omitdebsrc=true + +[Debian] +source=http://ftp.de.debian.org/debian +keyring=debian-archive-keyring +suite=$SUITE +omitdebsrc=true diff --git a/om-gta02/packages/audio b/om-gta02/packages/audio new file mode 120000 index 0000000..8b2d702 --- /dev/null +++ b/om-gta02/packages/audio @@ -0,0 +1 @@ +../../default/packages/audio \ No newline at end of file diff --git a/om-gta02/packages/base b/om-gta02/packages/base new file mode 120000 index 0000000..5b0599a --- /dev/null +++ b/om-gta02/packages/base @@ -0,0 +1 @@ +../../default/packages/base \ No newline at end of file diff --git a/om-gta02/packages/bluez b/om-gta02/packages/bluez new file mode 120000 index 0000000..1a3ab5f --- /dev/null +++ b/om-gta02/packages/bluez @@ -0,0 +1 @@ +../../default/packages/bluez \ No newline at end of file diff --git a/om-gta02/packages/net b/om-gta02/packages/net new file mode 120000 index 0000000..21c287e --- /dev/null +++ b/om-gta02/packages/net @@ -0,0 +1 @@ +../../default/packages/net \ No newline at end of file diff --git a/om-gta02/packages/wlan b/om-gta02/packages/wlan new file mode 120000 index 0000000..8328dad --- /dev/null +++ b/om-gta02/packages/wlan @@ -0,0 +1 @@ +../../default/packages/wlan \ No newline at end of file diff --git a/om-gta02/root/etc/apt/apt.conf.d/99no-install-recommends b/om-gta02/root/etc/apt/apt.conf.d/99no-install-recommends new file mode 120000 index 0000000..9cf79f1 --- /dev/null +++ b/om-gta02/root/etc/apt/apt.conf.d/99no-install-recommends @@ -0,0 +1 @@ +../../../../../default/root/etc/apt/apt.conf.d/99no-install-recommends \ No newline at end of file diff --git a/om-gta02/root/etc/apt/apt.conf.d/99no-pdiffs b/om-gta02/root/etc/apt/apt.conf.d/99no-pdiffs new file mode 120000 index 0000000..a8c3da6 --- /dev/null +++ b/om-gta02/root/etc/apt/apt.conf.d/99no-pdiffs @@ -0,0 +1 @@ +../../../../../default/root/etc/apt/apt.conf.d/99no-pdiffs \ No newline at end of file diff --git a/om-gta02/root/etc/fstab b/om-gta02/root/etc/fstab new file mode 100644 index 0000000..a8fe557 --- /dev/null +++ b/om-gta02/root/etc/fstab @@ -0,0 +1,8 @@ +# +rootfs / auto defaults,errors=remount-ro,noatime 0 1 +proc /proc proc defaults 0 0 +tmpfs /tmp tmpfs defaults,noatime 0 0 +tmpfs /var/lock tmpfs defaults,noatime 0 0 +tmpfs /var/run tmpfs defaults,noatime 0 0 +tmpfs /var/log tmpfs defaults,noatime 0 0 +tmpfs /etc/network/run tmpfs defaults,noatime 0 0 diff --git a/om-gta02/root/etc/hostname b/om-gta02/root/etc/hostname new file mode 100644 index 0000000..c8d2dc1 --- /dev/null +++ b/om-gta02/root/etc/hostname @@ -0,0 +1 @@ +om-gta02 diff --git a/om-gta02/root/etc/hosts b/om-gta02/root/etc/hosts new file mode 100644 index 0000000..99480cf --- /dev/null +++ b/om-gta02/root/etc/hosts @@ -0,0 +1,2 @@ +127.0.0.1 localhost +127.0.0.1 om-gta02 diff --git a/om-gta02/root/etc/ld.so.conf b/om-gta02/root/etc/ld.so.conf new file mode 120000 index 0000000..e8d9ce9 --- /dev/null +++ b/om-gta02/root/etc/ld.so.conf @@ -0,0 +1 @@ +../../../default/root/etc/ld.so.conf \ No newline at end of file diff --git a/om-gta02/root/etc/network/interfaces b/om-gta02/root/etc/network/interfaces new file mode 100644 index 0000000..5594bd6 --- /dev/null +++ b/om-gta02/root/etc/network/interfaces @@ -0,0 +1,8 @@ +auto lo +iface lo inet loopback + +auto eth0 +iface eth0 inet static + address 192.168.0.202 + netmask 255.255.255.0 + gateway 192.168.0.200 diff --git a/om-gta02/root/etc/ssh/ssh_host_dsa_key b/om-gta02/root/etc/ssh/ssh_host_dsa_key new file mode 120000 index 0000000..3c63728 --- /dev/null +++ b/om-gta02/root/etc/ssh/ssh_host_dsa_key @@ -0,0 +1 @@ +../../../../default/root/etc/ssh/ssh_host_dsa_key \ No newline at end of file diff --git a/om-gta02/root/etc/ssh/ssh_host_ecdsa_key b/om-gta02/root/etc/ssh/ssh_host_ecdsa_key new file mode 120000 index 0000000..f5f2e31 --- /dev/null +++ b/om-gta02/root/etc/ssh/ssh_host_ecdsa_key @@ -0,0 +1 @@ +../../../../default/root/etc/ssh/ssh_host_ecdsa_key \ No newline at end of file diff --git a/om-gta02/root/etc/ssh/ssh_host_rsa_key b/om-gta02/root/etc/ssh/ssh_host_rsa_key new file mode 120000 index 0000000..9753b5a --- /dev/null +++ b/om-gta02/root/etc/ssh/ssh_host_rsa_key @@ -0,0 +1 @@ +../../../../default/root/etc/ssh/ssh_host_rsa_key \ No newline at end of file diff --git a/om-gta02/root/sbin/ldconfig b/om-gta02/root/sbin/ldconfig new file mode 120000 index 0000000..ba3ff23 --- /dev/null +++ b/om-gta02/root/sbin/ldconfig @@ -0,0 +1 @@ +../../../default/root/sbin/ldconfig \ No newline at end of file diff --git a/om-gta02/root/usr/bin/ldd b/om-gta02/root/usr/bin/ldd new file mode 120000 index 0000000..adf2fbc --- /dev/null +++ b/om-gta02/root/usr/bin/ldd @@ -0,0 +1 @@ +../../../../default/root/usr/bin/ldd \ No newline at end of file diff --git a/om-gta02/root/usr/sbin/policy-rc.d b/om-gta02/root/usr/sbin/policy-rc.d new file mode 120000 index 0000000..93e300d --- /dev/null +++ b/om-gta02/root/usr/sbin/policy-rc.d @@ -0,0 +1 @@ +../../../../default/root/usr/sbin/policy-rc.d \ No newline at end of file diff --git a/polystrap.sh b/polystrap.sh new file mode 100755 index 0000000..774804b --- /dev/null +++ b/polystrap.sh @@ -0,0 +1,156 @@ +#!/bin/sh +# +# polystrap - create a foreign architecture rootfs using multistrap, fakeroot, +# fakechroot and qemu usermode emulation +# +# Copyright (C) 2011 by Johannes 'josch' Schauer +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +set -ex + +usage() { + echo "Usage: $0: [-s suite] [-a arch] [-d directory] [-m mirror] [-p packages] platform\n" +} + +export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C + +if [ "$FAKEROOTKEY" = "" ]; then + echo "re-executing script inside fakeroot" + fakeroot "$0" "$@"; + exit +fi + +while getopts s:a:d:m:p: opt; do + case $opt in + s) _SUITE="$OPTARG";; + a) _ARCH="$OPTARG";; + d) _ROOTDIR="$OPTARG";; + m) _MIRROR="$OPTARG";; + p) _PACKAGES="$OPTARG";; + ?) usage; exit 1;; + esac +done +shift $(($OPTIND - 1)) + +[ "$#" -ne 1 ] && { echo "too many positional arguments"; usage; exit; } + +PLATFORM="$1" + +[ ! -r "$PLATFORM" ] && { echo "cannot find target directory: $PLATFORM"; exit; } +[ ! -r "$PLATFORM/multistrap.conf" ] && { echo "cannot read multistrap config: $PLATFORM/multistrap.conf"; exit; } +[ ! -r "$PLATFORM/hooks" ] && { echo "cannot read hooks directory: $PLATFORM/hooks"; exit; } +[ ! -r "$PLATFORM/root" ] && { echo "cannot read root directory: $PLATFORM/root"; exit; } + +# source default options +. "default/config" + +# overwrite default options by target options +[ -r "$PLATFORM/config" ] && . "$PLATFORM/config" + +# overwrite target options by commandline options +SUITE=${_SUITE:-$SUITE} +ARCH=${_ARCH:-$ARCH} +ROOTDIR=${_ROOTDIR:-$ROOTDIR} +MIRROR=${_MIRROR:-$MIRROR} + +if [ "$_PACKAGES" = "" ] && [ -r "$PLATFORM/packages" ]; then + # if no packages were given by commandline, read from package files + for f in $PLATFORM/packages/*; do + while read line; do PACKAGES="$PACKAGES $line"; done < "$f" + done +else + # otherwise set as given by commandline + PACKAGES="$_PACKAGES" +fi + +# binutils must always be installed for objdump for fake ldd +PACKAGES="$PACKAGES binutils" + +echo "--------------------------" +echo "suit: $SUITE" +echo "arch: $ARCH" +echo "root: $ROOTDIR" +echo "mirr: $MIRROR" +echo "pkgs: $PACKAGES" +echo "--------------------------" + +[ -e "$ROOTDIR.tar" ] && { echo "tarball still exists"; exit; } +[ -e "$ROOTDIR" ] && { echo "root directory still exists"; exit; } + +# create multistrap.conf +echo -n > /tmp/multistrap.conf +while read line; do + eval echo $line >> /tmp/multistrap.conf +done < $PLATFORM/multistrap.conf + +# download and extract packages +multistrap -f /tmp/multistrap.conf + +# backup ldconfig and ldd +mv $ROOTDIR/sbin/ldconfig $ROOTDIR/sbin/ldconfig.REAL +mv $ROOTDIR/usr/bin/ldd $ROOTDIR/usr/bin/ldd.REAL + +# copy initial directory tree - dereference symlinks +cp --recursive --dereference $PLATFORM/root/* $ROOTDIR/ + +# copy qemu usermode binary +if [ $ARCH != "`dpkg --print-architecture`" ]; then + case $ARCH in + alpha|arm|armeb|i386|m68k|mips|mipsel|ppc64|sh4|sh4eb|sparc|sparc64) + cp `which qemu-$ARCH-static` $ROOTDIR/usr/bin;; + amd64) cp `which qemu-x86_64-static` $ROOTDIR/usr/bin;; + armel) cp `which qemu-arm-static` $ROOTDIR/usr/bin;; + lpia) cp `which qemu-i386-static` $ROOTDIR/usr/bin;; + powerpc) cp `which qemu-ppc-static` $ROOTDIR/usr/bin;; + *) echo "unknown architecture: $ARCH"; exit 1;; + esac +fi + +# preseed debconf +if [ -r "$PLATFORM/debconfseed.txt" ]; then + cp "$PLATFORM/debconfseed.txt" $ROOTDIR/tmp/ + fakechroot chroot $ROOTDIR debconf-set-selections /tmp/debconfseed.txt + rm $ROOTDIR/tmp/debconfseed.txt +fi + +# run preinst scripts +for script in $ROOTDIR/var/lib/dpkg/info/*.preinst; do + [ "$script" = "$ROOTDIR/var/lib/dpkg/info/bash.preinst" ] && continue + fakechroot chroot $ROOTDIR ${script##$ROOTDIR} install +done + +# run dpkg --configure -a twice because of errors during the first run +fakechroot chroot $ROOTDIR /usr/bin/dpkg --configure -a || fakechroot chroot $ROOTDIR /usr/bin/dpkg --configure -a + +# source hooks +for f in $PLATFORM/hooks/*; do + . $f +done + +#cleanup +rm $ROOTDIR/sbin/ldconfig $ROOTDIR/usr/bin/ldd +mv $ROOTDIR/sbin/ldconfig.REAL $ROOTDIR/sbin/ldconfig +mv $ROOTDIR/usr/bin/ldd.REAL $ROOTDIR/usr/bin/ldd +rm $ROOTDIR/usr/sbin/policy-rc.d + +# need to generate tar inside fakechroot so that absolute symlinks are correct +# tar is clever enough to not try and put the archive inside itself +fakechroot chroot $ROOTDIR tar -cf $ROOTDIR.tar -C / . +mv $ROOTDIR/$ROOTDIR.tar . diff --git a/touchbook/config b/touchbook/config new file mode 100644 index 0000000..a94421a --- /dev/null +++ b/touchbook/config @@ -0,0 +1,4 @@ +SUITE="sid" +ARCH="armel" +ROOTDIR="debian-$SUITE-$ARCH" +MIRROR="http://127.0.0.1:3142/ftp.de.debian.org/debian" diff --git a/touchbook/debconfseed.txt b/touchbook/debconfseed.txt new file mode 100644 index 0000000..159bb44 --- /dev/null +++ b/touchbook/debconfseed.txt @@ -0,0 +1,11 @@ +locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8 +locales locales/default_environment_locale select en_US.UTF-8 +tzdata tzdata/Zones/Europe select Berlin +tzdata tzdata/Areas select Europe +nodm nodm/xinit string /usr/bin/xinit +nodm nodm/min_session_time string 60 +nodm nodm/enabled boolean true +nodm nodm/xsession string /etc/X11/Xsession +nodm nodm/x_options string vt7 -nolisten tcp +nodm nodm/first_vt string 7 +nodm nodm/user string user diff --git a/touchbook/hooks/create_user b/touchbook/hooks/create_user new file mode 120000 index 0000000..ae9b334 --- /dev/null +++ b/touchbook/hooks/create_user @@ -0,0 +1 @@ +../../default/hooks/create_user \ No newline at end of file diff --git a/touchbook/hooks/empty_password b/touchbook/hooks/empty_password new file mode 120000 index 0000000..613fec1 --- /dev/null +++ b/touchbook/hooks/empty_password @@ -0,0 +1 @@ +../../default/hooks/empty_password \ No newline at end of file diff --git a/touchbook/hooks/firstboot b/touchbook/hooks/firstboot new file mode 120000 index 0000000..d978812 --- /dev/null +++ b/touchbook/hooks/firstboot @@ -0,0 +1 @@ +../../default/hooks/firstboot \ No newline at end of file diff --git a/touchbook/hooks/modules b/touchbook/hooks/modules new file mode 100644 index 0000000..0de72de --- /dev/null +++ b/touchbook/hooks/modules @@ -0,0 +1,7 @@ +curl --silent http://www.alwaysinnovating.com/download/modules-omap3-touchbook.tgz | tar -xz -C $ROOTDIR + +curl --silent http://www.alwaysinnovating.com/download/rt3070_2.1.2.0-r78.5_omap3-touchbook.ipk > /tmp/rt3070_2.1.2.0-r78.5_omap3-touchbook.ipk +dpkg-deb --fsys-tarfile /tmp/rt3070_2.1.2.0-r78.5_omap3-touchbook.ipk | tar -x -C $ROOTDIR +rm /tmp/rt3070_2.1.2.0-r78.5_omap3-touchbook.ipk + +depmod -a -b $ROOTDIR 2.6.32 diff --git a/touchbook/multistrap.conf b/touchbook/multistrap.conf new file mode 100644 index 0000000..fda0a51 --- /dev/null +++ b/touchbook/multistrap.conf @@ -0,0 +1,22 @@ +[General] +arch=$ARCH +directory=$ROOTDIR +cleanup=true +unpack=true +noauth=true +bootstrap=Debian_bootstrap +aptsources=Debian +allowrecommends=false +addimportant=false + +[Debian_bootstrap] +packages=$PACKAGES +source=$MIRROR +suite=$SUITE +omitdebsrc=true + +[Debian] +source=http://ftp.de.debian.org/debian +keyring=debian-archive-keyring +suite=$SUITE +omitdebsrc=true diff --git a/touchbook/packages/audio b/touchbook/packages/audio new file mode 120000 index 0000000..8b2d702 --- /dev/null +++ b/touchbook/packages/audio @@ -0,0 +1 @@ +../../default/packages/audio \ No newline at end of file diff --git a/touchbook/packages/base b/touchbook/packages/base new file mode 120000 index 0000000..5b0599a --- /dev/null +++ b/touchbook/packages/base @@ -0,0 +1 @@ +../../default/packages/base \ No newline at end of file diff --git a/touchbook/packages/bluez b/touchbook/packages/bluez new file mode 120000 index 0000000..1a3ab5f --- /dev/null +++ b/touchbook/packages/bluez @@ -0,0 +1 @@ +../../default/packages/bluez \ No newline at end of file diff --git a/touchbook/packages/e17 b/touchbook/packages/e17 new file mode 100644 index 0000000..8c021a2 --- /dev/null +++ b/touchbook/packages/e17 @@ -0,0 +1 @@ +e17 diff --git a/touchbook/packages/net b/touchbook/packages/net new file mode 120000 index 0000000..21c287e --- /dev/null +++ b/touchbook/packages/net @@ -0,0 +1 @@ +../../default/packages/net \ No newline at end of file diff --git a/touchbook/packages/wlan b/touchbook/packages/wlan new file mode 120000 index 0000000..8328dad --- /dev/null +++ b/touchbook/packages/wlan @@ -0,0 +1 @@ +../../default/packages/wlan \ No newline at end of file diff --git a/touchbook/packages/xorg b/touchbook/packages/xorg new file mode 120000 index 0000000..7c96297 --- /dev/null +++ b/touchbook/packages/xorg @@ -0,0 +1 @@ +../../default/packages/xorg \ No newline at end of file diff --git a/touchbook/root/etc/apt/apt.conf.d/99no-install-recommends b/touchbook/root/etc/apt/apt.conf.d/99no-install-recommends new file mode 120000 index 0000000..9cf79f1 --- /dev/null +++ b/touchbook/root/etc/apt/apt.conf.d/99no-install-recommends @@ -0,0 +1 @@ +../../../../../default/root/etc/apt/apt.conf.d/99no-install-recommends \ No newline at end of file diff --git a/touchbook/root/etc/apt/apt.conf.d/99no-pdiffs b/touchbook/root/etc/apt/apt.conf.d/99no-pdiffs new file mode 120000 index 0000000..a8c3da6 --- /dev/null +++ b/touchbook/root/etc/apt/apt.conf.d/99no-pdiffs @@ -0,0 +1 @@ +../../../../../default/root/etc/apt/apt.conf.d/99no-pdiffs \ No newline at end of file diff --git a/touchbook/root/etc/fstab b/touchbook/root/etc/fstab new file mode 100644 index 0000000..66428c3 --- /dev/null +++ b/touchbook/root/etc/fstab @@ -0,0 +1,11 @@ +# +rootfs / auto defaults,errors=remount-ro,noatime 0 1 +/dev/mmcblk0p1 /mnt/mmcblk0p1 auto defaults,errors=remount-ro,noatime 0 2 +/dev/mmcblk0p2 /mnt/mmcblk0p2 auto defaults,errors=remount-ro,noatime 0 2 +proc /proc proc defaults 0 0 +tmpfs /tmp tmpfs defaults,noatime 0 0 +tmpfs /var/lock tmpfs defaults,noatime 0 0 +tmpfs /var/run tmpfs defaults,noatime 0 0 +tmpfs /var/log tmpfs defaults,noatime 0 0 +tmpfs /etc/network/run tmpfs defaults,noatime 0 0 +/dev/mmcblk0p3 swap swap defaults 0 0 diff --git a/touchbook/root/etc/hostname b/touchbook/root/etc/hostname new file mode 100644 index 0000000..f4c2b73 --- /dev/null +++ b/touchbook/root/etc/hostname @@ -0,0 +1 @@ +touchbook diff --git a/touchbook/root/etc/hosts b/touchbook/root/etc/hosts new file mode 100644 index 0000000..5b07f39 --- /dev/null +++ b/touchbook/root/etc/hosts @@ -0,0 +1,2 @@ +127.0.0.1 localhost +127.0.0.1 touchbook diff --git a/touchbook/root/etc/ld.so.conf b/touchbook/root/etc/ld.so.conf new file mode 120000 index 0000000..e8d9ce9 --- /dev/null +++ b/touchbook/root/etc/ld.so.conf @@ -0,0 +1 @@ +../../../default/root/etc/ld.so.conf \ No newline at end of file diff --git a/touchbook/root/etc/network/interfaces b/touchbook/root/etc/network/interfaces new file mode 100644 index 0000000..f1bd92e --- /dev/null +++ b/touchbook/root/etc/network/interfaces @@ -0,0 +1,2 @@ +auto lo +iface lo inet loopback diff --git a/touchbook/root/etc/ssh/ssh_host_dsa_key b/touchbook/root/etc/ssh/ssh_host_dsa_key new file mode 120000 index 0000000..3c63728 --- /dev/null +++ b/touchbook/root/etc/ssh/ssh_host_dsa_key @@ -0,0 +1 @@ +../../../../default/root/etc/ssh/ssh_host_dsa_key \ No newline at end of file diff --git a/touchbook/root/etc/ssh/ssh_host_ecdsa_key b/touchbook/root/etc/ssh/ssh_host_ecdsa_key new file mode 120000 index 0000000..f5f2e31 --- /dev/null +++ b/touchbook/root/etc/ssh/ssh_host_ecdsa_key @@ -0,0 +1 @@ +../../../../default/root/etc/ssh/ssh_host_ecdsa_key \ No newline at end of file diff --git a/touchbook/root/etc/ssh/ssh_host_rsa_key b/touchbook/root/etc/ssh/ssh_host_rsa_key new file mode 120000 index 0000000..9753b5a --- /dev/null +++ b/touchbook/root/etc/ssh/ssh_host_rsa_key @@ -0,0 +1 @@ +../../../../default/root/etc/ssh/ssh_host_rsa_key \ No newline at end of file diff --git a/touchbook/root/sbin/ldconfig b/touchbook/root/sbin/ldconfig new file mode 120000 index 0000000..ba3ff23 --- /dev/null +++ b/touchbook/root/sbin/ldconfig @@ -0,0 +1 @@ +../../../default/root/sbin/ldconfig \ No newline at end of file diff --git a/touchbook/root/usr/bin/ldd b/touchbook/root/usr/bin/ldd new file mode 120000 index 0000000..adf2fbc --- /dev/null +++ b/touchbook/root/usr/bin/ldd @@ -0,0 +1 @@ +../../../../default/root/usr/bin/ldd \ No newline at end of file diff --git a/touchbook/root/usr/sbin/policy-rc.d b/touchbook/root/usr/sbin/policy-rc.d new file mode 120000 index 0000000..93e300d --- /dev/null +++ b/touchbook/root/usr/sbin/policy-rc.d @@ -0,0 +1 @@ +../../../../default/root/usr/sbin/policy-rc.d \ No newline at end of file diff --git a/touchbook/root/var/lib/alsa/asound.state b/touchbook/root/var/lib/alsa/asound.state new file mode 100644 index 0000000..d773f39 --- /dev/null +++ b/touchbook/root/var/lib/alsa/asound.state @@ -0,0 +1,656 @@ +state.omap3touchbook { + control.1 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Option 2 (voice/audio)' + comment.item.1 'Option 1 (audio)' + iface MIXER + name 'Codec Operation Mode' + value 'Option 2 (voice/audio)' + } + control.2 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 63' + comment.dbmin -6300 + comment.dbmax 0 + iface MIXER + name 'DAC1 Digital Fine Playback Volume' + value.0 47 + value.1 47 + } + control.3 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 63' + comment.dbmin -6300 + comment.dbmax 0 + iface MIXER + name 'DAC2 Digital Fine Playback Volume' + value.0 0 + value.1 0 + } + control.4 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 2' + comment.dbmin 0 + comment.dbmax 1200 + iface MIXER + name 'DAC1 Digital Coarse Playback Volume' + value.0 2 + value.1 2 + } + control.5 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 2' + comment.dbmin 0 + comment.dbmax 1200 + iface MIXER + name 'DAC2 Digital Coarse Playback Volume' + value.0 0 + value.1 0 + } + control.6 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 18' + comment.dbmin -2400 + comment.dbmax 1200 + iface MIXER + name 'DAC1 Analog Playback Volume' + value.0 13 + value.1 13 + } + control.7 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 18' + comment.dbmin -2400 + comment.dbmax 1200 + iface MIXER + name 'DAC2 Analog Playback Volume' + value.0 0 + value.1 0 + } + control.8 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 2 + iface MIXER + name 'DAC1 Analog Playback Switch' + value.0 true + value.1 true + } + control.9 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 2 + iface MIXER + name 'DAC2 Analog Playback Switch' + value.0 false + value.1 false + } + control.10 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 49' + comment.dbmin -3700 + comment.dbmax 1200 + iface MIXER + name 'DAC Voice Digital Downlink Volume' + value 0 + } + control.11 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 18' + comment.dbmin -2400 + comment.dbmax 1200 + iface MIXER + name 'DAC Voice Analog Downlink Volume' + value 0 + } + control.12 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'DAC Voice Analog Downlink Switch' + value false + } + control.13 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 3' + comment.dbmin -1200 + comment.dbmax 600 + iface MIXER + name 'PreDriv Playback Volume' + value.0 0 + value.1 0 + } + control.14 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 3' + comment.dbmin -1200 + comment.dbmax 600 + iface MIXER + name 'Headset Playback Volume' + value.0 2 + value.1 2 + } + control.15 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 3' + comment.dbmin -1200 + comment.dbmax 600 + iface MIXER + name 'Carkit Playback Volume' + value.0 0 + value.1 0 + } + control.16 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 3' + comment.dbmin -600 + comment.dbmax 1200 + iface MIXER + name 'Earpiece Playback Volume' + value 0 + } + control.17 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 31' + comment.dbmin 0 + comment.dbmax 3100 + iface MIXER + name 'TX1 Digital Capture Volume' + value.0 31 + value.1 31 + } + control.18 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 31' + comment.dbmin 0 + comment.dbmax 3100 + iface MIXER + name 'TX2 Digital Capture Volume' + value.0 0 + value.1 0 + } + control.19 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 5' + comment.dbmin 0 + comment.dbmax 3000 + iface MIXER + name 'Analog Capture Volume' + value.0 4 + value.1 4 + } + control.20 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Voice high priority' + comment.item.1 'HiFi high priority' + iface MIXER + name 'AVADC Clock Priority' + value 'Voice high priority' + } + control.21 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 '27/20/14 ms' + comment.item.1 '55/40/27 ms' + comment.item.2 '109/81/55 ms' + comment.item.3 '218/161/109 ms' + comment.item.4 '437/323/218 ms' + comment.item.5 '874/645/437 ms' + comment.item.6 '1748/1291/874 ms' + comment.item.7 '3495/2581/1748 ms' + iface MIXER + name 'HS ramp delay' + value '27/20/14 ms' + } + control.22 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Vibra H-bridge direction' + comment.item.1 'Audio data MSB' + iface MIXER + name 'Vibra H-bridge mode' + value 'Vibra H-bridge direction' + } + control.23 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Positive polarity' + comment.item.1 'Negative polarity' + iface MIXER + name 'Vibra H-bridge direction' + value 'Positive polarity' + } + control.24 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Analog Right Sub Mic Capture Switch' + value false + } + control.25 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Analog Right AUXR Capture Switch' + value false + } + control.26 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Analog Left Main Mic Capture Switch' + value false + } + control.27 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Analog Left Headset Mic Capture Switch' + value true + } + control.28 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Analog Left AUXL Capture Switch' + value false + } + control.29 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Analog Left Carkit Mic Capture Switch' + value false + } + control.30 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Analog + comment.item.1 Digimic1 + iface MIXER + name 'TX2 Capture Route' + value Digimic1 + } + control.31 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Analog + comment.item.1 Digimic0 + iface MIXER + name 'TX1 Capture Route' + value Analog + } + control.32 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Local vibrator' + comment.item.1 Audio + iface MIXER + name 'Vibra Route' + value 'Local vibrator' + } + control.33 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 AudioL1 + comment.item.1 AudioR1 + comment.item.2 AudioL2 + comment.item.3 AudioR2 + iface MIXER + name 'Vibra Mux' + value AudioL1 + } + control.34 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'HandsfreeR Switch' + value true + } + control.35 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Voice + comment.item.1 AudioR1 + comment.item.2 AudioR2 + comment.item.3 AudioL2 + iface MIXER + name 'HandsfreeR Mux' + value AudioR1 + } + control.36 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'HandsfreeL Switch' + value true + } + control.37 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Voice + comment.item.1 AudioL1 + comment.item.2 AudioL2 + comment.item.3 AudioR2 + iface MIXER + name 'HandsfreeL Mux' + value AudioL1 + } + control.38 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'CarkitR Mixer Voice' + value false + } + control.39 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'CarkitR Mixer AudioR1' + value false + } + control.40 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'CarkitR Mixer AudioR2' + value false + } + control.41 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'CarkitL Mixer Voice' + value false + } + control.42 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'CarkitL Mixer AudioL1' + value false + } + control.43 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'CarkitL Mixer AudioL2' + value false + } + control.44 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'HeadsetR Mixer Voice' + value false + } + control.45 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'HeadsetR Mixer AudioR1' + value true + } + control.46 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'HeadsetR Mixer AudioR2' + value false + } + control.47 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'HeadsetL Mixer Voice' + value false + } + control.48 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'HeadsetL Mixer AudioL1' + value true + } + control.49 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'HeadsetL Mixer AudioL2' + value false + } + control.50 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'PredriveR Mixer Voice' + value false + } + control.51 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'PredriveR Mixer AudioR1' + value false + } + control.52 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'PredriveR Mixer AudioR2' + value false + } + control.53 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'PredriveR Mixer AudioL2' + value false + } + control.54 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'PredriveL Mixer Voice' + value false + } + control.55 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'PredriveL Mixer AudioL1' + value false + } + control.56 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'PredriveL Mixer AudioL2' + value false + } + control.57 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'PredriveL Mixer AudioR2' + value false + } + control.58 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Earpiece Mixer Voice' + value false + } + control.59 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Earpiece Mixer AudioL1' + value false + } + control.60 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Earpiece Mixer AudioL2' + value false + } + control.61 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Earpiece Mixer AudioR1' + value false + } + control.62 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 41' + comment.dbmin -5100 + comment.dbmax -1000 + iface MIXER + name 'Voice Digital Loopback Volume' + value 0 + } + control.63 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + comment.dbmin -2400 + comment.dbmax 0 + iface MIXER + name 'Right Digital Loopback Volume' + value 0 + } + control.64 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + comment.dbmin -2400 + comment.dbmax 0 + iface MIXER + name 'Left Digital Loopback Volume' + value 0 + } + control.65 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Voice Analog Loopback Switch' + value false + } + control.66 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Left2 Analog Loopback Switch' + value false + } + control.67 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Right2 Analog Loopback Switch' + value false + } + control.68 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Left1 Analog Loopback Switch' + value false + } + control.69 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Right1 Analog Loopback Switch' + value false + } +}