Current File : //lib/dracut/modules.d/95lunmask/module-setup.sh
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh

# called by dracut
cmdline() {
    get_lunmask() {
        local _dev=$1
        local _devpath=$(cd -P /sys/dev/block/$_dev ; echo $PWD)
        local _sdev _lun _rport _end_device _classdev _wwpn _sas_address

        [ "${_devpath#*/sd}" == "$_devpath" ] && return 1
        _sdev="${_devpath%%/block/*}"
        _lun="${_sdev##*:}"
        # Check for FibreChannel
        _rport="${_devpath##*/rport-}"
        if [ "$_rport" != "$_devpath" ] ; then
            _rport="${_rport%%/*}"
            _classdev="/sys/class/fc_remote_ports/rport-${_rport}"
            [ -d "$_classdev" ] || return 1
            _wwpn=$(cat ${_classdev}/port_name)
            echo "rd.lunmask=fc,${_wwpn},${_lun}"
            return 0
        fi
        # Check for SAS
        _end_device="${_devpath##*/end_device-}"
        if [ "$_end_device" != "$_devpath" ] ; then
            _end_device="${_end_device%%/*}"
            _classdev="/sys/class/sas_device/end_device-${_end_device}"
            [ -e "$_classdev" ] || return 1
            _sas_address=$(cat ${_classdev}/sas_address)
            echo "rd.lunmask=sas,${_sas_address},${_lun}"
            return 0
        fi
        return 1
    }
    [[ $hostonly ]] || [[ $mount_needs ]] && {
        for_each_host_dev_and_slaves_all get_lunmask
    } | sort | uniq
}

# called by dracut
check() {
    [[ $hostonly ]] || [[ $mount_needs ]] && {
        [ -w /sys/module/scsi_mod/parameters/scan ] || return 255
        scan_type=$(cat /sys/module/scsi_mod/parameters/scan)
        [ "$scan_type" = "manual" ] && return 0
        return 255
    }
    return 0
}

# called by dracut
depends() {
    return 0
}

# called by dracut
install() {
    inst_script "$moddir/fc_transport_scan_lun.sh" /usr/lib/udev/fc_transport_scan_lun.sh
    inst_script "$moddir/sas_transport_scan_lun.sh" /usr/lib/udev/sas_transport_scan_lun.sh
    inst_hook cmdline 30 "$moddir/parse-lunmask.sh"
    if [[ $hostonly_cmdline == "yes" ]] ; then
        local _lunmask

        for _lunmask in $(cmdline) ; do
            printf "%s\n" "$_lunmask" >> "${initdir}/etc/cmdline.d/95lunmask.conf"
        done
    fi
}
Bornolipi, Author at Bornolipi - বর্ণলিপি
Bornolipi
Bornolipi

Augmented Reality (AR) কিভাবে শিশুদের পড়াশোনায় সাহায্য করে?

আজকের আধুনিক শিক্ষাব্যবস্থায়, Augmented Reality (AR) নতুন করে পড়াশোনার অভিজ্ঞতা নিয়ে আসছে। বাচ্চারা এখন কেবল বই পড়ে বা ছবি দেখে শিখছে না, বরং AR technology-র মাধ্যমে তাদের শেখার journey...
Bornolipi
Bornolipi

শিশুদের শেখার অভিজ্ঞতা বাড়াতে কীভাবে প্রযুক্তি সহায়ক হতে পারে?

আজকের ডিজিটাল যুগে, আমাদের সন্তানদের শেখার অভিজ্ঞতা আরও সমৃদ্ধ করতে প্রযুক্তি অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করছে। Educational apps, Augmented Reality (AR), এবং অনলাইন learning platforms বাচ্চাদের শেখার পদ্ধতিকে আরও...