Share Pastebin
Guest
Public paste!

Woz

By: a guest | Sep 4th, 2010 | Syntax: None | Size: 3.04 KB | Hits: 39 | Expires: Never
Copy text to clipboard
  1. #!/bin/sh
  2. echo "Welcome to Vogue Linux"
  3. mkdir -m 0755 /proc
  4. mount -t proc proc /proc
  5. mkdir -m 0755 /sys
  6. mount -t sysfs sys /sys
  7.  
  8. #Configure Devices
  9. MAKEDEVS
  10.  
  11. fail() {
  12.     echo "Failed"
  13.     echo "$1"
  14.     exec /bin/sh
  15. }
  16. while [ ! -d /sys/block/mmcblk0 ] ; do
  17.     echo "Waiting for SD Card"
  18.     sleep 1
  19. done
  20. #Wait a bit once mmcblk0 appears
  21. #Reading partition table could take some time
  22. sleep 1
  23.  
  24. #Call it ... root= ?
  25. #I don't do that because I don't want to interfer in any way with kernel
  26. root_partition=`/bin/grep -o "root_partition=.*" /proc/cmdline | /bin/sed -e "s/.*root_partition=//g" -e "s/ .*//g"`
  27. if ! [ "$root_partition" = "" ];then
  28.         mkdir /rfs
  29.         mount -t ext2 $root_partition /rfs
  30.         mount -t tmpfs -o size=100K tmpfs /rfs/dev
  31.         cp -a /dev/* /rfs/dev
  32.         exec switch_root /rfs /init
  33. fi
  34.  
  35. partition=`/bin/grep -o "loop_partition=.*" /proc/cmdline | /bin/sed -e "s/.*loop_partition=//g" -e "s/ .*//g"`
  36. if [ "$partition" = "" ];then
  37.         partition="mmcblk0p1"
  38. fi
  39.  
  40. # Try unpartitioned card
  41. if [ ! -d /sys/block/mmcblk0/$partition ] ; then
  42.     partition=mmcblk0
  43. fi
  44.  
  45. mkdir -m 0777 /sdcard
  46. echo "Running an fsck on the SD card"
  47. dosfsck -y /dev/block/$partition
  48. mount -t vfat -o fmask=0000,dmask=0000,utf8,rw,flush,noatime,nodiratime /dev/block/$partition /sdcard
  49. [ $? -eq 0 ] || fail "Failed to mount the SD card. Cannot continue."
  50.  
  51. CARD_PATH=`/bin/grep -o "rel_path=.*" /proc/cmdline | /bin/sed -e "s/.*rel_path=//g" -e "s/ .*//g"`
  52.  
  53. if [ "$CARD_PATH" = "" ];then
  54.         CARD_PATH="andboot"
  55. fi
  56.  
  57. if [ -d /sdcard/$CARD_PATH ] ; then
  58.         card=/sdcard/$CARD_PATH
  59. else
  60.         card=/sdcard
  61. fi
  62.  
  63. if [ -f $card/rootfs.img ] ; then
  64.     root="$card/rootfs.img"
  65.     SQUASHFS=0
  66. elif [ -f $card/rootfs.sqsh ]; then
  67.     root="$card/rootfs.sqsh"
  68.     SQUASHFS=1
  69. else
  70.         fail "Failed to find rootfs on SD Card. You need to unzip a rootfs zip file to the root of your SD card."
  71. fi
  72.  
  73. mkdir -m 0755 /rfs
  74. losetup /dev/block/loop2 $root
  75. [ $? -eq 0 ] || fail "Failed to mount rootfs on SD Card."
  76.  
  77. if [ $SQUASHFS -eq 0 ]; then
  78.     e2fsck -y /dev/block/loop2
  79.     mount -t ext2 -o noatime,nodiratime,sync,ro /dev/block/loop2 /rfs
  80.     [ $? -eq 0 ] || fail "Failed to mount rootfs"
  81. else
  82.     mount -t squashfs -o noatime,nodiratime,sync,ro /dev/block/loop2 /rfs
  83.     [ $? -eq 0 ] || fail "Failed to mount rootfs"
  84. fi
  85.  
  86. #mkdir /rfs/dev
  87. mount -t tmpfs -o size=100K tmpfs /rfs/dev
  88. cp -a /dev/* /rfs/dev
  89.  
  90.  
  91.  
  92. echo "------------Keyboard stuff start"
  93.  
  94. mkdir -m 0777 /rfs/tmp
  95. mount /sdcard/cache /rfs/tmp
  96. mount --bind /proc /rfs/proc
  97.        
  98. physkey=$(cat /sys/class/htc_hw/machine_variant | tr 'A-Z' 'a-z')
  99.         physkey=${physkey:0:7}
  100.         cp /proc/cmdline /rfs/tmp/cmdline
  101.         sed -i -e "s:$: physkeyboard=${physkey}:" /rfs/tmp/cmdline
  102.         mount --bind /rfs/tmp/cmdline /rfs/proc/cmdline
  103.         echo "------------Keyboard stuff end"
  104. echo $physkey
  105. echo "/rfs/tmp/cmdline:"
  106. cat /rfs/tmp/cmdline
  107. echo "/rfs/proc/cmdline:"
  108. cat /rfs/proc/cmdline
  109. sleep 10
  110.  
  111. echo "Cleaning up..."
  112. #umount -l /proc
  113. umount -l /sys
  114.  
  115. #physkey=${physkey,,}
  116.  
  117. echo "Switching to rootfs..."
  118. exec switch_root /rfs /init