Platform

Choose application
HAL
Linux kernel.<\/li>\n<li>GPIO configuration, <code>rfkill<\/code> (radio frequency management), and power management can be handled by both the vendor and the porting engineer<\/li>\n<\/ul>\n<\/li>\n<li>Bluetooth firmware loading module\n<ul>\n<li>Depending on the environment, it loads the Bluetooth firmware to the Bluetooth chip<\/li>\n<li>Tizen and the chipset vendor need to implement this together<\/li>\n<li>Package: <code>bluetooth-firmware-bcm<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 id=\"content-porting-the-hal-backend-interface\"><a href=https://samsungtizenos.com/"#content-porting-the-hal-backend-interface\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Porting the HAL Backend interface<\/h3>\n<p>The Bluetooth HAL Backend is responsible for the low-level control and initialization of specific Bluetooth chipsets. It acts as a bridge between the standard Tizen Bluetooth HAL API and the hardware, abstracting the vendor-specific procedures required to bring a Bluetooth adapter in and out of service. The following scripts are run during the Bluetooth stack start and end sequences. These scripts invoke the Bluetooth chip-specific (such as Broadcom and Spreadtrum) scripts, provided by the chipset vendor, to perform chip-specific configuration. These scripts are available in the <code>bluetooth-firmware-bcm<\/code> package. When this package is installed, it copies the following scripts in the <code>\/hal\/etc\/bluetooth\/<\/code> directory:<\/p>\n<ul>\n<li><code>bt-stack-up.sh<\/code><\/li>\n<li><code>bt-stack-down.sh<\/code><\/li>\n<li><code>bt-reset-env.sh<\/code><\/li>\n<\/ul>\n<p>This HAL Backend is not used directly by application developers or the upper-level framework. Instead, it is invoked by the Tizen Bluetooth HAL API implementation to perform hardware-specific tasks.<\/p>\n<p>The process is as follows:<\/p>\n<ul>\n<li>An application or system service uses the Tizen Bluetooth Framework.<\/li>\n<li>The Tizen Bluetooth Framework calls the standard C API functions provided by the Tizen Bluetooth HAL API.<\/li>\n<li>When the HAL API needs to perform a hardware-level operation, such as powering the adapter on or off, it delegates the task to the vendor-specific Bluetooth HAL Backend.<\/li>\n<li>The HAL Backend executes the necessary vendor-specific commands, scripts, and tools to manage the hardware and then returns the status to the HAL API.<\/li>\n<\/ul>\n<h3 id=\"content-references\"><a href=https://samsungtizenos.com/"#content-references\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>References<\/h3>\n<p>Open source component : BlueZ<\/p>\n<p>For more information, see <a href=https://samsungtizenos.com/"http:////www.bluez.org///">http:////www.bluez.org//./n

