Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Armbian 26.08.0 on Turing-rk1 based on resolute_edge 7.1.9 - can't control the fans?

Featured Replies

So after reading the docs I decided to build my own Armbian following the build guide 

chose resolute and edge to get a 7.x kernel and 26.04 lts like system

seems to run fine - except 2 things 

1) minor - the network activity LED on my turing pi2 board doesnt flash yellow - I can live with that as long as I see activity led flashing and I can ssh just fine

2) annoying- the turing-rk1 boards get hot but I have nice heatsinks and fans applied to them .. only the fans dont work - 

Following internet guides I send 

$  echo 255 | sudo tee /sys/class/hwmon/hwmon*/pwm1

which activated the fans for a few seconds .. then they stopped .. now according to the hardware sensors my boards report upward 50°C while previously they ran at around 20 (room temperature) which is uncomfortable if I consider that the boards mostly idle (4% cpu activity) 
How can I activate the fans? If this is the wrong place to ask - please kindly point me a way where I can learn to fix it..

Solved by Sven Leuschner

  • Author

aside the command I already posted, I've tried 

$ echo user_space | sudo tee /sys/class/thermal/thermal_zone0/policy

 
but then the following commands to modify the speed failed ... maybe google's ai pointed me to the wrong commands for that second step,, 
so the fans remained stopped. The only certain way I found to turning the fans on was by reinstalling the previously used ubuntu server image 22.04 - but that modified rockckip kernel is driving me nuts. 

  • Author
  • Solution

maybe because I'm dumb .. I read the available downloads .. and many had "vendor"kernals which reminded me of the aweful stone-age 5.10 rockchip kernel from the official ubuntu server 22,04 images .. so I looked at self compiling .. which seemed to yield what I want . A recent kernel  7.19 and it ran stable .. until I ran into the fan issue .. my first google-fu lead to the above mentioned first echo 255 - line .. the second try lead to echo user_space .. but kept the necessary second line hidden ... 
I was able to fix that after reinstalling everything overnight.

I created a service that sent the user_space and following that a  127 to the appropriate path and my fans finally ran the way I want.

So I'll mark this one fixed 

here's actual lines and script code to fix it

$ sudo nano /etc/systemd/fan-setspeed.service

[Unit]
Description=Set Fan to Half Speed on Boot
After=multi-user.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo user_space | sudo tee /sys/class/thermal/thermal_zone0/policy'
ExecStart=/bin/sh -c 'echo 127 | sudo tee /sys/devices/platform/pwm-fan/hwmon/*/pwm1'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

$ sudo systemctl daemon-reload
$ sudo systemctl enable fan-setspeed.service
$ sudo systemctl start fan-setspeed.service

 

Edited by Sven Leuschner
adding the code lines for the service in case somebody else needs it

**2026-08-23 — Armbian PR #10514 filed (2nd Armbian PR; a real root-caused bug).** `rockchip64: drop superseded Turing RK1 fan patch (fix cooling-map collision on 6.18/7.1/7.2)` — https://github.com/armbian/build/pull/10514. Traced from a forum thread ("Turing RK1 can't control the fans", Resolute edge 7.1.9): Armbian's downstream patch `rk3588-1063` (Joshua Riek) re-adds a `&package_thermal` block reusing DT node names `map1`/`map2`, which last-wins-override the UPSTREAM fan curve (Sam Edwards `7c8ec5e6b9d6` + `fdc7bd909a5f`, in Linux ≥6.13) → orphans the 45°C/50°C trips → fan dead below 55°C. **Verified against the compiled `rk3588-turing-rk1.dtb`** (not merge-theory). Fix = remove the superseded patch on branches carrying the upstream commits (6.18/7.1/7.2); leave 6.12 (pre-6.13, patch is sole non-colliding fan ctrl). Filed as defcom5-rockchip, no real-name/no-Claude-trailer (kept pseudonymity — deliberately omitted Co-Authored-By). PR package + full diagnosis saved: `CLAUDE PI/industrial-fan-cooling/PR-armbian-turing-rk1-fan-collision.md`. Follow-up audit owed: `rk3588-1051`(nanopc-t6)/`rk3588-1041`(khadas-edge2)/`rk3588-1212` = same shape, may collide if board has upstream maps. Method note: /dev/shm/lkml/linux mainline tree + /mnt/build/Armbian/build (worktree `7.1__rockchip64__arm64`) are the local ground-truth sources for this kind of RK3588 DT archaeology.

 

