diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2005-07-17 22:52:59 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2005-07-17 22:52:59 +0000 |
commit | 3d007394805916ceb2214bfd7e06d8a4899262c5 (patch) | |
tree | 56a8d56d6b30807c4241db07dd6ac9263eedd4e6 /openwrt/package/base-files/default/bin/firstboot | |
parent | 8d16fb08b8b71ee4c97ad7c25f2bef2d459ea066 (diff) |
move target/default/target_skeleton into package/base-files, put all the default files in ipkg packages, cleanup some junk in toolchain/, toolchain/ no longer changes build_mipsel/root
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@1494 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'openwrt/package/base-files/default/bin/firstboot')
-rwxr-xr-x | openwrt/package/base-files/default/bin/firstboot | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/openwrt/package/base-files/default/bin/firstboot b/openwrt/package/base-files/default/bin/firstboot new file mode 100755 index 0000000000..cef258cf39 --- /dev/null +++ b/openwrt/package/base-files/default/bin/firstboot @@ -0,0 +1,63 @@ +#!/bin/sh +# $Id$ + +mount | grep squashfs >&- || { + echo "You do not have a squashfs partition; aborting" + echo "(firstboot cannot be run on jffs2 based firmwares)" + return +} + +[ -f "/tmp/.firstboot" ] && { + echo "firstboot is already running" + return +} +touch /tmp/.firstboot + +jdev=$(mount | awk '/jffs2/ {print $3}') + +if [ -z "$jdev" ]; then + echo -n "Creating jffs2 partition... " + mtd erase OpenWrt >&- + mount -t jffs2 /dev/mtdblock/4 /jffs + echo "done" + cd /jffs +else + echo "firstboot has already been run" + echo "jffs2 partition is mounted, only resetting files" + cd $jdev +fi + +exec 2>/dev/null + +mount /dev/mtdblock/2 /rom -o ro + +echo -n "creating directories... " +{ + cd /rom + find . -type d + cd - +} | xargs mkdir +echo "done" + +echo -n "setting up symlinks... " +for file in $(cd /rom; find * -type f; find * -type l;) +do { + [ "${file%/*}" = "usr/lib/ipkg/info" ] && { + cp -f /rom/$file $file + } || { + ln -sf /rom/$file $file + } +} done +echo "done" + +touch /tmp/resolv.conf +ln -s /tmp/resolv.conf /etc/resolv.conf + +umount /rom +mount none /jffs/proc -t proc +pivot_root /jffs /jffs/rom +mount none /dev -t devfs +mount none /tmp -t ramfs +umount /rom/proc +umount /rom/tmp +umount /rom/dev |