Bluetooth stack for FreeBSD

Maksim Yevmenkin m_evmenkin at yahoo.com
Mon Apr 7 10:15:48 PDT 2003


Dear Hackers, 

I'm very pleased to announce that another release is available for download at

http://www.geocities.com/m_evmenkin/ngbt-fbsd-20030407.tar.gz

I would like to thank you Pav Lucistnik <pav at oook.cz> for creating Bluetooth
on FreeBSD web page (http://www.oook.cz/bsd/bluetooth.html) and all people
who helped me with testing. Please try the new code and let me know if you
have any problems/questions/etc. Also please do not forget to CC to one of
the FreeBSD mailing lists.

Below is a quick summary of changes:

All code
 - Resolve problem with M_NOWAIT/M_DONTWAIT flags in MALLOC and mbuf related
   calls;

Drivers
 - ng_ubt(4) was re-written. It now can provide traditional device nodes
   based interface (needed for firmware download);
 - ng_h4(4), ng_ubt(4) and ng_bt3c(4) drivers now receive data directly
   into mbuf clusters;
   
HCI layer
 - Added new command {read|write}_node_role_switch to enable/disable
   role switch for incoming connections. This fixes the problem with
   devices that do not support role switch;
 - Handle HCI ENCRYPTION_CHANGE event and update connection descriptor;
 - Fix minor bug in packet mask check code;

L2CAP layer
 - L2CAP layer now will respond to disconnect request, even if channel
   already in DISCONNECTING state;

Bluetooth sockets layer
 - Raw HCI and L2CAP sockets now have notion of "privileged" commands.
   Now regular users can run hccontrol(8)/l2control(8) and execute most
   of the commands;
 - Fix locking bug in raw L2CAP sockets code;
 - Generate unique token for L2CAP sockets;
 - L2CAP and RFCOMM sockets now detect and detach sockets that have been
   disconnected before receiving side had a chance to accept them. This
   removes sockets that stuck in CLOSED state on accepting socket queue;
 - Fix "early initialization" bug in RFCOMM sockets that causes crash
   when ng_btsocket(4) module is loaded from loader prompt at boot time.

Userspace tools
 - Change btsockstat(1) so it prints information about RFCOMM sessions;
 - Install btsockstat(1) as SUID and drop SUID when core file in used;
 - Added bcmfw(8) - Broadcom 0x2033 chip based firmware download utility
   Note: This is UNTESTED code since I have no hardware to test it on;
 - Fix Makefile's and use ${.CURDIR} in include path;
 - Minor improvements to hccontrol(8). Better documentation and stuff;
 - hcsecd(8) now refuses to run if it was started by non-privileged user;

Ports
 - All ports/ now use relative path to bluetooth/include;
 - Minor fixes in hcidump(1): get rid of 'inline' functions, display
   warning if run as non-privileged user, display credits in RFCOMM UIH
   frames; display more SDP attributes;
 - Minor fixes in obexapp(1): updated man page with more examples, connect
   automatically in client mode (CONnect command was removed), fix typo
   in default server root path, in server mode try to wait for the client
   to close connection;
 - Update SDP with the latest patches from Linux BlueZ (up to 1.1 release)

When upgrading please follow these steps

1) Download latest snapshot

2) Extract it into your home directory. Please *do not* extract shapshot into
   /usr. you *should* build snapshot *outside* of main FreeBSD source tree.

3) Build and install kernel modules

   cd $snapshot_dir/src/sys/modules/netgraph/bluetooth
   make depend
   make
   make install
   make cleandir

4) Build and install userspace tools

   cd $snapshot_dir/src/usr.bin/bluetooth
   make depend
   make
   make install
   make cleandir

   cd $snapshot_dir/src/usr.sbin/bluetooth
   make depend
   make
   make install
   make cleandir

   rehash

5) Build and install ports (optional - you might need glib12 and openobex
   libraries installed)

IMPORTANT:

 - Build snapshot *outside* of FreeBSD main source tree. *Do not* update
   sources in /usr/src. If you run 'cvsup' then all your changes to /usr/src
   *will be lost*

 - Always update your userspace tools

 - After bulding and installing new kernel *do not* forget to re-compile 
   and re-install Bluetooth kernel modules (from snapshot). You need this 
   because kernel build will install old (stock) Bluetooth modules

 - After making "word" please *do not* forget to re-compile/re-install both
   kernel modules and userland tools from snapshot

thanks,
max

__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - File online, calculators, forms, and more
http://tax.yahoo.com


More information about the freebsd-mobile mailing list