Jump to content
RichUK

Is the Tinkerboard 2 Dead?

Recommended Posts

Is the TInkerboard 2 dead already? there's no forum posts or community activity? Still not found how to root android 10 or 11... ?! bump anyone there ?

Share this post


Link to post
Share on other sites

Hi RickUK,

I'm starting to think the same. Trying to use buildroot for the 2S and there's not enough support or defconfigs for the board. Only the older board. Would be willing to work with the community to develop one though if Asus could lend support.

Thanks

Share this post


Link to post
Share on other sites

Hi tooz,

Thanks for the reply. We're looking at using the 2S for an embedded project and would ideally like to be able to build a custom Linux OS with minimal applications installed. It's something that we'd need to be able to build ourselves at any given time, rather than rely on a community for releases. We will be using buildroot to build the OS BuildRoot supports https://github.com/buildroot/buildroot/tree/master/configs these boards out of the box, the only Asus board supported is the Asus Tinker RK3288

Is this something we could work together on tooz to be able to create a defconfig for the TinkerBoard 2S RK3399 and get it building?

Many thanks

Chris

Share this post


Link to post
Share on other sites

Thanks for the link tooz,

Would this be compatible with building your own custom Linux based OS using BuildRoot or Yocto even?

Cheers

Share this post


Link to post
Share on other sites

Hi tooz,

I've fallen at the first step. I've followed https://github.com/TinkerBoard/TinkerBoard/wiki/Developer-Guide#debian-build-instruction and cloned https://github.com/TinkerBoard/kernel and cloned https://github.com/TinkerBoard/kernel

The instructions don't work for either of those repositories the error I get is

make ARCH=arm64 tinker2_defconfig
***
*** Can't find default configuration "arch/arm64/configs/tinker2_defconfig"!
***
make[1]: *** [scripts/kconfig/Makefile:110: tinker2_defconfig] Error 1
make: *** [Makefile:568: tinker2_defconfig] Error 2

Doing a search in Github for tinker2_defconfig yields no results.

The instructions are a bit unclear https://github.com/TinkerBoard/TinkerBoard/wiki/Developer-Guide#debian-build-instruction says

Quote

$ cd [source code]
$ make ARCH=arm64 tinker2_defconfig
$ make ARCH=arm64 rk3399-tinker_board_2.img CROSS_COMPILE=aarch64-linux-gnu- -j8

But I'm not sure I know which [source code] I should be cd into

Also I found https://github.com/TinkerBoard/buildroot would this work for the Tinkerboard 2S?

Thanks

Share this post


Link to post
Share on other sites

hello @Chridster1

looks like cd kernel didn't get excuted, hence why the error. you have to change directory to whereveer the kernel is located. 

when you cd to the directory where the source code is located, you can use the command ls kernel for checking: 

kernel$ ls
android build.config.goldfish.arm certs firmware Kconfig Makefile scripts virt
arch build.config.goldfish.arm64 COPYING fs kernel mm security
backported-features build.config.goldfish.mips CREDITS include lib net sound
block build.config.goldfish.mips64 crypto init logo.bmp README tools
build.config.cuttlefish.aarch64 build.config.goldfish.x86 Documentation ipc logo_kernel.bmp REPORTING-BUGS usr
build.config.cuttlefish.x86_64 build.config.goldfish.x86_64 drivers Kbuild MAINTAINERS samples verity_dev_keys.x509

result should be files listed on https://github.com/TinkerBoard2/buildroot

then you can continue the following:

  1. Installing the build tools

    $ sudo apt-get install git-core gitk git-gui gcc-arm-linux-gnueabihf device-tree-compiler gcc-aarch64-linux-gnu mtools parted libssl-dev
    
  2. Build Kernel

    $ cd [source code]
    $ make ARCH=arm64 tinker2_defconfig
    $ make ARCH=arm64 rk3399-tinker_board_2.img CROSS_COMPILE=aarch64-linux-gnu- -j8

 

Also I found https://github.com/TinkerBoard/buildroot would this work for the Tinkerboard 2S?

No, this is for RK3288 based (Tinker Board, Tinker Board 2S) which is different from RK3399 based Tinker Board 2S, the defconfig's different

Share this post


Link to post
Share on other sites

Thanks for the update.

