[opensuse-arm] some pointers to add support for Kobol Helios 4
Hi, I have a Kobol Helios 4, a Marvell Armada 388-based Armv7 device that boots Armbian off a SDcard and is mostly upstreamed (u-boot, dts, kernel, and so on) apart from a kernel patch that allows PWM control of two system fans from the same GPIO bank. I'm not a fan of Debian (the base of Armbian), nor Armbian. Even the "latest" software I can install on it is years old. I would like a lot to run Tumbleweed on it, as it is what I use in my PC and home server too. I looked at the wiki for ARM support and I really don't understand what is going on. Can someone explain what I should do to add this device to the OpenSUSE ARM build system? Or where is a project I can look at as example. I recently added support for it in OpenWrt [1], and it was very easy, so I felt optimistic I could pull this off in OpenSUSE too. 1. https://github.com/openwrt/openwrt/pull/3073 -Alberto -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Hi Alberto, On 04/06/2020 22:15, Alberto Bursi wrote:
Hi, I have a Kobol Helios 4, a Marvell Armada 388-based Armv7 device that boots Armbian off a SDcard and is mostly upstreamed (u-boot, dts, kernel, and so on) apart from a kernel patch that allows PWM control of two system fans from the same GPIO bank.
I'm not a fan of Debian (the base of Armbian), nor Armbian. Even the "latest" software I can install on it is years old.
I would like a lot to run Tumbleweed on it, as it is what I use in my PC and home server too.
I looked at the wiki for ARM support and I really don't understand what is going on. Can someone explain what I should do to add this device to the OpenSUSE ARM build system? Or where is a project I can look at as example.
As I'm in the process to add support for the bananapi-r2 to tumbleweed, I'll try to explain what you have to do. First of all you will need to check if our U-Boot package builds an image for your board. If not you will have to add that. [1] The package name holds the name of the defconfig of U-Boot. Make sure to also add it to the _multibuild file, as otherwise your package does not get build. In U-Boot we rely on the distro boot environment. If your U-Boot config does not use that, please send a patch upstream to fix that. You can see that I have a patch for that in my downstream U-Boot package, which should be part of v2020.07. If you need help on that, let me know. Please also check your "Project Configs" [2] if you experience that the package is not build. There is some explanation in the .spec file. What I had to add to my config is: <copy> Macros: %prjconf_multibuild_selection patch :Macros Buildflags: onlybuild:u-boot:mt7623nbpir2 </copy> Now we come to the JeOS image. If you look on the diff [3] you see many files, but basically you will only need to edit a few and create the rest via pre_checkin.sh You will need to add your board to _multibuild and _constraints files. Also add your board to pre_checkin.sh. It should be added to the list of armv7_jeos_images. Apart of this, there are three *.in files. Images.kiwi.in: You add here your if you want to use kernel config default or lpae (BOOTKERNEL variable), which kernel boot parameters (e.g. serial console) are needed and which packages you need to build the image. At least your newly created U-Boot package and the corresponding dtb-* package. Latter is created by the kernel-source package, if your dtb is not part of the kernel, you have to add it [4]. uboot-image-install.in: This is called at image creation and can be used if your board needs some firmware blobs to be written to some specific places on the SD card. Sometimes that breaks GPT partitions, so you can also set a flag to force creating the image with MBR. uboot-image-setup.in: I didn't needed that for my board. You can set U-Boot environment variables and the like. I suppose you could use this instead of enable distro boot in upstream U-Boot. Hope that helps. Let me know if you have any questions. Actually we would need someone to document the whole process so that it gets easier for other to add support for their board in openSUSE. Feel free to volunteer on that :) Regards, Matthias [1] https://build.opensuse.org/package/rdiff/home:mbrugger:bananapi-r2/u-boot?opackage=u-boot&oproject=hardware%3Aboot%3Astaging&rev=11 [2] https://build.opensuse.org/projects/home:mbrugger:bananapi-r2/prjconf [3] https://build.opensuse.org/package/rdiff/home:mbrugger:bananapi-r2/JeOS?opackage=JeOS&oproject=openSUSE%3AFactory%3AARM%3ALive&rev=18 [4] https://github.com/openSUSE/kernel-source/commit/8ff92d07ea655e0ac242ae974a1...
I recently added support for it in OpenWrt [1], and it was very easy, so I felt optimistic I could pull this off in OpenSUSE too.
1. https://github.com/openwrt/openwrt/pull/3073
-Alberto
-- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
On 05/06/20 11:37, Matthias Brugger wrote:
Hi Alberto,
On 04/06/2020 22:15, Alberto Bursi wrote:
Hi, I have a Kobol Helios 4, a Marvell Armada 388-based Armv7 device that boots Armbian off a SDcard and is mostly upstreamed (u-boot, dts, kernel, and so on) apart from a kernel patch that allows PWM control of two system fans from the same GPIO bank.
I'm not a fan of Debian (the base of Armbian), nor Armbian. Even the "latest" software I can install on it is years old.
I would like a lot to run Tumbleweed on it, as it is what I use in my PC and home server too.
I looked at the wiki for ARM support and I really don't understand what is going on. Can someone explain what I should do to add this device to the OpenSUSE ARM build system? Or where is a project I can look at as example.
As I'm in the process to add support for the bananapi-r2 to tumbleweed, I'll try to explain what you have to do.
First of all you will need to check if our U-Boot package builds an image for your board. If not you will have to add that. [1]
The package name holds the name of the defconfig of U-Boot. Make sure to also add it to the _multibuild file, as otherwise your package does not get build.
In U-Boot we rely on the distro boot environment. If your U-Boot config does not use that, please send a patch upstream to fix that. You can see that I have a patch for that in my downstream U-Boot package, which should be part of v2020.07. If you need help on that, let me know.
Please also check your "Project Configs" [2] if you experience that the package is not build. There is some explanation in the .spec file. What I had to add to my config is: <copy> Macros: %prjconf_multibuild_selection patch :Macros Buildflags: onlybuild:u-boot:mt7623nbpir2 </copy>
Now we come to the JeOS image. If you look on the diff [3] you see many files, but basically you will only need to edit a few and create the rest via pre_checkin.sh
You will need to add your board to _multibuild and _constraints files. Also add your board to pre_checkin.sh. It should be added to the list of armv7_jeos_images.
Apart of this, there are three *.in files. Images.kiwi.in: You add here your if you want to use kernel config default or lpae (BOOTKERNEL variable), which kernel boot parameters (e.g. serial console) are needed and which packages you need to build the image. At least your newly created U-Boot package and the corresponding dtb-* package. Latter is created by the kernel-source package, if your dtb is not part of the kernel, you have to add it [4].
uboot-image-install.in: This is called at image creation and can be used if your board needs some firmware blobs to be written to some specific places on the SD card. Sometimes that breaks GPT partitions, so you can also set a flag to force creating the image with MBR.
uboot-image-setup.in: I didn't needed that for my board. You can set U-Boot environment variables and the like. I suppose you could use this instead of enable distro boot in upstream U-Boot.
Hope that helps. Let me know if you have any questions. Actually we would need someone to document the whole process so that it gets easier for other to add support for their board in openSUSE. Feel free to volunteer on that :)
Regards, Matthias
[1] https://build.opensuse.org/package/rdiff/home:mbrugger:bananapi-r2/u-boot?opackage=u-boot&oproject=hardware%3Aboot%3Astaging&rev=11 [2] https://build.opensuse.org/projects/home:mbrugger:bananapi-r2/prjconf [3] https://build.opensuse.org/package/rdiff/home:mbrugger:bananapi-r2/JeOS?opackage=JeOS&oproject=openSUSE%3AFactory%3AARM%3ALive&rev=18 [4] https://github.com/openSUSE/kernel-source/commit/8ff92d07ea655e0ac242ae974a1...
Ok, thanks for the information, I'll have a go at this soon -Alberto -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
participants (2)
-
Alberto Bursi
-
Matthias Brugger