- 博客(157)
- 资源 (40)
- 收藏
- 关注
原创 Gerrit 通过指令添加Reviewer和review以及submit
有时批量提交一些patch时没有加reviewer,手动一个个加太麻烦,可以通过指令批量添加reviewer,review,以及submit。和review指令一样,添加-s参数即可,通常review和submit 同时执行。也可以把git rev-list换成两个commit之间。
2023-12-22 14:12:21 702
原创 Android单编模块报FAILED: ninja: unknown target ‘MODULES-IN-vendor错误解决
在检查Android.mk或Android.bp无误后,就要怀疑是不是这个目录的上级目录是不是没有包含这个目录的Android.mk,导致编译系统无法加载这个目录的Android.mk从而报unknown target错误。例如:我的模块路径为vendor/xxx/hardware/audio/external/alsa-utils-1.2.8/Android.mk。可以看到只有定义了VENDOR_USING_ALSA_LIB才会加载alsa-utils-1.2.8下的Android.mk。
2023-09-19 10:31:37 2654
原创 自己编译静态ffmpeg freetype2 not found问题解决
整理好依赖的ffmpeg仓库地址: https://github.com/pyke369/sffmpeg。报错:ERROR: freetype2 not found using pkg-config。安装后还是报一样的错,实际编译依赖的freetype2已经在build文件夹里下载了。网上查询说是需要安装freetype-devel。后来发现需要修改Cmakefile.txt。添加如截图的外部库后,成功编译。
2023-09-11 11:30:33 1206
原创 基于Android R快速编译recovery-ramdisk.img
Android默认没有单编recovery-ramdisk.img的命令,我们可以自己修改Makefile实现。注意:这个image是开启了Android AB系统时才有用,未开启AB系统,使用的是ramdisk.img。我们一般整编代码后,有时只修改部分代码,为快速验证,或者想预置一些问题到此image都可以使用此方法。生成recovery-ramdisk.img后,再使用打包boot脚本,即可快速验证。修改:build/core/Makefile。
2023-08-22 17:42:48 869
原创 linux ALSA 驱动架构
各Driver Probe流程和machine相同,都是调用 devm_snd_soc_register_card和devm_snd_soc_register_component两个函数。首先配置dai-link,然后通过devm_snd_soc_register_card 调用snd_soc_register_card注册card并且解析dai-link,调用snd_soc_card_probe调用platform driver的dai_probe函数。sound:对应machine driver。
2023-02-10 15:08:47 1537 1
原创 Audio参数讲解
音频基础参数frame_bits 一帧数据的位数比如 :16bits 2ch frame_bits = 16*2sample_bits 采样位数 比如16bit 24bit 32bitperiod_size 指一个周期包含多少帧periods 每次处理AD/DA转换的间隔周期内核可以缓冲很多周期的数据,每个周期都会生成一个中断和一个副本,用户层可以间隔很长时间再处理一次,一次可以处理多个周期的数据buffer_size= period_size * periodsparams_p
2022-12-05 17:54:34 2028
原创 PI4IOE5V6534 gpio扩展芯片linux驱动
regmap的方式会有更新i2c寄存器不及时的问题,有时读取不更新,暂采用实时读取的方式/* * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/ * Keerthy <[email protected]> * * This program is free software; you can redistribute it and/or * modify it under the term.
2022-04-29 17:15:29 269
原创 linux kernel spi write_and_read clk不间断
spi_write_and_read,一帧完成写和读,CS保持低,clk不间断
2022-04-29 14:34:20 917 3
原创 kernel打印函数指针的函数名称,方便找到调用的真实函数
核中函数指针用的很多,在debug 的时候能直接打印出一个函数指针对应的函数就会很方便。打印裸指针(raw pointer)用 %p,%p除了可以用来打印指针外还可以打印其它的信息%pF可打印函数指针的函数名和偏移地址,%pf只打印函数指针的函数名,不打印偏移地址。如 printk("%pf %pFn", driver->ops->open) 但是为了支持这个功能你需要开启CONFIG_KALLSYMS 选项...
2022-03-25 14:42:19 732
原创 Android编译模块报错的奇葩错误
移植编译alsa-util时遇到一个奇葩错误如下[ 98% 218/222] target C: aplay <= vendor/xxxx/bin/alsa-utils-1.1.9/aplay/aplay.cvendor/xxxx/bin/alsa-utils-1.1.9/aplay/aplay.c:3:1: warning: return type of 'main' is not 'int' [-Wmain-return-type]void main()^vendor/xxxx/bi.
2022-02-08 17:51:43 2033
转载 基于Hypervisor智能驾舱的AUTOSAR解决方案
MENTOR嵌入式管理程序 目前,通常使用两种类型的管理程序(图6): Type 1本机管理程序:一种在硬件上本机运行的管理程序,因为它充当核心中的操作系统。Type 2托管虚拟机监控程序:此类型的虚拟机监控程序必须由另一个操作系统托管,并且仅负责使用主机操作系统可用的资源来虚拟化客户操作系统。 图6:虚拟机管理程序 虚拟化的工作原理是从硬件上运行的应用程序中抽象出物理硬件和设备。虚拟化流程管理和配置该系统的资源,包括处理器、内存、存储和网络资源。这使该系统能够同时承载多个工作负载,从而在整个企业中.
2021-12-03 11:08:55 690
转载 ARM 虚拟化介绍
0.目录 文章目录 0.目录1.概述1.1 Before you begin 2.虚拟化介绍2.1 虚拟化为什么重要2.2 hypervisors的两种类型2.3 全虚拟化和半虚拟化2.4 虚拟机和虚拟CPUs 3.AArch64中的虚拟化4.stage 2 转换4...
2021-12-03 10:36:32 2478
转载 嵌入式HypervisorXvisor与KVM和XEN+ACRN架构的对比分析
目录 目录 目录摘要1.介绍2.虚拟化技术分类2.1 Hypervisor设计1.完全宏内核设计2.部分宏内核设计3.微内核设计 2.2 虚拟化模式1.全虚拟化2.半虚拟化 3. **嵌入式系统的开源Hypervisor**3.1 XEN3.2 KVM3.3...
2021-12-03 10:29:07 2153
转载 Zephyr环境搭建
Zephyr 环境搭建我这里 Zephyr 环境搭建在 Ubuntu 20.04 上,Ubuntu 运行在 virtualbox 虚拟机中。前置条件Ubuntu 20.04 (virtualbox on win10)环境搭建首先输入sudo apt updatesudo apt upgradesudo apt upgrade 第一次更新的时候可能会失败,再输入一次即可。安装依赖包需要使用 apt 来安装依赖包,最好使用国内源。sudo apt install --no-insta
2021-12-02 17:41:57 487
转载 ubuntu通过apt的方式更新cmake到最新版(ppa)
添加签名密钥 wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - 将存储库添加到您的源列表并进行更新 稳定版 sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'...
2021-12-02 17:28:55 1163
原创 Kernel 中MakeFile 使用if条件编译
有时需要通过if else来选择编译哪个驱动,单纯的obj-$(CONFIG_)就不是很方便,下面提供两种参考案例:案例一:来源:drivers/char/tpm/Makefileifdef CONFIG_ACPI tpm-y += tpm_eventlog.o tpm_acpi.oelseifdef CONFIG_TCG_IBMVTPM tpm-y += tpm_eventlog.o tpm_of.oendifendif案例二:来源:drivers/char/Mak...
2021-11-30 17:22:00 479
转载 操作系统微内核架构研究
1 简介 微内核是操作系统内核的一种,在工控系统、嵌入式系统、实时系统等领域发挥着重要作用。本文较为全面地研究了微内核技术的各个方面,包括微内核的定义、微内核的体系架构、微内核的发展历史、微内核的特点、微内核的应用场景,以及麒麟软件有限公司所进行的部分研究工作。本文部分内容和图来自网上,由于内容较多,有些没有标注,如果原作者觉得不合适请联系删除。 2 微内核的定义 在计算机科学中,内核是操作系统的核心部分,...
2021-11-26 13:39:15 1435
原创 Ubuntu 16.04安装python3.6及其以上版本
Ubuntu16.04 自带python2.7 和3.5,若需要安装高版本需要添加源网络搜索几个源sudo add-apt-repository ppa:jonathonf/python-3.6sudo apt-get updatesudo apt-get install python3.6这个已不存在会报错如下Cannot add PPA: 'ppa:~jonathonf/ubuntu/python-3.6'.ERROR: '~jonathonf' user or team
2021-11-19 16:38:36 3004 10
原创 MTK Android P/Q system/vendor/super快速打包
一、Android 新版本默认开启了动态分区,把system vendor product等分区打包成一个super分区。这对于我们使用替换分区的方法来排查问题不是很方便,直接替换一个super也不知道到底是哪个部分导致的。所以我们需要自己制作super.img来缩小范围。下面讲讲如何快速生成system、vendor、super,以及vbmeta(校验image,不匹配可能会导致不开机)二、快速生成system.img传统做法,使用系统自带打包命令:make snod ,这个命令在老版本an...
2021-11-17 17:17:45 4091
原创 MTK平台AndroidP/Q快速生成dtb.img和dtbo.img(2秒生成)
背景:MTK升级新的Android版本后,无法快速编译dtbo image,当我们修改DWS和PROJECT DTS后验证问题非常麻烦,必须删除out下KERNEL_OBJ才能生成新的dtbo.img,而且必须整编。所以跟据编译流程,写了下面这个脚本,可以快速生成dtbo和dtb image,可以几秒钟完成使用方法:(1)将脚本放在工程跟目录(2)修改脚本开头的几个变量,改为你的工程配置(3)执行:./build_dtb.sh project_name #project_n...
2021-11-03 18:32:32 2655
原创 MTK AndroidP/Q快速打包ramdisk
一、Android P/Q ramdisk与老版本的差异Android老版本的ramdisk是out下的root/ramdisk打包而来,里面包含了init /sbin init.rc default.prop等文件。是一个完整的ramdiskAndroid新版本ramdisk分为了out 下的ramdisk目录和root目录,init ,init.rc等文件大部分都放到了system下(当然这是基于把system作为跟目录的情况,但是现在默认应该就是这样配置了吧)。Android新版本...
2021-11-02 18:59:38 1800
原创 Android P/Q MTK平台无依赖打包boot.img
背景: 有时排查版本问题,需要用到替换img的方式来查找问题出现在哪个img,若出现在bootimg,那到底是kernel、DTB 还是ramdisk。此时就需要单独替换其中一个的方式来打包,之前直接make bootimage-nodeps就可以了,但现在发现执行这个命令无效了。下面就分析下新版本如何找到正确的打包命令。一、找到编译boot的命令之前Android编译log里就会把make boot等img的指令打印出来,现在这个log也没有了,那就只能自己修改Makefile 把...
2021-09-30 10:04:21 971
原创 Ubuntu ftp搭建--配置不同用户不同权限
一、安装VSFTPsudo apt-get install vsftpd二、添加FTP用户sudo mkdir /etc/vsftpdsudo useradd -m -d /home/vsftpd vsftpd --用户名为vsftpd,目录和用户名可以自己更改sudo vi /etc/vsftpd/ftpuser.txt --这个到时与vsftp的配置文件对应建立一个文本格式的用户名/密码列表文件,奇数行为用户名,偶数行为上一行中用户名所对应的密码。输入ftp_r
2021-09-05 13:40:41 916
原创 MTK平台DTBO如何生成的以及DWS生成DTS
一、MTK平台最初就是使用DWS来配置GPIO,非常方便、直观;但随着kernel版本升级使用设备树之后,硬件信息都由DTS来描述,但MTK仍然保留了DWS,下面看看MTK如何将DWS转换为DTSI的。kernel使用的DWS路径:drivers/misc/mediatek/dws/mt6752/mt6752_64.dws虽然vendor\mediatek\proprietary\custom\mt6752_64\kernel\dct\dct\codegen.dws也存在但默认不用这个DWS转换为
2021-08-06 17:29:46 3440
原创 MTK单编image
一、通用的单编指令支持的指令定义在build/core/main.mk具体这些image如何生成定义在build/core/Makefile自己新增image编译也就需要修改这两个文件,可以参考boot.img 和 system.img快速编译image,无需依赖定义在build/make/core/config.mk二、开启secure boot 即AVB feature情况若开启安全启动,需要生成带verified 的img,使用上述命令编译出的img烧录..
2021-07-27 18:45:46 1048
原创 MTK Audio驱动Poring
Audio设计如果使用MTK参考设计,Audio驱动相对简单,只需要基于MTK portingGuide就可以完成Porting。但是如果自己外接Codec,需要改变参考设计就需要对Audio框架有一些基本的了解,也要对MTK的代码架构有些了解。下面记录一下MTK Audio的移植心得。ALSA架构驱动需要关注的三个部分Platform drivers,提供了配置/使能 SoC audio interface (或称 CPU DAI) 的能力; Codec drivers,提供了配置/使能 Cod
2021-07-23 17:45:16 1639
原创 Kernel编译使用系统环境变量
在编译Android代码时,有时想使用一个宏控制各个模块的功能开关(preloader、lk、kernel、android)。但是Android device下的project config mk配置默认只对android的代码有效。如果想全局有效,需要修改Google的默认设计。我们可以使用环境变量来实现,需要做的就是将环境变量转换为代码可使用的宏定义。kernel默认的宏定义就是Kconfig文件的定义,而且Kconfig文件是可以读取到系统环境变量的。实例:导出环境变量 expo.
2021-07-16 16:45:55 769
原创 Android.bp中编译强制静态可执行文件
有时我们想编译一个不依赖动态库的可执行程序,就需要添加强制静态的条件。Android.mk 中添加LOCAL_FORCE_STATIC_EXECUTABLE:=true即可那Android.bp如何编译呢?只需在Android.bp对应模块中添加stl: "libc++_static",即可例如:cc_binary { name: "img2simg", host_supported: true, srcs: ["img2simg.c"], static
2021-07-12 20:24:25 1426 2
原创 tmux免root免翻下载安装
依赖库 1.libevent 2.ncurses 3.tmux libevent安装 wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.2...
2021-07-06 20:50:32 374
转载 RK3399 Audio驱动讲解
目的:从驱动开发的角度大致了解一下 RK3399 Audio 功能。环境:NanoPC-T4 / Ubuntu-18.04 / Linux-4.4目录:1. 测试功能2. 浏览硬件信息3. 查看 driver 层4. 应用层查看声卡信息1. 测试功能播放:# 查看 playback 设备$ aplay -l**** List of PLAYBACK Hardware Devices ****card 0: realtekrt5651co [realtek,rt..
2021-06-21 16:37:38 4230 5
转载 Android AB system之system_other.img
开启AB升级方案的项目,因为很多需要升级的镜像都有两份,所以存储空间比较浪费。为缓解此问题,有个针对odex的优化方案。 编译版本会生成两个system镜像:system.img和system_other.img,其中,system_other.img中存储的就是odex文件,这样system.img就能小很多,意味着可以为system分区划分较小的空间。 在首次开机时,假设system.img镜像存储在A s...
2021-06-21 14:52:32 1329
转载 ubuntu 公网FTP搭建,解决无法连接
1 Ftp服务器的安装 如果之前配置过ftp服务器,但无法启动服务,那么本是配置出现了错误,那么可先完全卸载后再进行安装。 sudo apt-get install vsftpdsudo vsftpd -v // 检查是否安装 如果安装会出现:vsftpd: version 3.0.3 2 Ftp服务器的配置 sudo vim...
2021-05-24 16:20:03 2117
build_dtbo.sh
2021-11-03
boot解包打包工具.rar
2021-07-12
adb1.0.41.rar
2021-02-09
MTK平台支持Android 原生API打开USB摄像头patch
2020-12-31
usb_audio+cdc复合设备驱动.rar
2020-12-24
uvc_gadget_img-1.0.0.rar
2020-10-29
xTIMEcomposer-User-Guide (X3766A)译文.pdf
2020-06-03
90640上位机程序.rar
2020-04-27
自动解压APK lib生成Android.mk
2020-04-27
i2c-tools-arm64-bin.rar
2020-01-20
UVCCapture_jni.zip
2019-08-22
auto_generator.py
2019-07-19
e2fsprogs Android端可行性程序
2024-03-22
Android busybox 可执行文件支持arm,arm64,x86,x86-64
2024-01-23
Android boot解包打包工具,支持Android 4到android11,Linux 环境可用
2023-10-16
i2c调试工具支持android、Linux
2023-10-11
alsa static 编译源码,已修改好源码文件和Android.mk
2023-09-19
alsa静态编译版本 arm64架构Android
2023-09-19
Android adb/fastboot驱动
2023-08-24
tinyalsa 工具,静态编译,不依赖库
2023-08-23
memory test tool
2023-08-02
WAV 音频制作软件,正弦、固定数据等
2023-07-13
Android linux arm arm64 aplay 和 tinyplay工具
2023-06-27
nodejs V9 android arm64 版本,可执行程序,android系统内解压使用
2022-06-20
system image解包打包工具
2022-05-08
Android arm64 hcitool 源码及可执行文件
2022-03-08
spi tool 测试工具源码和bin档,android arm64 bin文件
2022-03-03
Android alsa util 和 lib 源码,Android.mk已写好,编译通过
2022-02-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人