I've been reading through LFS while following the instructions till I got to the point where I needed to compile glibc-2.25 for the actual system.
After running make check, have encountered the following failures:
FAIL: nptl/tst-cond17
FAIL: posix/tst-getaddrinfo4
FAIL: posix/tst-getaddrinfo5
Summary of test results:
3 FAIL
2640 PASS
26 UNSUPPORTED
43 XFAIL
2 XPASS
make[1]: *** [Makefile:355: tests] Error 1
make[1]: Leaving directory '/sources/glibc-2.25'
make: *** [Makefile:9: check] Error 2
Both posix/tst-getaddrinfo4 and posix/tst-getaddrinfo5 failures should pose no real threat as indicated by LFS, but I am not sure about the first failure nptl/tst-cond17.
I have checked the source file and found out that all it does is defining some sort of variable. Here's the code.
#define UNLOCK_AFTER_BROADCAST 1
#include "tst-cond16.c"
Is it not critical to the build process? or should I try to fix it somehow?
EDIT:
The files nptl/tst-cond17.o, nptl/tst-cond17.o.d and nptl/tst-cond17.out are empty, while the contents of the file nptl/tst-cond17.test-result are:
FAIL: nptl/tst-cond17
original exit status 127
I have checked our records, and tst-cond17 is not generally known to generate spurious failures (or as being affected by unfixed kernel bugs). I found a reference to a tst-cond17 failure in the glibc 2.20 release notes, but the submitter comments that, ‘The NPTL failures not mentioned as architecture-independent are thought to result from general unreliability of the board being used for testing.’, so I assume that this does not count.
I would say the tst-cond17 failure is worth investigating further, especially if you can reproduce it.
Related
I’m correctly generating my image Yocto-hardknott-technexion with this:
$ mkdir tn-imx-yocto
$ cd tn-imx-yocto
$ repo init -u https://github.com/TechNexion/tn-imx-yocto-manifest.git -b hardknott_5.10.y-next -m imx-5.10.52-2.1.0.xml
$ repo sync -j8
$ DISTRO=fsl-imx-x11 MACHINE=pico-imx7 BASEBOARD=pi source tn-setup-release.sh -b build-x11-pico-imx7
$ bitbake core-image-base
Then after I run modprobe imx_rpmsg_tty I have issue: virtio_rpmsg_bus virtio0: msg received with no recipient
I tried this: https://community.toradex.com/t/rpmsg-error-virtio-rpmsg-bus-virtio0-msg-received-with-no-recipient/12701
But not solved yet
When I change lines 83 and 102 from src to dst I got the error below(also look at the last photo):
/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c: In function 'StrEchoTask':
/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c:83:75: error: 'dst' undeclared (first use in this function)
result = rpmsg_rtos_recv_nocopy(app_chnl->rp_ept, &rx_buf, &len, &dst, 0xFFFFFFFF);
^
/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c:83:75: note: each undeclared identifier is reported only once for each function it appears in
/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c:63:19: warning: unused variable 'src' [-Wunused-variable]
unsigned long src;
^
make[2]: *** [CMakeFiles/rpmsg_str_echo_freertos_example.dir/build.make:94: CMakeFiles/rpmsg_str_echo_freertos_example.dir/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c.obj] Erro 1
make[2]: ** Esperando que outros processos terminem.
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/rpmsg_str_echo_freertos_example.dir/all] Erro 2
The error is being printed on line 761:
https://elixir.bootlin.com/linux/latest/source/drivers/rpmsg/virtio_rpmsg_bus.c#L761
How to solve?
edited: I think the problem can be stay in Vring[0] Vring1. Link below. Because I can put
#define VRING0_BASE 0xBFFF0000
#define VRING1_BASE 0xBFFF8000
in platform_info.c But I can't do changes in imx_rpmsg.c
https://imxdev.gitlab.io/tutorial/Multicore_communication_on_WaRP7_using_Remote_Processor_Messaging_bus_(RPMsg)/
Good morning,
We got the same problem in our project when there was no destination address set in message coming from the real-time controller (M7 in our case; Before we had M4. both in imx8-derivates).
Attached you see the tx-no copy call of our implementation. First try in my case was to extract the messages from downstream message and swap the addresses.
the call; Here we use the addresses stored in the bwloe stated list
The list with our channels (we build the kernel-module separately to add those cahnnel names
For a first try, send a message from Linux to sub-core, take the sender's address and set it as destination in the answer.
Hopefully you can get it running with this information. Please let me know.
I started to resolve my issue after on 04/13/2022 When I edited this post/issue and put this link: https://imxdev.gitlab.io/tutorial/Multicore_communication_on_WaRP7_using_Remote_Processor_Messaging_bus_(RPMsg)/
In freertos-tn/middleware/multicore/open-amp/porting/imx7d-m4/platform_info.c file #define VRING1_BASE correct is 0x9FFF8000
But in my platform_info.c was 0x9FFF0000
Now, I can run RPMsg with str_echo_freertos script/example:
Referring to this answer, I'm trying the following to run Z3 in parallel from SBV:
runSMTWith z3{extraArgs = ["parallel.true"]} $ do ...
However, the above leads to the following exception:
*** Exception:
*** Data.SBV: fd:21: hGetLine: end of file:
***
*** Sent : (set-option :print-success true)
***
*** Executable: /usr/local/bin/z3
*** Options : -nw -in -smt2
***
*** Hint : Solver process prematurely ended communication.
*** It is likely it was terminated because of a seg-fault.
*** Run with 'transcript=Just "bad.smt2"' option, and feed
*** the generated "bad.smt2" file directly to the solver
*** outside of SBV for further information.
If I remove extraArgs and simply go with the default thing (even using runSMT), the computation works perfectly well.
There was a typo in that answer. The correct invocation is:
runSMTWith z3{extraArgs = ["parallel.enabled=true"]} $ do ..
Try it like that and see if it works better.
Note that to debug these sorts of things, what SBV recommended is the right way to go. That is, run it with transcript=Just "bad.smt2" and feed bad.smt2 to z3 (or whichever solver you were using) with the same parameters outside of Haskell to see if there might be some other errors/warnings that are coming out of z3.
I get an error while building an image using Yocto (dizzy):
ERROR: Creation of tar /mnt/workspace/build/tmp/deploy/tar/xev-dbg-1.2.1-r0.tar.gz failed.
and bitbake command fails with the following report:
No currently running tasks (6291 of 6292)
NOTE: Tasks Summary: Attempted 6292 tasks of which 18 didn't need to be rerun and all succeeded.
Summary: There were 13 WARNING messages shown.
Summary: There were 3 ERROR messages shown, returning a non-zero exit code.
If I check the file xev-dbg-1.2.1-r0.tar.gz, I get:
$ file /mnt/workspace/build/tmp/deploy/tar/xev-dbg-1.2.1-r0.tar.gz
/mnt/workspace/build/tmp/deploy/tar/xev-dbg-1.2.1-r0.tar.gz: gzip compressed data, from Unix, last modified: Mon Mar 27 20:19:55 201
and it is the same case for the remaining two errors.
I am confused:
if there was an error, why bitbake is reporting that all tasks succeeded?
If the file were successfully created, why bitbake exits with non zero value?
Bitbake did not return a 0 exit-code. This mean that there are errors in the bitbake process.
There are 3 errors when it is trying to create the tar files as shown.
The compressed file is there but it is not complete. E.g. Just like how you could download a file and interrupt it and the download file is still there. So we usually use md5sum or some kind of hash number to check on the completeness of the file.
A better understanding might be: Bitbake attempted to run 6292 task. 18 of them do not need to rerun. Bitbake attempted to rerun the rest 6274(6292-18) and succeeded in rerunning them. This does not mean that all of them are successfully compiled. In the process of rerunning them, there are 13 warnings and and 3 errors appeared. Because of the 3 errors, bitbake returns with a non-zero exit code.
No currently running tasks (6291 of 6292)
NOTE: Tasks Summary: Attempted 6292 tasks of which 18 didn't need to be rerun and all succeeded.
Summary: There were 13 WARNING messages shown.
Summary: There were 3 ERROR messages shown, returning a non-zero exit code.
Fatal Error -32988: LoadLibrary failed, rc=193 [MsgId: MERR-32988]
Fatal Error -26000: xfbLrwiWebInfraGlobalInitOK failed [MsgId: MERR-26000]
Warning: Extension lrwreplaymain.dll reports error -1 on call to function ExtPerProcessInitialize
Error: Thread Context: Call to service of the driver failed, reason - thread context wasn't initialized on this thread.
Recording is passed but cannot replayed due to the above error.
Thanks for the help in advance.
Either lrwreplaymain.dll or some of the DLLs it depends on were corrupted (error code 193 = ERROR_BAD_EXE_FORMAT). This may have been caused by virus attack, file system corruption etc.
The easiest solution is to re-install LoadRunner. You can also check which DLLs are corrupted by means of the Dependency Walker x86. Just start it and open <LoadRunner installation folder>\bin\lrwreplaymain.dll
I have a Linux module, which has a debug function and I just want to call that function in debug mode.
Now I have code like this:
if (console_loglevel >= CONSOLE_LOGLEVEL_DEBUG)
dump_my_message(dev, my_msg);
But when build this code in linux-next, it will throw below error:
CHK include/generated/uapi/linux/version.h
Kernel: arch/x86/boot/bzImage is ready (#2)
Building modules, stage 2.
MODPOST 2738 modules
ERROR: "console_printk" [drivers/mymodule.ko] undefined!
scripts/Makefile.modpost:91: recipe for target '__modpost' failed
make[1]: *** [__modpost] Error 1
Makefile:1117: recipe for target 'modules' failed
make: *** [modules] Error 2
Can you help to find out how to make this work? thanks!!!
The compilation error is caused by the fact that console_printk symbol is not exported so it cannot be used by modules.
What you really should use, however, is Dynamic debug functionality and its pr_debug()/dev_dbg() functions.
Basically what you need is to ensure that CONFIG_DYNAMIC_DEBUG is enabled in your kernel, use dev_dbg() in all places where you want to write some debugging code and then dynamically enable your debug messages, for example:
To enable all the messages in your module, add dyndbg=+p at the end of your insmod/modprobe call.
To selectively enable only some of the messages, use query language described in the documentation. For example, to only enable messages from functions foo() and bar() in your module, use:
insmod mymodule.ko dyndbg="func foo +p; func bar +p"