android boot image


android boot image全志 a64 linux sdk采用了android 的boot image,这里顺着该sdk系统理解android的引导镜像。如下linux-3.10/scripts/build.sh 代码片段显示,在完成内核编译后,改脚本直接将kernel的二进制可执行文件和cpio的gzip压缩包rootfs.cpio.gz 一起合并进入boot.img。#linux-3.10/scripts/build.sh line.27 export MKBOOTIMG=${LICHEE_TOOLS_DIR}/pack/pctools/linux/android/mkbo...

ramfs


ramfsWhat is ramfs?Ramfs is a very simple FileSystem that exports Linux's disk cacheing mechanisms (the page cache and dentry cache) as a dynamically resizable ram-based filesystem.ramfs 是一个基于linux缓存机制(page cache and dentry cache)的简易文件系统,基于ram,大小可动态调整。Normally all files are cached in memory by Li...

arm级vp9 编解码cpu概况


vp9 decoder cpu summary这里系统了解全志和海思的解码能力。allwinner h6https://pan.baidu.com/s/1aA-jRLSWtjaUq6BhXxq8mw em4jhttp://linux-sunxi.org/H6从Allwinner_H6_V200_User_Manual_V1.1_decrypted->Chapter 2 Overview->2.2.6. Video Engine ->2.2.6.1. Video Decoder 从User Manual 来看,能够达到4k@30fps的帧率,但是实际测试在6fps。a...

v4l2 driver framework code review


v4l2 drvier framework code review术语解释术语解释vfevideo front end driverccicamera control interfacecsicamera serial interface启动流程$dmesg -T |egrep -i 'vfe|ov5640|v4l|csi|cci'如上启动顺序csi、cci、mipi 等外设初始化;vfe控制 v4l2 启动;vfe在初始化 v4l2-device启动的时候已经同sub-device ov5640 通信,但是此时ov5640 启动还没有加载,这部分需要详细走读下代码;sub-devic...

linux gpio libc


gpio对linux c app里面的一个gpio操作云里雾里半天,是时候好好理理了。https://www.kernel.org/doc/Documentation/gpio/sysfs.txthttps://www.kernel.org/doc/Documentation/gpio/gpio-legacy.txt主要是这gpio number是如何同pin number 一一对应的。256 root@mxj-zbcs-310:#tree /sys/class/gpio . |-- export |-- gpio120 -> ../../devices/soc.0/1c20800...

Overview of the V4L2 driver framework


Overview of the V4L2 driver frameworkThis text documents the various structures provided by the V4L2 framework and their relationships.IntroductionThe V4L2 drivers tend to be very complex due to the complexity of the hardware: most devices have multiple ICs, export multiple device nodes in /dev, ...

使用VS2017 开发Linux C应用


使用VS2017 开发Linux C应用Visual C++ for Linux Development依赖环境sudo apt-get install zip openssh-server g++ gdb gdbserver配置sshd 支持root账户登录vi /etc/ssh/sshd_config permitRootLogin yes重定向uname,默认不支持aarch64echo "echo ARM" > /bin/uname #暂时不支持arrch64,需要重定向unameinclude在工程添加了路径添加了.h 文件,尽管在include 时...

log4c


log4chttp://log4c.sourceforge.net/已经从 http://log4c.sourceforge.net/ 下载源码,成功编译,现在需要讲动态库确定位置。然后讲对应的.h文件拷贝到工程。安装deb$sudo apt-get install liblog4c-dev #liblog4csource$wget http://prdownloads.sourceforge.net/log4c/log4c-1.2.4.tar.gz $mkdir log4c $tar -xvf log4c-1.2.4.tar.gz -C log4c $cd log4c/log4c-...

logrotate


logrotatedocsman logrotatetroubleshootings日志异常如上强制logrotate ,执行以下步骤。logrotate -v -f /etc/logrotate.d/kernel-message 重命名当前日志 renaming /var/log/messages to /var/log/messages-20180827压缩文件compressing log with: /bin/gzip默认的文件已经不在了。root@350-tf-s2 /var/log# ls -lhS message* ls -lhS kern* -rw-r----- 1 ro...

systemd


systemdSystemdsystem V与systemdman systemdsystemd 是linux操作系统的系统和服务管理器,作为boot启动后的第一个进程(PID=1),systemd扮演初始化系统,以及启动和维护用户空间服务。为了兼容SysV,如果systemd初始化被调用并且进程id不是1,它将执行telinit,并且将同步参数到该应用,所以在正常系统登录状态下的init和telinit是等同的。更多信息通过man telinit 了解。当作为系统实例启动,systemd通过system.conf 解析配置文件,如果作为用户进程启动,从user.conf解析配置文件,更...