[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: /dev/loop3 No appropriate device found
Hi Jari,
thanx a lot. That worked. It is all there now and i can rescue this whole
stuff now!
Thank you very much again!
Bernhard
> Bernhard Stoevesandt wrote:
>> gcc -D__KERNEL__ -I/usr/src/linux-2.4.18.SuSE/include -Wall
>> -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
>> -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
>> -march=i586 -DKBUILD_BASENAME=ksyms -DEXPORT_SYMTAB -c ksyms.c
>> ksyms.c:609: `set_user_nice' undeclared here (not in a function)
> [snip]
>> it is an old suse-distro (8.0).
>
> Ok. I found SuSE 8.0 kernel patches from ftp.suse.com and looked at the
> source. Now I understand what went wrong: module compilation failed. I got
> these errors on 2.4.18-SuSE-91 kernel + loop-AES-v3.1c :
>
> patched-loop.c: In function `loop_thread':
> patched-loop.c:757: warning: implicit declaration of function
> `set_user_nice'
> [snip]
> depmod: *** Unresolved symbols in /lib/modules/2.4.18-SuSE-91/block/loop.o
>
> Most 2.4 kernels use either normal 2.4 scheduler or O(1) scheduler. That
> SuSE kernel appears to have scheduler that is sufficietly different from
> both above mentioned schedulers and confused loop module compilation to
> use
> wrong scheduler interface.
>
> Really old loop-AES versions used different scheduler detection code. On
> June 2003, that scheduler detection code was changed to test defines
> include/linux/sched.h, causing scheduler mis-detection and compile failure
> on that particular SuSE kernel. I now fixed this incompatibility by
> modifying scheduler detection code. A patch for loop-AES-v3.1c is
> included.
>
> To clean up the mess, you need to remove that extra EXPORT_SYMBOL() from
> your kernel.
>
> cd /usr/src/linux-2.4.18.SuSE
> sed -e 's/EXPORT_SYMBOL(set_user_nice);//' <kernel/ksyms.c >z
> mv z kernel/ksyms.c
>
> And then recompile your kernel. This assumes that you are using lilo
> bootloader, and that lilo is configured to boot /boot/vmlinuz kernel.
>
> mv .config z
> make distclean
> mv z .config
> make oldconfig
> make dep && make clean && make bzlilo INSTALL_PATH=/boot
> make modules && make modules_install
>
> And then apply included loop-AES patch.
>
> cd /usr/src/loop-AES-v3.1c
> patch -p1 <this-email
>
> And then build loop.o module for your kernel.
>
> make LINUX_SOURCE=/usr/src/linux-2.4.18.SuSE
>
> And then boot your new kernel /boot/vmlinuz
>
> --
> Jari Ruusu 1024R/3A220F51 5B 4B F9 BB D3 3F 52 E9 DB 1D EB E3 24 0E A9
> DD
>
>
> --- ../loop-AES-v3.1c/loop.c-2.4.patched 2005-09-17 12:20:54.000000000
> +0300
> +++ ./loop.c-2.4.patched 2006-01-27 15:36:39.000000000 +0200
> @@ -222,7 +222,7 @@
> * This is loop helper thread nice value in range
> * from 0 (low priority) to -20 (high priority).
> */
> -#if defined(DEF_NICE) && defined(DEF_COUNTER)
> +#if defined(DEF_NICE)
> static int lo_nice = -20; /* old scheduler default */
> #else
> static int lo_nice = -1; /* O(1) scheduler default */
> @@ -748,7 +748,7 @@
> lo_nice = 0;
> if (lo_nice < -20)
> lo_nice = -20;
> -#if defined(DEF_NICE) && defined(DEF_COUNTER)
> +#if defined(DEF_NICE)
> /* old scheduler syntax */
> current->policy = SCHED_OTHER;
> current->nice = lo_nice;
>
-
Linux-crypto: cryptography in and on the Linux system
Archive: http://mail.nl.linux.org/linux-crypto/