BPI-R2 boot / power suppy

The two PIN beside the Reset is used as system reset, and it is not recommended to weld anything else unless you know the hardware very well

Hi simon,

first i mean the pins beside power-switch (which have been solded together by 2 persons here successfully)

the second one are the pins for reset or the 3 solder-points from the switch itself (i measured 2 go to gnd like in shematics, the other one is bridged to the others if switch pressed)…my idea is to make a simple circuit with transistor (1 of the gnd-points to Emitter, the other to Collector, base over resistor to an arduino-pin) to do a remote-reset

1 Like

Yes,you can do that.

It is recommended to weld on the PIN of the Reset switch

The picture is a top view


thanks for the Picture, how about the solder-bridge of power (for poweron without button-press)

Can you please publish a rework instruction to remove the power switch, that will allow the system to boot on inserting the power cord, and only power off with the power cable is removed? If this could maintain a reset option that would be ideal. Right now having to hold down the power switch and monitor the LED is not a good user experience.

For anybody interested I share my idea on how to power R2 including the attached HDDs. As I need to run R2 with two HDDs (one of 2.5" and second of 3.5" size) I had to sort out the problem of how to power it all optimally. After some googling I found power brick that provides both 12V and 5V outputs via standard molex connector. And that did the trick for me.

As you can see from the picture below I power the 2.5" disk from R2 but the 3.5" one directly from power adaptor via molex as I’m not sure if R2 can provide enough current to spin it up (didn’t try it though). I also brought 5V from adaptor to microUSB port on R2 to make it boot automatically after power lost.


Here is the detail of the power brick. It is rated 2A for both 5V and 12V output lines. Unfortunately not clear if meant simultaneously, ie. 4A in total or not. But it works well in my setup. I have attached a dual DVB-T USB donge to R2 too.


1 Like

Thanks. It’s a lot easier to bridge PIN1 and PIN2 than solder the tiny pads. Take a piece of wire (I clipped off a pin from some spare header pins) and lay it from PIN1 to PIN2. Then just solder each end down. You may want to tape the wire in place or something while you’re soldering.

Here’s a photo of my horrible soldering:


1 Like

thank you bburky, i’m waiting for official response, that is the right way and nothing will be damaged (if you solder properly of course)

Thank you, that have worked for me.

Hello, I cloudn’t understand what you mean exactly. For what did you use this solution? I need to use 3.5 HDD. Thanks

@bburky’s solution is to poweron on power available (without pressing the power-button 10 seconds)

for HDD you need the solution from @sunarowicz (external power-supply for the hdds)

1 Like

Power button is so confusing because the board is “on” before the 10 count but if you let it go at the wrong time it turns back off. I would be happy with just reprogramming the power button so I don’t have to hold it for 10 seconds.

Does anyone know if that can be done?

Just for your info. If you bridge powerbutton you may encounter problems like a bootloop.

More info and solution here: https://github.com/frank-w/BPI-R2-4.14/issues/35

Sorry for my answer in old topic, but the problem regarding to it

I have compiled kernel 4.19.16 (branch 4.19-main) from @frank-w repo. Kernel config not changed. What I do:

./build.sh importconfig
./build.sh build
./build.sh pack

and then extract kernel archive to SD card (boot part on boot partition, and root on root partition). When I run “shutdown -h 0” I got kernel panic. acpid is not installed. I use slackarm distro.

Kernel panic output:

