OpenSDE Framework (without history before r20070)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

251 lines
4.5 KiB

# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: target/psion-pda/build_image.sh
# Copyright (C) 2006 The OpenSDE Project
# Copyright (C) 2004 - 2006 The T2 SDE Project
#
# More information can be found in the files COPYING and README.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License. A copy of the
# GNU General Public License can be found in the file COPYING.
# --- SDE-COPYRIGHT-NOTE-END ---
. $base/misc/share/functions.in
set -e
arlo_ver="`sed -e 's,.*arlo-\(.*\).zip .*,\1,' \
$base/target/$target/download.txt`"
echo "Preparing root filesystem image from build result ..."
rm -rf $imagelocation{,.squashfs}
mkdir -p $imagelocation ; cd $imagelocation
find $build_root -printf "%P\n" | sed '
# stuff we never need
/^TOOLCHAIN/ d;
/^var\/adm/ d;
/\/include/ d;
/\/src/ d;
/\.a$/ d;
/\.o$/ d;
/\.old$/ d;
/\/games/ d;
/\/local/ d;
/^boot/ d;
# stuff that would be nice - but is huge and only documentation
/\/man/ d;
/\/doc/ d;
# /etc noise
/^etc\/stone.d/ d;
/^etc\/cron.d/ d;
/^etc\/init.d/ d;
/^etc\/profile.d/ d;
/^etc\/sysconfig/ d;
/^etc\/iproute2/ d;
/^etc\/skel/ d;
/^etc\/opt/ d;
/^etc\/conf/ d;
/^etc\/rc.d/ d;
/^home/ d;
/^mnt/ d;
/^opt/ d;
# rock net stuff
/^lib\/network/ d;
/^sbin\/ifup/ d;
/^sbin\/ifdown/ d;
/^sbin\/rocknet/ d;
/^\/man\// d;
/terminfo\/a\/ansi$/ { p; d; }
/terminfo\/l\/linux$/ { p; d; }
/terminfo\/x\/xterm$/ { p; d; }
/terminfo\/n\/nxterm$/ { p; d; }
/terminfo\/x\/xterm-color$/ { p; d; }
/terminfo\/x\/xterm-8bit$/ { p; d; }
/terminfo\/x\/screen$/ { p; d; }
/terminfo\/v\/vt100$/ { p; d; }
/terminfo\/v\/vt200$/ { p; d; }
/terminfo\/v\/vt220$/ { p; d; }
/terminfo/ d;
# some big ncurses stuff
/\/tack$/ d;
/\/tic$/ d;
/\/toe$/ d;
/\/tput$/ d;
/\/tset$/ d;
/\/captoinfo$/ d;
/\/input$/ d;
' > tar.input
copy_with_list_from_file $build_root . $PWD/tar.input
rm tar.input
echo "Preparing root filesystem image from target defined files ..."
rm -f sbin/init ; ln -s minit sbin/init
rm -f bin/sh ; ln -s ash bin/sh
copy_from_source $base/target/$target/rootfs .
echo "Creating links for identical files ..."
link_identical_files
echo "Creating static device nodes in /dev ..."
while read trg name ; do
ln -s $trg $name
done < <(cat <<-EOT
kcore dev/core
/proc/self/fd dev/fd
fd/0 dev/stdin
fd/1 dev/stdout
fd/2 dev/stderr
vcs0 dev/vcs
EOT
)
while read type major minor name ; do
if [ "$name" ] ; then
mknod dev/$name $type $major $minor
else
echo "defect rule!"
fi
done < <(cat <<-EOT
c 10 3 atibm
c 14 4 audio
c 14 20 audio1
c 14 36 audio2
c 14 52 audio3
c 14 7 audioctl
c 5 1 console
c 14 3 dsp
c 14 19 dsp1
c 29 0 fb0
c 1 7 full
c 10 2 inportbm
c 161 0 ircomm0
c 161 1 ircomm1
c 161 16 irlpt0
c 161 17 irlpt1
c 10 4 jbm
c 1 2 kmem
c 10 0 logibm
b 7 0 loop0
b 7 1 loop1
b 7 2 loop2
b 7 3 loop3
c 6 0 lp0
c 6 1 lp1
c 6 2 lp2
c 1 1 mem
c 14 0 mixer
c 14 16 mixer1
c 1 3 null
c 1 4 port
c 5 2 ptmx
c 2 0 ptyp0
c 2 1 ptyp1
c 2 2 ptyp2
c 2 3 ptyp3
c 2 4 ptyp4
c 2 5 ptyp5
c 2 6 ptyp6
c 2 7 ptyp7
c 2 8 ptyp8
c 2 9 ptyp9
c 2 10 ptypa
c 2 11 ptypb
c 2 12 ptypc
c 2 13 ptypd
c 2 14 ptype
c 2 15 ptypf
b 1 0 ram0
b 1 1 ram1
b 1 2 ram2
b 1 3 ram3
c 1 8 random
c 14 6 sndstat
c 10 11 tpanel
c 5 0 tty
c 4 0 tty0
c 4 1 tty1
c 4 10 tty10
c 4 2 tty2
c 4 3 tty3
c 4 4 tty4
c 4 5 tty5
c 4 6 tty6
c 4 7 tty7
c 4 8 tty8
c 4 9 tty9
c 204 16 ttyAM0
c 204 17 ttyAM1
c 204 16 ttyS0
c 204 17 ttyS1
c 1 9 urandom
c 7 0 vcs0
c 7 1 vcs1
c 7 2 vcs2
c 7 3 vcs3
c 7 4 vcs4
c 7 5 vcs5
c 7 6 vcs6
c 7 7 vcs7
c 7 8 vcs8
c 7 9 vcs9
c 1 5 zero
EOT
)
# image size estimation ...
s="`du -s -B 1 . | cut -f 1`"
s="$(( (s + 128000) / 1024 ))"
s="$(( s * 1024 ))"
echo "Writing initrd image file ($s bytes)."
tmpdir="`mktemp`" ; rm $tmpdir ; mkdir $tmpdir
tmpfile="`mktemp`"
dd if=/dev/zero of=$tmpfile bs=$s count=1 > $tmpfile
mke2fs -m 0 -N 512 -qF $tmpfile > /dev/null
mount -t ext2 $tmpfile $tmpdir -o loop
rmdir $tmpdir/lost+found/
copy_from_source . $tmpdir
umount $tmpdir
gzip -9 -c $tmpfile > ../initrd.gz
rmdir $tmpdir ; rm -f $tmpfile
du -sh . ../initrd.gz
cd $imagelocation/..
rm -rf epoc ; mkdir epoc ; cd epoc
cp $build_root/boot/Image_* Image
echo "Extracting ARLO ..."
unzip $base/download/mirror/a/arlo-$arlo_ver.zip > /dev/null
rm arlo/{copying,readme.html,example.cfg}
cp $base/target/$target/arlo.cfg arlo/
echo "The image is located at $imagelocation/.."