I've tried and still its not working. If it's any help I can easily build all raspbery pi, rockpi 4 and even the Tinkerboard RK3288 images using Buildroot, they all have upstream defconfigs etc so are fully supported.

For what its worth I get the error

Quote

gcc: error: unrecognized command line option '-mlittle-endian'; did you mean '-fconvert=little-endian'?

Then it dies

Share this post


Link to post
Share on other sites

hello @Chridster1

unfortunately we can't add tinker board 2s to buildroot as it's developed by another company.

have you tried with the kernel 4.19 one?

$ repo init -u https://github.com/TinkerBoard2/manifest.git -b linux4.19-rk3399-debian10
$ repo sync

we're not able to reproduce the issue, may we know what your build environment is?

 

Share this post


Link to post
Share on other sites

Hi @tooz

My build environment is openSuSE Leap 15.3 with all the build tools installed listed above.

Good news is When I try kernel 4.19 I can build the first part, well it errored at first because....

Quote

$ make ARCH=arm64 tinker2_defconfig

Should in-fact be

make ARCH=arm64 tinker_board_2_defconfig

Unfortunetly the next command stills errors with

Quote

gcc: error: unrecognized command line option '-mlittle-endian'; did you mean '-fconvert=little-endian'?

I'm using gcc (SUSE Linux) 7.5.0

The defconfig listed above, do you think that could work if I use it in Buildroot? Also will Asus be creating Board Support Pacakges for the tinkerboard 2S?

Thanks for the help thus far

Chris

Share this post


Link to post
Share on other sites

hello @Chridster1

gcc: error: unrecognized command line option '-mlittle-endian'; did you mean '-fconvert=little-endian'?

↑ this gcc error was cause by false cross compiler settings; the openSuSE Leap 15.3 compiler can't be used in this case.

please check the cross compiler directory -- after the gcc-aarch64-linux-gnu packages install, you'll see a bunch of aarch64-linux-gnu files under /usr/bin/

if not, you will have to find the right directory and set in “make ARCH=arm64 rk3399-tinker_board_2.img CROSS_COMPILE=aarch64-linux-gnu- -j8” CROSS_COMPILE

 

Share this post


Link to post
Share on other sites

Hi @tooz

I've tried installing Ubuntu on AWS and going through the instructions and it fails to compile and I've tried with Debian as per the instructions and it dies again. That's 3 different OSs that fails to compile the code.

Is there any plans for Asus to create any sort of BSPs or meta-layers for the TB2S? I saw ths https://tinker-board.asus.com/forum/index.php?/topic/14960-yocto-tinkerboard-meta-rockchip/ post but it never got any answers that was back in 2021 so is probably a dead topic now. Ideally I'm looking for a meta layer provided by Asus tested against the latest LTS version of Yocto ( https://wiki.yoctoproject.org/wiki/Releases ) currently Kirkstone.

Is this something that is in the Pipeline or what's available is as good as it gets?

Many thanks

 

Share this post


Link to post
Share on other sites

I've re-tried to build linux4.19-rk3399-debian10 with the following

Quote

make ARCH=arm64 CROSS_COMPILE=/usr/bin/aarch64-suse-linux- clean tinker_board_2_defconfig
make ARCH=arm64 CROSS_COMPILE=/usr/bin/aarch64-suse-linux- rk3399-tinker_board_2.img

and it gets a lot further, it does however die on the fusb drivers with the following. Any ideas about this?

drivers/mfd/fusb302.c: In function 'auto_vdm_machine':
drivers/mfd/fusb302.c:1570:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
error, forbidden warning:fusb302.c:1570
 1570 |                 if (conditions != -EINPROGRESS) \
      |                 ^~
drivers/mfd/fusb302.c:1584:17: note: in expansion of macro 'AUTO_VDM_HANDLE'
 1584 |                 AUTO_VDM_HANDLE(vdm_send_discoveryid, chip, evt, conditions);
      |                 ^~~~~~~~~~~~~~~
drivers/mfd/fusb302.c:1584:55: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
 1584 |                 AUTO_VDM_HANDLE(vdm_send_discoveryid, chip, evt, conditions);
      |                                                       ^~~~
drivers/mfd/fusb302.c:1572:25: note: in definition of macro 'AUTO_VDM_HANDLE'
 1572 |                         chip->vdm_pending = false; \
      |                         ^~~~
