A workaround to make sure /dev/mtd0 can be created
[live-boot-grml.git] / components / 9990-main.sh
index ed48be3..530cd3b 100755 (executable)
@@ -57,8 +57,19 @@ Live ()
                                if [ $? -eq 0 ]
                                then
                                        # We found a memdisk, set up phram
-                                       modprobe phram phram=memdisk,${MEMDISK}
-                                       modprobe phram phram=memdisk,${MEMDISK}
+                                       # Sometimes "modprobe phram" can not successfully create /dev/mtd0.
+                                       # Have to try several times.
+                                       max_try=20
+                                       while [ ! -c /dev/mtd0 -a "$max_try" -gt 0 ]; do
+                                         modprobe phram phram=memdisk,${MEMDISK}
+                                         sleep 0.2
+                                         if [ -c /dev/mtd0 ]; then
+                                               break
+                                         else
+                                               rmmod phram
+                                         fi
+                                         max_try=$((max_try - 1))
+                                       done
 
                                        # Load mtdblock, the memdisk will be /dev/mtdblock0
                                        modprobe mtdblock