INIT: Switching to run[  112.695791] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004
[  112.695791]
[  112.695806] CPU: 2 PID: 1 Comm: init Not tainted 4.19.16-bpi-r2-main #1
[  112.695810] Hardware name: Mediatek Cortex-A7 (Device Tree)
[  112.695846] [<c0114bbc>] (unwind_backtrace) from [<c010ea18>] (show_stack+0x20/0x24)
[  112.695862] [<c010ea18>] (show_stack) from [<c0b51c30>] (dump_stack+0x90/0xa4)
[  112.695878] [<c0b51c30>] (dump_stack) from [<c01286ac>] (panic+0x100/0x284)
[  112.695893] [<c01286ac>] (panic) from [<c012df00>] (complete_and_exit+0x0/0x2c)
[  112.695908] [<c012df00>] (complete_and_exit) from [<c012df9c>] (do_group_exit+0x50/0xe0)
[  112.695922] [<c012df9c>] (do_group_exit) from [<c013a4cc>] (get_signal+0x364/0x6bc)
[  112.695936] [<c013a4cc>] (get_signal) from [<c010dc54>] (do_signal+0x294/0x4a4)
[  112.695948] [<c010dc54>] (do_signal) from [<c010e070>] (do_work_pending+0xdc/0xf4)
[  112.695961] [<c010e070>] (do_work_pending) from [<c010106c>] (slow_work_pending+0xc/0x20)
[  112.695967] Exception stack(0xde913fb0 to 0xde913ff8)
[  112.695976] 3fa0:                                     00000000 bea19228 00000005 b6f380c8
[  112.695988] 3fc0: bea193bc bea19480 b6f6a000 00000092 00000001 b6f1e292 bea19480 bea19500
[  112.695998] 3fe0: 00000000 bea19338 bea19228 b6decfb8 600f0010 ffffffff
[  112.696018] CPU3: stopping
[  112.696029] CPU: 3 PID: 513 Comm: bash Not tainted 4.19.16-bpi-r2-main #1
[  112.696033] Hardware name: Mediatek Cortex-A7 (Device Tree)
[  112.696051] [<c0114bbc>] (unwind_backtrace) from [<c010ea18>] (show_stack+0x20/0x24)
[  112.696063] [<c010ea18>] (show_stack) from [<c0b51c30>] (dump_stack+0x90/0xa4)
[  112.696077] [<c0b51c30>] (dump_stack) from [<c01129b4>] (handle_IPI+0x334/0x3b4)
[  112.696091] [<c01129b4>] (handle_IPI) from [<c01022a8>] (gic_handle_irq+0x9c/0xa0)
[  112.696103] [<c01022a8>] (gic_handle_irq) from [<c0101a0c>] (__irq_svc+0x6c/0x90)
[  112.696108] Exception stack(0xdbdb39a8 to 0xdbdb39f0)
[  112.696119] 39a0:                   e16dfebc 00000010 00000000 00000000 00aaaaaa 00000001
[  112.696131] 39c0: e16dfec0 e16dfdc0 00000000 00000001 c0c4ba60 dbdb3a4c dbac03a3 dbdb39f8
[  112.696138] 39e0: 00000009 c0550664 600c0013 ffffffff
[  112.696153] [<c0101a0c>] (__irq_svc) from [<c0550664>] (cfb_imageblit+0x2fc/0x4e4)
[  112.696172] [<c0550664>] (cfb_imageblit) from [<c05bdf98>] (drm_fb_helper_cfb_imageblit+0x24/0x44)
[  112.696187] [<c05bdf98>] (drm_fb_helper_cfb_imageblit) from [<c054ed7c>] (bit_putcs+0x280/0x42c)
[  112.696200] [<c054ed7c>] (bit_putcs) from [<c0548674>] (fbcon_putcs+0x104/0x11c)
[  112.696213] [<c0548674>] (fbcon_putcs) from [<c054aa48>] (fbcon_redraw+0xe8/0x1cc)
[  112.696226] [<c054aa48>] (fbcon_redraw) from [<c054d718>] (fbcon_scroll+0x288/0xd30)
[  112.696242] [<c054d718>] (fbcon_scroll) from [<c05899c8>] (con_scroll+0x1d0/0x1dc)
[  112.696258] [<c05899c8>] (con_scroll) from [<c0589a88>] (lf+0xb4/0xc0)
[  112.696271] [<c0589a88>] (lf) from [<c058d9f8>] (do_con_trol+0xc0/0x1718)
[  112.696284] [<c058d9f8>] (do_con_trol) from [<c058f230>] (do_con_write.part.10+0x1e0/0x910)
[  112.696296] [<c058f230>] (do_con_write.part.10) from [<c058fa54>] (con_write+0x88/0x98)
[  112.696310] [<c058fa54>] (con_write) from [<c0575764>] (do_output_char+0x16c/0x1fc)
[  112.696324] [<c0575764>] (do_output_char) from [<c05769f0>] (n_tty_write+0x230/0x498)
[  112.696337] [<c05769f0>] (n_tty_write) from [<c057282c>] (tty_write+0x1f4/0x308)
[  112.696352] [<c057282c>] (tty_write) from [<c02cde30>] (__vfs_write+0x4c/0x170)
[  112.696367] [<c02cde30>] (__vfs_write) from [<c02ce0e8>] (vfs_write+0xb4/0x190)
[  112.696380] [<c02ce0e8>] (vfs_write) from [<c02ce33c>] (ksys_write+0x5c/0xbc)
[  112.696394] [<c02ce33c>] (ksys_write) from [<c02ce3b4>] (sys_write+0x18/0x1c)
[  112.696407] [<c02ce3b4>] (sys_write) from [<c0101000>] (ret_fast_syscall+0x0/0x54)
[  112.696412] Exception stack(0xdbdb3fa8 to 0xdbdb3ff0)
[  112.696422] 3fa0:                   0000002a 0010b408 00000001 0010b408 0000002a 00000000
[  112.696434] 3fc0: 0000002a 0010b408 b6f15da0 00000004 b6f13b2c 00000000 00108088 000d5154
[  112.696441] 3fe0: b6f15000 bea5d248 b6e274a4 b6e8dc2c
[  112.696449] CPU0: stopping
[  112.696461] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.19.16-bpi-r2-main #1
[  112.696465] Hardware name: Mediatek Cortex-A7 (Device Tree)
[  112.696483] [<c0114bbc>] (unwind_backtrace) from [<c010ea18>] (show_stack+0x20/0x24)
[  112.696495] [<c010ea18>] (show_stack) from [<c0b51c30>] (dump_stack+0x90/0xa4)
[  112.696509] [<c0b51c30>] (dump_stack) from [<c01129b4>] (handle_IPI+0x334/0x3b4)
[  112.696522] [<c01129b4>] (handle_IPI) from [<c01022a8>] (gic_handle_irq+0x9c/0xa0)
[  112.696534] [<c01022a8>] (gic_handle_irq) from [<c0101a0c>] (__irq_svc+0x6c/0x90)
[  112.696539] Exception stack(0xc1201ee0 to 0xc1201f28)
[  112.696552] 1ee0: 00000000 0000e814 df59e408 c01217a0 c1200000 c1204c70 c1204cb8 00000001
[  112.696564] 1f00: c12b59e3 c0e43870 c1177e38 c1201f3c c1201f40 c1201f30 c010aa30 c010aa34
[  112.696569] 1f20: 600b0013 ffffffff
[  112.696584] [<c0101a0c>] (__irq_svc) from [<c010aa34>] (arch_cpu_idle+0x48/0x4c)
[  112.696602] [<c010aa34>] (arch_cpu_idle) from [<c0b6eda0>] (default_idle_call+0x30/0x3c)
[  112.696620] [<c0b6eda0>] (default_idle_call) from [<c015c88c>] (do_idle+0xec/0x16c)
[  112.696636] [<c015c88c>] (do_idle) from [<c015cbcc>] (cpu_startup_entry+0x28/0x2c)
[  112.696650] [<c015cbcc>] (cpu_startup_entry) from [<c0b68760>] (rest_init+0xbc/0xc0)
[  112.696666] [<c0b68760>] (rest_init) from [<c1101008>] (start_kernel+0x46c/0x49c)
[  112.696675] CPU1: stopping
[  112.696687] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.19.16-bpi-r2-main #1
[  112.696691] Hardware name: Mediatek Cortex-A7 (Device Tree)
[  112.696709] [<c0114bbc>] (unwind_backtrace) from [<c010ea18>] (show_stack+0x20/0x24)
[  112.696722] [<c010ea18>] (show_stack) from [<c0b51c30>] (dump_stack+0x90/0xa4)
[  112.696735] [<c0b51c30>] (dump_stack) from [<c01129b4>] (handle_IPI+0x334/0x3b4)
[  112.696748] [<c01129b4>] (handle_IPI) from [<c01022a8>] (gic_handle_irq+0x9c/0xa0)
[  112.696760] [<c01022a8>] (gic_handle_irq) from [<c0101a0c>] (__irq_svc+0x6c/0x90)
[  112.696765] Exception stack(0xde94bf38 to 0xde94bf80)
[  112.696773] bf20:                                                       00000000 0000e168
[  112.696785] bf40: df5af408 c01217a0 de94a000 c1204c70 c1204cb8 00000002 c12b59e3 c0e43870
[  112.696796] bf60: 00000000 de94bf94 de94bf98 de94bf88 c010aa30 c010aa34 60000013 ffffffff
[  112.696810] [<c0101a0c>] (__irq_svc) from [<c010aa34>] (arch_cpu_idle+0x48/0x4c)
[  112.696826] [<c010aa34>] (arch_cpu_idle) from [<c0b6eda0>] (default_idle_call+0x30/0x3c)
[  112.696842] [<c0b6eda0>] (default_idle_call) from [<c015c88c>] (do_idle+0xec/0x16c)
[  112.696857] [<c015c88c>] (do_idle) from [<c015cbcc>] (cpu_startup_entry+0x28/0x2c)
[  112.696872] [<c015cbcc>] (cpu_startup_entry) from [<c01123bc>] (secondary_start_kernel+0x170/0x194)
[  112.696885] [<c01123bc>] (secondary_start_kernel) from [<801026cc>] (0x801026cc)
[  114.195564] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004
[  114.195564]  ]---