drivers/mfd/fusb302.c:1570:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
error, forbidden warning:fusb302.c:1570
 1570 |                 if (conditions != -EINPROGRESS) \
      |                 ^~
drivers/mfd/fusb302.c:1587:17: note: in expansion of macro 'AUTO_VDM_HANDLE'
 1587 |                 AUTO_VDM_HANDLE(vdm_send_discoverysvid, chip, evt, conditions);
      |                 ^~~~~~~~~~~~~~~
drivers/mfd/fusb302.c:1587:57: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
 1587 |                 AUTO_VDM_HANDLE(vdm_send_discoverysvid, chip, evt, conditions);
      |                                                         ^~~~
drivers/mfd/fusb302.c:1572:25: note: in definition of macro 'AUTO_VDM_HANDLE'
 1572 |                         chip->vdm_pending = false; \
      |                         ^~~~
drivers/mfd/fusb302.c:1570:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
error, forbidden warning:fusb302.c:1570
 1570 |                 if (conditions != -EINPROGRESS) \
      |                 ^~
drivers/mfd/fusb302.c:1590:17: note: in expansion of macro 'AUTO_VDM_HANDLE'
 1590 |                 AUTO_VDM_HANDLE(vdm_send_discoverymodes, chip, evt, conditions);
      |                 ^~~~~~~~~~~~~~~
drivers/mfd/fusb302.c:1590:58: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
 1590 |                 AUTO_VDM_HANDLE(vdm_send_discoverymodes, chip, evt, conditions);
      |                                                          ^~~~
drivers/mfd/fusb302.c:1572:25: note: in definition of macro 'AUTO_VDM_HANDLE'
 1572 |                         chip->vdm_pending = false; \
      |                         ^~~~
drivers/mfd/fusb302.c:1570:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
error, forbidden warning:fusb302.c:1570
 1570 |                 if (conditions != -EINPROGRESS) \
      |                 ^~
drivers/mfd/fusb302.c:1593:17: note: in expansion of macro 'AUTO_VDM_HANDLE'
 1593 |                 AUTO_VDM_HANDLE(vdm_send_entermode, chip, evt, conditions);
      |                 ^~~~~~~~~~~~~~~
drivers/mfd/fusb302.c:1593:53: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
 1593 |                 AUTO_VDM_HANDLE(vdm_send_entermode, chip, evt, conditions);
      |                                                     ^~~~
drivers/mfd/fusb302.c:1572:25: note: in definition of macro 'AUTO_VDM_HANDLE'
 1572 |                         chip->vdm_pending = false; \
      |                         ^~~~
drivers/mfd/fusb302.c:1570:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
error, forbidden warning:fusb302.c:1570
 1570 |                 if (conditions != -EINPROGRESS) \
      |                 ^~
drivers/mfd/fusb302.c:1596:17: note: in expansion of macro 'AUTO_VDM_HANDLE'
 1596 |                 AUTO_VDM_HANDLE(vdm_send_getdpstatus, chip, evt, conditions);
      |                 ^~~~~~~~~~~~~~~
drivers/mfd/fusb302.c:1596:55: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
 1596 |                 AUTO_VDM_HANDLE(vdm_send_getdpstatus, chip, evt, conditions);
      |                                                       ^~~~
drivers/mfd/fusb302.c:1572:25: note: in definition of macro 'AUTO_VDM_HANDLE'
 1572 |                         chip->vdm_pending = false; \
      |                         ^~~~
drivers/mfd/fusb302.c:1570:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
error, forbidden warning:fusb302.c:1570
 1570 |                 if (conditions != -EINPROGRESS) \
      |                 ^~
drivers/mfd/fusb302.c:1599:17: note: in expansion of macro 'AUTO_VDM_HANDLE'
 1599 |                 AUTO_VDM_HANDLE(vdm_send_dpconfig, chip, evt, conditions);
      |                 ^~~~~~~~~~~~~~~
drivers/mfd/fusb302.c:1599:52: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
 1599 |                 AUTO_VDM_HANDLE(vdm_send_dpconfig, chip, evt, conditions);
      |                                                    ^~~~
