jeffycn / mirrors Goto Github PK
View Code? Open in Web Editor NEWMirrors 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
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
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.
I am using proot with ubuntu 23 I am using mali g52 phone I got bad performance llvm how to install libmali firmware for g52/panfork mesa?
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...
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
Looks like the tag kernel-6.1-2024_07_16
is pointing to the wrong branch...
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
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?
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.
*** No rule to make target 'arch/arm64/boot/dts/rockchip/rk3562-evb1-lp4x-v10-linux.dtb'. Stop.
when use yocto build for rk3562
librga的定义:
Lines 204 to 226 in a1b05b8
RGA3的定义:
mirrors/drivers/video/rockchip/rga3/include/rga.h
Lines 478 to 508 in 9789c74
RGA3 内核定义多了20字节,加上 rga_img_info_t 在 rga_req 结构体里多次使用,而且不是在 rga_req 末尾,导致 librga 与 RGA3 的 API 和 ABI 都不兼容。
mirrors/drivers/video/rockchip/rga3/include/rga.h
Lines 510 to 519 in 9789c74
也就是说,我基于 librga 构建的程序,在使用 RGA3 提供的内核设备时,会出现结构体参数错乱的问题,这问题已经在 RK3568 板子上实际复现过。
请问,librga 是否不兼容 RGA3 驱动?如果不兼容,librga 或者 RGA3 驱动有没有 ABI 兼容的计划?
I have a device pantherX2 and write image from here: ophub/amlogic-s9xxx-armbian#1319 https://github.com/ophub/amlogic-s9xxx-armbian/releases/download/Armbian_lunar_save_2023.11/Armbian_23.11.0_rockchip_panther-x2_lunar_6.1.60_server_2023.11.01.img.gz
I cannot find /dev/mppservice on my device, so I guess driver not installed.
I've post a issue here: jjm2473/ffmpeg-rk#33
But I guess this repo maybe the correct one to ask for help
很多这样的代码:
#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去合并那几个变量的类型
dw_hdmi-rochchip.c 1293
hdmi->vo1_regmap = syscon_regmap_lookup_by_phandle(np, "rockchip,vo1_grf");
Maybe check if ddc_en_reg == RK3568_GRF_VO_CON1
before trying to parse it. I commented it out and everything seemed to work.
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?
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.
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.
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.
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.
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);
在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
glmark2 2023.01
glmark2 Score: 57
=======================================================
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).
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:
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.
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.
Could you please synchronize the librga source code to version 1.10.0?
airockchip/librga only provides pre-built libs, some of my use cases require modifying the code in librga. Thanks in advance!
能否麻烦你将 librga 源代码同步到 1.10.0 版本?
Airockchip/librga 仅提供预构建的库,我的一些用例需要修改 librga 中的代码。非常感谢。@JeffyCN
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
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
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
rockchip_drm_gem.c
cacheable memory flag is broken during manual merging. It causes very slow copying from the decoder frame pool.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;
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.