crash seem to happen in framebuffer-console, have you a monitor connected? have you same problem on “poweroff”-command?

have you problem on another ḱernel-version?

Yes. I have connected monitor via hdmi and serial console too. On “poweroff” it is the same kernel panic. I check what happens on kernel 4.16 and back with the result.

i have tested on my debian-system (also actual 4.19.16) with installed acpi, no crash…can you enable drm-debug (drm.debug=0x7) via your uenv.txt?

where do you get your image or how have you build it?

you see crash only on serial, right? does it happen after a clean boot? or do you have errors on boot too? anything done between bootup and poweroff?

I haven’t installed acpi on my slackarm. Yes, sure. I can enable drm-debug if you can tell me how.

I’m build the kernel on Virtual Machine with Ubuntu 16.04 using your build.sh script.

I see the crash on hdmi and serial console too. But only from serial console I will be able to put it here :slight_smile:

On kernel 4.16.18 I have the same kernel panic on poweroff and shutdown commands :expressionless:

just add “drm.debug=0x7” to your bootargs (uboot-config uEnv.txt)

i expected that fbcon is closed so you see the error only on serial…as you said, you see it on hdmi too fbcon is not killed at this moment

you do not get the last “Power down”-mesage right? means your device stays powered on

this is how it looks on my debian-system

