Bl301 injection, problems, help,

This is an instruction how to use inject_bl301
You don’t need to use update.sh

Will try the Standby mode.

Putting it to Suspend mode under CoreELEC. Waking it up (LED power indicator/status light comes on) doesn’t turn TV on either, and still required to manually turning TV on, and still shows no HDMI signal from the unit.

Putting the unit to sleep under Android, I can wake it up. I can’t remember if I’ve tested waking it up from standby with the official bl301 Injection release (I had, and that worked)… Will revert changes and test again the experimental package.

Before CoreELEC…, when unit suspended under Android, the LED power indicator/status light always remained on, unlike behaviour experienced with two other Beelink product types. Reported it over year ago, and few occasions in between, and nothing was ever done about it. However under CoreELEC, powering it off via ’ Power off system ’ the unit shuts down and also the light goes out too! Yet I can still wake it up and it turns TV on. I really like this because this unit has a bright light and sits just at the foot of my bed and shining ever so brightly like the north star at nights. :rofl:

I don’t follow boot2k3. This we testing is not the official package release, but an experimental one and requires different procedure for different package.

Hi. Thanks for the guide
I’m with this error after injecting bl301, whenever I reboot to CE. What was my wrong?
Thanks

Here a new test version, the update.sh script is now working.
https://test.coreelec.org/Portisch/CoreELEC-Amlogic-ng.arm-9.2-devel-1579255112.tar

And I am talking only about a IR wake up code defined in config.ini.
There is nothing about power on the TV - this is a complete different issue (libCEC & CEC) and have nothing to do here in this topic. I have even no idea how Android is handling this.

The definedIR wake up code will now be also injected to the bl301 blob and should now work after powering down/suspended Android. It will boot to CE after wake up.

After update of CE with this tar file post the log get by this command:
cat /storage/init-previous.log | paste

@doncachopo As I know I didn’t change anything what can cause you this issue - maybe.
Please be sure you use a correct installed SD card/USB flash drive for CE.

1 Like

Perfect. I didn’t manage to test the previous version but this one works. Shutdown with the remote within Android, then powered back on with the remote into CE.

X96 Air, S905X3.

2 Likes

Can you please give example for

-s     define a system root path (needed for update.sh)

I am not sure what update.sh means and for what its used, ans also not sure about what path is it in question, flash, or storage?

/dev/mmcblk0p1          524008    165096    358912  32% /flash
/dev/sda1             14143458    509304  12870660   4% /storage
/dev/loop0              152064    152064         0 100% /

What you trying to do? Just use the tar to update CE.
The system root is only needed by the system update script.

I just trying to prepare… I dont have x96 yet, but in case, if I would use that tool, I would like to know, if I need to use -s and how (I am using SD card for /flash and USB flash for /storage usually. I would like to have X96 booted entireally from USB, but if it wont work, I expect same setup SD+USB as always.)

I mean, how its “root” related to what updates, and what “root” is meant as default, and what roots are need to adjust by -s parameter :slight_smile:

The changes are now in the next nightly. Now the injected bl301 will be working also for Android wake up.

bl301 got rebased on original branch 'amlogic-dev_9.2.1811_21-dev'.

Since now the inject_bl301 tool is started on every boot by a service entry like the remote toggle script.
The tool checks the current injected bl301 blob and read also now the wake up keys from config.ini and “implement” them directly to the binary blob before injection.

Then the tool calculates the checksum and compare if an update is needed at all.
The config.ini keys values are now like hard coded to the bl301 - but still configurable by users:
 1. get correct bl301 blob for device
 2. read config.ini and implement the values in the blob binary
If the checksum is changed (maybe because a user edited a config.ini key) the tool injects the blob and reboot once to make the changes active.

It's now possible to use the wake up settings from config.ini for Android or from DC power supply off too as they "implementation" of the config.ini keys is like hard coding the values directly to the source.

Current available user config.ini keys for bl301:
https://github.com/CoreELEC/bl301/blob/coreelec-bl301/arch/arm/cpu/armv8/g12b/firmware/scp_task/coreelec_config.c

The user is also now able to change the CEC OSD name shown on TV by using the 'cec_osd_name' key in config.ini.
This will enable a minimum of required blobs, but still allows full customization by users config.ini without the need of change the bl301 source.

Only Hardkernel Odroid devices still require the Linux driver tool 'CONFIG_BL301_MANAGER' to setup the bl301 when booting.
The injected bl301 blobs aren’t requiring this tool anymore.

Example:
 CoreELEC ir_pwr_key      = eb14ff00
 CoreELEC usr_ir_proto    = 00000000
 CoreELEC ir_pwr_key_mask = ffffffff
 CoreELEC system_power    = 00000001
 CoreELEC wake_on_lan     = 00000001
 CoreELEC cec_osd_name    = NEO T5
3 Likes

I already have BL301
Do I have to repeat the process or will update it after install last nightly?

CoreELEC-Amlogic-ng.arm-9.2-nightly_20200121-Generic causes issues with GT1 Mini 4+64GB, even attempting to use for the first time setup on a cleaned Micro-SD-Card. Stuck in a re-boot loop, long before CoreELEC logo ever appears, before preparation phase.

@Rootz no, the update is done automatically.
The update status can be checked by cat /storage/update-bl301.log

@Phant0m: Nightly builds (NEW)

3 Likes

That worked good Portisch. Like you said, It was occurring because I haven’t applied that, and It was looking for it. Good Job!

I ordered an H96 max x3 and was wondering whether the BI301 injection will be needed? If yes, what are the remotewakeup, decode_type, and remotewakeupmask to be added to the config.ini ?

thx

No chance for blob insertion for a USB/RF remote, right?

This isn’t possible as the bl301 blob is running in a very limited environment. It doesn’t have access to the real linux system. Only the SoC interrupts are working (gpio), CEC and IR decoder.

1 Like

I have bl301 installed. Checked in terminal and in CE settings. But still waking up after suspend not working. Using WOL eth nor wifi. Not working with CEC and not working changing source in TV.

Ugoos X2 Cube (S905X2) with nightlies.