Giter Site home page Giter Site logo

jeffycn / mirrors Goto Github PK

View Code? Open in Web Editor NEW
12.0 4.0 5.0 5.97 GB

Mirrors of Rockchip BSP repositories, only contains yocto related ones to keep it thin since the yocto would try to clone the whole repository.

License: Other

Makefile 0.38% Shell 0.06% C 97.45% Assembly 1.89% C++ 0.03% Perl 0.10% Awk 0.01% Python 0.04% Yacc 0.01% Lex 0.01% UnrealScript 0.01% SmPL 0.01% Gherkin 0.01% XS 0.01% Raku 0.01% Roff 0.01% Clojure 0.01% M4 0.01% GDB 0.01%

mirrors's Introduction

        Linux kernel release 4.x <http://kernel.org/>

These are the release notes for Linux version 4.  Read them carefully,
as they tell you what this is all about, explain how to install the
kernel, and what to do if something goes wrong. 

WHAT IS LINUX?

  Linux is a clone of the operating system Unix, written from scratch by
  Linus Torvalds with assistance from a loosely-knit team of hackers across
  the Net. It aims towards POSIX and Single UNIX Specification compliance.

  It has all the features you would expect in a modern fully-fledged Unix,
  including true multitasking, virtual memory, shared libraries, demand
  loading, shared copy-on-write executables, proper memory management,
  and multistack networking including IPv4 and IPv6.

  It is distributed under the GNU General Public License - see the
  accompanying COPYING file for more details. 

ON WHAT HARDWARE DOES IT RUN?

  Although originally developed first for 32-bit x86-based PCs (386 or higher),
  today Linux also runs on (at least) the Compaq Alpha AXP, Sun SPARC and
  UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, Cell,
  IBM S/390, MIPS, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64, AXIS CRIS,
  Xtensa, Tilera TILE, AVR32, ARC and Renesas M32R architectures.

  Linux is easily portable to most general-purpose 32- or 64-bit architectures
  as long as they have a paged memory management unit (PMMU) and a port of the
  GNU C compiler (gcc) (part of The GNU Compiler Collection, GCC). Linux has
  also been ported to a number of architectures without a PMMU, although
  functionality is then obviously somewhat limited.
  Linux has also been ported to itself. You can now run the kernel as a
  userspace application - this is called UserMode Linux (UML).

DOCUMENTATION:

 - There is a lot of documentation available both in electronic form on
   the Internet and in books, both Linux-specific and pertaining to
   general UNIX questions.  I'd recommend looking into the documentation
   subdirectories on any Linux FTP site for the LDP (Linux Documentation
   Project) books.  This README is not meant to be documentation on the
   system: there are much better sources available.

 - There are various README files in the Documentation/ subdirectory:
   these typically contain kernel-specific installation notes for some 
   drivers for example. See Documentation/00-INDEX for a list of what
   is contained in each file.  Please read the Changes file, as it
   contains information about the problems, which may result by upgrading
   your kernel.

 - The Documentation/DocBook/ subdirectory contains several guides for
   kernel developers and users.  These guides can be rendered in a
   number of formats:  PostScript (.ps), PDF, HTML, & man-pages, among others.
   After installation, "make psdocs", "make pdfdocs", "make htmldocs",
   or "make mandocs" will render the documentation in the requested format.