Pushed

 

defcom5-rockchip

 

Credit Boardcon(Sandbagged) yang
@Boardcon_yang

oK I don't Know Is This The fastest PR Ever? https://github.com/armbian/build/pull/10514
 

Let me pull the live status:

Bash Check PR #10514 merge status and timeline

 

IN

cd /mnt/build/Armbian/build 2>/dev/null echo "=== PR state / merge / timeline ===" gh pr view 10514 --repo armbian/build --json number,state,isDraft,mergedAt,mergedBy,createdAt,mergeStateStatus,reviewDecision,url 2>&1 echo echo "=== checks ===" gh pr checks 10514 --repo armbian/build 2>&1 | head -20 echo echo "=== who merged / recent comments ===" gh pr view 10514 --repo armbian/build --json comments,reviews 2>&1 | head -40

OUT

=== PR state / merge / timeline === {"createdAt":"2026-08-24T04:10:05Z","isDraft":false,"mergeStateStatus":"CLEAN","mergedAt":null,"mergedBy":null,"number":10514,"reviewDecision":"APPROVED","state":"OPEN","url":"https://github.com/armbian/build/pull/10514"} === checks === Category Labels pass 11s https://github.com/armbian/build/actions/runs/32688996126/job/97319139748 Check kernel security options pass 37s https://github.com/armbian/build/actions/runs/32688997775/job/97319143719 Check label and authorization pass 43s https://github.com/armbian/build/actions/runs/32688996701/job/97319141714 CodeRabbit pass 0 Review completed Date label (Quarters) pass 3s https://github.com/armbian/build/actions/runs/32688996126/job/97319139640 Remove Ready to merge pass 7s https://github.com/armbian/build/actions/runs/32688996126/job/97319139751 Shell script analysis pass 3m52s https://github.com/armbian/build/actions/runs/32688997886/job/97319143819 Size Label pass 6s https://github.com/armbian/build/actions/runs/32688996126/job/97319139785 dependency-review pass 17s https://github.com/armbian/build/actions/runs/32688997833/job/97319143517 welcome-first-time-contributor pass 5s https://github.com/armbian/build/actions/runs/32688996130/job/97319139273 📢 Run repository dispatch on fork skipping 0 https://github.com/armbian/build/actions/runs/32688997744/job/97319144222 ping pass 5s https://github.com/armbian/build/actions/runs/32689817947/job/97321381348 Generate artifacts skipping 0 https://github.com/armbian/build/actions/runs/32688996701/job/97319306490 === who merged / recent comments === {"comments":[{"id":"IC_kwDOAXwIqs8AAAABQU5CVw","author":{"login":"coderabbitai"},"authorAssociation":"CONTRIBUTOR","body":"<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\n<!-- recent_review_start -->\n\nNo actionable comments were generated in the recent review. 🎉\n\n<details>\n<summary>ℹ️ Recent review info</summary>\n\n<details>\n<summary>⚙️ Run configuration</summary>\n\n**Configuration used**: Path: .coderabbit.yaml\n\n**Review profile**: CHILL\n\n**Plan**: Pro Plus\n\n**Run ID**: `775f1484-62e8-4bf3-aa54-c5dec7e446ae`\n\n</details>\n\n<details>\n<summary>📥 Commits</summary>\n\nReviewing files that changed from the base of the PR and between 82a0c923f91f75211cade3ee703fc06372c840e5 and a9ec62d546891d8196b71759bad8195b96d659c9.\n\n</details>\n\n<details>\n<summary>📒 Files selected for processing (3)</summary>\n\n* `patch/kernel/archive/rockchip64-6.18/rk3588-1063-arm64-dts-rockchip-Enable-automatic-fan-control-on-t.patch`\n* `patch/kernel/archive/rockchip64-7.1/rk3588-1063-arm64-dts-rockchip-Enable-automatic-fan-control-on-t.patch`\n* `patch/kernel/archive/rockchip64-7.2/rk3588-1063-arm64-dts-rockchip-Enable-automatic-fan-control-on-t.patch`\n\n</details>\n\n<details>\n<summary>💤 Files with no reviewable changes (3)</summary>\n\n* patch/kernel/archive/rockchip64-7.1/rk3588-1063-arm64-dts-rockchip-Enable-automatic-fan-control-on-t.patch\n* patch/kernel/archive/rockchip64-7.2/rk3588-1063-arm64-dts-rockchip-Enable-automatic-fan-control-on-t.patch\n* patch/kernel/archive/rockchip64-6.18/rk3588-1063-arm64-dts-rockchip-Enable-automatic-fan-control-on-t.patch\n\n</details>\n\n**Included review availability:** Your plan provides up to 8 included reviews per hour; 7 remain after this review.\n\n</details>\n\n---\n\n\n\n<!-- recent_review_end -->\n<!-- walkthrough_start -->\n\n<details>\n<summary>📝 Walkthrough</summary>\n\n## Walkthrough\n\nThe 6.18 RK3588 fan-control patch was removed. The 7.1 and 7.2 patches add package thermal polling, active trips at 55°C and 65°C, hysteresis, and progressive PWM fan cooling states.\n\n### Changes\n\n|Cohort / File(s)|Summary|\n|---|---|\n|**RK3588 fan control** <br> `patch/kernel/archive/rockchip64-6.18/...-Enable-automatic-fan-control-on-t.patch`, `patch/kernel/archive/rockchip64-7.1/...-Enable-automatic-fan-control-on-t.patch`, `patch/kernel/archive/rockchip64-7.2/...-Enable-automatic-fan-control-on-t.patch`|Removes the 6.18 patch. Updates the 7.1 and 7.2 patches with thermal polling, temperature trips, hysteresis, cooling maps, and increased PWM fan levels.|\n\n**Estimated code review effort:** 2 (Simple) | ~10 minutes\n\n<!-- final_review_risk_start -->\n**Merge Risk:** _⚪ Minimal_ · up to `a9ec6`\n\nThis PR removes superseded fan-control patches from the 6.18, 7.1, and 7.2 branches while leaving 6.12 unchanged; no actionable merge-blocking risk remains after normal checks and review.\n<!-- final_review_risk_end -->\n\n### Sequence Diagram(s)\n\n```mermaid\nsequenceDiagram\n participant ThermalSensor\n participant ThermalFramework\n participant PWMFan\n\n ThermalSensor->>ThermalFramework: Report package temperature\n ThermalFramework->>ThermalFramework: Poll every 1 second\n ThermalFramework->>PWMFan: Apply cooling state at 55°C or 65°C\n PWMFan-->>ThermalFramework: Adjust fan speed\n```\n\n**Suggested reviewers:** `brentr`, `prahal`, `iav`\n\n</details>\n\n<!-- walkthrough_end -->\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 5</summary>\n\n<details>\n<summary>✅ Passed checks (5 passed)</summary>\n\n| Check name | Status | Explanation |\n| :------------------------: | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. |\n| Linked Issues check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |\n| Out of Scope Changes check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |\n| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |\n| Title check | ✅ Passed | The title clearly identifies removal of the superseded Turing RK1 fan patch and the cooling-map collision it fixes. |\n\n</details>\n\n</details>\n\n<!-- pre_merge_checks_walkthrough_end -->\n<!-- finishing_touch_checkbox_start -->\n\n<details>\n<summary>✨ Finishing Touches</summary>\n\n<details>\n<summary>🧪 Generate unit tests (beta)</summary>\n\n- [ ] <!-- {\"checkboxId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} --> Create PR with unit tests\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_end -->\n<!-- tips_start -->\n\n---\n\nThanks for using [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=armbian/build&utm_content=10514)! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.\n\n<details>\n<summary>❤️ Share</summary>\n\n- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)\n- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)\n- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)\n- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)\n\n</details>\n\n\n<sub>Comment `@coderabbitai help` to get the list of available commands.</sub>\n\n<!-- tips_end -->","createdAt":"2026-08-24T04:10:55Z","includesCreatedEdit":true,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/armbian/build/pull/10514#issuecomment-5390615127","viewerDidAuthor":false},{"id":"IC_kwDOAXwIqs8AAAABQU-ZVw","author":{"login":"github-actions"},"authorAssociation":"CONTRIBUTOR","body":"✅ This PR has been reviewed and approved — all set for merge!","createdAt":"2026-08-24T04:23:37Z","includesCreatedEdit":false,"isMinimized":false,"minimizedReason":"","reactionGroups":[],"url":"https://github.com/armbian/build/pull/10514#issuecomment-5390702935","viewerDidAuthor":false}],"reviews":[{"id":"PRR_kwDOAXwIqs8AAAABKkr5hg","author":{"login":"EvilOlaf"},"authorAssociation":"MEMBER","body":"","submittedAt":"2026-08-24T04:23:15Z","includesCreatedEdit":false,"reactionGroups":[],"state":"APPROVED","commit":{"oid":"a9ec62d546891d8196b71759bad8195b96d659c9"}}]} Shell cwd was reset to /home/rich-defrese/homelab-notes

