Skip to content

gk7201v200: add XiongMai 7205 device profile (SC2336, RTL8733BU, 16M NOR) - #173

Merged
openipc-ai merged 4 commits into
OpenIPC:masterfrom
oskarirauta:master
Sep 29, 2026
Merged

openipc-ai merged 4 commits into
OpenIPC:masterfrom
oskarirauta:master

Conversation

@oskarirauta

@oskarirauta oskarirauta commented Sep 29, 2026 •

Copy link
Copy Markdown

This adds support of 16mb flash and Realtek's 8873bu wifi card on goke gk7201v200

Signed-off-by: Oskari Rauta <oskari.rauta@gmail.com>
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Add 16 MB GK7201V200 camera profile with RTL8733BU Wi-Fi

✨ Enhancement ⚙️ Configuration changes 🕐 20-40 Minutes

Grey Divider

AI Description

• Adds a 16 MB GK7201V200 firmware profile with RTL8733BU Wi-Fi support.
• Tunes Wi-Fi power management for stability on mains-powered cameras.
• Adds sensor profiles, image-quality settings, and device-specific upgrade and memory defaults.
Diagram

graph TD
  Config["Device defconfig"] --> Build["Firmware build"] --> Rootfs["Device rootfs"] --> Wifi["Wi-Fi startup"] --> Driver["RTL8733BU driver"]
  Rootfs --> Sensors["Sensor profiles"]
  Rootfs --> Customizer["Camera customizer"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Reuse shared ISP profiles
  • ➕ Could avoid shipping duplicate image-quality data where profiles are identical.
  • ➕ Could reduce maintenance of large tuning files.
  • ➖ Requires verifying profile equivalence and how shared files are packaged.
  • ➖ Could obscure intentional device-specific tuning.

Recommendation: Keep the device-specific profile and startup tuning: they fit the repository's board-overlay approach. Before merging the large ISP files, check whether identical profiles can safely be reused, particularly for a flash-constrained image.

Files changed (8) +4740 / -0

Enhancement (1) +63 / -0
S95wifi-tuneTune RTL8733BU Wi-Fi at startup +63/-0

Tune RTL8733BU Wi-Fi at startup

• Waits for the wireless interface, disables available driver power-saving controls and Turbo-EDCA retuning, then disables interface power management after an association wait. Logs the resulting settings.

devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/etc/init.d/S95wifi-tune

Other (7) +4677 / -0
gk7201v200_lite-rtl8733bu-16mb_defconfigDefine the 16 MB GK7201V200 firmware build +75/-0

Define the 16 MB GK7201V200 firmware build

• Adds an ARM Cortex-A7 lite configuration with a 16 MB flash setting, kernel and filesystem selections, RTL8733BU support, wireless utilities, and camera packages.

devices/gk7201v200_lite-rtl8733bu-16mb/br-ext-chip-goke/configs/gk7201v200_lite-rtl8733bu-16mb_defconfig

default.iniAdd default ISP image-quality tuning +1536/-0

Add default ISP image-quality tuning

• Adds daytime and infrared exposure, tone-mapping, sharpening, dehazing, gamma, and noise-reduction settings for the device's default image-quality profile.

devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/etc/sensors/iq/default.ini

sc2232.iniAdd SC2232 ISP image-quality tuning +1385/-0

Add SC2232 ISP image-quality tuning

• Provides an SC2232-specific daytime and infrared ISP profile, including exposure weights and multi-ISO noise-reduction parameters.

devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/etc/sensors/iq/sc2232.ini

sc2336.iniAdd SC2336 ISP image-quality tuning +1536/-0

Add SC2336 ISP image-quality tuning

• Provides daytime and infrared ISP settings for the SC2336 sensor, including exposure, gamma, sharpening, and noise reduction.

devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/etc/sensors/iq/sc2336.ini

sc2336_i2c_1080p.iniConfigure SC2336 1080p capture +78/-0

Configure SC2336 1080p capture

• Defines the SC2336 sensor library, two-lane MIPI input, 10-bit raw format, and 1920×1080 capture at 25 fps.

devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/etc/sensors/sc2336_i2c_1080p.ini

customizer.shSet device upgrade and camera defaults +36/-0

Set device upgrade and camera defaults

• Sets the device-specific upgrade URL, Majestic audio and ONVIF defaults, and boot memory values. Schedules a reboot after applying customization.

devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/usr/share/openipc/customizer.sh

gk7205v300_lite.listExclude unused sensor files and modules +31/-0

Exclude unused sensor files and modules

• Lists unrelated sensor configurations, ISP profiles, sensor libraries, and SCSI modules for exclusion from the lite image.

devices/gk7201v200_lite-rtl8733bu-16mb/general/scripts/excludes/gk7205v300_lite.list

@oskarirauta

Copy link
Copy Markdown
Author

@widgetii

This was last referenced here OpenIPC/firmware#2234 (comment)

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (1) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Action required

1. The device's exclude list has the wrong name 📘 Rule violation ≡ Correctness
Description
The new exclusion list is named gk7205v300_lite.list, but the defconfig identifies the board's SoC
and flavor as gk7201v200 and lite. Because exclusions are selected by SoC and flavor, this
board's list is not selected, leaving unused sensor files and modules in its space-constrained
rootfs image.
Code

devices/gk7201v200_lite-rtl8733bu-16mb/general/scripts/excludes/gk7205v300_lite.list[1]

+/etc/sensors/4l_sc223a_i2c_1080p.ini
Evidence
The defconfig declares the gk7201v200 SoC and lite flavor, and the repository's _.list naming
convention requires gk7201v200_lite.list for this board. The added file is instead named
gk7205v300_lite.list, so it does not match the board's exclusion-list name.

CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout: CLAUDE.md: Use the Required Device Directory and Defconfig Layout
devices/gk7201v200_lite-rtl8733bu-16mb/general/scripts/excludes/gk7205v300_lite.list[1-1]
devices/gk7201v200_lite-rtl8733bu-16mb/br-ext-chip-goke/configs/gk7201v200_lite-rtl8733bu-16mb_defconfig[43-48]
devices/gk7201v200_lite-rtl8733bu-16mb/br-ext-chip-goke/configs/gk7201v200_lite-rtl8733bu-16mb_defconfig[44-48]
README.md[157-167]
CLAUDE.md[108-112]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new board's exclusion-list filename uses a different SoC from its defconfig, so its rootfs trimming rules are not selected.
## Fix Focus Areas
- devices/gk7201v200_lite-rtl8733bu-16mb/general/scripts/excludes/gk7205v300_lite.list[1-31]
- devices/gk7201v200_lite-rtl8733bu-16mb/br-ext-chip-goke/configs/gk7201v200_lite-rtl8733bu-16mb_defconfig[44-48]
## Recommended Fix
Rename the list to `gk7201v200_lite.list`, retaining its entries after validating that they exclude only files this board does not need.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. The new device is absent from the README ✓ Resolved
Description
The PR adds a build-discoverable defconfig for gk7201v200_lite-rtl8733bu-16mb without adding a
corresponding row to the README device inventory. Readers consulting the published list of supported
devices cannot find this board there.
Code

devices/gk7201v200_lite-rtl8733bu-16mb/br-ext-chip-goke/configs/gk7201v200_lite-rtl8733bu-16mb_defconfig[R1-2]

+# Architecture
+BR2_arm=y
Evidence
Checklist item 7 requires a README row for each new device. The added defconfig establishes this
device, but the README device inventory contains no corresponding entry.

CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables: CLAUDE.md: Document New Devices in the README Tables
devices/gk7201v200_lite-rtl8733bu-16mb/br-ext-chip-goke/configs/gk7201v200_lite-rtl8733bu-16mb_defconfig[1-2]
README.md[11-104]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new device has a defconfig but no entry in the published device inventory.
## Fix Focus Areas
- README.md[11-104]
- devices/gk7201v200_lite-rtl8733bu-16mb/br-ext-chip-goke/configs/gk7201v200_lite-rtl8733bu-16mb_defconfig[1-2]
## Recommended Fix
Add a row for the new board to the README device list, using its verified SoC, sensor, WiFi module, and flash size.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. The new sensor profile is never selected ✓ Resolved
Description
customizer.sh sets neither the sensor boot variable nor .isp.sensorConfig for the added SC2336
profile. On first boot without a previously correct sensor selection, the camera retains a missing
or different sensor setting instead of using the configuration supplied for this board.
Code

devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/usr/share/openipc/customizer.sh[R11-13]

+# Set custom majestic settings
+#
+cli -s .nightMode.irCut off
Evidence
The PR supplies an SC2336-specific sensor configuration but has no reference to it or sensor
assignment in its customizer. Existing device customizers show both boot-variable sensor selection
and explicit selection of a board-specific sensor INI.

devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/usr/share/openipc/customizer.sh[8-31]
devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/etc/sensors/sc2336_i2c_1080p.ini[1-15]
devices/hi3516ev200_lite_imou-cue2-c22en/general/overlay/usr/share/openipc/customizer.sh[8-20]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
First-boot customization does not select the SC2336 sensor or its newly supplied configuration.
## Fix Focus Areas
- devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/usr/share/openipc/customizer.sh[11-22]
- devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/etc/sensors/sc2336_i2c_1080p.ini[1-15]
## Recommended Fix
Set the board's SC2336 sensor boot variable and explicitly point `.isp.sensorConfig` to `/etc/sensors/sc2336_i2c_1080p.ini` in the first-boot customizer.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

4. First boot leaves the WiFi profile unset ✓ Resolved
Description
customizer.sh comments out its only fw_setenv wlandev command, whose example names gk7205v200
rather than this board’s gk7201v200 SoC. On first boot without a pre-existing Wi-Fi profile,
customization sets other environment values but leaves the selected RTL8733BU module without a
board-specific profile, so the Wi-Fi tuning service may wait for a wlan0 interface that is never
created.
Code

devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/usr/share/openipc/customizer.sh[26]

+#fw_setenv wlandev rtl8733bu-gk7205v200-camhi
Evidence
The only board-specific wlandev assignment in the customizer is commented out, although the
defconfig selects the RTL8733BU package and identifies the SoC as gk7201v200. The new tuning
service requires wlan0, and another RTL8733BU board actively sets its profile in its customizer;
together, these show why leaving the assignment inactive matters on a camera without a pre-existing
profile.

CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device: CLAUDE.md: Configure First-Boot Settings for the Device
devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/usr/share/openipc/customizer.sh[24-28]
devices/gk7201v200_lite-rtl8733bu-16mb/br-ext-chip-goke/configs/gk7201v200_lite-rtl8733bu-16mb_defconfig[43-48]
devices/gk7201v200_lite-rtl8733bu-16mb/br-ext-chip-goke/configs/gk7201v200_lite-rtl8733bu-16mb_defconfig[62-63]
devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/etc/init.d/S95wifi-tune[29-34]
devices/t31_ultimate_jienuo-jn-107ar-e-wifi/general/overlay/usr/share/openipc/customizer.sh[17-23]
CLAUDE.md[96-103]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The first-boot customizer leaves the Wi-Fi device profile unset, and its commented example names a different SoC. Without a pre-existing profile, the RTL8733BU board may not create the `wlan0` interface required by its tuning service.
## Fix Focus Areas
- devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/usr/share/openipc/customizer.sh[24-28]
- devices/gk7201v200_lite-rtl8733bu-16mb/general/overlay/etc/init.d/S95wifi-tune[29-34]
## Recommended Fix
Verify the appropriate RTL8733BU profile for this board and set `wlandev` to that profile during first-boot customization.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Tip of the day
💡 Did you know, you can add REVIEW.md to your repo root and Qodo follows it on every PR

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Signed-off-by: Oskari Rauta <oskari.rauta@gmail.com>
@oskarirauta oskarirauta changed the title Add gk7201v200 with rtl8873bu wifi card support on 16mb flash Add gk7201v200 with 8873bu wifi card support on 16mb flash Sep 29, 2026
Signed-off-by: Oskari Rauta <oskari.rauta@gmail.com>
Signed-off-by: Oskari Rauta <oskari.rauta@gmail.com>
@oskarirauta

Copy link
Copy Markdown
Author

Requested changes were made and generated firmware image is running in a camera at production environment currently.

@openipc-ai
openipc-ai merged commit 31bbf17 into OpenIPC:master Sep 29, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant