diff --git a/etc/etc.amd64/rc.amd64 b/etc/etc.amd64/rc.amd64 index a17ccaab86ad..7f3e0d11d11c 100644 --- a/etc/etc.amd64/rc.amd64 +++ b/etc/etc.amd64/rc.amd64 @@ -31,8 +31,17 @@ esac # case ${ibcs2_enable} in [Yy][Ee][Ss]) - echo -n ' ibcs2'; ibcs2 > /dev/null 2>&1 - ;; + echo -n ' ibcs2' + kldload ibcs2 > /dev/null 2>&1 + case ${ibcs2_loaders} in + [Nn][Oo]) + ;; + *) + for i in ${ibcs2_loaders}; do + kldload ibcs2_$i > /dev/null 2>&1 + done + ;; + esac esac case ${xtend_enable} in diff --git a/etc/etc.i386/rc.i386 b/etc/etc.i386/rc.i386 index a17ccaab86ad..7f3e0d11d11c 100644 --- a/etc/etc.i386/rc.i386 +++ b/etc/etc.i386/rc.i386 @@ -31,8 +31,17 @@ esac # case ${ibcs2_enable} in [Yy][Ee][Ss]) - echo -n ' ibcs2'; ibcs2 > /dev/null 2>&1 - ;; + echo -n ' ibcs2' + kldload ibcs2 > /dev/null 2>&1 + case ${ibcs2_loaders} in + [Nn][Oo]) + ;; + *) + for i in ${ibcs2_loaders}; do + kldload ibcs2_$i > /dev/null 2>&1 + done + ;; + esac esac case ${xtend_enable} in diff --git a/etc/rc b/etc/rc index ca940115b17a..c5f2b927ccac 100644 --- a/etc/rc +++ b/etc/rc @@ -548,7 +548,13 @@ fi # case ${linux_enable} in [Yy][Ee][Ss]) - echo -n ' linux'; linux > /dev/null 2>&1 + echo -n ' linux' + if ! kldstat -v | grep -E 'linux(aout|elf)' > /dev/null; then + kldload linux > /dev/null 2>&1 + fi + if [ -x /compat/linux/sbin/ldconfig ]; then + /compat/linux/sbin/ldconfig + fi ;; esac @@ -556,7 +562,7 @@ esac # case ${svr4_enable} in [Yy][Ee][Ss]) - echo -n ' svr4'; svr4 > /dev/null 2>&1 + echo -n ' svr4'; kldload svr4 > /dev/null 2>&1 ;; esac