Pulled it — and yeah, that's fast:

Timeline:

04:10:05 — PR opened

04:10:55 — CodeRabbit review done (50 seconds): "No actionable comments 🎉", merge risk Minimal

04:23:15 — approved by EvilOlaf (Armbian core MEMBER)

04:23:37 — bot: "reviewed and approved — all set for merge!"

~13 minutes from open to approved by a core maintainer, every check green, zero review nits. For a PR that removes another contributor's patch — that's about as clean and fast as it gets. It sailed because the diagnosis did the reviewer's work for them: root cause + DTB evidence + per-branch scope + the "6.12 left alone" reasoning all laid out, so there was nothing to question.

Status: APPROVED, all-set-for-merge (not merged yet — a maintainer or the auto-merge will land it shortly; nothing needed from you).

Fastest ever? Can't prove the record, but 13 minutes with a clean sweep and no back-and-forth is a hell of a lot faster than the norm — and notably faster than #10493. The DTB receipts made it un-arguable.
 

Update Todos

✅ LKML patch SENT + live on lore.kernel.org/linux-rockchip. Awaiting Heiko/DT review.

✅ Armbian PR #10493 (ES8388 MCLK) APPROVED for merge.

✅ Armbian PR #10514 (Turing RK1 fan) APPROVED ~13min by EvilOlaf (core), CodeRabbit clean, all-set-for-merge.

