How to build Real time image with yocto? - raspberry-pi3

iam New to the Yocto and i trying to build RT iamge with yocto.
using ubuntu version :20.04
yocto branch: thud
And i built minimal image kernel version.
VERSION = 4
PATCHLEVEL = 14
SUBLEVEL = 112
But unable to find patch-4.14.112-rtXX.patch patch in this path to make it RT image:
(https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/)
issue:
1.How to find what kernal version will build by bitbake before giving "bitbake core-image-minimal" command?(because some of the rt patches are not present in above link and while applying, version of patches should match..?)
2.How to apply PREEMPT_RT patches?
Referred Document:
https://archive.fosdem.org/2018/schedule/event/rt_linux_with_yocto/attachments/slides/2684/export/events/attachments/rt_linux_with_yocto/slides/2684/Yocto_RT.pdf
In above pdf till Building minimal image steps were completed.

To know the yocto kernel version you are using, just type bitbake -e virtual/kernel | grep "^PV"
You need to use linux-yocto-rt kenrel instead linux-yocto. You can do this by editing conf/local.conf:
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-rt"
Yocto build for preempt_rt
Real-Time Linux

Related

Buildroot error when building with Ubuntu 21.10

I am trying to compile linux for RISCV Arch using buildroot(busybox). I was using 18.04 and 20.04 previously and had no issues compiling it. Right now, I have upgraded it to 21.10 for building some other stuffs. I have moved my toolchain and I can find it using the which command. When I try to compile linux I get some error which I havn't faced in the earlier versions.
>>> host-m4 1.4.18 Building
In file included from /usr/include/signal.h:328,
from ./signal.h:52,
from c-stack.c:49:
c-stack.c:55:26: error: missing binary operator before token "("
55 | #elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
| ^~~~~~~~
CC closein.o
c-stack.c:134:8: error: variably modified 'buffer' at file scope
134 | char buffer[SIGSTKSZ];
| ^~~~~~
CC closeout.o
I am confused on how different versions can cause this error.
Thanks in advance.
It looks like you have hit a change in GNU C Library version 2.34 that can make SIGSTKSZ non-constant.
From the GNU C Library 2.34 release announcement:
Add _SC_MINSIGSTKSZ and _SC_SIGSTKSZ. When _DYNAMIC_STACK_SIZE_SOURCE or _GNU_SOURCE are defined, MINSIGSTKSZ and SIGSTKSZ are no longer constant on Linux. MINSIGSTKSZ is redefined to sysconf(_SC_MINSIGSTKSZ) and SIGSTKSZ is redefined to sysconf (_SC_SIGSTKSZ). This supports dynamic sized register sets for modern architectural features like Arm SVE.
A possible workaround is to configure buildroot to build host-m4 version 1.4.19 instead of 1.4.18, because it no longer uses SIGSTKSZ.
I saw that error when building on Ubuntu 22.04 for an embedded Linux board using Buildroot. It got stuck when building the host-m4 package. #Ian Abbott is right:
A possible workaround is to configure buildroot to build host-m4 version 1.4.19 instead of 1.4.18, because it no longer uses SIGSTKSZ.
In Buildroot, to update from m4 v 1.4.18 to 1.4.19, simply grab the latest files here: https://github.com/buildroot/buildroot/tree/master/package/m4
As of right now (9 Jan. 2023), the upstream Buildroot m4 version there is
1.4.19, as shown here: https://github.com/buildroot/buildroot/blob/master/package/m4/m4.mk#L7:
################################################################################
#
# m4
#
################################################################################
M4_VERSION = 1.4.19
M4_SOURCE = m4-$(M4_VERSION).tar.xz
M4_SITE = $(BR2_GNU_MIRROR)/m4
M4_LICENSE = GPL-3.0+
M4_LICENSE_FILES = COPYING
$(eval $(host-autotools-package))
How to upgrade/update any buildroot package to the latest upstream version, from the command-line
Here is an example of how to upgrade any buildroot package from the command-line. In these commands, I am upgrading the m4 package, to solve the problem in the OP's question. Change the word m4 in all 3 places to the name of the package you'd like to update:
# initially:
cd path/to/buildroot
git remote add upstream https://github.com/buildroot/buildroot.git
git fetch upstream master
# then (from within the "buildroot" repo or subrepo)
rm -r package/m4
git checkout upstream/master -- package/m4
git add -A
git status
git commit -m "Update m4 library"

Installing Docker + tensorflow on Windows 10