The reference kernel configuration for Bluetooth:<\/p>\n<ul>\n<li>The following kernel <code>.config<\/code> lines are enabled for Broadcom Bluetooth support:\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_BT<\/span><span style=\"color:#005CC5;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_BT_L2CAP<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_BT_RFCOMM<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_BT_RFCOMM_TTY<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_BT_BNEP<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_BT_HIDP<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_BT_HCIUART<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_BT_HCIUART_H4<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_BCM4330<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_RFKILL<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_RFKILL_INPUT<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_RXTRA_FIRMWARE_BCM4330<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;BCM4330.hcd&quot;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>The following kernel <code>.config<\/code> lines are enabled for Bluetooth AVRCP support:\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_INPUT_MISC<\/span><span style=\"color:#005CC5;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_INPUT_UINPUT<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>The following kernel <code>.config<\/code> lines are enabled for Bluetooth HID support:\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_INPUT_GP2A<\/span><span style=\"color:#005CC5;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_INPUT_KR3DH<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>The following kernel <code>.config<\/code> lines are enabled for Bluetooth Audio (SCO-over-PCM) support:\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_BT_SCO<\/span><span style=\"color:#005CC5;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_INPUT_GP2A<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">CONFIG_INPUT_KR3DH<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">y<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<\/ul>\n<h2 id=\"content-wlan\"><a href=https://samsungtizenos.com/"#content-wlan\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>WLAN<\/h2>\n<p>This section provides a step-by-step explanation of what is involved in adding a new Wi-Fi driver and making Wi-Fi work.<\/p>\n<p><strong>Figure: Tizen Wi-FI architecture<\/strong><\/p>\n<p><img src=https://samsungtizenos.com/"media//wlan.png/" alt=\"Tizen Wi-FI architecture\" \/><\/p>\n<p>Feature overview:<\/p>\n<ul>\n<li>WLAN (802.11 b\/g\/n)<\/li>\n<li>WPS PBC<\/li>\n<li>EAP (PEAP, TTLS)<\/li>\n<\/ul>\n<p>Tizen uses <code>wpa_supplicant<\/code> as the platform interface to Wi-Fi devices. Your Wi-Fi driver must be compatible with the standard <code>wpa_supplicant<\/code>.<\/p>\n<p>The Tizen WLAN architecture is centered on the Linux wireless (IEEE-802.11) subsystem. The Linux wireless SW stack defines the WLAN hardware adaptation software interfaces that need to be used in Tizen. In practice, the required interfaces are defined by cfg80211 for FullMAC WLAN devices and by mac80211 for SoftMAC WLAN devices. In addition, a Linux network interface needs to be supported towards the Linux TCP\/IP stack.<\/p>\n<p>The Connection Manager (ConnMan) is a daemon for managing Internet connections within embedded devices running the Linux operating system.<\/p>\n<p>The <code>wpa_supplicant<\/code> interface is a WPA Supplicant with support for WPA and WPA2 (IEEE 802.11i \/ RSN). WPA Supplicant is the IEEE 802.1X\/WPA component that is used in the client stations. It implements key negotiation with a WPA Authenticator, and it controls roaming and the IEEE 802.11 authentication\/association of the WLAN driver.<\/p>\n<h3 id=\"content-porting-the-oal-interface\"><a href=https://samsungtizenos.com/"#content-porting-the-oal-interface\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Porting the OAL interface<\/h3>\n<p>The WLAN driver plugin is specific to a Wi-Fi chipset. This includes firmware and chipset-specific tools. Wi-Fi chipset firmware and tool files must be copied to the WLAN driver plugin directory, built, and installed before testing the Wi-Fi functionality. Because of Tizen platform requirements, the Wi-Fi driver must create the <code>\/opt\/etc\/.mac.info<\/code> file, which has the device MAC address.<\/p>\n<p>When the Wi-Fi activation function is called, the request is sent to the NET-CONFIG daemon to call the Wi-Fi start function in HAL_API Wi-Fi. Similarly, the Wi-Fi deactivation function calls the Wi-Fi stop function through NET_CONFIG daemon. In case of Wi-Fi Direct\u00ae, the Wi-Fi Direct activation and deactivation functions make the Wi-Fi Direct manager load or unload the Wi-Fi driver using the <code>wpa_supplicant<\/code>.<\/p>\n<p>All other Wi-Fi related functionality is handled by the ConnMan daemon.<\/p>\n<h3 id=\"content-references-1\"><a href=https://samsungtizenos.com/"#content-references-1\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>References<\/h3>\n<ul>\n<li>Linux wireless (IEEE-802.11) subsystem: <a href=https://samsungtizenos.com/"https:////wireless.wiki.kernel.org/">https:////wireless.wiki.kernel.org/n

  • Information on Linux WPA\/WPA2\/IEEE 802.1X Supplicant: <a href=https://samsungtizenos.com/"http:////hostap.epitest.fi//wpa_supplicant///">http:////hostap.epitest.fi//wpa_supplicant///n
  • Latest ConnMan release: <a href=https://samsungtizenos.com/"http:////git.kernel.org//?p=network\/connman\/connman.git;a=summary\%22>http:\/\/git.kernel.org\/?p=network\/connman\/connman.git;a=summary<\/a><\/li>\n
  • WLAN driver plugin Git path: <code>\/adaptation\/devices\/wlandrv-plugin-tizen-bcm43xx<\/code><\/li>\n<li>Reference kernel configurations<\/li>\n<li>The following options must be enabled if the driver supports the cfg802.11 configuration API, instead of the wireless extension API. For more information, see <a href=https://samsungtizenos.com/"http:////wireless.wiki.kernel.org///">https:////wireless.wiki.kernel.org:/n
    http:////nfc-forum.org//./n","table_of_content":"
  • For the best experience,
    Please visit us from a computer

    Copyright © 2026 SAMSUNG. All rights reserved.

    Customize your cookie preferences

    You can enable or disable non-essential cookies. Essential cookies are always on to ensure the site works properly and to keep you signed in.

    Necessary

    These cookies are necessary for the website to function properly and cannot be switched off. They help with things like logging in and setting your privacy preferences.

    Always on

    Analytics

    These cookies help us improve the site by tracking which pages are most popular and how visitors move around the site.

    Enable analytics cookies
    Public Forum Public Forum
    Employees only. Please sign in with your company account.