RichUK 0 Posted April 27, 2022 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
Chridster 0 Posted June 8, 2022 Hi RichUK, I'm starting to wonder the same thing Share this post Link to post Share on other sites
Chridster1 0 Posted June 9, 2022 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
tooz 52 Posted June 13, 2022 hello @Chridster @Chridster1, here's a thread on how to root Android on Tinker Board 2: How to root Android on Tinkerboard 2 - Android - Tinker Board Forum (asus.com) Share this post Link to post Share on other sites
Chridster1 0 Posted June 13, 2022 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
tooz 52 Posted June 13, 2022 hello @Chridster1, the complete source code of linux kernel 4.19 can be downloaded from github: To download source code from GitHub, execute the following commands in the terminal: $ repo init -u https://github.com/TinkerBoard2/manifest.git -b linux4.19-rk3399-debian10 $ repo sync Share this post Link to post Share on other sites
Chridster1 0 Posted June 13, 2022 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
tooz 52 Posted June 14, 2022 hello @Chridster1, you certainly can, please check the the docs folder in source code, there's also information available on github wiki for tinker board 2s: https://github.com/TinkerBoard/TinkerBoard/wiki/Developer-Guide Share this post Link to post Share on other sites
Chridster1 0 Posted June 15, 2022 Thanks for the update tooz, I'll work the through the instructions and let you know how i get on. Happy days! Cheers Share this post Link to post Share on other sites
Chridster1 0 Posted June 15, 2022 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
tooz 52 Posted June 16, 2022 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: 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 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
tooz 52 Posted June 17, 2022 fyr: https://github.com/TinkerBoard2/kernel/issues/8 Share this post Link to post Share on other sites
Chridster1 0 Posted June 20, 2022 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
tooz 52 Posted June 22, 2022 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
Chridster1 0 Posted June 22, 2022 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
tooz 52 Posted June 23, 2022 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
Chridster1 0 Posted June 23, 2022 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
Chridster1 0 Posted June 23, 2022 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
Chridster1 0 Posted June 24, 2022 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
Chridster1 0 Posted June 24, 2022 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
Chridster1 0 Posted June 24, 2022 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
tooz 52 Posted June 27, 2022 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 1 Share this post Link to post Share on other sites
Chridster1 0 Posted June 29, 2022 Hi @tooz Has your development team come back to you about developing BSPs etc for the TS? Share this post Link to post Share on other sites
tooz 52 Posted July 5, 2022 hello @Chridster1, my colleague has looked into it and suggets to use the right compiler--using the prebuilt compiler on ubuntu may be the easiest way to do so; the build enviornment is crucial for compiliing. all the bsp source code's uploaded onto Tinker Board 2 (github.com) including buildroot TinkerBoard2/buildroot (github.com) Share this post Link to post Share on other sites
brickvader 0 Posted February 20, 2023 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