drivers/mfd/fusb302.c:1572:25: note: in definition of macro 'AUTO_VDM_HANDLE'
 1572 |                         chip->vdm_pending = false; \
      |                         ^~~~
make[2]: *** [scripts/Makefile.build:334: drivers/mfd/fusb302.o] Error 1
make[2]: *** Deleting file 'drivers/mfd/fusb302.o'
make[1]: *** [scripts/Makefile.build:637: drivers/mfd] Error 2
make: *** [Makefile:1195: drivers] Error 2

 

Share this post


Link to post
Share on other sites

Morning @tooz

We've found that kernel/drivers/mfd/fusb302.c Lines 1570 were as follows

if (conditions != -(EINPROGRESS)) \
			chip->vdm_state = VDM_STATE_ERR; \
			chip->vdm_pending = false; \

The compiler threw a warning because the third line ( chip->vdm_pending = false; ) was indented as though it was gaurded, we've added brackets around the two lines ( see below ) and we can now get past that error and continue to compile. I'm waiting to see if it completes now

if (conditions != -EINPROGRESS) {\
			chip->vdm_state = VDM_STATE_ERR; \
			chip->vdm_pending = false; \
        }\

Is the second code above correct? Or should I remove the indentation for the chip->vdm_pending = false;

Many thanks

Share this post


Link to post
Share on other sites

Good and bad news,

It got further but the compilation process died with

Quote

drivers/net/wireless/rockchip_wlan/rtl8814au/core/rtw_mlme.c: In function 'rtw_drv_scan_by_self':
drivers/net/wireless/rockchip_wlan/rtl8814au/core/rtw_mlme.c:3130:17: warning: this 'else' clause does not guard... [-Wmisleading-indentation]
error, forbidden warning:rtw_mlme.c:3130
3130 |                 else
     |                 ^~~~
drivers/net/wireless/rockchip_wlan/rtl8814au/core/rtw_mlme.c:3133:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'else'
3133 |                         goto exit;
     |                         ^~~~
make[6]: *** [scripts/Makefile.build:334: drivers/net/wireless/rockchip_wlan/rtl8814au/core/rtw_mlme.o] Error 1
make[6]: *** Deleting file 'drivers/net/wireless/rockchip_wlan/rtl8814au/core/rtw_mlme.o'
make[5]: *** [scripts/Makefile.build:637: drivers/net/wireless/rockchip_wlan/rtl8814au] Error 2
make[4]: *** [scripts/Makefile.build:637: drivers/net/wireless/rockchip_wlan] Error 2
make[3]: *** [scripts/Makefile.build:637: drivers/net/wireless] Error 2
make[2]: *** [scripts/Makefile.build:637: drivers/net] Error 2
make[1]: *** [Makefile:1195: drivers] Error 2
make: *** [arch/arm64/Makefile:195: kernel.img] Error 2
make: *** Deleting file 'kernel.img'

 

So looks like its a similar thing

Share this post


Link to post
Share on other sites

So after adding the brackets to the code it does compile and creates the files but when I burn them to SDCard it fails to boot.

I've attached the files where the compler fails as a diff

I fell like it's close now, it could be adding the brackets is syntatically correct but semantically wrong.

Cheers

completed_diffs.diff

Share this post


Link to post
Share on other sites

hello @Chridster1

thanks for the update, i'll discuss with team in terms of meta-layer releases; for the build issue, please try prebuilt gcc and see if it works: 

$ make ARCH=arm64 CROSS_COMPILE=../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- tinker_board_2_defconfig

$ make ARCH=arm64 CROSS_COMPILE=../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- rk3399-tinker_board_2.img -j8

  • Like 1

Share this post


Link to post
Share on other sites

The pre-built cross compiler toolchain will successfully build the kernel, but fails to build the debian image, I had more luck using the docker builder that comes bundled with the source checked out by repo.

@Chridster1 I have started working on a 'minimal' base image based off the source code provided by @tooz above - the build script that is on the official github org is broken and needed patching to get things to work, I have made the necessary patches and can build the default 'desktop' target now, everything appears to be working exactly as per the official OS download so I am now moving on to producing a minimal image without all the bloat from the default OS - I am not sure how much time I can devote to this, but it may give you a head start if nothing else - you can find my fork at https://github.com/nickpack/tinkerboard2_manifest

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...