[  840.177708] systemd-shutdown[1]: All filesystems unmounted.                                                                        
[  840.189043] systemd-shutdown[1]: Deactivating swaps.                                                                               
[  840.199807] systemd-shutdown[1]: All swaps deactivated.                                                                            
[  840.210666] systemd-shutdown[1]: Detaching loop devices.                                                                           
[  840.227518] systemd-shutdown[1]: All loop devices detached.                                                                        
[  841.258544] reboot: Power down

i guess slackarm does anything different which causes the crash

I try recorded shutdown process :slight_smile: and before the kernel panic I see:

The system is going down for system halt NOW!

I’m not see “Power down” message :frowning:

kernel panic message with enabled drm debug:

[  113.978089] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004
[  113.978089] 
[  114.060928] CPU: 0 PID: 1 Comm: init Not tainted 4.16.18-bpi-r2-main #7
[  114.105429] Hardware name: Mediatek Cortex-A7 (Device Tree)
[  114.148972] [<c0113d94>] (unwind_backtrace) from [<c010e4d8>] (show_stack+0x20/0x24)
[  114.195234] [<c010e4d8>] (show_stack) from [<c09e123c>] (dump_stack+0x90/0xa4)
[  114.240854] [<c09e123c>] (dump_stack) from [<c012cf08>] (panic+0x100/0x284)
[  114.285869] [<c012cf08>] (panic) from [<c01315d8>] (complete_and_exit+0x0/0x2c)
[  114.331287] [<c01315d8>] (complete_and_exit) from [<c013258c>] (do_group_exit+0x50/0xe0)
[  114.377686] [<c013258c>] (do_group_exit) from [<c013e860>] (get_signal+0x35c/0x6b0)
[  114.424116] [<c013e860>] (get_signal) from [<c010d4b4>] (do_signal+0xe8/0x468)
[  114.470536] [<c010d4b4>] (do_signal) from [<c010da20>] (do_work_pending+0xbc/0xcc)
[  114.517797] [<c010da20>] (do_work_pending) from [<c010106c>] (slow_work_pending+0xc/0x20)
[  114.566194] Exception stack(0xde911fb0 to 0xde911ff8)
[  114.611719] 1fa0:                                     00000000 bef32228 00000005 b6eda0c8
[  114.661275] 1fc0: bef323bc bef32480 b6f0c000 00000092 00000001 b6ec0292 bef32480 bef32500
[  114.710653] 1fe0: 00000000 bef32338 bef32228 b6d8efb8 600f0010 ffffffff
[  114.758144] CPU2: stopping
[  114.801271] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.16.18-bpi-r2-main #7
[  114.849307] Hardware name: Mediatek Cortex-A7 (Device Tree)
[  114.895959] [<c0113d94>] (unwind_backtrace) from [<c010e4d8>] (show_stack+0x20/0x24)
[  114.945506] [<c010e4d8>] (show_stack) from [<c09e123c>] (dump_stack+0x90/0xa4)
[  114.994975] [<c09e123c>] (dump_stack) from [<c0111b8c>] (handle_IPI+0x2b0/0x2d0)
[  115.044348] [<c0111b8c>] (handle_IPI) from [<c01022a8>] (gic_handle_irq+0x9c/0xa0)
[  115.093732] [<c01022a8>] (gic_handle_irq) from [<c0101a0c>] (__irq_svc+0x6c/0x90)
[  115.143015] Exception stack(0xde937f38 to 0xde937f80)
[  115.189933] 7f20:                                                       00000000 000038bc
[  115.240568] 7f40: df7c23d8 c01206a0 de936000 c0f04c6c c0f04cd8 00000004 c0f8b3a9 c0bef150
[  115.291372] 7f60: 00000000 de937f94 de937f98 de937f88 c010a2d8 c010a2dc 60000013 ffffffff
[  115.342684] [<c0101a0c>] (__irq_svc) from [<c010a2dc>] (arch_cpu_idle+0x48/0x4c)
[  115.393309] [<c010a2dc>] (arch_cpu_idle) from [<c09fd958>] (default_idle_call+0x30/0x3c)
[  115.445025] [<c09fd958>] (default_idle_call) from [<c0170e6c>] (do_idle+0xe4/0x158)
[  115.495713] [<c0170e6c>] (do_idle) from [<c01711a0>] (cpu_startup_entry+0x28/0x2c)
[  115.545616] [<c01711a0>] (cpu_startup_entry) from [<c0111650>] (secondary_start_kernel+0x16c/0x190)
[  115.597604] [<c0111650>] (secondary_start_kernel) from [<801026cc>] (0x801026cc)
[  115.647355] CPU3: stopping
[  115.691453] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 4.16.18-bpi-r2-main #7
[  115.740401] Hardware name: Mediatek Cortex-A7 (Device Tree)
[  115.788034] [<c0113d94>] (unwind_backtrace) from [<c010e4d8>] (show_stack+0x20/0x24)
[  115.838458] [<c010e4d8>] (show_stack) from [<c09e123c>] (dump_stack+0x90/0xa4)
[  115.888500] [<c09e123c>] (dump_stack) from [<c0111b8c>] (handle_IPI+0x2b0/0x2d0)
[  115.938176] [<c0111b8c>] (handle_IPI) from [<c01022a8>] (gic_handle_irq+0x9c/0xa0)
[  115.988481] [<c01022a8>] (gic_handle_irq) from [<c0101a0c>] (__irq_svc+0x6c/0x90)
[  116.039229] Exception stack(0xde939f38 to 0xde939f80)
[  116.087952] 9f20:                                                       00000000 0000d0f8
[  116.140718] 9f40: df7d33d8 c01206a0 de938000 c0f04c6c c0f04cd8 00000008 c0f8b3a9 c0bef150
[  116.192875] 9f60: 00000000 de939f94 de939f98 de939f88 c010a2d8 c010a2dc 600d0013 ffffffff
[  116.244736] [<c0101a0c>] (__irq_svc) from [<c010a2dc>] (arch_cpu_idle+0x48/0x4c)
[  116.295289] [<c010a2dc>] (arch_cpu_idle) from [<c09fd958>] (default_idle_call+0x30/0x3c)
[  116.346876] [<c09fd958>] (default_idle_call) from [<c0170e6c>] (do_idle+0xe4/0x158)
[  116.398172] [<c0170e6c>] (do_idle) from [<c01711a0>] (cpu_startup_entry+0x28/0x2c)
[  116.422914] SMP: failed to stop secondary CPUs
[  116.497294] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004
[  116.[  116.497294] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004
[  116.497294] 
[  116.551157] [<c0111650>] (secondary_start_kernel) from [<801026cc>] (0x801026cc)
[  116.603597] CPU1: stopping
[  116.651188] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.16.18-bpi-r2-main #7
[  116.704013] Hardware name: Mediatek Cortex-A7 (Device Tree)
[  116.755751] [<c0113d94>] (unwind_backtrace) from [<c010e4d8>] (show_stack+0x20/0x24)
[  116.810399] [<c010e4d8>] (show_stack) from [<c09e123c>] (dump_stack+0x90/0xa4)
[  116.864637] [<c09e123c>] (dump_stack) from [<c0111b8c>] (handle_IPI+0x2b0/0x2d0)
[  116.918972] [<c0111b8c>] (handle_IPI) from [<c01022a8>] (gic_handle_irq+0x9c/0xa0)
[  116.973716] [<c01022a8>] (gic_handle_irq) from [<c0101a0c>] (__irq_svc+0x6c/0x90)
[  117.028676] Exception stack(0xde935f38 to 0xde935f80)
[  117.080990] 5f20:                                                       00000000 00005368
[  117.136422] 5f40: df7b13d8 c01206a0 de934000 c0f04c6c c0f04cd8 00000002 c0f8b3a9 c0bef150
[  117.191647] 5f60: 00000000 de935f94 de935f98 de935f88 c010a2d8 c010a2dc 60060013 ffffffff
[  117.246899] [<c0101a0c>] (__irq_svc) from [<c010a2dc>] (arch_cpu_idle+0x48/0x4c)
[  117.301467] [<c010a2dc>] (arch_cpu_idle) from [<c09fd958>] (default_idle_call+0x30/0x3c)
[  117.356760] [<c09fd958>] (default_idle_call) from [<c0170e6c>] (do_idle+0xe4/0x158)
[  117.411624] [<c0170e6c>] (do_idle) from [<c01711a0>] (cpu_startup_entry+0x28/0x2c)
[  117.466587] [<c01711a0>] (cpu_startup_entry) from [<c0111650>] (secondary_start_kernel+0x16c/0x190)
[  117.523375] [<c0111650>] (secondary_start_kernel) from [<801026cc>] (0x801026cc)

And content of my uEnv.txt file:

## uEnv.txt
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
console=earlyprintk console=tty1 fbcon=map:0 console=ttyS0,115200
bootopts=vmalloc=496M debug=7 initcall_debug=0 video=1280x1024-32 drm.debug=0x7
abootargs=setenv bootargs board=${board} console=${console} root=${root} service=${service} ${bootopts}
ahello=echo Banana Pi ${board} chip: $chip Service: $service
aboot=if fatload $device $partition $rdaddr ${bpi}/berryboot.img; then bootm $kaddr $rdaddr ; else bootm $kaddr; fi
aload_kernel=fatload $device $partition $kaddr ${bpi}/${board}/${service}/${kernel}
uenvcmd=run ahello abootargs aload_kernel aboot
## END