Skip to content

orangepi5-ultra: enable Bluetooth on edge kernel via hci_bcm#9697

Open
pdapandapda wants to merge 2 commits intoarmbian:mainfrom
pdapandapda:main
Open

orangepi5-ultra: enable Bluetooth on edge kernel via hci_bcm#9697
pdapandapda wants to merge 2 commits intoarmbian:mainfrom
pdapandapda:main

Conversation

@pdapandapda
Copy link
Copy Markdown

@pdapandapda pdapandapda commented Apr 19, 2026

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

GitHub issue reference:
Jira reference number [AR-9999]

Documentation summary for feature / change

Please delete this section if entry to main documentation is not needed.

If documentation entry is predicted, please provide key elements for further implementation into main documentation and set label to "Needs Documentation". You are welcome to open a PR to documentation or you can leave following information for technical writer:

  • short description (copy / paste of PR title)
  • [Y ] summary (description relevant for end users)
  • example of usage (how to see this in function)

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

  • Test A
  • Test B

Checklist:

Please delete options that are not relevant.

  • [Y] My code follows the style guidelines of this project
  • [Y] I have performed a self-review of my own code
  • [Y] I have commented my code, particularly in hard-to-understand areas
  • [Y] My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

Summary by CodeRabbit

Release Notes

  • Chores
    • Optimized Orange Pi 5 Ultra Bluetooth configuration for edge kernel branch, enhancing firmware handling and service initialization to improve hardware compatibility and system stability.

Here is the same patch with commit 76fc84a,because Orangepi 5 Ultra share the same AP6611s module with Orangepi 5 Max. Tested on the Ultra board, bluetooth just works with kernel 7.0.0
…th-on-edge-kernel-via-hci_bcm

orangepi5-ultra: enable Bluetooth on edge kernel via hci_bcm
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 19, 2026

📝 Walkthrough

Walkthrough

Modified Bluetooth configuration for Orange Pi 5 Ultra to conditionally handle firmware symlinks based on kernel branch, with edge branch variant creating a dedicated firmware symlink rather than enabling the standard Bluetooth service.

Changes

Cohort / File(s) Summary
Bluetooth Configuration
config/boards/orangepi5-ultra.csc
Added early-exit check in post_family_tweaks__orangepi5ultra_enable_bluetooth_service to skip execution on edge branch; introduced new post_family_tweaks__orangepi5ultra_bt_firmware_symlink function to create firmware symlink (BCM.xunlong,orangepi-5-ultra.hcdSYN43711A0.hcd) under $SDCARD/lib/firmware/brcm/ exclusively on edge branch.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A firmware symlink for the ultra hare,
Edge branch kernels need special care,
Bluetooth hops from service to link,
One branch one way, the other, a blink! 🔗

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: enabling Bluetooth on Orange Pi 5 Ultra's edge kernel using the hci_bcm driver, which directly corresponds to the changeset's objectives.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added 05 Milestone: Second quarter release size/small PR with less then 50 lines Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... labels Apr 19, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
config/boards/orangepi5-ultra.csc (1)

60-66: Use /lib/firmware/updates/brcm/ instead to avoid conflicts with the Armbian firmware package.

The Linux firmware loader searches /lib/firmware/updates/ with higher precedence than /lib/firmware/, and /lib/firmware/brcm/ is owned by the armbian-firmware package. Dropping the symlink directly into /lib/firmware/brcm/ risks it being overwritten on package upgrades.

Keep the symlink target relative since SYN43711A0.hcd is not explicitly provisioned in this build system. An absolute path (/lib/firmware/brcm/SYN43711A0.hcd) would create a broken symlink if the firmware file isn't present elsewhere on the rootfs.

♻️ Suggested change
-	mkdir -p "$SDCARD/lib/firmware/brcm"
-	ln -sf SYN43711A0.hcd "$SDCARD/lib/firmware/brcm/BCM.xunlong,orangepi-5-ultra.hcd"
+	mkdir -p "$SDCARD/lib/firmware/updates/brcm"
+	ln -sf ../SYN43711A0.hcd "$SDCARD/lib/firmware/updates/brcm/BCM.xunlong,orangepi-5-ultra.hcd"

Also verify that the SYN43711A0.hcd firmware file is actually provisioned during the build, as it does not appear to be present in packages/bsp/.

Based on learning: pyavitz PR 8455 — use /lib/firmware/updates/ to avoid conflicts with armbian-firmware.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/boards/orangepi5-ultra.csc` around lines 60 - 66, In function
post_family_tweaks__orangepi5ultra_bt_firmware_symlink(), stop creating the
symlink under /lib/firmware/brcm and instead create the directory
/lib/firmware/updates/brcm and place a relative symlink there (e.g. ln -sf
SYN43711A0.hcd
"$SDCARD/lib/firmware/updates/brcm/BCM.xunlong,orangepi-5-ultra.hcd"); ensure
mkdir -p "$SDCARD/lib/firmware/updates/brcm" is used and the link target remains
the bare relative filename SYN43711A0.hcd (not an absolute path); also verify
that SYN43711A0.hcd is actually provisioned by the build (packages/bsp or
equivalent) so the relative link will point to an available firmware file.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@config/boards/orangepi5-ultra.csc`:
- Around line 60-66: In function
post_family_tweaks__orangepi5ultra_bt_firmware_symlink(), stop creating the
symlink under /lib/firmware/brcm and instead create the directory
/lib/firmware/updates/brcm and place a relative symlink there (e.g. ln -sf
SYN43711A0.hcd
"$SDCARD/lib/firmware/updates/brcm/BCM.xunlong,orangepi-5-ultra.hcd"); ensure
mkdir -p "$SDCARD/lib/firmware/updates/brcm" is used and the link target remains
the bare relative filename SYN43711A0.hcd (not an absolute path); also verify
that SYN43711A0.hcd is actually provisioned by the build (packages/bsp or
equivalent) so the relative link will point to an available firmware file.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 435fb74b-2738-42dc-81e8-198a1ca5628f

📥 Commits

Reviewing files that changed from the base of the PR and between 03192b8 and 5d93848.

📒 Files selected for processing (1)
  • config/boards/orangepi5-ultra.csc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

05 Milestone: Second quarter release Hardware Hardware related like kernel, U-Boot, ... Needs review Seeking for review size/small PR with less then 50 lines

Development

Successfully merging this pull request may close these issues.

1 participant