freescale / libimxdmabuffer Goto Github PK
View Code? Open in Web Editor NEWLibrary for allocating and managing physically contiguous memory ("DMA memory" or "DMA buffers") on i.MX devices
License: GNU Lesser General Public License v2.1
Library for allocating and managing physically contiguous memory ("DMA memory" or "DMA buffers") on i.MX devices
License: GNU Lesser General Public License v2.1
Hi, I'm working with an iMX8m from SolidRun;
https://www.solid-run.com/product/SRMX8QDW00D03GE008V20C0/
When following the specified configuration instructions;
./waf configure --prefix=PREFIX
Errors relating to not having a specified kernel headers path appear. So I added the following kernel headers path in the configuration;
./waf configure --prefix=PREFIX --imx-linux-headers-path=/usr/src/linux-headers-4.14.104-imx8-sr/include/
This seemed to get us a little closer, now being able to include <linux/mxcfb.h>
. Soon after a load of include errors were cropping up relating to "asm" includes. In the kernel header source files, there is only an "asm-generic", so I thought I created a symlink for asm to see if this would progress things a little further. The following errors appeared in the build config log; (snippet below)
Would you be able to shed a little light on this issue?
In file included from /usr/src/linux-headers-4.14.104-imx8-sr/include/asm/cmpxchg.h:93:0,
from /usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:18,
from /usr/src/linux-headers-4.14.104-imx8-sr/include/linux/atomic.h:5,
from /usr/src/linux-headers-4.14.104-imx8-sr/include/linux/kgdb.h:18,
from /usr/src/linux-headers-4.14.104-imx8-sr/include/linux/fb.h:5,
from /usr/src/linux-headers-4.14.104-imx8-sr/include/uapi/linux/mxcfb.h:31,
from /usr/src/linux-headers-4.14.104-imx8-sr/include/linux/mxcfb.h:24,
from ../test.c:1:
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm-generic/cmpxchg-local.h: In function ‘wrong_size_cmpxchg’:
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm-generic/cmpxchg-local.h:9:2: error: expected declaration specifiers before ‘__noreturn’
__noreturn;
^~~~~~~~~~
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm-generic/cmpxchg-local.h:17:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm-generic/cmpxchg-local.h:56:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
In file included from /usr/src/linux-headers-4.14.104-imx8-sr/include/linux/atomic.h:5:0,
from /usr/src/linux-headers-4.14.104-imx8-sr/include/linux/kgdb.h:18,
from /usr/src/linux-headers-4.14.104-imx8-sr/include/linux/fb.h:5,
from /usr/src/linux-headers-4.14.104-imx8-sr/include/uapi/linux/mxcfb.h:31,
from /usr/src/linux-headers-4.14.104-imx8-sr/include/linux/mxcfb.h:24,
from ../test.c:1:
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:92:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:120:1: note: in expansion of macro ‘ATOMIC_OP_RETURN’
ATOMIC_OP_RETURN(add, +)
^~~~~~~~~~~~~~~~
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:92:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:124:1: note: in expansion of macro ‘ATOMIC_OP_RETURN’
ATOMIC_OP_RETURN(sub, -)
^~~~~~~~~~~~~~~~
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:105:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:128:1: note: in expansion of macro ‘ATOMIC_FETCH_OP’
ATOMIC_FETCH_OP(add, +)
^~~~~~~~~~~~~~~
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:105:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:132:1: note: in expansion of macro ‘ATOMIC_FETCH_OP’
ATOMIC_FETCH_OP(sub, -)
^~~~~~~~~~~~~~~
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:105:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:136:1: note: in expansion of macro ‘ATOMIC_FETCH_OP’
ATOMIC_FETCH_OP(and, &)
^~~~~~~~~~~~~~~
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:105:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:140:1: note: in expansion of macro ‘ATOMIC_FETCH_OP’
ATOMIC_FETCH_OP(or, |)
^~~~~~~~~~~~~~~
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:105:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:144:1: note: in expansion of macro ‘ATOMIC_FETCH_OP’
ATOMIC_FETCH_OP(xor, ^)
^~~~~~~~~~~~~~~
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:82:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘{’ token
{
^
/usr/src/linux-headers-4.14.104-imx8-sr/include/asm/atomic.h:148:1: note: in expansion of macro ‘ATOMIC_OP’
ATOMIC_OP(and, &)`
Howdy,
I'm trying to get the G2D working for allocation, I see to enable ION in the kernel is uses
CONFIG_ION=y
CONFIG_ION_CMA_HEAP=y
in the kernel config, but I'm having a hard time finding how to get the G2D API enabled on the IMX6?
Is there a kernel config for this, or is there more to getting it enabled when building Linux from source?
Hi Carlos,
This member of the struct does not exist in the mentioned kernel version, and its not filtered by IF_LINUX_VERSION_CODE ....
So it can't be built with the above mentioned kernel headers.
Just a quick question, why do you prefer ION rather than HANTRO DWL ? Just wondering.
I have some toolchain named fsl-imx-wayland-glibc-x86_64-core-image-base-cortexa53-crypto-imx8mmevk-toolchain-5.10-hardknott
. Sysroot has old GStreamer 1.18 , so I'm building gstreamer-imx
for GStreamer 1.22.3.
I've set imx headers path to /opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux/usr/include/imx
, build starts but fails with:
[ 9/12] Compiling libimxdmabuffer.pc.in
In file included from ../imxdmabuffer/imxdmabuffer_g2d_allocator.c:1:
../imxdmabuffer/imxdmabuffer_g2d_allocator.c: In function ‘imx_dma_buffer_g2d_allocator_map’:
../imxdmabuffer/imxdmabuffer_g2d_allocator.c:142:11: error: ‘imx_dwl_buffer’ undeclared (first use in this function); did you mean ‘imx_g2d_buffer’?
142 | assert((imx_dwl_buffer->map_flags & flags & IMX_DMA_BUFFER_MAPPING_READWRITE_FLAG_MASK) == (flags & IMX_DMA_BUFFER_MAPPING_READWRITE_FLAG_MASK));
| ^~~~~~~~~~~~~~
../imxdmabuffer/imxdmabuffer_g2d_allocator.c:142:11: note: each undeclared identifier is reported only once for each function it appears in
Could this mean that imx
linux headers are too old in that toolchain?
Full log:
Setting top to : /home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04
Setting out to : /home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04/build
Checking for 'gcc' (C compiler) : aarch64-poky-linux-gcc -mcpu=cortex-a53 -march=armv8-a+crc+crypto -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux
Testing compiler flags -O2 -pipe -g -feliminate-unused-debug-types
Checking if building with these flags works : yes
Checking for compiler switch -O2 : yes
Checking for compiler switch -DPIC : yes
Checking for compiler switch -fPIC : yes
Checking for compiler switch -pedantic : yes
Checking for compiler switch -std=gnu99 : yes
Checking for compiler switch -Wall : yes
Checking for compiler switch -Wextra : yes
Checking for header linux/mxcfb.h : yes
i.MX linux headers path: /opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux/usr/include/imx
Checking for dma-heap allocator support by testing the presence of the DMA_HEAP_IOCTL_ALLOC ioctl : yes
dma-heap device node path: /dev/dma_heap/linux,cma
dma-heap allocates uncached memory : no
Checking for ION allocator support by testing the presence of linux/ion.h : yes
--hantro-decoder-version is not set; disabling DWL allocator
Hantro decoder version: None
Hantro headers path:
checking for linux/fb.h and the IPU header linux/ipu.h : yes
Checking for library g2d : yes
Checking for header g2d.h : yes
checking for linux/pxp_device.h : yes
libimxdmabuffer version 1.1.2
'configure' finished successfully (0.635s)
Waf: Entering directory `/home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04/build'
[ 1/12] Compiling imxdmabuffer/imxdmabuffer_pxp_allocator.c
06:52:51 runner ['aarch64-poky-linux-gcc', '-mcpu=cortex-a53', '-march=armv8-a+crc+crypto', '-fstack-protector-strong', '-O2', '-D_FORTIFY_SOURCE=2', '-Wformat', '-Wformat-security', '-Werror=format-security', '--sysroot=/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux', '-Wextra', '-Wall', '-std=gnu99', '-pedantic', '-fPIC', '-DPIC', '-O2', '-O2', '-pipe', '-g', '-feliminate-unused-debug-types', '-fPIC', '-I.', '-I..', '-I/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux/usr/include/imx', '../imxdmabuffer/imxdmabuffer_pxp_allocator.c', '-c', '-o/home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04/build/imxdmabuffer/imxdmabuffer_pxp_allocator.c.1.o']
[ 2/12] Compiling imxdmabuffer/imxdmabuffer_ion_allocator.c
06:52:51 runner ['aarch64-poky-linux-gcc', '-mcpu=cortex-a53', '-march=armv8-a+crc+crypto', '-fstack-protector-strong', '-O2', '-D_FORTIFY_SOURCE=2', '-Wformat', '-Wformat-security', '-Werror=format-security', '--sysroot=/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux', '-Wextra', '-Wall', '-std=gnu99', '-pedantic', '-fPIC', '-DPIC', '-O2', '-O2', '-pipe', '-g', '-feliminate-unused-debug-types', '-fPIC', '-I.', '-I..', '-I/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux/usr/include/imx', '../imxdmabuffer/imxdmabuffer_ion_allocator.c', '-c', '-o/home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04/build/imxdmabuffer/imxdmabuffer_ion_allocator.c.1.o']
[ 3/12] Compiling imxdmabuffer/imxdmabuffer.c
06:52:51 runner ['aarch64-poky-linux-gcc', '-mcpu=cortex-a53', '-march=armv8-a+crc+crypto', '-fstack-protector-strong', '-O2', '-D_FORTIFY_SOURCE=2', '-Wformat', '-Wformat-security', '-Werror=format-security', '--sysroot=/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux', '-Wextra', '-Wall', '-std=gnu99', '-pedantic', '-fPIC', '-DPIC', '-O2', '-O2', '-pipe', '-g', '-feliminate-unused-debug-types', '-fPIC', '-I.', '-I..', '-I/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux/usr/include/imx', '../imxdmabuffer/imxdmabuffer.c', '-c', '-o/home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04/build/imxdmabuffer/imxdmabuffer.c.1.o']
[ 4/12] Compiling imxdmabuffer/imxdmabuffer_g2d_allocator.c
06:52:51 runner ['aarch64-poky-linux-gcc', '-mcpu=cortex-a53', '-march=armv8-a+crc+crypto', '-fstack-protector-strong', '-O2', '-D_FORTIFY_SOURCE=2', '-Wformat', '-Wformat-security', '-Werror=format-security', '--sysroot=/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux', '-Wextra', '-Wall', '-std=gnu99', '-pedantic', '-fPIC', '-DPIC', '-O2', '-O2', '-pipe', '-g', '-feliminate-unused-debug-types', '-fPIC', '-I.', '-I..', '-I/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux/usr/include/imx', '../imxdmabuffer/imxdmabuffer_g2d_allocator.c', '-c', '-o/home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04/build/imxdmabuffer/imxdmabuffer_g2d_allocator.c.1.o']
[ 5/12] Compiling imxdmabuffer/imxdmabuffer_ipu_priv.c
06:52:51 runner ['aarch64-poky-linux-gcc', '-mcpu=cortex-a53', '-march=armv8-a+crc+crypto', '-fstack-protector-strong', '-O2', '-D_FORTIFY_SOURCE=2', '-Wformat', '-Wformat-security', '-Werror=format-security', '--sysroot=/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux', '-Wextra', '-Wall', '-std=gnu99', '-pedantic', '-fPIC', '-DPIC', '-O2', '-O2', '-pipe', '-g', '-feliminate-unused-debug-types', '-fPIC', '-I.', '-I..', '-I/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux/usr/include/imx', '../imxdmabuffer/imxdmabuffer_ipu_priv.c', '-c', '-o/home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04/build/imxdmabuffer/imxdmabuffer_ipu_priv.c.1.o']
[ 6/12] Compiling imxdmabuffer/imxdmabuffer_dma_heap_allocator.c
06:52:51 runner ['aarch64-poky-linux-gcc', '-mcpu=cortex-a53', '-march=armv8-a+crc+crypto', '-fstack-protector-strong', '-O2', '-D_FORTIFY_SOURCE=2', '-Wformat', '-Wformat-security', '-Werror=format-security', '--sysroot=/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux', '-Wextra', '-Wall', '-std=gnu99', '-pedantic', '-fPIC', '-DPIC', '-O2', '-O2', '-pipe', '-g', '-feliminate-unused-debug-types', '-fPIC', '-I.', '-I..', '-I/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux/usr/include/imx', '../imxdmabuffer/imxdmabuffer_dma_heap_allocator.c', '-c', '-o/home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04/build/imxdmabuffer/imxdmabuffer_dma_heap_allocator.c.1.o']
[ 7/12] Compiling imxdmabuffer/imxdmabuffer_ipu_allocator.c
06:52:51 runner ['aarch64-poky-linux-gcc', '-mcpu=cortex-a53', '-march=armv8-a+crc+crypto', '-fstack-protector-strong', '-O2', '-D_FORTIFY_SOURCE=2', '-Wformat', '-Wformat-security', '-Werror=format-security', '--sysroot=/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux', '-Wextra', '-Wall', '-std=gnu99', '-pedantic', '-fPIC', '-DPIC', '-O2', '-O2', '-pipe', '-g', '-feliminate-unused-debug-types', '-fPIC', '-I.', '-I..', '-I/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux/usr/include/imx', '../imxdmabuffer/imxdmabuffer_ipu_allocator.c', '-c', '-o/home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04/build/imxdmabuffer/imxdmabuffer_ipu_allocator.c.1.o']
[ 8/12] Compiling test/test-alloc.c
06:52:51 runner ['aarch64-poky-linux-gcc', '-mcpu=cortex-a53', '-march=armv8-a+crc+crypto', '-fstack-protector-strong', '-O2', '-D_FORTIFY_SOURCE=2', '-Wformat', '-Wformat-security', '-Werror=format-security', '--sysroot=/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux', '-Wextra', '-Wall', '-std=gnu99', '-pedantic', '-fPIC', '-DPIC', '-O2', '-O2', '-pipe', '-g', '-feliminate-unused-debug-types', '-I.', '-I..', '../test/test-alloc.c', '-c', '-o/home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04/build/test/test-alloc.c.4.o']
[ 9/12] Compiling libimxdmabuffer.pc.in
In file included from ../imxdmabuffer/imxdmabuffer_g2d_allocator.c:1:
../imxdmabuffer/imxdmabuffer_g2d_allocator.c: In function ‘imx_dma_buffer_g2d_allocator_map’:
../imxdmabuffer/imxdmabuffer_g2d_allocator.c:142:11: error: ‘imx_dwl_buffer’ undeclared (first use in this function); did you mean ‘imx_g2d_buffer’?
142 | assert((imx_dwl_buffer->map_flags & flags & IMX_DMA_BUFFER_MAPPING_READWRITE_FLAG_MASK) == (flags & IMX_DMA_BUFFER_MAPPING_READWRITE_FLAG_MASK));
| ^~~~~~~~~~~~~~
../imxdmabuffer/imxdmabuffer_g2d_allocator.c:142:11: note: each undeclared identifier is reported only once for each function it appears in
Waf: Leaving directory `/home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04/build'
Build failed
-> task in 'imxdmabuffer' failed with exit status 1:
{task 139920145773280: c imxdmabuffer_g2d_allocator.c -> imxdmabuffer_g2d_allocator.c.1.o}
['aarch64-poky-linux-gcc', '-mcpu=cortex-a53', '-march=armv8-a+crc+crypto', '-fstack-protector-strong', '-O2', '-D_FORTIFY_SOURCE=2', '-Wformat', '-Wformat-security', '-Werror=format-security', '--sysroot=/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux', '-Wextra', '-Wall', '-std=gnu99', '-pedantic', '-fPIC', '-DPIC', '-O2', '-O2', '-pipe', '-g', '-feliminate-unused-debug-types', '-fPIC', '-I.', '-I..', '-I/opt/fsl-imx-wayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux/usr/include/imx', '../imxdmabuffer/imxdmabuffer_g2d_allocator.c', '-c', '-o/home/vincas/.conan/data/imxdmabuffer/1.1.2/mycompany/stable/build/88abcc74e28af662737a51ad32b4ade060691a04/build/imxdmabuffer/imxdmabuffer_g2d_allocator.c.1.o']
if I run ./waf configure --prefix=/usr/local/
I get:
--imx-linux-headers-path is not set
Since machine (NXP i.MX 8M Mini 4xCortex-A53) runs on non-upstream kernel image ( 4.14.98-2.3.0+ #1 SMP PREEMPT Mon Nov 8 02:36:19 UTC 2021 aarch64 GNU/Linux), i.e. not Debian's one, I need to get NXP kernel headers for that version to build this library?
Are these headers freely available from "somewhere"?
Thanks!
I've tried to launch Qt-base application that uses qmlglsink
not as root:
Aug 10 13:27:08 imx8mmevk run_neway_n111.sh[1654]: 0:00:07.644457131 1654 0xaaab07708a00 ERROR imxdmaheapallocator gstimxdmaheapallocator.c:252:gst_imx_dma_heap_allocator_activate:<imxdmaheapallocator0> could not create dma-heap allocator: Permission denied (13)
Aug 10 13:27:08 imx8mmevk run_neway_n111.sh[1654]: 0:00:07.644589505 1654 0xaaab07708a00 ERROR imxdmabufallocator gstimxdmabufallocator.c:279:gst_imx_dmabuf_allocator_activate:<imxdmaheapallocator0> could not activate i.MX DMA-BUF allocator
Aug 10 13:27:08 imx8mmevk run_neway_n111.sh[1654]: MyApp: ../imxdmabuffer/imxdmabuffer.c:84: imx_dma_buffer_deallocate: Assertion `buffer != NULL' failed.
I had to add user to video
group to access fb0
at first, but it seems I need more permissions to utilize DMABuff on this imx8mm device..?
Or is it impossible to use this feature at all not running root?
Hello, I'm having trouble getting the libimxdmabuffer to compile for the IMX6Q as my toolchain sysroot doesn't seem to contain the linux/mxcfb.h header file. I'm wondering how to obtain this or resolve this error to get the package building? It looks like this issue had cropped up before but I couldn't find a resolution publicly.
Command being ran to build:
./waf configure --prefix=$PREFIX --imx-linux-headers-path=/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include
Error encountered:
Checking for header linux/mxcfb.h : not found
Could not find linux/mxcfb.h in path "/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include" specified by --imx-linux-headers-path
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.