mdev 會 miss 掉 device node ?? BUG ??

在 Marvell 88F6282 上 kernel version 2.6.31.8, busybox 1.20.2, parted 1.9 上

使用 parted 切割 HDD, 有時後會發生 device node 少建, ?????

parted -s /dev/sda mklabel gpt

parted /dev/sda -s mkpart primary ext4 20kB 210419917kB
parted /dev/sda -s mkpart primary ext4 210419918kB 243148363kB
parted /dev/sda -s mkpart primary linux-swap 243148364kB 244196939kB
parted /dev/sda -s mkpart primary ext4 244196940kB 244198604kB

如上所示,  就是會少某些 /dev/sdaX

同上的方式在別的平台, 似乎不會 @@@@

看來 kernel 的 hotplug 在 parted 切 partition 時會 remove 全部再新增全部的 node, 
而送出來的 command, 並不會合下面的順序
                            
VariableMeaning
ACTIONIs the device being added or removed?
DEVPATHPath in the sysfs tree to the device
FIRMWAREName of the firmware the device would like loaded
MAJORFor devices with device nodes, the major number
MINORFor devices with device nodes, the minor number
SUBSYSTEMThe subsystem the device is part of
有時順序會錯亂, 也許是這個問題???沒有繼續追下去 ....

將 echo /sbin/mdev > /proc/sys/kernel/hotplug
換成
     echo /plug.sh > /proc/sys/kernel/hotplug

#!/bin/sh
name=$(basename ${DEVPATH})
cd /dev
rm -f ${name}
if [ "${SUBSYSTEM}" = "block" ] ; then
    type="b"
else
    type="c"
fi
if [ "${ACTION}" = "add" ] ; then
    mknod ${name} ${type} ${MAJOR} ${MINOR}
fi
不要用 mdev 來做, 似乎解決了這個問題, 可以利用這個 script 來瞭解 node 的建立


留言

這個網誌中的熱門文章

NMEA標準格式 -- GPS

網路 Transformer 的用途

cut,sed,awk 字串處理