I tried to install tensorflow and docker as followed link https://www.tensorflow.org/install/docker
I downloaded tensorflow image from the tensowflow Hub into the docker and then I tried to test tensorflow python script.
Then I got error message below.
I think it's related with GPU but I just downloaded tensorflow/tensorflow:last and I don't need GPU version.
I thought if I used docker + tensorflow I wouldn't get any error.
Is there anybody who can tell me what's wrong with this..
2020-02-15 08:24:32.759681: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libnvinfer.so.6'; dlerror: libnvinfer.so.6: cannot open shared object file: No such file or directory
2020-02-15 08:24:32.759786: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libnvinfer_plugin.so.6'; dlerror: libnvinfer_plugin.so.6: cannot open shared object file: No such file or directory
2020-02-15 08:24:32.759798: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:30] Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.
As https://www.tensorflow.org/install/docker says, "nvidia-container-runtime is only available for Linux". As for now, there's no way to provide GPU to docker containers if you're using Windows as a host system.

while executing make of i3-gaps, undefined reference to `g_utf8_make_valid' error

After following all instructions from Compiling and Installing page, I have successfully installed all the packages required. After performing ../configure --prefix=/usr --sysconfdir=/etc --disable-sanitizers, I get
build configured:
i3 version: 4.15.0.1-323-gccb1947 (2018-09-28, branch "gaps-next")
is release version: no
build manpages: no
build docs: no
enable debug flags: yes
code coverage: no
enabled sanitizers:
To compile, run:
cd /home/dharmin/i3-gaps/build && make -j8
Now, when I do make or make -j8, I get the following error
./libi3.a(libi3_a-string.o): In function `i3string_from_utf8_with_length':
/home/dharmin/i3-gaps/build/../../i3-gaps/libi3/string.c:59: undefined reference to `g_utf8_make_valid'
collect2: error: ld returned 1 exit status
On a quick google search, I found only one related reddit link. But that did not help solve the problem.
My current i3 version
Binary i3 version: 4.11 (2015-09-30, branch "4.11") © 2009 Michael Stapelberg and contributors
Linux Distribution & Version: Ubuntu 16.04
Thank you in advance for helping :)
I made a Reddit post mentioning this question. I was having the exact same problem and was tinkering away.
My final solution was to download version 4.13*, which does not make a reference to g_utf8_make_valid. If you have all the dependencies installed, it should compile fine.
* You are running 4.11. Installing 4.13 or something newer, depending on how new the libraries you can get are, might work, but I would try to install 4.11 in your case.

h2o.xgboost - no GPUs, no multithreading

I wanted to add this as a comment to this question - is multi-cpu supported by h2o-xgboost? - but apparently my rep is too low.
I am using the latest stable version of h2o (3.14.06).
In order to try and solve this problem i've made sure that gcc is built within my docker image (using apt-get install gcc)
dpkg -l | grep gcc
gcc 4:5.3.1-1ubuntu1 amd64 GNU C compiler
gcc-5 5.4.0-6ubuntu1~16.04.5 amd64 GNU C compiler
**output truncated**
Unfortunately when the cluster is spun up its still reporting:
INFO: Found XGBoost backend with library: xgboost4j
INFO: Your system supports only minimal version of XGBoost (no GPUs, no multithreading)!
Can anyone provide any insights? Clearly I'm missing a piece of the puzzle.
Right now H2O bundles only GPU-enabled and minimal (no GPU, no OMP) version of XGBoost. However, there is an experimental change in branch mm/xgb_upgrade which contains OMP-enabled version of XGBoost (instead of minimal version): https://github.com/h2oai/h2o-3/tree/mm/xgb_upgrade
Building the mm/xgb_upgrade works. Which jira ticket is referring to this issue?

Compile DAHDI on OpenVZ VPS: kernel issue

Kernel version: 2.6.32-042stab057.1
rpm -qa | grep -i kernel result:
vzkernel-headers-2.6.32-042stab057.1.i686
libreport-plugin-kerneloops-2.0.9-5.el6.centos.i686
vzkernel-firmware-2.6.32-042stab057.1.noarch
abrt-addon-kerneloops-2.0.8-6.el6.centos.i686
vzkernel-devel-2.6.32-042stab057.1.i686
when i send the command make i get this error:
You do not appear to have the sources for the 2.6.32-042stab057.1 kernel installed.
OS: Centos 6.3 Final
I am not very familiar with OpenVZ, but from your provided information, looks like you don't have kernel source. You have kernel-devel and kernel-headers, but not the kernel itself.
You may download kernel here:
http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab057.1/vzkernel-2.6.32-042stab057.1.i686.rpm
And then: rpm -ivh vzkernel-2.6.32-042stab057.1.i686.rpm
I had the same issue compiling it on my new VPS. I was able to get it all to install from the files found at http://wiki.openvz.org/Download/kernel/rhel6/042stab057.1
Download/install those RPMs and you'll be good to go.
You need
have access to main node, compile asterisk on it
forward dahdi device to container(via container config)
copy from main node kernel-devel package, compile dahdi in container.
Read this
http://openvz.org/Asterisk_from_source

Resources