[Asterisk-bsd] OSLEC on FreeBSD

Ian FREISLICH ianf at clue.co.za
Fri Jul 31 06:07:20 CDT 2009


Ian FREISLICH wrote:
> Dinesh Nair wrote:
> > On Mon, 27 Jul 2009 14:37:34 +0200, Ian Freislich wrote:
> > > I was wondering if anyone has successfully ported OSLEC to the
> > > FreeBSD zaptel kernel module.
> > 
> > zaptel-bsd trunk has it. get latest sources down, and just define
> > ECHO_CAN_OSLEC in zaptel/zconfig.h
> 
> *brilliant*  This was my one-and-only reason for moving my asterisk
> to linux.

Hmm.  ng/ doesn't compile (needs the unit2minor patch below):

brane] ~/zaptel-bsd/branches/ng # make
make -C zaptel all
Warning: Object directory not changed from original /usr/home/ianf/zaptel-bsd/branches/ng/zaptel
cc -O2 -pipe -march=athlon64 -fno-strict-aliasing -Wall -D_KERNEL -DKLD_MODULE -nostdinc   -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common  -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone  -mfpmath=387 -mno-sse -mno-sse2 -mno-sse3 -mno-mmx -mno-3dnow  -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions -c oslec_echo.c
oslec_echo.c: In function 'echo_can_update':
oslec_echo.c:164: error: SSE register return with SSE disabled
*** Error code 1

Stop in /usr/home/ianf/zaptel-bsd/branches/ng/zaptel.
*** Error code 1

Stop in /usr/home/ianf/zaptel-bsd/branches/ng.



Trunk, compiles with this patch:

Index: zaptel/zaptel.c
===================================================================
--- zaptel/zaptel.c     (revision 318)
+++ zaptel/zaptel.c     (working copy)
@@ -244,7 +244,7 @@
 
         while (1) {
                 if (kthread_must_exit) {
-                        kthread_exit(0);
+                        kproc_exit(0);
                 }
 
                 ZAP_LOCK(toselwakeup_lock);
@@ -430,8 +430,13 @@
 
        snprintf(tmpname, 20, "%s%d", name, u);
 
-       *dev = make_dev(&zt_devsw, unit2minor(u),
+       *dev = make_dev(&zt_devsw,
+#if __FreeBSD_version < 800062
+           unit2minor(u),
+#else
+           u,
                UID_ROOT, GID_WHEEL, 0600, tmpname);
+#endif
 
        if(*dev)
        {
@@ -1221,7 +1226,7 @@
                ZAP_LOCK_INIT(toselwakeup_lock, "toselwakeup_lock");
 
                kthread_must_exit = 0;
-               if (kthread_create(selwakeup_thread_handler, (void *)toselwakeup
, &kthread, 0, 0, "zt_selwakeup_thread"))
+               if (kproc_create(selwakeup_thread_handler, (void *)toselwakeup, 
&kthread, 0, 0, "zt_selwakeup_thread"))
                {
                        printf("Failed to create kthread\n");
                }


But, doesn't load:
[brane] ~/zaptel-bsd/branches/ng # kldload zaptel
kldload: can't load zaptel: Exec format error

--kernel messages--
KLD zaptel.ko: depends on kernel - not available
linker_load_file: Unsupported file type
---

Do you have any pointers to get me going, I don't have much experience
making kernel modules.

Ian

--
Ian Freislich



More information about the Asterisk-BSD mailing list