This repository has been archived on 2025-06-06. You can view files and clone it, but cannot push or open issues or pull requests.
Files
android-g900/ramfs-linux/init

207 lines
4.5 KiB
Bash
Executable File
Raw Blame History

#!/bin/sh
SDDEV="/dev/block/mmcblk0p"
SDSYS="/sys/block/mmcblk0/mmcblk0p"
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo " *~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*"
echo " * *"
echo " * Ramdisk for Toshiba G900 from Angell Fear *"
echo " * LINUX SUPPORT *"
echo " *~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*"
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
mkdir -m 0755 /proc
mount -t proc proc /proc
mkdir -m 0755 /sys
mount -t sysfs sys /sys
mkdir -m 0755 /var
mkdir -m 0755 /var/run
mkdir -m 0755 /rootfs
mkdir -m 0755 /etc
touch /etc/mtab
#Configure Devices
MAKEDEVS
fail() {
echo "======================="
echo "$1"
while [ true ] ; do
exec /bin/sh
sleep 1
done
}
startup(){
if [ ! -f rootfs/bin/sh ]; then
fail "RootFS not found..."
fi
if [ -f rootfs/bin/sh ]; then
dmesg > rootfs/kernel.log
if [ -f /proc/sys/net/ipv4/tcp_syncookies ];then
if [ `cat /proc/sys/net/ipv4/tcp_syncookies` != 0 ]; then
sysctl -w net.ipv4.tcp_syncookies=0
fi
fi
mount -t proc proc /rootfs/proc
mount -t sysfs sys /rootfs/sys
#mkdir -p /rootfs/mnt/sd
mount -t tmpfs -o size=100K tmpfs /rootfs/dev
cp -a /dev/* /rootfs/dev
#mount -o bind /sdcard /rootfs/mnt/sd
umount -l /proc
umount -l /sys
#copy Firmware
#
# if [ ! -f /rootfs/lib/firmware/libertas/gspi8385_hlp.bin ]; then
# echo "Copy firmware: libertas gspi8385_hlp.bin"
# mkdir -p /rootfs/lib
# mkdir -p /rootfs/lib/firmware
# mkdir -p /rootfs/lib/firmware/libertas
# cp /lib/firmware/libertas/gspi8385_hlp.bin /rootfs/lib/firmware/libertas/gspi8385_hlp.bin
# fi
# if [ ! -f /rootfs/lib/firmware/libertas/gspi8385.bin ]; then
# echo "Copy firmware: libertas gspi8385.bin"
# mkdir -p /rootfs/lib
# mkdir -p /rootfs/lib/firmware
# mkdir -p /rootfs/lib/firmware/libertas
# cp /lib/firmware/libertas/gspi8385.bin /rootfs/lib/firmware/libertas/gspi8385.bin
# fi
#done
cd /rootfs
mkdir -p initrd
#pivot_root . initrd
#/bin/sh
exec switch_root /rootfs /sbin/init
#exec chroot . /sbin/init <dev/console >dev/console 2>&1
#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> initrd <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RAM <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
# umount /initrd
# blockdev -flushbufs /dev/ram0 # /dev/rd/0 if using devfs
fail "no chroot =("
#chroot rootfs /sbin/init
fi
}
fsckdisk()
{
echo "-------------------------"
echo "fsck '${1}' "
echo "${1} /sdcard/${1} ext2 relatime 1 1" >> /etc/fstab
e2fsck -y ${1}
echo "-------------------------"
}
mountloop()
{
if [ -f /sdcard/part${1}/${2} ]; then
echo "Found image RootFS on ${SDDEV}${1} in file ${2}"
/bin/losetup /dev/block/loop${1} /sdcard/part${1}/${2}
[ $? -eq 0 ] || fail "Failed to losetup part${1} ${2} "
fsckdisk /dev/block/loop${1}
[ $? -eq 0 ] || echo "${2} fixed!!!!"
echo "Mount 'part${1}/${2}' to /rootfs"
/bin/mount -t ext2 -o rw /dev/block/loop${1} /rootfs
[ $? -eq 0 ] || fail "Failed to mount RootFS part${1} ${2}"
echo "Mount 'part${1}' to /mnt/mmc${1}"
mkdir -p /rootfs/mnt
mkdir -p /rootfs/mnt/mmc${1}
/bin/mount -t vfat -o rw,flush,noatime ${SDDEV}${1} /rootfs/mnt/mmc${1}
ver=`uname -r`
if [ -f /sdcard/part${1}/modules-${ver}.tar.gz ]; then
echo "Found new modules modules-${ver}.tar.gz"
echo "Unpack modules-${ver}.tar.gz"
rm -fr /rootfs/lib/modules/${ver}
tar -xzf /sdcard/part${1}/modules-${ver}.tar.gz -C /rootfs
# echo "Delete modules modules-${ver}.tar.gz"
# rm -f /sdcard/part${1}/modules-${ver}.tar.gz
fi
fi
}
sdpart() {
if [ -e ${SDSYS}${1} ] ; then
echo "SD card: part ${1} - found";
/bin/mkdir -p /sdcard/part${1}
/bin/mount ${SDDEV}${1} /sdcard/part${1} > /dev/null 2>&1
if [ -f /sdcard/part${1}/bin/sh ]; then
echo "Found RootFS on ${SDDEV}${1}"
/bin/umount /sdcard/part${1}
rm -rf /sdcard/part${1}
[ ! $? -eq 0 ] || rm -rf /sdcard/part${1}
fsckdisk ${SDDEV}${1}
/bin/mount -t ext2 ${SDDEV}${1} rootfs > /dev/null 2>&1
[ $? -eq 0 ] || fail "Failed to mount rootfs SDpart${1} "
startup
fi
mountloop ${1} ubuntu.ext2
mountloop ${1} rootfs.ext2
mountloop ${1} rootfs.img
if [ -f /sdcard/part${1}/init.sh ]; then
echo "found initial script exec"
sh /sdcard/part${1}/init.sh
fi
fi
}
while [ ! -e /sys/block/mmcblk0 ] ; do
echo "Waiting for SD Card"
sleep 2
done
sdpart 1
sdpart 2
sdpart 3
sdpart 4
sdpart 5
startup