• # Mon expérience sur SourceMage

    Posté par . En réponse au message simpleinit-msb et udev. Évalué à 1.

    J'utilise la distribution SourceMage (distrib source), avec simpleinit-msb et udev.
    Je ne suis pas spécialiste dans le domaine, mais j'ai pris quelques minutes pour regarder comment c'est organisé :

    - Je n'ai jamais compilé le support du devfs dans le noyau.
    - J'ai un runlevel nommé "%DEV" qui est lancé en tout premier par simpleinit-msb, contenant un unique script qui s'occupe de udev :

    Il monte /sys, /proc, puis un ramfs dans /dev. Voilà la fonction appelée dans ce fichier (udev_root est sur /dev/ dans udev.conf):

    start_udev()
    { (
    . /etc/udev/udev.conf
    # mount sysfs
    echo "Mounting sysfs at /sys"
    mount -n -t sysfs none /sys
    # mount proc
    echo "Mounting /proc"
    mount -n -t proc none /proc
    echo "Mounting ramfs at $udev_root"
    mount -n -t ramfs none $udev_root
    # create some needed stuff
    ln -s /proc/self/fd $udev_root/fd
    ln -s /dev/fd/0 $udev_root/stdin
    ln -s /dev/fd/1 $udev_root/stdout
    ln -s /dev/fd/2 $udev_root/stderr
    mkdir $udev_root/shm
    mkdir $udev_root/pts
    # propogate /udev from /sys - we only need this while we do not
    # have initramfs and an early user-space with which to do early
    # device bring up
    echo "Creating initial udev device nodes"
    /sbin/udevstart
    if [ -f /etc/udev/udev.missing ]; then
    echo "Processing /etc/udev/udev.missing"
    cd /dev
    while read line; do
    if [ "${line:0:1}" == "#" ]; then continue; fi
    for ((i=0; i<7; i++)); do
    val[$i]=${line%%:*}
    line=${line#*:}
    done
    if [ "${val[1]}" == "d" ]; then
    mkdir ${val[0]}
    else
    mknod ${val[0]} ${val[1]} ${val[2]} ${val[3]}
    fi
    chmod ${val[4]} ${val[0]}
    chown ${val[5]}:${val[6]} ${val[0]}
    done < /etc/udev/udev.missing
    cd /
    fi
    echo "Telling init to reopen file descriptors"
    kill -USR1 1
    echo "Starting udevd"
    /sbin/udevd &
    ) }

    L'init se poursuit ensuite avec les autres runlevels.
    J'espère t'avoir été utile. N'hésite pas à demander des précisions.