New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a kernel recipe for kernel 4.1 #18
Comments
Hi garugans, just to know if you have made some progress on this ? I saw on udoo github that they make some progress |
Not startend so no progress ;) for quad there are even mainline patches available. But in this case etnaviv will be needed for opengl. I do not know if this works with QT5 |
I moved forward to morty and I added the u-boot-fscl and the linux-imx (kernel v4.1.15) recipes from meta-freescale to my project. The kernel from @fmntf doesn't compile (the do_compile_kernelmodules() task fails). The linux-imx sources do compile for the UDOO NEO (I dropped the Quad) but I stay blocked at boot:
I use the DTS and the defconfig file from the repository of @fmntf. U-Boot printenv:
Any idea? Seems like the MMC sdcard isn't recognised :/ I directly wrote the image to my scdard using:
I didn't have to use the |
That issue if fixed on my kernel: fmntf/linux_kernel@0dffbfa |
Thanks @fmntf but I already use your DTS and defonconfig files. Freescale kernel doesn't have a proper support for the UDOO NEO. Maybe you could fix the issue with kernel modules in your kernel source ? UDOOboard/linux_kernel#23 (comment) Here is my layer : https://github.com/cyrilfr/meta-udoo |
@cyrilfr For the morty branch the manual call to the wic tool is not needed anymore. It looks like an issue with the initialization of the mmc. From your kernel log the mmc seems not be proper initialized:
The Mapping is done imx6sx-udoo-neo.dtsi#L19 U-Boot sets the root path to
|
@graugans Yes you're right and as you can see U-Boot loads the right DTB file so it should theoretically map the mmc0 as it includes the mentioned DTSI file. I've never been able to compile the sources from the fork https://github.com/fmntf/linux_kernel/tree/4.1.15_1.x-udoo . I wonder if this one is able to boot. If yes, with which version of U-Boot? |
Tomorrow I will try to rebuild it. I also have a newever kernel (4.1.15_2.0.0) on another computer, but I have forgotten to push it to GitHub. I used U-boot 2015 and 2016. They both worked fine. |
I tried with u-boot-fslc from this recipe of meta-freescale. I also compiled the kernel with linux-imx also from meta-freescale layer. There is u-boot-imx and u-boot-fslc, linux-imx and linux-fslc recipes actually. I'll have a look on what are the differences. This is probably more clever to use u-boot-imx with linux-imx or your fork if it comes from linux-imx. |
@cyrilfr It should not really depend on the U-Boot. The kernel is orchestrated by the device-tree, the only influence U-Boot does have in this case is the |
Yes so I edited my recipe to use linux-fslc instead. The kernel compiles but I have an error while compiling the kernel-module-imx-gpu-viv_5.0.11 module.
|
Please try to build this branch: https://github.com/fmntf/linux_kernel/tree/4.1.15_2.x-udoo
|
It doesn't compile that way as the default udoo_neo_defconfig file enable ttyMCC which is not supported anymore. Otherwise, it compiles. There is probably an issue with the recipe or the OpenEmbedded environment. I'll have a look on this. |
Sorry, in the directory where I have built 4.1.15-2.0.0 I had some uncommitted changes (an initial draft of ttyMCC on 4.1). Btw, if you disable ttyMCC from defconfig you should be able to build a fully working kernel. SD card should work too. |
Well, it does compile directly with make, compiling with BitBake (in OpenEmbedded) still doesn't work for me. Here is the most important part of the logs :
But surprisingly (or not), the file |
@cyrilfr This maybe caused by an issue with out of source builds. You can try to set I mostly debug stuff like this with
|
@graugans That was the issue! Unfortunately, it still doesn't boot correctly. The symptom is still a wait on root device /dev/mmcblk0p1. Maybe an error in the WIC script? |
No, wic is just for creating the image. I guess the issue is kernel related. I'll check on Friday or Saturday. |
I have the same problem. I tracked the -110 error to the function "mmc_sd_get_cid". I hope this helps the smarter more experienced people to find a solution. |
Hi all, this week i had a formation on yocto and linux embedded with phytec in France. During the training we use there mira3 board (imx6 quad like udoo quad and seco sbc a62). Phytec are on linux mainline for linux-kernel (very interesting for maintaining and update !). Perhaps we could have a look on their repository to check if we can adapt something to our card ...) . Otherwise they use barebox for boot loader. Actually i'm trying to make a meta for the openZwave library, i let you know on udoo forum ... |
I think I found a(the?) solution: On the other hand shouldn't the kernel be able to figure this out? |
@JochenLoeser Have you checked the schematics how the 1.8v is generated? I have so much i.mx6 boards floating arround not sure how this is done in UDOO at the moment. The frequency and voltages is still a mysterium in device tree for me as-well. I guess the handling of regulator have changed in 4.x kernels. |
My first thought (before I even found this issue) was that the inversion of the chip-detect pin ( fmntf/linux_kernel@0dffbfa#diff-c63642f2e8268f6942b422d66eeda0e0L356 ) was a mistake. So I measured the supply voltage at the sdcard connector: 3.3V I have to double check with the real board but according to the schematics the sdcard VDD is the same net as the Arduino power supply on the pinheaders. This should be fixed at 3.3V. It would be weird, if the sdcard can say at which voltage the Arduino is running. But as I said I will double check tomorrow. |
Hi guys. The card detect pin logic was probably not checked on Linux 3.14, where it was wrongly declared as GPIO_ACTIVE_HIGH instead of GPIO_ACTIVE_LOW and everything worked. On 4.1, instead, the SD was not detected until that fix. That fix should be fixed on 3.14 too, but since everything works there... |
Hi all, i saw they have some progress on kernel 4.1 ... good news ! Graugans, do you plan to integrate this kernel on morty branch ? |
Remember there is no M4 communication support on this kernel. I don't even know if M4 can boot at all, I did not verify the shared memory pools. |
All, FWIW, I managed to get the onboard wifi working. In my pyro branch I have a few extra commits from #18 as well as some defconfig mods to enable it.: https://github.com/drewmoseley/meta-udoo/tree/pyro |
All, i will test (i think if i have the time ...) the build in pyro with kernel 4.1 (and rpmsg) next week ... i let you known |
Tonight i'm trying to build an image for seco A62 with kernel 4.1 from seco git and the recipe but i have this error during the fetch step : WARNING: linux-seco-4.1.15-r0 do_fetch: Failed to fetch URL git://secogit.seco.com/imx6_release/linux-4-1-15-secoboards-imx6-rel.git;user=betauser:betauser;protocol=https, attempting MIRRORS if available ERROR: linux-seco-4.1.15-r0 do_fetch: Fetcher failure for URL: 'git://secogit.seco.com/imx6_release/linux-4-1-15-secoboards-imx6-rel.git;user=betauser:betauser;protocol=https'. Unable to fetch URL from any source. If you have an idea where is the error (perhaps the login and password) ... |
You can create a local mirror and use this or ask them if it is okay to have a public one. |
@fmntf , i'm trying to build kernel 4.1.15 for secoA62 but i have this error during build that i can't resolve :
Do you have an idea where is the issue ? |
@modjo756 could you please be so kind and attach your defconfig for this build? It looks like you are using the wrong i.mx6 type.
Indicate that device tree is not enabled or there was a renaming between kernel versions.
Is the external watchdog used on the A62. I guess this is missing in defconfig as-well grep for @modjo756 regarding your u-boot question I would prefer the vanilla or the fsl u-boot. Because vendor u-boot versions tend to be outdated. And there are some really nice features like generic $bootcmd |
@graugans , no problems ! i use the defconfig of seco here. I also updated my git with the modification that i already did. edit : |
I have disabled imx6UL,SX ... just keep quad but same error (with quad) :
@graugans , you are right about the external watchdog, i find in apx_wdog-trigger.h (arch/arm/mach-imx) a if ( of_machine_is_compatible("fsl,imx6q-SBC_A62") ||
of_machine_is_compatible("fsl,imx6dl-SBC_A62") ) {
apx_wdog_trigger_work_init(1);
/* set clock CKO2 to use the USBH1 with external clock */
np = of_find_node_by_path("/external_clocks");
if ( !np ) {
pr_warn ("%s: failed to get %s structure\n", __func__, "/external_clocks");
goto put_node;
}
p_clk = of_clk_get (np, 0);
if ( IS_ERR(p_clk) ) {
pr_warn("%s: failed to get clock\n", __func__);
goto put_node;
}
ret = clk_prepare_enable (p_clk);
if (ret) {
pr_err ("can't enable clock\n");
} else {
pr_info ("clock enabled\n");
}
} But i didn't know how to declare it in defconfig, i have tried : seco add : |
@modjo756 you'll need a |
Sorry for my low knowledge, but can you explain more the utility of this file please ? |
@patrykk perhaps you can help on this ... |
@drewmoseley , i tested your last version of pyro branch with udooneo , good work ! But i have some issues. with that the kernel build fine with rpmsg driver. When i boot the card (with m4 core activated) this driver didn't load automatically, i need to The log of the card boot |
Thank you! I have added you as collaborator, you can commit your patch on the 4.1.15_2.x-udoo branch. |
@fmntf sorry but i can't push to your git : |
Sorry. Try now. |
Done ! |
@modjo756 do you know that the uEnv.txt stuff worked prior to my change? I loaded up a morty build and it doesn't seem to work on the Neo. I see the settings for it in EXTRA_ENV_SETTINGS in udoo_quad_dual.h but not udoo_neo.h. |
@drewmoseley For me it works fine on krogoth branch (in neo/quad/sa62) but since Morty it didn't ! |
OK. That's a bit odd. It looks like 0001-UDOO-Quad-Dual-support.patch is adding that to the default environment, even in morty whereas 0002-Added-UDOO-Neo-support.patch is not. My understanding is that upstream U-Boot has changed a bit as regards default boot commands and related environment settings, trying to standardize a bit better across platforms, so it's possible the missing uEnv.txt processing is due to that. |
Ok. Do you think that we just need to update the udooneo patch like quad to resolve this ? |
@modjo756 perhaps so. Can you verify whether the current quad support for uEnv.txt is functioning? |
@drewmoseley , in pyro branch for quad the uEnv file is not loaded correctly also |
Do you also have a very long boot time, especially to load the WiLink drivers? |
I've never noticed anything in particular. But I don't use it that much so don't have much for comparison. |
At boot it stays for minutes at this steps:
According to this thread : https://e2e.ti.com/support/wireless_connectivity/wilink_wifi_bluetooth/f/307/t/369363 it seems that the |
Actually the long boot time has nothing to do with the wl18xx driver. It is related to the random generator causing a delay to start wpa_supplicant. The
Edit : |
I found a solution by adding the |
@cyrilfr , could you add a link to your recipe for rng-tools please ? |
FWIW, I recently managed to get the Udooneo build running in Yocto sumo and master. Additionally I was able to switch to kernel linux-fslc version 4.17.4. I have it working on rocko, sumo and master in my fork here https://github.com/drewmoseley/meta-udoo The GPU driver does not build but I have tested a basic boot, including wifi and remote login. |
Thanks to @fmntf there is a kernel 4.1 port available for udoo boards the branch is located in his kernel repo
The text was updated successfully, but these errors were encountered: