I'm very interested in determining the effort to create a port of OpenADK to the ASUS Tinker Board. Does anyone have experience with OpenADK on this or other Rockchip based hardware to use as a template to get started from?
Let me explain a little where I'm coming from with this.
Two years ago as a consultant I did a port of OpenADK to support the Google "Project Blocks" tangible programming system for children. See: https://projectbloks.withgoogle.com/
The "Brain Block" in the Project Block system was powered by the recently released Raspberry Pi Zero and I chose OpenADK was the OS. I'm the original creator of Raspbian, but with a bit of irony, I had to make the decision that Raspbian was not the right fit for this project. The fact that OpenADK with stripped down kernel could boot almost instantly and the rootfs being read-only were extremely compelling features for an embedded Linux system that had to be VERY robust in the hands of children. At the time I was under heavy non-disclosure agreements with Google regarding my work with the project so I couldn't say anything about it at the time, but I found OpenADK to be very pleasant to work with. I don't know the current status of things since finishing my work in 2016, but I hope that they are continuing to use OpenADK with their research in tangible computing.
Now two years later I'm an employee at a 3D printing start-up company where we have the need to create some robust Linux based embedded systems for robot control using Rockchip based ARM systems -- the ASUS Tinker Board being a fairly computationally powerful system to start with. I could use a stripped down Ubuntu system (kids won't be anywhere near these robots), but I think OpenADK or Yocto would be a better embedded solution where the system just needs to work with minimal management that a heavy Debian or Ubuntu system might entail.
If a port doesn't exist, I'm assuming I would have to get a good understanding of the Rockchip boot process to create the first stage and second stage bootloader (probably Uboot), a custom kernel for this hardware, the image requirements for an SDK card and figure out how to put it all together within OpenADK. I think I have the skills to do this, but I'm a little weary of the time it might take to figure it all out. Also, being a start-up, my budget is rather slim to pull in outside help.
I wanted to get some guidance from the folks on this mailing list to see what I might expect with regards to such a porting effort for OpenADK. Sorry for the long email on this question.
Thanks,
Mike Thompson
Dear Mike,
we port OpenADK for the TI AM33xx which runs on the phytec WEGA board (http://www.phytec.de/produkt/single-board-computer/phyboard-wega/). They also provide a board with the rock chip. We uses the yocto template to get OpenADK running on it. You can have a look in the files "target/arm/systems/phytec-wega" and "target/arm/kernel/phytec-wega" and see how easy the configuration is to get it basically running. Also there is a hook in for the wega board in the installation script and you have to adapt the target/arm/Makefile.
I relay recommend to use an embedded system instead of a full blown ubuntu. We had very bad experience with that in the past. So my recommendation "do not even think about ship such a system to a customer!!!". This had cost us a lot of money and was our start with using OpenADK.
Please have also a look on the build in update mechanism of OpenADK. We implement it for a Kontron board and for testing on the RaspberryPI. It makes the update secure and easy. An update is made in a passive partition. After a reboot with the new Firmware (from the passive partition) it gets the active partition. We build in some sanity checks if they are passed the system will boot with the new partition.#
We also build an OpenADK for the "Deutsche Bahn" for the displays of the rail stations. There first approach was to use an arch Linux. So they made the same mistake we did in the past. Fortunately the did not install the systems on the tracks yet, so we were able to install OpenADK. Anyway the main thing is a solid updater so you can fix issues on the customer site easily.
Best regards
Martin
we port OpenADK on an Kontron Board with EFI Bios wich was a bit pain in the as but at the end we managed it.
Am 28.05.2018 um 09:12 schrieb Mike Thompson:
I'm very interested in determining the effort to create a port of OpenADK to the ASUS Tinker Board. Does anyone have experience with OpenADK on this or other Rockchip based hardware to use as a template to get started from?
Let me explain a little where I'm coming from with this.
Two years ago as a consultant I did a port of OpenADK to support the Google "Project Blocks" tangible programming system for children. See: https://projectbloks.withgoogle.com/
The "Brain Block" in the Project Block system was powered by the recently released Raspberry Pi Zero and I chose OpenADK was the OS. I'm the original creator of Raspbian, but with a bit of irony, I had to make the decision that Raspbian was not the right fit for this project. The fact that OpenADK with stripped down kernel could boot almost instantly and the rootfs being read-only were extremely compelling features for an embedded Linux system that had to be VERY robust in the hands of children. At the time I was under heavy non-disclosure agreements with Google regarding my work with the project so I couldn't say anything about it at the time, but I found OpenADK to be very pleasant to work with. I don't know the current status of things since finishing my work in 2016, but I hope that they are continuing to use OpenADK with their research in tangible computing.
Now two years later I'm an employee at a 3D printing start-up company where we have the need to create some robust Linux based embedded systems for robot control using Rockchip based ARM systems -- the ASUS Tinker Board being a fairly computationally powerful system to start with. I could use a stripped down Ubuntu system (kids won't be anywhere near these robots), but I think OpenADK or Yocto would be a better embedded solution where the system just needs to work with minimal management that a heavy Debian or Ubuntu system might entail.
If a port doesn't exist, I'm assuming I would have to get a good understanding of the Rockchip boot process to create the first stage and second stage bootloader (probably Uboot), a custom kernel for this hardware, the image requirements for an SDK card and figure out how to put it all together within OpenADK. I think I have the skills to do this, but I'm a little weary of the time it might take to figure it all out. Also, being a start-up, my budget is rather slim to pull in outside help.
I wanted to get some guidance from the folks on this mailing list to see what I might expect with regards to such a porting effort for OpenADK. Sorry for the long email on this question.
Thanks,
Mike Thompson
dev mailing list dev@openadk.org https://mailman.openadk.org/cgi-bin/mailman/listinfo/dev
Martin,
Thank you for your advice. I'll take a look at the work you did on the WEGA board and see how I can adapt it to my needs for a Rockchip board.
I am indeed wary of creating an embedded system based on Debian or Ubuntu for the reasons you mention.
Thanks.
Mike
On Tue, May 29, 2018 at 12:01 AM, Martin Thomas mtadk@hamtam.de wrote:
Dear Mike,
we port OpenADK for the TI AM33xx which runs on the phytec WEGA board ( http://www.phytec.de/produkt/single-board-computer/phyboard-wega/). They also provide a board with the rock chip. We uses the yocto template to get OpenADK running on it. You can have a look in the files "target/arm/systems/phytec-wega" and "target/arm/kernel/phytec-wega" and see how easy the configuration is to get it basically running. Also there is a hook in for the wega board in the installation script and you have to adapt the target/arm/Makefile.
I relay recommend to use an embedded system instead of a full blown ubuntu. We had very bad experience with that in the past. So my recommendation "do not even think about ship such a system to a customer!!!". This had cost us a lot of money and was our start with using OpenADK.
Please have also a look on the build in update mechanism of OpenADK. We implement it for a Kontron board and for testing on the RaspberryPI. It makes the update secure and easy. An update is made in a passive partition. After a reboot with the new Firmware (from the passive partition) it gets the active partition. We build in some sanity checks if they are passed the system will boot with the new partition.#
We also build an OpenADK for the "Deutsche Bahn" for the displays of the rail stations. There first approach was to use an arch Linux. So they made the same mistake we did in the past. Fortunately the did not install the systems on the tracks yet, so we were able to install OpenADK. Anyway the main thing is a solid updater so you can fix issues on the customer site easily.
Best regards
Martin
we port OpenADK on an Kontron Board with EFI Bios wich was a bit pain in the as but at the end we managed it.
Am 28.05.2018 um 09:12 schrieb Mike Thompson:
I'm very interested in determining the effort to create a port of OpenADK to the ASUS Tinker Board. Does anyone have experience with OpenADK on this or other Rockchip based hardware to use as a template to get started from?
Let me explain a little where I'm coming from with this.
Two years ago as a consultant I did a port of OpenADK to support the Google "Project Blocks" tangible programming system for children. See: https://projectbloks.withgoogle.com/
The "Brain Block" in the Project Block system was powered by the recently released Raspberry Pi Zero and I chose OpenADK was the OS. I'm the original creator of Raspbian, but with a bit of irony, I had to make the decision that Raspbian was not the right fit for this project. The fact that OpenADK with stripped down kernel could boot almost instantly and the rootfs being read-only were extremely compelling features for an embedded Linux system that had to be VERY robust in the hands of children. At the time I was under heavy non-disclosure agreements with Google regarding my work with the project so I couldn't say anything about it at the time, but I found OpenADK to be very pleasant to work with. I don't know the current status of things since finishing my work in 2016, but I hope that they are continuing to use OpenADK with their research in tangible computing.
Now two years later I'm an employee at a 3D printing start-up company where we have the need to create some robust Linux based embedded systems for robot control using Rockchip based ARM systems -- the ASUS Tinker Board being a fairly computationally powerful system to start with. I could use a stripped down Ubuntu system (kids won't be anywhere near these robots), but I think OpenADK or Yocto would be a better embedded solution where the system just needs to work with minimal management that a heavy Debian or Ubuntu system might entail.
If a port doesn't exist, I'm assuming I would have to get a good understanding of the Rockchip boot process to create the first stage and second stage bootloader (probably Uboot), a custom kernel for this hardware, the image requirements for an SDK card and figure out how to put it all together within OpenADK. I think I have the skills to do this, but I'm a little weary of the time it might take to figure it all out. Also, being a start-up, my budget is rather slim to pull in outside help.
I wanted to get some guidance from the folks on this mailing list to see what I might expect with regards to such a porting effort for OpenADK. Sorry for the long email on this question.
Thanks,
Mike Thompson
dev mailing listdev@openadk.orghttps://mailman.openadk.org/cgi-bin/mailman/listinfo/dev
dev mailing list dev@openadk.org https://mailman.openadk.org/cgi-bin/mailman/listinfo/dev
Hi Mike, Mike Thompson wrote,
Martin,
Thank you for your advice. I'll take a look at the work you did on the WEGA board and see how I can adapt it to my needs for a Rockchip board.
The Phytec Wega is an example for adding a device with non-upstream Linux kernel support using a GIT Repo. The sample is very basic, it was added to show that OpenADK could be used for this device.
best regards Waldemar
OK, after adding the following two files:
target/arm/kernel/tinker-board target/arm/systems/tinker-board
And setting the proper Git information for the kernel in:
target/linux/Config.in.kernelversion
The main information being where Rockchip keeps it's kernels on Github as shown below:
ADK_TARGET_LINUX_KERNEL_VERSION_GIT=y ADK_TARGET_LINUX_KERNEL_GIT_REPO=" https://github.com/rockchip-linux/kernel.git" ADK_TARGET_LINUX_KERNEL_GIT_REPO_NAME="rockchip" ADK_TARGET_LINUX_KERNEL_GIT="15dbb651be03ed7f9905f2e7c54b61d55011f54a" ADK_TARGET_LINUX_KERNEL_GIT_VER="4.4.103" ADK_TARGET_LINUX_KERNEL_GIT_TYPE="hash" ADK_TARGET_LINUX_KERNEL_USE_MINICONFIG=y
I was able to get a build of the RootFS and kernel for the Tinker Board without any errors. For getting the kernel built, I basically used the defconfig file from a minimal Yocto build. A handful of kernel config settings seemed to be modified by the OpenADK build, but I don't think any of them are very significant other than perhaps the kernel command line. I'll need to investigate that further.
I presume I can test the RootFS (minus the kernel) by simply overwriting a Yocto rootfs on an SD card with the RootFS I built with OpenADK and see what happens.
If that works OK, I'll then need to dissect how Yocto builds a minimal Tinker Board SD card image and see how I can apply that to the OpenADK build process to create a similar image, but with OpenADK built components. I'm not positive, but I think Yocto justs uses provided binaries from Rockchip to install the first and second stage bootloaders to specific partitions on the SD card.
I'll do more testing tomorrow night and I'll keep you posted as I make progress.
Mike
On Tue, May 29, 2018 at 5:49 PM, Waldemar Brodkorb < mail@waldemar-brodkorb.de> wrote:
Hi Mike, Mike Thompson wrote,
Martin,
Thank you for your advice. I'll take a look at the work you did on the
WEGA
board and see how I can adapt it to my needs for a Rockchip board.
The Phytec Wega is an example for adding a device with non-upstream Linux kernel support using a GIT Repo. The sample is very basic, it was added to show that OpenADK could be used for this device.
best regards Waldemar
Hi Mike, Mike Thompson wrote,
I'm very interested in determining the effort to create a port of OpenADK to the ASUS Tinker Board. Does anyone have experience with OpenADK on this or other Rockchip based hardware to use as a template to get started from?
You can start with the OpenADK manual: https://docs.openadk.org/html/manual.html#adding-boards
If you think the manual is outdated or incomplete, please give me some feedback. The most important goal for me keeping OpenADK in a good shape is to provide a really simple method to add support for new architectures, operating systems and samples for real hardware.
Last weekend I again optimized the menu based configuration to hopefully achieve a more intuitive way to configure a customized configuration. First you choose a operating system, then an architecture and then a sample for a device or generic stuff.
So if you find any issues adding a new device, please report back.
Normally adding a new device sample is done by simple convention rules. Choose a unique name f.e. asus-tinker. Add new files for it in target/arm/systems and target/arm/kernel with this name. Use some existing files as base.
Then the new device should just appear in the next make menuconfig run.
If there is Linux upstream support for the device you could just start building a toolchain and basic kernel and userland.
Later you can either use a defconfig or use OpenADK mini config abstraction layer. You add new devices or enable devices by default in target/linux/config with ADK_TARGET_SYSTEM_ASUS_TINKER.
I believe you can get a minimal working Linux system for a new device in just one day.
Let me explain a little where I'm coming from with this.
Two years ago as a consultant I did a port of OpenADK to support the Google "Project Blocks" tangible programming system for children. See: https:// projectbloks.withgoogle.com/
The "Brain Block" in the Project Block system was powered by the recently released Raspberry Pi Zero and I chose OpenADK was the OS. I'm the original creator of Raspbian, but with a bit of irony, I had to make the decision that Raspbian was not the right fit for this project. The fact that OpenADK with stripped down kernel could boot almost instantly and the rootfs being read-only were extremely compelling features for an embedded Linux system that had to be VERY robust in the hands of children. At the time I was under heavy non-disclosure agreements with Google regarding my work with the project so I couldn't say anything about it at the time, but I found OpenADK to be very pleasant to work with. I don't know the current status of things since finishing my work in 2016, but I hope that they are continuing to use OpenADK with their research in tangible computing.
Cool, thanks for sharing the information!
Now two years later I'm an employee at a 3D printing start-up company where we have the need to create some robust Linux based embedded systems for robot control using Rockchip based ARM systems -- the ASUS Tinker Board being a fairly computationally powerful system to start with. I could use a stripped down Ubuntu system (kids won't be anywhere near these robots), but I think OpenADK or Yocto would be a better embedded solution where the system just needs to work with minimal management that a heavy Debian or Ubuntu system might entail.
If a port doesn't exist, I'm assuming I would have to get a good understanding of the Rockchip boot process to create the first stage and second stage bootloader (probably Uboot), a custom kernel for this hardware, the image requirements for an SDK card and figure out how to put it all together within OpenADK. I think I have the skills to do this, but I'm a little weary of the time it might take to figure it all out. Also, being a start-up, my budget is rather slim to pull in outside help.
Yes, good summary, what you need to do.
There might be different options working in the past to get further help. - just use the community support for help (okay, our community is small) - sent me a device and I can give you support by e-mail and verify any issues you get. no guarantee given. (worked for PC Engines APU Support, Phytec Wega and RPI Zero / Orange PI Zero in an acceptable way.) - book a workshop by me, like Ableton lately done. (but as you are located in u.s. I am not sure this would be an option ;)) - for selective problems you can buy just some payed work for bugfixing or new features or regular help. I have a registered company and can create official bills.
I wanted to get some guidance from the folks on this mailing list to see what I might expect with regards to such a porting effort for OpenADK. Sorry for the long email on this question.
OpenADK is great, use it, you get fast a working system ;)
As I am too much non-neutral, I hope others will reply to your mail sharing their experiences. :)
Diez? Joerg? Oliver? Phil? Joern?
I already pushed Martin to give some feedback ;)
Thanks in advance, Waldemar