This fails with exceptional uselessness if you (as I am) are using a
kernel which does not allow module loading at all.

The check for a kernel module in the file system should only be carried
out if no aes ciphers are found in /proc/crypto.

Probably as so: 
+++/lib/cryptsetup/cryptdisks.functions:

load_optimized_aes_module () {
        local asm_module modulesdir
+
+      # only load if not already loaded
+      local drv_loaded=`cat /proc/crypto | grep driver\ *:\ *aes-`
+      if [ -z "$drv_loaded" ]; then

        # find directory with kernel modules
        modulesdir="/lib/modules/`uname -r`"
        # Add assembly optimized AES module if it exists
        asm_module=`ls -1 "$modulesdir"/kernel/arch/*/*/aes*.ko`
        if [ $asm_module ];then
           insmod $asm_module 2>/dev/null || true
        fi
+
+     fi
}


Additionally the check should be weakened to not fail if the module does not 
load:

+++/lib/cryptsetup/cryptdisks.functions:
do_start () {
        local dst src key opts result

        modprobe -qb dm-mod || true
        modprobe -qb dm-crypt || true
        dmsetup mknodes > /dev/null 2>&1 || true
        log_action_begin_msg "Starting $INITSTATE crypto disks"
-        load_optimized_aes_module
+       load_optimized_aes_module || true
        mount_fs

-- 
cryptdisks problem, script fails to load architecture dependent aes kernel 
module
https://bugs.launchpad.net/bugs/154392
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to