INSTALLING the kernel source:

 - If you install the full sources, put the kernel tarball in a
   directory where you have permissions (eg. your home directory) and
   unpack it:

     xz -cd linux-4.X.tar.xz | tar xvf -

   Replace "X" with the version number of the latest kernel.

   Do NOT use the /usr/src/linux area! This area has a (usually
   incomplete) set of kernel headers that are used by the library header
   files.  They should match the library, and not get messed up by
   whatever the kernel-du-jour happens to be.

 - You can also upgrade between 4.x releases by patching.  Patches are
   distributed in the xz format.  To install by patching, get all the
   newer patch files, enter the top level directory of the kernel source
   (linux-4.X) and execute:

     xz -cd ../patch-4.x.xz | patch -p1

   Replace "x" for all versions bigger than the version "X" of your current
   source tree, _in_order_, and you should be ok.  You may want to remove
   the backup files (some-file-name~ or some-file-name.orig), and make sure
   that there are no failed patches (some-file-name# or some-file-name.rej).
   If there are, either you or I have made a mistake.

   Unlike patches for the 4.x kernels, patches for the 4.x.y kernels
   (also known as the -stable kernels) are not incremental but instead apply
   directly to the base 4.x kernel.  For example, if your base kernel is 4.0
   and you want to apply the 4.0.3 patch, you must not first apply the 4.0.1
   and 4.0.2 patches. Similarly, if you are running kernel version 4.0.2 and
   want to jump to 4.0.3, you must first reverse the 4.0.2 patch (that is,
   patch -R) _before_ applying the 4.0.3 patch. You can read more on this in
   Documentation/applying-patches.txt

   Alternatively, the script patch-kernel can be used to automate this
   process.  It determines the current kernel version and applies any
   patches found.

     linux/scripts/patch-kernel linux

   The first argument in the command above is the location of the
   kernel source.  Patches are applied from the current directory, but
   an alternative directory can be specified as the second argument.

 - Make sure you have no stale .o files and dependencies lying around:

     cd linux
     make mrproper

   You should now have the sources correctly installed.

SOFTWARE REQUIREMENTS

   Compiling and running the 4.x kernels requires up-to-date
   versions of various software packages.  Consult
   Documentation/Changes for the minimum version numbers required
   and how to get updates for these packages.  Beware that using
   excessively old versions of these packages can cause indirect
   errors that are very difficult to track down, so don't assume that
   you can just update packages when obvious problems arise during
   build or operation.

BUILD directory for the kernel:

   When compiling the kernel, all output files will per default be
   stored together with the kernel source code.
   Using the option "make O=output/dir" allow you to specify an alternate
   place for the output files (including .config).
   Example:

     kernel source code: /usr/src/linux-4.X
     build directory:    /home/name/build/kernel

   To configure and build the kernel, use:

     cd /usr/src/linux-4.X
     make O=/home/name/build/kernel menuconfig
     make O=/home/name/build/kernel
     sudo make O=/home/name/build/kernel modules_install install

   Please note: If the 'O=output/dir' option is used, then it must be
   used for all invocations of make.

CONFIGURING the kernel:

   Do not skip this step even if you are only upgrading one minor
   version.  New configuration options are added in each release, and
   odd problems will turn up if the configuration files are not set up
   as expected.  If you want to carry your existing configuration to a
   new version with minimal work, use "make oldconfig", which will
   only ask you for the answers to new questions.

 - Alternative configuration commands are:

     "make config"      Plain text interface.

     "make menuconfig"  Text based color menus, radiolists & dialogs.

     "make nconfig"     Enhanced text based color menus.

     "make xconfig"     X windows (Qt) based configuration tool.

     "make gconfig"     X windows (GTK+) based configuration tool.

     "make oldconfig"   Default all questions based on the contents of
                        your existing ./.config file and asking about
                        new config symbols.

     "make silentoldconfig"
                        Like above, but avoids cluttering the screen
                        with questions already answered.
                        Additionally updates the dependencies.

     "make olddefconfig"
                        Like above, but sets new symbols to their default
                        values without prompting.

     "make defconfig"   Create a ./.config file by using the default
                        symbol values from either arch/$ARCH/defconfig
                        or arch/$ARCH/configs/${PLATFORM}_defconfig,
                        depending on the architecture.

     "make ${PLATFORM}_defconfig"
                        Create a ./.config file by using the default
                        symbol values from
                        arch/$ARCH/configs/${PLATFORM}_defconfig.
                        Use "make help" to get a list of all available
                        platforms of your architecture.

     "make allyesconfig"
                        Create a ./.config file by setting symbol
                        values to 'y' as much as possible.

     "make allmodconfig"
                        Create a ./.config file by setting symbol
                        values to 'm' as much as possible.

     "make allnoconfig" Create a ./.config file by setting symbol
                        values to 'n' as much as possible.

     "make randconfig"  Create a ./.config file by setting symbol
                        values to random values.

     "make localmodconfig" Create a config based on current config and
                           loaded modules (lsmod). Disables any module
                           option that is not needed for the loaded modules.

                           To create a localmodconfig for another machine,
                           store the lsmod of that machine into a file
                           and pass it in as a LSMOD parameter.

                   target$ lsmod > /tmp/mylsmod
                   target$ scp /tmp/mylsmod host:/tmp

                   host$ make LSMOD=/tmp/mylsmod localmodconfig

                           The above also works when cross compiling.

     "make localyesconfig" Similar to localmodconfig, except it will convert
                           all module options to built in (=y) options.

   You can find more information on using the Linux kernel config tools
   in Documentation/kbuild/kconfig.txt.

 - NOTES on "make config":

    - Having unnecessary drivers will make the kernel bigger, and can
      under some circumstances lead to problems: probing for a
      nonexistent controller card may confuse your other controllers

    - Compiling the kernel with "Processor type" set higher than 386
      will result in a kernel that does NOT work on a 386.  The
      kernel will detect this on bootup, and give up.

    - A kernel with math-emulation compiled in will still use the
      coprocessor if one is present: the math emulation will just
      never get used in that case.  The kernel will be slightly larger,
      but will work on different machines regardless of whether they
      have a math coprocessor or not.

    - The "kernel hacking" configuration details usually result in a
      bigger or slower kernel (or both), and can even make the kernel
      less stable by configuring some routines to actively try to
      break bad code to find kernel problems (kmalloc()).  Thus you
      should probably answer 'n' to the questions for "development",
      "experimental", or "debugging" features.

COMPILING the kernel:

 - Make sure you have at least gcc 3.2 available.
   For more information, refer to Documentation/Changes.

   Please note that you can still run a.out user programs with this kernel.

 - Do a "make" to create a compressed kernel image. It is also
   possible to do "make install" if you have lilo installed to suit the
   kernel makefiles, but you may want to check your particular lilo setup first.

   To do the actual install, you have to be root, but none of the normal
   build should require that. Don't take the name of root in vain.

 - If you configured any of the parts of the kernel as `modules', you
   will also have to do "make modules_install".

 - Verbose kernel compile/build output:

   Normally, the kernel build system runs in a fairly quiet mode (but not
   totally silent).  However, sometimes you or other kernel developers need
   to see compile, link, or other commands exactly as they are executed.
   For this, use "verbose" build mode.  This is done by inserting
   "V=1" in the "make" command.  E.g.:

     make V=1 all

   To have the build system also tell the reason for the rebuild of each
   target, use "V=2".  The default is "V=0".

 - Keep a backup kernel handy in case something goes wrong.  This is 
   especially true for the development releases, since each new release
   contains new code which has not been debugged.  Make sure you keep a
   backup of the modules corresponding to that kernel, as well.  If you
   are installing a new kernel with the same version number as your
   working kernel, make a backup of your modules directory before you
   do a "make modules_install".

   Alternatively, before compiling, use the kernel config option
   "LOCALVERSION" to append a unique suffix to the regular kernel version.
   LOCALVERSION can be set in the "General Setup" menu.

 - In order to boot your new kernel, you'll need to copy the kernel
   image (e.g. .../linux/arch/i386/boot/bzImage after compilation)
   to the place where your regular bootable kernel is found. 

 - Booting a kernel directly from a floppy without the assistance of a
   bootloader such as LILO, is no longer supported.

   If you boot Linux from the hard drive, chances are you use LILO, which
   uses the kernel image as specified in the file /etc/lilo.conf.  The
   kernel image file is usually /vmlinuz, /boot/vmlinuz, /bzImage or
   /boot/bzImage.  To use the new kernel, save a copy of the old image
   and copy the new image over the old one.  Then, you MUST RERUN LILO
   to update the loading map!! If you don't, you won't be able to boot
   the new kernel image.

   Reinstalling LILO is usually a matter of running /sbin/lilo. 
   You may wish to edit /etc/lilo.conf to specify an entry for your
   old kernel image (say, /vmlinux.old) in case the new one does not
   work.  See the LILO docs for more information. 

   After reinstalling LILO, you should be all set.  Shutdown the system,
   reboot, and enjoy!

   If you ever need to change the default root device, video mode,
   ramdisk size, etc.  in the kernel image, use the 'rdev' program (or
   alternatively the LILO boot options when appropriate).  No need to
   recompile the kernel to change these parameters. 

 - Reboot with the new kernel and enjoy. 

IF SOMETHING GOES WRONG:

 - If you have problems that seem to be due to kernel bugs, please check
   the file MAINTAINERS to see if there is a particular person associated
   with the part of the kernel that you are having trouble with. If there
   isn't anyone listed there, then the second best thing is to mail
   them to me ([email protected]), and possibly to any other
   relevant mailing-list or to the newsgroup.

 - In all bug-reports, *please* tell what kernel you are talking about,
   how to duplicate the problem, and what your setup is (use your common
   sense).  If the problem is new, tell me so, and if the problem is
   old, please try to tell me when you first noticed it.

 - If the bug results in a message like

     unable to handle kernel paging request at address C0000010
     Oops: 0002
     EIP:   0010:XXXXXXXX
     eax: xxxxxxxx   ebx: xxxxxxxx   ecx: xxxxxxxx   edx: xxxxxxxx
     esi: xxxxxxxx   edi: xxxxxxxx   ebp: xxxxxxxx
     ds: xxxx  es: xxxx  fs: xxxx  gs: xxxx
     Pid: xx, process nr: xx
     xx xx xx xx xx xx xx xx xx xx

   or similar kernel debugging information on your screen or in your
   system log, please duplicate it *exactly*.  The dump may look
   incomprehensible to you, but it does contain information that may
   help debugging the problem.  The text above the dump is also
   important: it tells something about why the kernel dumped code (in
   the above example, it's due to a bad kernel pointer). More information
   on making sense of the dump is in Documentation/oops-tracing.txt

 - If you compiled the kernel with CONFIG_KALLSYMS you can send the dump
   as is, otherwise you will have to use the "ksymoops" program to make
   sense of the dump (but compiling with CONFIG_KALLSYMS is usually preferred).
   This utility can be downloaded from
   ftp://ftp.<country>.kernel.org/pub/linux/utils/kernel/ksymoops/ .
   Alternatively, you can do the dump lookup by hand:

 - In debugging dumps like the above, it helps enormously if you can
   look up what the EIP value means.  The hex value as such doesn't help
   me or anybody else very much: it will depend on your particular
   kernel setup.  What you should do is take the hex value from the EIP
   line (ignore the "0010:"), and look it up in the kernel namelist to
   see which kernel function contains the offending address.

   To find out the kernel function name, you'll need to find the system
   binary associated with the kernel that exhibited the symptom.  This is
   the file 'linux/vmlinux'.  To extract the namelist and match it against
   the EIP from the kernel crash, do:

     nm vmlinux | sort | less

   This will give you a list of kernel addresses sorted in ascending
   order, from which it is simple to find the function that contains the
   offending address.  Note that the address given by the kernel
   debugging messages will not necessarily match exactly with the
   function addresses (in fact, that is very unlikely), so you can't
   just 'grep' the list: the list will, however, give you the starting
   point of each kernel function, so by looking for the function that
   has a starting address lower than the one you are searching for but
   is followed by a function with a higher address you will find the one
   you want.  In fact, it may be a good idea to include a bit of
   "context" in your problem report, giving a few lines around the
   interesting one. 

   If you for some reason cannot do the above (you have a pre-compiled
   kernel image or similar), telling me as much about your setup as
   possible will help.  Please read the REPORTING-BUGS document for details.

 - Alternatively, you can use gdb on a running kernel. (read-only; i.e. you
   cannot change values or set break points.) To do this, first compile the
   kernel with -g; edit arch/i386/Makefile appropriately, then do a "make
   clean". You'll also need to enable CONFIG_PROC_FS (via "make config").

   After you've rebooted with the new kernel, do "gdb vmlinux /proc/kcore".
   You can now use all the usual gdb commands. The command to look up the
   point where your system crashed is "l *0xXXXXXXXX". (Replace the XXXes
   with the EIP value.)

   gdb'ing a non-running kernel currently fails because gdb (wrongly)
   disregards the starting offset for which the kernel is compiled.

mirrors's People

Contributors

acmel avatar adrianbunk avatar airlied avatar alexdeucher avatar arndb avatar axellin avatar bigguiness avatar broonie avatar bzolnier avatar danvet avatar davem330 avatar dhowells avatar ebiederm avatar geertu avatar gregkh avatar htejun avatar ickle avatar jmberg-intel avatar joeperches avatar kaga-koko avatar larsclausen avatar mchehab avatar morimoto avatar olofj avatar pmundt avatar ralfbaechle avatar rddunlap avatar rkhuangtao avatar tiwai avatar torvalds avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mirrors's Issues

gstreamer-rockchip cannot decode NV16

@JeffyCN

I updated gstreamer-rockchip and it cannot decode NV16 anymore.
My previous version that worked was with the commit: 2ed1e68

gst-launch-1.0 filesrc location=/apps/Videos/Poltergeist_DOM_TrailerD-1080p-HDTN.mp4 ! qtdemux ! h264parse ! mppvideodec arm-afbc=1 ! waylandsink

Kernel 5.10 PX30 Device Tree issues

Hi Jeffy,
There are some issues with compiling Kernel 5.10 Device Tree on PX30 (e. g. non-existent nodes / labels). I think this would require some patching from Rockchip.
However, I have temporarily created some patch as a workaround to be able to build the dtb. But unfortunately the Kernel won't boot:

...
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x3d8/0x5c4 with crng_init=0
[    0.000000] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008
[    0.000000] Mem abort info:
[    0.000000]   ESR = 0x96000005
[    0.000000]   EC = 0x25: DABT (current EL), IL = 32 bits
[    0.000000]   SET = 0, FnV = 0
[    0.000000]   EA = 0, S1PTW = 0
[    0.000000] Data abort info:
[    0.000000]   ISV = 0, ISS = 0x00000005
[    0.000000]   CM = 0, WnR = 0
[    0.000000] [0000000000000008] user address but active_mm is swapper
[    0.000000] Internal error: Oops: 96000005 [#1] SMP
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.66-rockchip-standard #1
[    0.000000] Hardware name: Rockchip linux PX30 evb ddr3 board (DT)
[    0.000000] pstate: 80000085 (Nzcv daIf -PAN -UAO -TCO BTYPE=--)
[    0.000000] pc : px30_pmu_clk_init+0xb8/0x118
[    0.000000] lr : px30_pmu_clk_init+0x80/0x118
[    0.000000] sp : ffffffc011593eb0
[    0.000000] x29: ffffffc011593ec0 x28: 0000000001230018 
[    0.000000] x27: 0000000000000001 x26: ffffff807fbdd7d8 
[    0.000000] x25: ffffff8001c05400 x24: dead000000000100 
[    0.000000] x23: ffffffc0118c1000 x22: ffffffc011086dd0 
[    0.000000] x21: ffffff807fbdd7d8 x20: ffffffc010c39c28 
[    0.000000] x19: ffffff8001d8c500 x18: 0000000000000000 
[    0.000000] x17: 0000000035c5f6ec x16: 0000000000000014 
[    0.000000] x15: 0000000000000010 x14: 00000000ff140000 
[    0.000000] x13: ffffff8001d8c690 x12: 0000000000000038 
[    0.000000] x11: 0000000000000004 x10: 0101010101010101 
[    0.000000] x9 : ffffffc01087dbd0 x8 : 0000000000000005 
[    0.000000] x7 : 0000000000000001 x6 : 00000000171f13e7 
[    0.000000] x5 : 67131f1700000000 x4 : 8000000000000000 
[    0.000000] x3 : 0000000000000480 x2 : 0000000000000001 
[    0.000000] x1 : 0000000000000000 x0 : ffffff8001d8c500 
[    0.000000] Call trace:
[    0.000000]  px30_pmu_clk_init+0xb8/0x118
[    0.000000]  of_clk_init+0x1dc/0x230
[    0.000000]  time_init+0x1c/0x54
[    0.000000]  start_kernel+0x468/0x5c4
...

Since I saw your answer on #2 I think I have to start a bug report on Redmine, right?
I already asked for user registration at https://redmine.rock-chips.com/
Hope this is the right place...

TSP build fails

hi,
you're the only one that answers about rockchip devel. I'm facing a build problem related to RK3328 TSP.
seems that devel is incomplete or something is incomplete. build fails because of missing rk_tsp_api.h file.

|   CC      drivers/media/platform/rockchip-tsp/rockchip_tsp.o
| /home/ballest/rockhevc_workspace/bsp/linux/linux-rockchip_4.4/drivers/media/platform/rockchip-tsp/rockchip_tsp.c:43:10: fatal error: linux/rk_tsp_api.h: No such file or directory
|    43 | #include <linux/rk_tsp_api.h>
|       |          ^~~~~~~~~~~~~~~~~~~~
| compilation terminated.
| make[6]: *** [/home/ballest/rockhevc_workspace/bsp/linux/linux-rockchip_4.4/scripts/Makefile.build:278: drivers/media/platform/rockchip-tsp/rockchip_tsp.o] Error 1
| make[5]: *** [/home/ballest/rockhevc_workspace/bsp/linux/linux-rockchip_4.4/scripts/Makefile.build:484: drivers/media/platform/rockchip-tsp] Error 2
| make[4]: *** [/home/ballest/rockhevc_workspace/bsp/linux/linux-rockchip_4.4/scripts/Makefile.build:484: drivers/media/platform] Error 2
| make[4]: *** Waiting for unfinished jobs....
| make[3]: *** [/home/ballest/rockhevc_workspace/bsp/linux/linux-rockchip_4.4/scripts/Makefile.build:484: drivers/media] Error 2
| make[3]: *** Waiting for unfinished jobs....
| make[2]: *** [/home/ballest/rockhevc_workspace/bsp/linux/linux-rockchip_4.4/Makefile:1036: drivers] Error 2
| make[1]: *** [Makefile:152: sub-make] Error 2
| make: *** [Makefile:24: __sub-make] Error 2

is TSP support broken for my chip? Can you help me?
I really need this interface for a project I'm working on and I'm a little bit worried about it.

thank you
davide

Out of memory (GST Rockchipmpp)

Hello. I upgraded the Rockchip GStreamer library in NanoPi R6C Debian 11 (5.10.160), but it crashed when I ran my transcoding app. I have a question: Is there any requirement for updating the lib (libgstrockchipmpp.so)? And how can I resolve the issue?

Also, my app was developed based on the previous version (2021), and it works based on that lib, but because of some errors that I saw in the system log, I wanted to upgrade it to the latest version:

This is the issue after updating the new lib (libgstrockchipmpp):
rga_api: 1.9.1
rga_driver: 1.2.26

Dec 13 16:29:56 NanoPi-R6C kernel: mali fb000000.gpu: OOM notifier: dev mali0  35564 kB
Dec 13 16:29:56 NanoPi-R6C kernel: mali fb000000.gpu: OOM notifier: tsk Xorg  tgid (771)  pid (771) 35532 kB
Dec 13 16:29:56 NanoPi-R6C kernel: stamp thread invoked oom-killer: gfp_mask=0x1100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
Dec 13 16:29:56 NanoPi-R6C kernel: CPU: 5 PID: 2072 Comm: stamp thread Tainted: G           O      5.10.160 #194
Dec 13 16:29:56 NanoPi-R6C kernel: Hardware name: FriendlyElec NanoPi R6C (DT)
Dec 13 16:29:56 NanoPi-R6C kernel: Call trace:
Dec 13 16:29:56 NanoPi-R6C kernel:  dump_backtrace+0x0/0x1d0
Dec 13 16:29:56 NanoPi-R6C kernel:  show_stack+0x1c/0x24
Dec 13 16:29:56 NanoPi-R6C kernel:  dump_stack_lvl+0xc8/0xec
Dec 13 16:29:56 NanoPi-R6C kernel:  dump_stack+0x14/0x50
Dec 13 16:29:56 NanoPi-R6C kernel:  dump_header+0x4c/0x1ec
Dec 13 16:29:56 NanoPi-R6C kernel:  oom_kill_process+0x1c0/0x1c4
Dec 13 16:29:56 NanoPi-R6C kernel:  out_of_memory+0x1e0/0x414
Dec 13 16:29:56 NanoPi-R6C kernel:  __alloc_pages_may_oom+0x114/0x190
Dec 13 16:29:56 NanoPi-R6C kernel:  __alloc_pages_nodemask+0x984/0xcac
Dec 13 16:29:56 NanoPi-R6C kernel:  pagecache_get_page+0x1b4/0x384
Dec 13 16:29:56 NanoPi-R6C kernel:  filemap_fault+0x6ec/0x940
Dec 13 16:29:56 NanoPi-R6C kernel:  ext4_filemap_fault+0x38/0x900
Dec 13 16:29:56 NanoPi-R6C kernel:  __do_fault+0x40/0x160
Dec 13 16:29:56 NanoPi-R6C kernel:  handle_pte_fault+0x8b4/0xdc0
Dec 13 16:29:56 NanoPi-R6C kernel:  __handle_mm_fault+0x10c/0x2d0
Dec 13 16:29:56 NanoPi-R6C kernel:  handle_mm_fault+0xc4/0x234
Dec 13 16:29:56 NanoPi-R6C kernel:  do_page_fault+0x2b8/0x4c0
Dec 13 16:29:56 NanoPi-R6C kernel:  do_translation_fault+0xac/0xc0
Dec 13 16:29:56 NanoPi-R6C kernel:  do_mem_abort+0x44/0xb0
Dec 13 16:29:56 NanoPi-R6C kernel:  el0_ia+0x68/0xac
Dec 13 16:29:56 NanoPi-R6C kernel:  el0_sync_handler+0x11c/0x120
Dec 13 16:29:56 NanoPi-R6C kernel:  el0_sync+0x15c/0x180
Dec 13 16:29:56 NanoPi-R6C kernel: Mem-Info:
Dec 13 16:29:56 NanoPi-R6C kernel: active_anon:221 inactive_anon:873839 isolated_anon:0
                                    active_file:111 inactive_file:57 isolated_file:0
                                    unevictable:805 dirty:0 writeback:0
                                    slab_reclaimable:10933 slab_unreclaimable:12498
                                    mapped:273 shmem:1520 pagetables:3774 bounce:0
                                    free:19107 free_pcp:419 free_cma:0
Dec 13 16:29:56 NanoPi-R6C kernel: Node 0 active_anon:884kB inactive_anon:3495356kB active_file:444kB inactive_file:228kB unevictable:3220kB isolated(anon):0kB isolated(file):0kB mapped:1092kB dirty:0kB writeback:0kB shmem:6080kB shmem_thp: 0kB shmem_pmdmapped: 0kB anon_thp: 0kB writeback_tmp:0kB kernel_stack:7088kB all_unreclaimable? no
Dec 13 16:29:56 NanoPi-R6C kernel: DMA free:70852kB min:70396kB low:87992kB high:105588kB reserved_highatomic:0KB active_anon:264kB inactive_anon:3406488kB active_file:100kB inactive_file:0kB unevictable:3200kB writepending:0kB present:3913728kB managed:3815692kB mlocked:64kB pagetables:13580kB bounce:0kB free_pcp:1412kB local_pcp:248kB free_cma:0kB
Dec 13 16:29:56 NanoPi-R6C kernel: lowmem_reserve[]: 0 0 175 175
Dec 13 16:29:56 NanoPi-R6C kernel: Normal free:5576kB min:3328kB low:4160kB high:4992kB reserved_highatomic:0KB active_anon:620kB inactive_anon:88868kB active_file:252kB inactive_file:104kB unevictable:20kB writepending:0kB present:262144kB managed:179836kB mlocked:0kB pagetables:1516kB bounce:0kB free_pcp:264kB local_pcp:76kB free_cma:0kB
Dec 13 16:29:56 NanoPi-R6C kernel: lowmem_reserve[]: 0 0 0 0
Dec 13 16:29:56 NanoPi-R6C kernel: DMA: 394*4kB (UME) 299*8kB (UME) 271*16kB (UE) 248*32kB (UME) 129*64kB (UE) 63*128kB (UE) 39*256kB (UE) 25*512kB (UME) 10*1024kB (UME) 2*2048kB (U) 0*4096kB = 69680kB
Dec 13 16:29:56 NanoPi-R6C kernel: Normal: 363*4kB (U) 304*8kB (UE) 61*16kB (UE) 20*32kB (U) 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 5500kB
Dec 13 16:29:56 NanoPi-R6C kernel: Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=1048576kB
Dec 13 16:29:56 NanoPi-R6C kernel: Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=32768kB
Dec 13 16:29:56 NanoPi-R6C kernel: Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
Dec 13 16:29:56 NanoPi-R6C kernel: Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=64kB
Dec 13 16:29:56 NanoPi-R6C kernel: 1682 total pagecache pages
Dec 13 16:29:56 NanoPi-R6C kernel: 0 pages in swap cache
Dec 13 16:29:56 NanoPi-R6C kernel: Swap cache stats: add 0, delete 0, find 0/0
Dec 13 16:29:56 NanoPi-R6C kernel: Free swap  = 0kB
Dec 13 16:29:56 NanoPi-R6C kernel: Total swap = 0kB
Dec 13 16:29:56 NanoPi-R6C kernel: 1043968 pages RAM
Dec 13 16:29:56 NanoPi-R6C kernel: 0 pages HighMem/MovableOnly
Dec 13 16:29:56 NanoPi-R6C kernel: 45086 pages reserved
Dec 13 16:29:56 NanoPi-R6C kernel: 2048 pages cma reserved
Dec 13 16:29:56 NanoPi-R6C kernel: Tasks state (memory values in pages):
Dec 13 16:29:56 NanoPi-R6C kernel: [  pid  ]   uid  tgid total_vm      rss pgtables_bytes swapents oom_score_adj name
Dec 13 16:29:56 NanoPi-R6C kernel: [    225]     0   225      206        1    28672        0             0 bpfilter_umh
Dec 13 16:29:56 NanoPi-R6C kernel: [    377]     0   377    16376      281    98304        0          -250 systemd-journal
Dec 13 16:29:56 NanoPi-R6C kernel: [    421]     0   421     5077      390    57344        0         -1000 systemd-udevd
Dec 13 16:29:56 NanoPi-R6C kernel: [    582]     0   582      495       15    36864        0             0 acpid
Dec 13 16:29:56 NanoPi-R6C kernel: [    587]   104   587     2161      304    49152        0          -900 dbus-daemon
Dec 13 16:29:56 NanoPi-R6C kernel: [    593]     0   593    63496      602   122880        0             0 NetworkManager
Dec 13 16:29:56 NanoPi-R6C kernel: [    600]     0   600    55219      349    77824        0             0 rsyslogd
Dec 13 16:29:56 NanoPi-R6C kernel: [    602]     0   602     3636      210    57344        0             0 systemd-logind
Dec 13 16:29:56 NanoPi-R6C kernel: [    604]     0   604     1369       57    40960        0             0 thd
Dec 13 16:29:56 NanoPi-R6C kernel: [    605]     0   605    97338      526   114688        0             0 udisksd
Dec 13 16:29:56 NanoPi-R6C kernel: [    606]     0   606     3391      165    61440        0             0 wpa_supplicant
Dec 13 16:29:56 NanoPi-R6C kernel: [    719]     0   719    58817      534    90112        0             0 polkitd
Dec 13 16:29:56 NanoPi-R6C kernel: [    725]     0   725     2543      102    49152        0             0 lcd2usb_print
Dec 13 16:29:56 NanoPi-R6C kernel: [    736]     0   736     1520       90    45056        0             0 starter
Dec 13 16:29:56 NanoPi-R6C kernel: [    750]     0   750      624       26    36864        0             0 agetty
Dec 13 16:29:56 NanoPi-R6C kernel: [    752]     0   752    76615      234    81920        0             0 lightdm
Dec 13 16:29:56 NanoPi-R6C kernel: [    753]     0   753     1005       29    32768        0             0 agetty
Dec 13 16:29:56 NanoPi-R6C kernel: [    771]     0   771   878217    19766  1052672        0             0 Xorg
Dec 13 16:29:56 NanoPi-R6C kernel: [    772]     0   772      513       27    36864        0             0 xl2tpd
Dec 13 16:29:56 NanoPi-R6C kernel: [    775]     0   775     3405      238    57344        0         -1000 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [    798]     0   798   297689      214   192512        0             0 charon
Dec 13 16:29:56 NanoPi-R6C kernel: [    903]     0   903      514       45    32768        0             0 usbdevice
Dec 13 16:29:56 NanoPi-R6C kernel: [    905]     0   905     2579        1    40960        0             0 adbd
Dec 13 16:29:56 NanoPi-R6C kernel: [    980]     0   980    40894      257    73728        0             0 lightdm
Dec 13 16:29:56 NanoPi-R6C kernel: [    985]  1000   985     4041      361    53248        0             0 systemd
Dec 13 16:29:56 NanoPi-R6C kernel: [    986]  1000   986    42129      711    90112        0             0 (sd-pam)
Dec 13 16:29:56 NanoPi-R6C kernel: [    999]  1000   999   134645     1440   229376        0             0 pulseaudio
Dec 13 16:29:56 NanoPi-R6C kernel: [   1002]  1000  1002   466013     3175   499712        0             0 xfce4-session
Dec 13 16:29:56 NanoPi-R6C kernel: [   1041]  1000  1041     2018      114    40960        0             0 dbus-launch
Dec 13 16:29:56 NanoPi-R6C kernel: [   1042]  1000  1042     2031      197    49152        0             0 dbus-daemon
Dec 13 16:29:56 NanoPi-R6C kernel: [   1057]  1000  1057     1358      115    32768        0             0 ssh-agent
Dec 13 16:29:56 NanoPi-R6C kernel: [   1069]     0  1069     3103      132    53248        0             0 bluetoothd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1150]  1000  1150    57626      199    73728        0             0 xfconfd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1168]  1000  1168    19867       65    40960        0             0 gpg-agent
Dec 13 16:29:56 NanoPi-R6C kernel: [   1170]  1000  1170   458915     3980   548864        0             0 xfwm4
Dec 13 16:29:56 NanoPi-R6C kernel: [   1174]  1000  1174    59104      225    86016        0             0 gvfsd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1200]  1000  1200    56103     1316   155648        0             0 xfsettingsd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1203]     0  1203    61319      285    86016        0             0 upowerd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1216]  1000  1216    78574     2330   192512        0             0 xfce4-panel
Dec 13 16:29:56 NanoPi-R6C kernel: [   1220]  1000  1220    84456     1202   155648        0             0 Thunar
Dec 13 16:29:56 NanoPi-R6C kernel: [   1225]  1000  1225    81362     5077   208896        0             0 xfdesktop
Dec 13 16:29:56 NanoPi-R6C kernel: [   1229]  1000  1229   145897     2047   180224        0             0 tracker-miner-f
Dec 13 16:29:56 NanoPi-R6C kernel: [   1231]  1000  1231    46163      492   110592        0             0 polkit-gnome-au
Dec 13 16:29:56 NanoPi-R6C kernel: [   1232]  1000  1232   106869     2125   196608        0             0 nm-applet
Dec 13 16:29:56 NanoPi-R6C kernel: [   1242]  1000  1242    87167      500   114688        0             0 gvfs-udisks2-vo
Dec 13 16:29:56 NanoPi-R6C kernel: [   1246]  1000  1246    47335     1232   131072        0             0 xfce4-power-man
Dec 13 16:29:56 NanoPi-R6C kernel: [   1270]  1000  1270    77621      236    98304        0             0 gvfsd-trash
Dec 13 16:29:56 NanoPi-R6C kernel: [   1277]  1000  1277    39756      153    69632        0             0 gvfsd-metadata
Dec 13 16:29:56 NanoPi-R6C kernel: [   1284]  1000  1284    84255     1227   143360        0             0 panel-6-systray
Dec 13 16:29:56 NanoPi-R6C kernel: [   1285]  1000  1285   115714     1842   155648        0             0 panel-8-pulseau
Dec 13 16:29:56 NanoPi-R6C kernel: [   1298]  1000  1298    47839     1226   135168        0             0 panel-14-action
Dec 13 16:29:56 NanoPi-R6C kernel: [   1310]     0  1310     3990      298    57344        0             0 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1312]     0  1312     3991      298    61440        0             0 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1318]  1000  1318     4076      348    57344        0             0 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1319]  1000  1319     1461      136    45056        0             0 bash
Dec 13 16:29:56 NanoPi-R6C kernel: [   1331]  1000  1331     3991      299    61440        0             0 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1332]  1000  1332     1340      114    45056        0             0 sftp-server
Dec 13 16:29:56 NanoPi-R6C kernel: [   1354]     0  1354     3991      299    69632        0             0 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1356]     0  1356     3991      300    61440        0             0 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1362]  1000  1362     4076      320    69632        0             0 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1365]  1000  1365     1461      135    45056        0             0 bash
Dec 13 16:29:56 NanoPi-R6C kernel: [   1374]  1000  1374     3991      301    61440        0             0 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1375]  1000  1375     1340      114    40960        0             0 sftp-server
Dec 13 16:29:56 NanoPi-R6C kernel: [   1385]     0  1385     3991      299    61440        0             0 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1387]     0  1387     3991      299    61440        0             0 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1392]  1000  1392     4076      334    65536        0             0 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1396]  1000  1396     1461      136    40960        0             0 bash
Dec 13 16:29:56 NanoPi-R6C kernel: [   1405]  1000  1405     3991      300    61440        0             0 sshd
Dec 13 16:29:56 NanoPi-R6C kernel: [   1406]  1000  1406     1340      114    40960        0             0 sftp-server
Dec 13 16:29:56 NanoPi-R6C kernel: [   1776]   999  1776    22002      185    65536        0             0 systemd-timesyn
Dec 13 16:29:56 NanoPi-R6C kernel: [   1973]  1000  1973    20336      173   151552        0             0 journalctl
Dec 13 16:29:56 NanoPi-R6C kernel: [   2067]  1000  2067     2752      139    57344        0             0 sudo
Dec 13 16:29:56 NanoPi-R6C kernel: [   2068]     0  2068   188593      300   147456        0             0 MediaServer
Dec 13 16:29:56 NanoPi-R6C kernel: [   2223]  1000  2223     1985      103    49152        0             0 dbus-launch
Dec 13 16:29:56 NanoPi-R6C kernel: [   2224]  1000  2224     1920       93    45056        0             0 dbus-daemon
Dec 13 16:29:56 NanoPi-R6C kernel: [   3192]     0  3192      581       15    32768        0             0 anacron
Dec 13 16:29:56 NanoPi-R6C kernel: [   3203]  1000  3203   108180     2936   167936        0             0 tracker-store
Dec 13 16:29:56 NanoPi-R6C kernel: [   3292]  1000  3292     1360       69    40960        0             0 bash
Dec 13 16:29:56 NanoPi-R6C kernel: [   3297]  1000  3297  1357792   817803  7102464        0             0 demo
Dec 13 16:29:56 NanoPi-R6C kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/user.slice/user-1000.slice/session-3.scope,task=demo,pid=3297,uid=1000
Dec 13 16:29:56 NanoPi-R6C kernel: Out of memory: Killed process 3297 (demo) total-vm:5431168kB, anon-rss:3271208kB, file-rss:0kB, shmem-rss:4kB, UID:1000 pgtables:6936kB oom_score_adj:0
Dec 13 16:29:56 NanoPi-R6C kernel: oom_reaper: reaped process 3297 (demo), now anon-rss:0kB, file-rss:0kB, shmem-rss:4kB
Dec 13 16:30:20 NanoPi-R6C org.freedesktop.Tracker1[3203]: OK
Out of memory: Killed processDec 13 16:34:35 NanoPi-R6C anacron[3192]: Job `cron.daily' started

Framerate is Insane Warnings Despite Valid Frame Rate

When using RGA for hardware accelerated video conversion, the mpph264enc element logs a WARN message indicating that the framerate 0/1 is insane!. The frame rate is specified in a cap at the element v4l2src which is being used to capture from the /dev/video0 device so it is understood that the frame rate is valid.

This framerate 0/1 is insane WARN message is logged for any frame rate that is fed to the mpph264enc element. GStreamer graphs also validate that the expected frame rate is being sent to mpph264enc.

It is believed that the issue may lie with the usage of this line gst_video_info_set_format (info, gst_mpp_mpp_format_to_gst_format (format), width, height); at line 650 of the gstmppenc.c file (link).

The function gst_video_info_set_format () appears to not preserve any values passed in from the info object according to the GStreamer documentation linked here.

Because converting with RGA is enabled, we enter a logic path where the function gst_video_info_set_format () is called and that clears all values in the info object. The framerate data gets cleared thus causing the WARN log framerate 0/1 is insane! and the framerate to always default to the value of DEFAULT_FPS.

Could it be possible to temporarily save the frame rate data before this gst_video_info_set_format () function is called and add the data back to the info object after the function returns?

U-Boot fails to generate for PX30

Not possible to build U-Boot for PX30.

| Platform PX30 is build OK, with exist .config
| 
| Thu Jan  6 10:27:56 AM UTC 2022
| NOTE: u-boot: Generating idblock.img from loader.bin
| unpack entry(px30_ddr_333MHz_v1)
| unpack entry(px30_usbplug_v1)
| unpack entry(FlashData)
| unpack entry(FlashBoot)
| unpack success
| Error: SPL image is too large (size 0x3000 than 0x2800)
| Error: Bad parameters for image type
| Usage: ./tools/mkimage -l image
|           -l ==> list image header information
|        ./tools/mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
|           -A ==> set architecture to 'arch'
|           -O ==> set operating system to 'os'
|           -T ==> set image type to 'type'
|           -C ==> set compression type 'comp'
|           -a ==> set load address to 'addr' (hex)
|           -e ==> set entry point to 'ep' (hex)
|           -n ==> set image name to 'name'
|           -d ==> use image data from 'datafile'
|           -x ==> set XIP (execute in place)
|        ./tools/mkimage [-D dtc_options] [-f fit-image.its|-f auto|-F] [-b  [-b ]] [-i ] fit-image
|             file is used with -f auto, it may occur multiple times.
|           -D => set all options for device tree compiler
|           -f => input filename for FIT source
|           -i => input filename for ramdisk file
|           -v => set FIT image version in decimal
| Signing / verified boot not supported (CONFIG_FIT_SIGNATURE undefined)
|        ./tools/mkimage -V ==> print version information and exit
| Use '-T list' to see a list of available image types
| WARNING: exit code 1 from a shell command.

This problem exists since 413d2f5.
Before px30_ddr_333MHz_v1.15.bin was exactly 10.240 Bytes (= 0x2800) and everything was fine.
But since update to px30_ddr_333MHz_v1.16.bin it is 10.248 Bytes and therefore does not fit.

rk3562 support

*** No rule to make target 'arch/arm64/boot/dts/rockchip/rk3562-evb1-lp4x-v10-linux.dtb'.  Stop.

when use yocto build for rk3562

rga_img_info_t 结构体在 librga 和 内核 RGA3 代码定义不一致

librga的定义:

mirrors/include/rga.h

Lines 204 to 226 in a1b05b8

typedef struct rga_img_info_t {
#if defined(__arm64__) || defined(__aarch64__)
unsigned long yrgb_addr; /* yrgb mem addr */
unsigned long uv_addr; /* cb/cr mem addr */
unsigned long v_addr; /* cr mem addr */
#else
unsigned int yrgb_addr; /* yrgb mem addr */
unsigned int uv_addr; /* cb/cr mem addr */
unsigned int v_addr; /* cr mem addr */
#endif
unsigned int format; //definition by RK_FORMAT
unsigned short act_w;
unsigned short act_h;
unsigned short x_offset;
unsigned short y_offset;
unsigned short vir_w;
unsigned short vir_h;
unsigned short endian_mode; //for BPP
unsigned short alpha_swap;
}
rga_img_info_t;

RGA3的定义:

struct rga_img_info_t {
/* yrgb mem addr */
uint64_t yrgb_addr;
/* cb/cr mem addr */
uint64_t uv_addr;
/* cr mem addr */
uint64_t v_addr;
/* definition by RK_FORMAT */
uint32_t format;
uint16_t act_w;
uint16_t act_h;
uint16_t x_offset;
uint16_t y_offset;
uint16_t vir_w;
uint16_t vir_h;
uint16_t endian_mode;
/* useless */
uint16_t alpha_swap;
/* used by RGA3 */
uint16_t rotate_mode;
uint16_t rd_mode;
uint16_t compact_mode;
uint16_t is_10b_endian;
uint16_t enable;
};

RGA3 内核定义多了20字节,加上 rga_img_info_t 在 rga_req 结构体里多次使用,而且不是在 rga_req 末尾,导致 librga 与 RGA3 的 API 和 ABI 都不兼容。

struct rga_req {
/* (enum) process mode sel */
uint8_t render_mode;
struct rga_img_info_t src;
struct rga_img_info_t dst;
struct rga_img_info_t pat;
/* rop4 mask addr */
uint64_t rop_mask_addr;

也就是说,我基于 librga 构建的程序,在使用 RGA3 提供的内核设备时,会出现结构体参数错乱的问题,这问题已经在 RK3568 板子上实际复现过。

请问,librga 是否不兼容 RGA3 驱动?如果不兼容,librga 或者 RGA3 驱动有没有 ABI 兼容的计划?

linux-rga-im2d分支平台重复写的代码有点冗余

很多这样的代码:
#if defined(arm64) || defined(aarch64)
xxxxxxx
#else
yyyyyyy
#endif

这其实就是几个参数的类型不一致而已,而重复写了多次这样的接口,不如改成这样:
#if defined(arm64) || defined(aarch64)
typedef unsigned long arch_type_t;
#else
typedef unsigned int arch_type_t;
#endif

然后利用arch_type_t去合并那几个变量的类型

ldconfig: file /usr/lib/mali/libmali-midgard-t86x-r18p0-x11.so is truncated

I am building Deb packages MALI USERSPACE DRIVER from mali branch
I build packages using the command:

debuild -us -uc -b

ARCH=arm64
Rootfs = Debian 10 Buster
I am building a Deb package for RK3399 that uses the Mali T86x. Packages are assembled without errors, however, after installing them into the system, ldconfig returns the following warnings:

apt install ./libmali-midgard-t86x-r18p0-x11_1.9-1_arm64.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libmali-midgard-t86x-r18p0-x11' instead of './libmali-midgard-t86x-r18p0-x11_1.9-1_arm64.deb'
The following NEW packages will be installed:
  libmali-midgard-t86x-r18p0-x11
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/8013 kB of archives.
After this operation, 29.8 MB of additional disk space will be used.
Get:1 /work/libmali-midgard-t86x-r18p0-x11_1.9-1_arm64.deb libmali-midgard-t86x-r18p0-x11 arm64 1.9-1 [8013 kB]
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libmali-midgard-t86x-r18p0-x11.
(Reading database ... 71506 files and directories currently installed.)
Preparing to unpack .../libmali-midgard-t86x-r18p0-x11_1.9-1_arm64.deb ...
Unpacking libmali-midgard-t86x-r18p0-x11 (1.9-1) ...
Setting up libmali-midgard-t86x-r18p0-x11 (1.9-1) ...
Processing triggers for libc-bin (2.28-10+deb10u2) ...
ldconfig: file /usr/lib/aarch64-linux-gnu/libmali.so is truncated

ldconfig: file /usr/lib/aarch64-linux-gnu/libMali.so.1 is truncated

ldconfig: file /usr/lib/aarch64-linux-gnu/libmali.so.1.9.0 is truncated

ldconfig: file /usr/lib/aarch64-linux-gnu/libmali.so.1 is truncated

ldconfig: file /usr/lib/aarch64-linux-gnu/libmali-midgard-t86x-r18p0-x11.so is truncated

Can you tell me what's going wrong?

[rkwifibt] rename AP6275P NVRAM config file

Rockchip Linux kernel didn't find by default the file nvram_AP6275P.txt file when using an image generated by Yocto. In fact, Linux kernel expects this filename to be all lowercase.
nvram_AP6275P.txt -> nvram_ap6275p.txt

An update on meta-rockchip will be needed after that (I can provide one if needed).
I do not know if this issue also affects Buildroot.

linux-libc-headers-4.19-custom-r0 do_install: oe_runmake failed

i want to create image for rockchip-rk3399pro-evb machine conf
but I have following error

ERROR: linux-libc-headers-4.19-custom-r0 do_install: oe_runmake failed
ERROR: linux-libc-headers-4.19-custom-r0 do_install: ExecutionError('/home/mahdi2001h/kirkstone/build/orangepi_lts/tmp/work/armv8a-poky-linux/linux-libc-headers/4.19-custom-r0/temp/run.do_install.31969', 1, None, None)
ERROR: Logfile of failure stored in: /home/mahdi2001h/kirkstone/build/orangepi_lts/tmp/work/armv8a-poky-linux/linux-libc-headers/4.19-custom-r0/temp/log.do_install.31969
Log data follows:
| DEBUG: Executing python function extend_recipe_sysroot
| NOTE: Direct dependencies are ['/home/mahdi2001h/kirkstone/layers/poky/meta/recipes-devtools/quilt/quilt-native_0.67.bb:do_populate_sysroot', 'virtual:native:/home/mahdi2001h/kirkstone/layers/poky/meta/recipes-devtools/bison/bison_3.8.2.bb:do_populate_sysroot', 'virtual:native:/home/mahdi2001h/kirkstone/layers/poky/meta/recipes-devtools/patch/patch_2.7.6.bb:do_populate_sysroot', 'virtual:native:/home/mahdi2001h/kirkstone/layers/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb:do_populate_sysroot', 'virtual:native:/home/mahdi2001h/kirkstone/layers/poky/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot', 'virtual:native:/home/mahdi2001h/kirkstone/layers/poky/meta/recipes-devtools/rsync/rsync_3.2.5.bb:do_populate_sysroot', 'virtual:native:/home/mahdi2001h/kirkstone/layers/poky/meta/recipes-devtools/unifdef/unifdef_2.12.bb:do_populate_sysroot']
| NOTE: Installed into sysroot: []
| NOTE: Skipping as already exists in sysroot: ['quilt-native', 'bison-native', 'patch-native', 'pkgconfig-native', 'pseudo-native', 'rsync-native', 'unifdef-native', 'xz-native', 'flex-native', 'libtool-native', 'gettext-minimal-native', 'texinfo-dummy-native', 'popt-native', 'acl-native', 'attr-native', 'm4-native', 'gnu-config-native']
| DEBUG: Python function extend_recipe_sysroot finished
| DEBUG: Executing shell function do_install
| NOTE: make -j 4 HOSTCC=gcc  HOSTCPP=gcc  -E headers_install INSTALL_HDR_PATH=/home/mahdi2001h/kirkstone/build/orangepi_lts/tmp/work/armv8a-poky-linux/linux-libc-headers/4.19-custom-r0/image/usr
| make: *** No rule to make target 'headers_install'.  Stop.
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
ERROR: Task (/home/mahdi2001h/kirkstone/layers/meta-rockchip/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19-custom.bb:do_install) failed with exit code '1'
NOTE: Tasks Summary: Attempted 691 tasks of which 690 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
  /home/mahdi2001h/kirkstone/layers/meta-rockchip/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19-custom.bb:do_install
Summary: There were 2 ERROR messages, returning a non-zero exit code.

Add kernel-5.10 branch?

Can we have kernel-5.10 mirror like kernel-4.4 and kernel-4.19 mirror?

Currently there is a kernel-5.10-2022_01_10 tag used by linux-rockchip_5.10.bb, but no branch.

DSI2 driver looping with -EPROBE_DEFER in kernel 6.1

This issue is not 100% reproducible (depends on which device you're using, what dts you have, which driver is used for your DSI panel, maybe even which DSI port, etc.), but when it happens, you end up with a non-working screen and sometimes unbootable device, which keeps logging these:

dw-mipi-dsi2 fde30000.dsi: [drm:dw_mipi_dsi2_bind] *ERROR* Failed to find panel or bridge: -517

This happens because the Rockchip DSI driver registers itself as MIPI host during probe, then proceeds to register all sub-components, then realize the panel isn't available yet (unless, for some reason, it managed to get probed sooner), and defer.
This doesn't work with 6.1 though, and results in an endless loop. The kernel docs also advice against this:

-EPROBE_DEFER must not be returned if probe() has already created child devices, even if those child devices are removed again in a cleanup path. If -EPROBE_DEFER is returned after a child device has been registered, it may result in an infinite loop of .probe() calls to the same driver.

The correct way is to let the DSI driver register as host, then wait for the panel driver to be registered and probed, and then let the panel driver trigger attach, that will in turn register the DSI driver's sub-components.

Please refer to this commit: armbian/linux-rockchip#168 that seems to have fixed the issue for those who had it. It would be nice to have this fixed in the Rockchip's own repository as well.

cannot compile successfully

I am compiling this lib on the rk3588 box directly, not cross compile. But it always complain error messages like this.
A lot of symbols not defined. I do not know if there is some config error. I am using ubuntu aarch64.


/data/librga_dev/mirrors-linux-rga-multi/core/RockchipRga.cpp: In constructor 'RockchipRga::RockchipRga()':
/data/librga_dev/mirrors-linux-rga-multi/core/RockchipRga.cpp:109:9: error: 'ALOGE' was not declared in this scope
  109 |         ALOGE("%s", RGA_API_FULL_VERSION);
      |         ^~~~~
/data/librga_dev/mirrors-linux-rga-multi/core/RockchipRga.cpp: In destructor 'RockchipRga::~RockchipRga()':
/data/librga_dev/mirrors-linux-rga-multi/core/RockchipRga.cpp:113:9: error: 'RgaDeInit' was not declared in this scope; did you mean 'RkRgaDeInit'?
  113 |         RgaDeInit(&mContext);
      |         ^~~~~~~~~
      |         RkRgaDeInit
/data/librga_dev/mirrors-linux-rga-multi/core/RockchipRga.cpp: In member function 'int RockchipRga::RkRgaInit()':
/data/librga_dev/mirrors-linux-rga-multi/core/RockchipRga.cpp:122:15: error: 'RgaInit' was not declared in this scope; did you mean 'RkRgaInit'?
  122 |         ret = RgaInit(&mContext);
      |               ^~~~~~~
      |               RkRgaInit
/data/librga_dev/mirrors-linux-rga-multi/core/RockchipRga.cpp: In member function 'void RockchipRga::RkRgaDeInit()':
/data/librga_dev/mirrors-linux-rga-multi/core/RockchipRga.cpp:133:13: error: 'RgaDeInit' was not declared in this scope; did you mean 'RkRgaDeInit'?
  133 |             RgaDeInit(&mContext);

RGA2 Error on rk3568 When Handling Memory Larger Than 4G!

On the rk3568 platform, the RGA2 is reporting an error when handling memory larger than 4G. Is there a need to modify the gstreamer-rockchip or mpp code to address this issue? Thank you!
rga driver version:RGA multicore Device Driver: v1.2.25
rga API version:rga_api version 1.10.0_[5]

截屏2024-03-09 11 45 34

在ubuntu 22.04的嵌入式服务器系统上报:could not initialize canvas

在ubuntu22.04
下载源码后meson build 发现生成的.so只有8.2kb,ninja ---> ninja install 后,把安装目录的.so文件覆盖到系统/usr/lib/aarch64-linux-gnu/目录下
运行glmark2-es2-drm 报错:
root@localhost:/usr/lib/aarch64-linux-gnu# ls libmali* libMali* libEGL* libgbm* libGLES* -l -h
lrwxrwxrwx 1 root root 11 Apr 15 15:07 libEGL.so -> libEGL.so.1
-rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libEGL.so.1
lrwxrwxrwx 1 root root 17 Apr 15 15:07 libGLESv1_CM.so -> libGLESv1_CM.so.1
-rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libGLESv1_CM.so.1
lrwxrwxrwx 1 root root 14 Apr 15 15:07 libGLESv2.so -> libGLESv2.so.2
-rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libGLESv2.so.2
lrwxrwxrwx 1 root root 18 Apr 15 15:07 libMaliOpenCL.so -> libMaliOpenCL.so.1
-rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libMaliOpenCL.so.1
lrwxrwxrwx 1 root root 11 Apr 15 15:07 libgbm.so -> libgbm.so.1
-rwxr-xr-x 1 root root 8.2K Apr 15 15:07 libgbm.so.1
lrwxrwxrwx 1 root root 12 Apr 15 15:07 libmali-bifrost-g52-g13p0-gbm.so -> libmali.so.1
-rw-r--r-- 1 root root 3.6K Apr 15 14:59 libmali-hook-injector.a
lrwxrwxrwx 1 root root 17 Apr 15 15:07 libmali-hook.so -> libmali-hook.so.1
lrwxrwxrwx 1 root root 21 Apr 15 15:07 libmali-hook.so.1 -> libmali-hook.so.1.9.0
-rwxr-xr-x 1 root root 23K Apr 15 15:07 libmali-hook.so.1.9.0
lrwxrwxrwx 1 root root 12 Apr 15 15:07 libmali.so -> libmali.so.1
lrwxrwxrwx 1 root root 16 Apr 15 15:07 libmali.so.1 -> libmali.so.1.9.0
-rwxr-xr-x 1 root root 42M Apr 15 15:07 libmali.so.1.9.0
root@localhost:/usr/lib/aarch64-linux-gnu# glmark2-es2-drm
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Error: eglCreateWindowSurface failed with error: 0x3009
Error: eglCreateWindowSurface failed with error: 0x3009
Error: CanvasGeneric: Invalid EGL state
Error: main: Could not initialize canvas

同样的方法在ubuntu23.10系统下,能正常运行glmark2-es2-drm
root@localhost:~# glmark2-es2-drm
arm_release_ver: g13p0-01eac0, rk_so_ver: 10

glmark2 2023.01

=======================================================
OpenGL Information
GL_VENDOR: ARM
GL_RENDERER: Mali-G52
GL_VERSION: OpenGL ES 3.2 v1.g13p0-01eac0.fdf91928d758c45c1787782175b35c6a
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
Surface Size: 800x480 fullscreen

[build] use-vbo=false: FPS: 60 FrameTime: 16.697 ms
[build] use-vbo=true: FPS: 60 FrameTime: 16.679 ms
[texture] texture-filter=nearest: FPS: 60 FrameTime: 16.671 ms
[texture] texture-filter=linear: FPS: 60 FrameTime: 16.693 ms
[texture] texture-filter=mipmap: FPS: 60 FrameTime: 16.672 ms
[shading] shading=gouraud: FPS: 60 FrameTime: 16.701 ms
[shading] shading=blinn-phong-inf: FPS: 60 FrameTime: 16.693 ms
[shading] shading=phong: FPS: 60 FrameTime: 16.687 ms
[shading] shading=cel: FPS: 60 FrameTime: 16.691 ms
[bump] bump-render=high-poly: FPS: 60 FrameTime: 16.717 ms
[bump] bump-render=normals: FPS: 60 FrameTime: 16.681 ms
[bump] bump-render=height: FPS: 60 FrameTime: 16.685 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 60 FrameTime: 16.678 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 60 FrameTime: 16.703 ms
[pulsar] light=false:quads=5:texture=false: FPS: 60 FrameTime: 16.692 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 60 FrameTime: 16.689 ms
[desktop] effect=shadow:windows=4: FPS: 60 FrameTime: 16.679 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 43 FrameTime: 23.739 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 42 FrameTime: 24.119 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 60 FrameTime: 16.690 ms
[ideas] speed=duration: FPS: 60 FrameTime: 16.689 ms
[jellyfish] : FPS: 60 FrameTime: 16.692 ms
[terrain] : FPS: 33 FrameTime: 30.709 ms
[shadow] : FPS: 60 FrameTime: 16.674 ms
[refract] : FPS: 58 FrameTime: 17.336 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 60 FrameTime: 16.681 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 60 FrameTime: 16.695 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 60 FrameTime: 16.691 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 60 FrameTime: 16.677 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 60 FrameTime: 16.700 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 60 FrameTime: 16.686 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 60 FrameTime: 16.689 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 60 FrameTime: 16.691 ms

                              glmark2 Score: 57

=======================================================

Does linux-rga-multi support RK3328?

I don't see RK3328 listed in the supported chips in the linux-rga-multi branch.

Is it an omission or is RK3328 not supported there?

I'm using the linux-rga branch and it works fine (4.4 kernel).

mpp_frame: pointer 0x7fa81a4b98 failed on mpp_frame_deinit check mpp_frame

Hello. While transcoding the Dahua IP camera streams via Onvif (RTSPOnvif URL), I encountered a stop issue during decoding, and the task was stopped (failed) after the scene was changed. I don't see any error in the GStreamer debug; I just see this error in the system log:

ad4e6e5e165e8b2cdf8a94d71e492f2
847a926b492fb223f68cb21ca21ebf5

Is there any issue related to MPP or the GST plugin? My application is based on Gstreamer, and I use libgstrockchipmpp.
I have this issue in the new and old versions of the lib. Also, I don't have this issue via the RTSP URL.

Libmali with Vulkan support for RK3588 (mali G610)

Hello!

I have a question about https://github.com/tsukumijima/libmali-rockchip.git (this repo, branch libmali):
I use OrangePi5B device, trying to build on Ubuntu for -Dplatform=vulkan with error:
The Meson build system Version: 0.61.2 Source dir: /home/orangepi/git/libmali-rockchip Build dir: /home/orangepi/git/libmali-rockchip/build Build type: native build Project name: libmali Project version: 1.9.0 C compiler for the host machine: cc (gcc 11.4.0 "cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0") C linker for the host machine: cc ld.bfd 2.38 Host machine cpu family: aarch64 Host machine cpu: aarch64 Message: Building for aarch64|valhall|g610|g13p0|vulkan|O3 meson.build:40:2: ERROR: Problem encountered: Failed to find matched library

As i understand, i need a prebuilt library like libmali-valhall-g610-g13p0-vulkan-gbm.so in lib/ folder? If so, where can i take it/build it?
If i build with this command:
meson build . -Dgpu=valhall -Dversion=g610 -Dsubversion=g13p0 -Dplatform=x11
Everything is fine, EXCEPT this:
Checking for function "vk_icdGetInstanceProcAddr" with dependency -lmali-prebuilt: NO

T620 seems to work with vulkan cause of data/mali.json.in commit with confirmation that it works correctly.
"Tested with an internal version of DDK for vulkan, vulkaninfo works."

Best regards,
Vadim.

HDMI output issue on RK3568 - kernel 4.19.193 - linux

Hi @JeffyCN / @HermanChen
I have a black screen for HDMI output on RK3568. HDMI output works fine on RK3399.
How can I troubleshoot HDMI?
Radxa kernel 4.19.193 works fine for HDMI but it is somewhat outdated.

No kernel message error for HDMI

[    0.451780] rockchip-drm display-subsystem: Linked as a consumer to fe0a0000.hdmi
[    0.455410] dwhdmi-rockchip fe0a0000.hdmi: Detected HDMI TX controller v2.11a with HDCP (DWC HDMI 2.0 TX PHY)
[    0.456262] dwhdmi-rockchip fe0a0000.hdmi: registered DesignWare HDMI I2C bus driver
[    0.457217] rockchip-drm display-subsystem: bound fe0a0000.hdmi (ops 0xffffff8008fa66a8)
[    1.195352] asoc-simple-card hdmi-sound: i2s-hifi <-> fe400000.i2s mapping ok
[    1.866690]   #0: rockchip,hdmi

Two issues about the upcoming 6.1 kernel release

I'm not sure if these have been fixed in the 6.1 final release. Therefore I report them here so that you can forward it to the corresponding developers. cc @JeffyCN


  1. rk_system_heap.c is still not ported to 6.1 yet, which causes MPP runtime to crash in DMA_HEAP allocator.

https://github.com/JeffyCN/mirrors/blob/kernel-6.1-2024_01_02/drivers/dma-buf/heaps/Makefile#L2

ls -l /dev/dma_heap/
total 0
crw------- 1 root root 251, 1 Jan 18 18:50 cma
crw------- 1 root root 251, 0 Jan 18 18:50 system

  1. rockchip_drm_gem.c cacheable memory flag is broken during manual merging. It causes very slow copying from the decoder frame pool.

https://github.com/JeffyCN/mirrors/blob/kernel-6.1-2024_01_02/drivers/gpu/drm/rockchip/rockchip_drm_gem.c#L550

A simple fix is this:

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
index 3a32a03e91f8..f386f44f825b 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
@@ -546,10 +546,6 @@ static int rockchip_drm_gem_object_mmap(struct drm_gem_object *obj,
 	int ret;
 	struct rockchip_gem_object *rk_obj = to_rockchip_obj(obj);
 
-	/* default is wc. */
-	if (rk_obj->flags & ROCKCHIP_BO_CACHABLE)
-		vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
-
 	/*
 	 * Set vm_pgoff (used as a fake buffer offset by DRM) to 0 and map the
 	 * whole buffer from the start.
@@ -566,6 +562,10 @@ static int rockchip_drm_gem_object_mmap(struct drm_gem_object *obj,
 	vma->vm_page_prot = pgprot_writecombine(vm_get_page_prot(vma->vm_flags));
 	vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot);
 
+        /* default is wc. */
+        if (rk_obj->flags & ROCKCHIP_BO_CACHABLE)
+                vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
+
 	if (rk_obj->buf_type == ROCKCHIP_GEM_BUF_TYPE_SECURE) {
 		DRM_ERROR("Disallow mmap for secure buffer\n");
 		ret = -EINVAL;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.