Tasklist

FS#62 - initramfs: fix weird problems related to mdev

Attached to Project: CRUX-ARM
Opened by Jose V Beneyto (sepen) - Saturday, 02 November 2013, 01:39 GMT
Last edited by Jose V Beneyto (sepen) - Tuesday, 26 November 2013, 16:03 GMT
Task Type Bug Report
Category initramfs
Status Assigned
Assigned To Jose V Beneyto (sepen)
Operating System CRUX-ARM
Severity High
Priority Normal
Reported Version devel
Due in Version Undecided
Due Date Undecided
Percent Complete 50%
Votes 0
Private No

Details

we have some weird problems related to mdev

1. the /etc/rc script required an extra 'mdev -s' invocation to find the install media

2. after use fdisk, we can see new device nodes for these new partitions

for problem 2 there is a guy who related the same here http://stackoverflow.com/questions/8313196/mdev-racing-when-creating-and-deleting-device-node

anyway a deep review of mdev from busybox should be made to avoid these weird errors

we can also take ideas from http://sepen.it.cx/crux/ports/crux-3.0/sepen/mdev/
This task depends upon

Comment by Victor Martinez (pitillo) - Saturday, 02 November 2013, 02:05 GMT
Problem 2:
# fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 988 MB, 988282880 bytes
31 heads, 61 sectors/track, 1020 cylinders
Units = cylinders of 1891 * 512 = 968192 bytes

Device Boot Start End Blocks Id System
/dev/mmcblk0p1 1 264 249581+ 83 Linux

fdisk created second partition

# fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 988 MB, 988282880 bytes
31 heads, 61 sectors/track, 1020 cylinders
Units = cylinders of 1891 * 512 = 968192 bytes

Device Boot Start End Blocks Id System
/dev/mmcblk0p1 1 264 249581+ 83 Linux
/dev/mmcblk0p2 265 529 250557+ 83 Linux

# ls /dev/mmcblk0*
/dev/mmcblk0 /dev/mmcblk0p1

Comment by Victor Martinez (pitillo) - Saturday, 02 November 2013, 14:04 GMT
After changing /dev/pts mount and mdev¬°s register as hotplug agent order in rc script as suggested in http://git.busybox.net/busybox/plain/docs/mdev.txt, mmc devices are detected correctly at boot time but we have problems with new created partitions yet.

# fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 988 MB, 988282880 bytes
31 heads, 61 sectors/track, 1020 cylinders
Units = cylinders of 1891 * 512 = 968192 bytes

Device Boot Start End Blocks Id System
/dev/mmcblk0p1 1 264 249581+ 83 Linux
/dev/mmcblk0p2 265 529 250557+ 83 Linux
/dev/mmcblk0p3 530 633 98332 83 Linux

# cat /proc/partitions
major minor #blocks name

179 0 965120 mmcblk0
179 1 249581 mmcblk0p1
179 2 250557 mmcblk0p2


Proposed patch: Sorts /dev/tmps mount, hotplug and mdev -s

diff --git a/filesystem/rc b/filesystem/rc
index 5b19485..f81c98a 100755
--- a/filesystem/rc
+++ b/filesystem/rc
@@ -128,17 +128,17 @@ mount -a && \
mount -o remount,rw /
checkReturn

-echo -e -n " ${BOLD}${BLUE}*${NORM} Populating /dev via mdev... "
-mdev -s
+echo -e -n " ${BOLD}${BLUE}*${NORM} Creating and mounting /dev/pts... "
+mkdir /dev/pts
+mount -t devpts devpts /dev/pts
checkReturn

echo -e -n " ${BOLD}${BLUE}*${NORM} Registering mdev as hotplug agent... "
echo "/bin/mdev" > /proc/sys/kernel/hotplug
checkReturn

-echo -e -n " ${BOLD}${BLUE}*${NORM} Creating and mounting /dev/pts... "
-mkdir /dev/pts
-mount -t devpts devpts /dev/pts
+echo -e -n " ${BOLD}${BLUE}*${NORM} Populating /dev via mdev... "
+mdev -s
checkReturn

echo -e -n " ${BOLD}${BLUE}*${NORM} Starting kernel log daemon... "
@@ -159,9 +159,6 @@ echo -e -n " ${BOLD}${BLUE}*${NORM} Saving boot messages... "
dmesg > /var/log/boot
checkReturn

-# run mdev again to fix issues with mmc devices. yeah, it is weird but worked
-mdev -s
-
echo -e " ${BOLD}${BLUE}*${NORM} Trying to find and mount the media installer..."
find_and_mount_media



Comment by Jose V Beneyto (sepen) - Tuesday, 19 November 2013, 17:48 GMT
or we can just add this script I wrote for mdev port: http://sepen.it.cx/crux/ports/crux-3.0/sepen/mdev/start_mdev
Comment by Victor Martinez (pitillo) - Tuesday, 19 November 2013, 17:50 GMT
+1

Loading...