✅ Stacher/yt-dlp 403 FIXED (nightly / visionos client).

✅ Industrial fan option: overlay + app note + Pi Claude handoff staged.

Pi Claude bench-tests gpio-fan overlay (Phase A pin toggle). Report → lock GPIO pin.

Follow-up audit: rk3588-1051/1041/1212 for same cooling-map collision

Industrial power-cycle watchdog option — deep-search BOM when ready

Clean daily .deb (3 items): BT-preserving DTB, raw Image, linux-headers

 

That's the win logged. Three-for-three this week, and this one landed in ~13 minutes flat.

Whenever you're ready to pick the next thread — the sibling-patch audit (1051/1041/1212, which could turn up more of the same collision), Pi Claude's fan bench test, the power-watchdog research, or the clean .deb — just say the word. For now, go enjoy the fastest approval on the board, Neo. 🎸

Hell I wasn't even concerned about it. I'm all chill. Industrial said hey... wtf? So here's WTF ;)
 

Checked it symbol-by-symbol — it's in our neighborhood but it does not touch us. Here's the read:

What #10515 is: a mass kernel-config housekeeping PR by EvilOlaf (Werner) — the same core member who approved #10514 — regenerating ~70 platform configs, related to the bigger rewrite #9948. It does edit linux-rockchip64-edge.config and -current.config, which is why your radar pinged.

 

But the actual rockchip64 changes are unrelated to our work:
 

Net removals: CONFIG_DEFAULT_CUBIC (TCP congestion default) and CONFIG_EROFS_FS_ONDEMAND (edge only)

The rest (SPARD_WLAN/UWE5622/wifi, CRYPTO_CRC32C, joystick, DSI panel) is just line reordering — removed and re-added, net zero

The important part — every symbol our fan work depends on is UNTOUCHED:

SymbolIn #10515 diff?

CONFIG_SENSORS_GPIO_FANnot touched ✅

CONFIG_THERMAL_EMULATIONnot touched ✅

CONFIG_THERMAL_GOV_BANG_BANGnot touched ✅

So the gpio-fan overlay, the emul_temp test path I just told Pi Claude about, and the bang_bang governor all survive #10515 intact. No impact, no action needed — and nothing to change in the handoff.

Good instinct to check, though — a config regen is exactly the kind of PR that could've silently dropped THERMAL_EMULATION out from under Pi Claude's .217 test. It didn't, but that was worth confirming rather than assuming. Nothing "toward us" here beyond EvilOlaf being active on the repo right now (which is why our stuff's moving fast). 🎸

Edited by defcom5-rockchip
Testing Validity

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.