11 2020 档案
摘要:OpenStack 架构中间菱形是虚拟机,围绕 VM 的那些长方形代表 OpenStack 不同的模块(OpenStack 叫服务,后面都用服务这个术语),下面来分别介绍。 Nova:管理 VM 的生命周期,是 OpenStack 中最核心的服务。 Neutron:为 OpenStack 提供网络连
阅读全文
摘要:docker运行需要Linux内核的一些特性支持,比如cgroups, namespace, bridge还有一些文件系统。另外应用部分也需要一些工具。在rockchip PX30的buildroot发行版很多内核很多特性不支持,所以需要重新配置内核并编译。1.内核添加的配置:2.应用添加的配置:3
阅读全文
摘要:最简单的方法:docker run --rm --privileged multiarch/qemu-user-static --reset -p yes简化,用于arm64的容器在x86上跑1.在https://github.com/multiarch/qemu-user-static/relea
阅读全文
摘要:1.查看设备号Linux的设备管理是和文件系统紧密结合的,把设备和文件关联起来,这样系统调用可以直接用操作文件一样的方法来操作设备。各种设备都以文件的形式存放在/dev目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样。为了管理这些设备,系统
阅读全文
摘要:docker image导入和导出1.将docker镜像save到本地docker save imageID -o saveImageName.tar 或者docker save imageID > saveImageName.tar2、加载镜像docker load -i saveImageNam
阅读全文
摘要:apt-get update失败,ping ip是可以通的,但是ping网址失败,所以是DNS的问题1.首先使用命令查找宿主机的DNS server,命令:nmcli dev show | grep 'IP4.DNS'2. 然后create一个文件,使用命令:vim /etc/docker/daem
阅读全文
摘要:1.下载https://sourceforge.net/projects/libuuid/ 2.解压tar xzvf libuuid-1.0.3.tar.gz3.编译cd libuuid-1.0.3/./configure CC=/usr/bin/arm-linux-gnueabihf-gcc --
阅读全文
摘要:参考:https://www.cnblogs.com/findumars/p/5970722.html 一.下载解压qt-everywhere-opensource-src的源码 1.下载 http://download.qt.io/archive/qt/5.9/5.9.4/single/qt-ev
阅读全文
摘要:参考:https://blog.csdn.net/qq_41546323/article/details/78931006 一.通过过sysfs方式控制GPIO 通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内
阅读全文
摘要:指定下列变量: -DOPENSSL_INCLUDE_DIR:指向 openssl-1.0 的 include 目录 -DOPENSSL_SSL_LIBRARIES:指向 openssl-1.0 的 lib 目录中的 libssl.so -DOPENSSL_CRYPTO_LIBRARIES:指向 op
阅读全文
摘要:openssl简介 OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 开发环境 Ubuntu 16.04 aarch64-linux-gnu-gcc version 5.4.0 开发环境不一定是我这配置
阅读全文
摘要:参考:http://www.cnblogs.com/aceheart/articles/3827185.html http://blog.csdn.net/njuitjf/article/details/6944314 1.如何追踪问题 我这里遇到的是在通话中开免提,对方无法听到我的声音 (1).在
阅读全文
摘要:参考:https://blog.csdn.net/haohenghai/article/details/24255451 alsa-lib如何解析asound.conf https://www.xuebuyuan.com/1043778.html 一.打开代码流程分析 无论是在录音还是在放音,都要打
阅读全文
摘要:参考: https://blog.csdn.net/tronteng/article/details/7355977 当一个widget的状态改变后,该widget会被加入dapm_dirty链表,然后通过dapm_power_widgets函数来改变整个音频路径上的电源状态 一.dapm触发的情况
阅读全文
摘要:参考: https://blog.csdn.net/u013531497/article/details/48290195 http://www.echojb.com/hardware/2016/12/21/283392.htm https://blog.csdn.net/droidphone/ar
阅读全文
摘要:一.Tinycap分析使用命令:tinycap /sdcard/test.wav -D card0 -d device0 -c 2 -r 48000 -b 16 -p 1024 -n 16Tinycap.c (external\tinyalsa)录音流程: #define ID_RIFF 0x464
阅读全文
摘要:一.tinymix调用,主要是控制接口,调用到底层的control操作方法:tinymix 0 SPKTinymix.c (external\tinyalsa)int main(int argc, char **argv) mixer = mixer_open(card); snprintf(fn,
阅读全文
摘要:一.tinyplay播放操作命令:tinyplay /sdcard/test.wavTinyplay.c (external\tinyalsa) file = fopen(filename, "rb"); //对应的音频文件 fread(&riff_wave_header, sizeof(riff_
阅读全文
摘要:Rk_i2s.c (sound\soc\rockchip) 1.入口函数subsys_initcall_sync(rockchip_i2s_init); //在module_init前面加载i2s1: i2s1@100b0000 { compatible = "rockchip-i2s"; reg
阅读全文
摘要:Es8323.c (sound\soc\codecs) 1.入口函数dts里面 status = "okay"; es8323: es8323@11 { status = "okay"; compatible = "es8323"; reg = <0x11>; pa-en1 = <&gpio1 GP
阅读全文
摘要:找到突破口,machine相关代码,因为它是连接platform和codec的桥梁 Rk_es8323.c (sound\soc\rockchip) 一.入口函数: 1.重要结构体 static const struct of_device_id rockchip_es8323_of_match[]
阅读全文
摘要:一.耳机的基本知识 1.手机全部使用了标准的3.5mm接口,对于一款采用3段式3.5mm接口的耳机来说是不存在兼容问题了,但采用四段式的线控耳机仍旧是有不兼容情况。常见的三段式接口叫做TRS端子,四段式为TRRS端子 2. 智能手机所使用四段式的3.5mm TRRS端子是有两种接口定义标准的,OMT
阅读全文
摘要:1.device/prize/pri6737t_66_m0/ProjectConfig.mk关闭:MTK_SIM_HOT_SWAP = no打开:MTK_SIM_HOT_SWAP = yes2.kernel-3.18/arch/arm64/boot/dts/pri6737t_66_m0.dts关闭:
阅读全文
摘要:一.环境搭建看相关文档 二.C2K编译和拷贝和添加步骤 1.编译 build CUST6753_65_L1(C2K_SVLTE_OM) new 这里我们选择C2K_SVLTE_OM,这个就是on maket的意思,生成的文件在build目录下面。 2.重命名和拷贝 In ALPS codebase,
阅读全文
摘要:一.c2k(CDMA)配置之band class configuration cust/hwd/MT6735_Phone/c2k_custom_rf.h 注意:看原理图,我们这里只支持BC0,就是BAND_A,所以配置如下; #define CUST_BAND_A SYS_BAND_CLASS_0
阅读全文
摘要:一.系统配置 1.使能clk custom/modem/mml1_rf/MT6735_MMRF_CUSTOM/mml1_custom_rf.h /*MT6735*/ #define MML1_CLK1_EN 1 /* CLK1 is enabled for BB */ /*MT6735*/ #def
阅读全文
摘要:一.proload电源管理分析 pmic_init //detect V battery Drop pmic_DetectVbatDrop(); //检测是否是PMIC_VBAT_DROP pmic_read_interface( MT6328_STRUP_CON9, (&just_rst), MT
阅读全文
摘要:一.初始化分析 Pmic.c (kernel-3.10\drivers\misc\mediatek\power\mt6735) struct platform_device pmic_mt_device = { .name = "mt-pmic", .id = -1, }; static struc
阅读全文
摘要:1.初始化电量,关机后插入充电器(sw fg)bat_thread_kthread BAT_thread battery_meter_initial(); table_init(); 主要是根据温度得到内阻R的表和OCV表 oam_init(); battery_charging_control(C
阅读全文
摘要:一.bq24296快充芯片驱动 kernel-3.10/drivers/misc/mediatek/power/mt6735/charging_hw_bq24296.c 1.给上一层提供的函数 kal_int32 chr_control_interface(CHARGING_CTRL_CMD cmd
阅读全文
摘要:一.平台相关的重要结构体 misc/mediatek/mach/mt6735/mt_devs.c 这个结构体在加载usb20.c的时候用到platform_device struct platform_device mt_device_usb = { .name = "mt_usb", .id =
阅读全文
摘要:参考: http://blog.csdn.net/weiqing1981127/article/details/8521600 http://blog.chinaunix.net/uid-9863638-id-1996328.html http://www.360doc.com/content/13
阅读全文
摘要:一.MTK测试的SPI驱动 Spi-dev.c (kernel-3.18\drivers\spi\mediatek\mt6735) struct spi_device_id spi_id_table = { "spi-ut", 0 }; static struct spi_driver spi_te
阅读全文
摘要:一.SPI控制器驱动程序 Spi.c (kernel-3.18\drivers\spi\mediatek\mt6735) static const struct of_device_id mt_spi_of_match[] = { /*{.compatible = "mediatek,SPI1",}
阅读全文
摘要:原理: 主控输出mipi--> LT8911B转换成EDP格式数据给屏主要工作: 用I2C与LT8911B芯片通讯。 需要满足的条件: 所以需要修改驱动: lk部分代码 kernel部分代码 其他修改: 还有一点就是确认一下MTK寄存器 HSTX_DIS_EOT 目前配置的是0还是1,,如果是0,请
阅读全文
摘要:一.平台方式: [DESCRIPTION]?关于LCM旋转180度,MTK提供一种新的方法,通过硬件OVL来实现。该方法会影响同一份load中的所有屏。 [SOLUTION] 配置方法: LK中: bootable/bootloader/lk/project/$project.mk MTK_LCM_
阅读全文
摘要:参考: http://blog.csdn.net/sunweizhong1024/article/details/8447915 http://blog.sina.com.cn/s/blog_720b34850101r2r2.html http://blog.csdn.net/cbk861110/a
阅读全文
摘要:参考博客 http://blog.csdn.net/eternity9255/article/details/52848775 单独分析6:生成Adapter //BaseCamAdapter.Instance.cpp (vendor\mediatek\proprietary\hardware\mt
阅读全文
摘要:Cam1DeviceBase.cpp (vendor\mediatek\proprietary\hardware\mtkcam\legacy\v1\device) Cam1DeviceBase::onCam1Device_NotifyCb 接上章的 mpCamClient->startPreview
阅读全文
摘要:参考: http://blog.csdn.net/eternity9255/article/details/52126392 一.Clinet端 .client到service的连接 看看客户端的connect函数有什么? connenct()函数的实现在libcamera_client.so中实现
阅读全文
摘要:参考: http://blog.csdn.net/vasvas/article/details/50109907 http://blog.csdn.net/weiqifa0/article/details/49943289 http://www.cnblogs.com/cyqx/p/4871033.
阅读全文
摘要:一.HAL层分析Flash_cct.cpp (vendor\mediatek\proprietary\hardware\mtkcam\legacy\platform\mt6735\hal\aaa\flash_mgr) 1.初始化int FlashlightDrv::init() init_real
阅读全文
摘要:一.6737的lens 搜索HAL层分析Mcu_drv.cpp (vendor\mediatek\proprietary\hardware\mtkcam\legacy\platform\mt6735\core\featureio\drv\lens) 根据摄像头搜索lensMCUDrv::lensSe
阅读全文
摘要:一.驱动 1. 在kernel-3.18/drivers/misc/mediatek/imgsensor/src/mt6735/ 文件夹加入摄像头驱动代码 gc2235main_mipi_raw/ //主摄像头文件夹 gc2235_mipi_raw/ //副摄像头文件夹 主摄像头里面要做一些判断,和
阅读全文
摘要:参考 http://blog.csdn.net/guoshaobei/article/details/6719671 http://blog.chinaunix.net/uid-27875-id-3913070.html 一.从preload跳转到lk,MTK的LK相当于UBOOT preload跳
阅读全文
摘要:参考:http://blog.chinaunix.net/uid-28458801-id-3487199.html 一.简介 MTK的bootloader分为bootROM + pre-loader[l5] +U-boot 因为bootloader的一部分和系统有关,所以MTK为了不同的应用将它分为
阅读全文
摘要:平台:mtk 一.hal层入口 Lights.c (vendor\mediatek\proprietary\hardware\liblights) char const*const RED_LED_FILE = "/sys/class/leds/red/brightness"; char const
阅读全文
摘要:平台:MTK 一.添加一个按键 1.在DCT tool keypad list 文件增加新按键的选项alps\mediatek\source\dct\Keypad_YuSu.cmp中添加新键,如SMS快捷键KEY_SYMKEY_SMSKEY_02.打开DCT tool 在keypad矩阵中在相应定义
阅读全文
摘要:一.其主要框架如下图所示: 二.sensor的JNI层:android_hardware_SensorManager.cpp (frameworks\base\core\jni) 注册JNI: register_android_hardware_SensorManager jniRegisterNa
阅读全文
摘要:光线系统包括:背光,闪光,led指示灯 一.内核层 Led-class.c (kernel-3.10\drivers\leds) 这个文件给HAL层提供接口 led_brightness_store是sysfs文件,在"/sys/class/leds/lcd-backlight/brightness
阅读全文
摘要:调试了包括驱动,jni层,当然也熟悉了下应用层。 1. 驱动层包括修改: device/eastaeon/aeon6735_65c_l/init.project.rc //去掉原来修改权限的语句 device/mediatek/mt6735/init.mt6735.rc //修改权限,不然可以ope
阅读全文
摘要:一.alsps的初始化函数和重要结构体 epl2182_init // Epl2182.c (kernel-3.10\drivers\misc\mediatek\alsps\epl2182-new) struct alsps_hw *hw = get_cust_alsps_hw(); //得到配置和
阅读全文
摘要:正文 转自:https://www.cnblogs.com/linhaostudy/p/9355595.html CPUFreq子系统位于 drivers/cpufreq目录下,负责进行运行过程中CPU频率和电压的动态调整,即DvFS( Dynamic Voltage Frequency Scali
阅读全文
摘要:一.简介 CPUFreq子系统位于 drivers/cpufreq目录下,负责进行运行过程中CPU频率和电压的动态调整,即DvFS( Dynamic Voltage Frequency Scaling,动态电压频率调整)。运行时进行CPU电压和频率调整的原因是:CMOS电路中的功耗与电压的平方成正比
阅读全文
摘要:前面转自:https://www.cnblogs.com/java20130726/archive/2012/06/15/3218570.html 在对NAND Flash烧写了bootstrap和U-Boot之后,启动目标板,发现有如下显示的错误: U-Boot 2009.11-rc2 (Jun
阅读全文
摘要:uboot下可以通过命令访问(printenv)和修改环境变量(setenv),但是如果需要在Linux系统下访问这些数据该怎么办呢?其实uboot早就帮我们想好了。 1、编译fw_printenv工具 source /opt/poky/environment... 创建交叉编译环境。 更改u-bo
阅读全文
摘要:平台:imx8mm 系统:linux 4.4 如果需要系统了解swupdate,请参考文章:嵌入式系统更新swupdate分类 一.制作升级包 emmcsetup.lua用来描述update执行前的preinst()和执行后的postinst() 这里主要是preinst(),如果没有mmcblk1
阅读全文

浙公网安备 33010602011771号