- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 android 通过adb shell命令旋转Android屏幕朝向
#禁止旋转adb shell content insert --uri content://settings/system --bind name:s:accelerometer_rotation --bind value:i:0#横屏模式adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:1#竖屏模式adb shell content insert
2021-09-23 14:27:54
10513
原创 linux内核添加打印控制开关
#define DEBUG 1#if DEBUG#define debug_print(fmt, args...) printk( KERN_DEBUG "xxx_debug:" fmt, ## args)#else#define debug_print(fmt, args...) do{}while(0)#endif
2021-09-03 09:40:28
341
原创 android6.0 SD卡、U盘等自动挂载
先确保linux层驱动没问题该文章讲述的是Android6.0的实现,Android4.0可以参考 参考文章Android系统中可使用uevents程序来捕捉linux内核提交的uevent事件,并打印内容信息;uevents源码在android源码system/extras/tests/uevents中,可以通过:mmm system/extras/tests/uevents编译该模块make snod打包进system.img执行uevents命令后插入SD卡add@/devices/..
2021-03-14 15:02:01
589
原创 Android串口终端获取root权限
简介android文件系统中很多文件夹不能在串口中直接查看,给串口添加root权限可以使调试变得非常方便;修改a 在pc机上修改system/xbin/su权限sudo chmod a+s /bin/sub 在串口中运行su获取root权限
2021-03-05 11:03:43
1838
1
原创 Android源码编译 overlay机制
简介同一套Android源码可以编译出不同的版本以适应不同的客户需求,不同的平台需求,修改android配置时如果直接修改源码里的配置那么每个需求都搞一份源码?这样显然不实际,也不好维护;此时,overlay机制就就是为了解决这个问题,在编译时,overlay中的文件会覆盖源码中的相应位置的文件;建立1 在/device/hqmo/itop4412中建立overlay文件2 在该overlay文件中添加需要修改的文件及其目录(文件的目录和源码中相应文件的目录要一致)3 在/device/hqmo.
2021-03-03 18:12:00
1022
1
原创 uboot编译出错
错误:arm-linux-ld.bfd:u-boot.lds:1: syntax error解决:可能是有某些地方使用了//进行注释,uboot源码中头文件的注释不能使用//。
2021-02-22 10:13:29
359
原创 openJDK7安装
简介安装Ubuntu16.04 安装openjdk-7-jdksudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdkUbuntu16.04的安装源已经默认没有openjdk7了,所以要自己手动添加仓库,如下:1. oracle openjdk ppa sourcesudo add-apt-repository ppa:openjdk-r/ppasudo apt-get updatesudo apt-g.
2021-02-06 13:26:36
2255
1
原创 ubuntu构建swap内存交换区
#创建一个交换文件sudo dd if=/dev/zero of=/swapfile bs=1G count=4#设置为swap交换区sudo mkswap /swapfile#修改权限,也可以不修改sudo chmod 600 /swapfile#启动交换分区,关闭交换分区是sudo swapoff /data/swapfilesudo swapon /swapfile#如果想开机自动挂载,需要修改/etc/fstab启动脚本,添加/swapfile none swap sw 0 0
2021-01-22 21:31:51
291
原创 使用meson编译
[请参考文章](https://blog.csdn.net/mo_daizi/article/details/109880728)
2020-12-10 21:48:51
2277
原创 v4l2 fmt转string
简介v4l2数据格式定义使用v4l2_fourcc对字母进行转换得到,如:#define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16 YUV 4:2:2 */,在使用VIDIOC_ENUM_FMT或VIDIOC_G_FMT(ioctl函数)获取格式后往往不能直观的得到是哪种格式,可以通过装换将其转换成字符串,这样看打印出来看的话比较直观;转换代码const char* fmt2str( unsigned fmt ){ s.
2020-12-03 11:09:51
366
原创 shell脚本格式错误
简介在windows系统中编辑的shell脚本,到linux中运行会出现-bash: .XXX: /bin/bash^M错误,这是由于window和linux文档的换行符不一样造成的,Windows系统中的换行符是**\n\r**,Linux系统中的换行符是**\n**,将\r删除就可以了;解决运行以下脚本,将\r替换为空格符,问题解决;sed -i 's/\r$//' xxx.sh参考博客...
2020-12-01 13:54:46
637
原创 tslib移植
简介tslib是linux用于触摸屏的库文件;移植源码下载#解压并进入解压后的文件tar xzf tslib-1.4.tar.gzcd tslib#运行./autogen.sh #建立安装文件夹mkdir install#避免undefined reference to `rpl_malloc'报错??echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache#配置./configure --host=arm-linu.
2020-11-26 16:27:56
184
原创 lcd真彩色、伪彩色和直接色的区别
真彩色像素点的值(RGB三个分量)直接决定lcd显示的三基色(RGB);伪彩色像素点的值作为索引到调色板中查找lcd显示的三基色(RGB);直接色像素点的值的三个分量(RGB)分别最为索引,到调色板查找(变换)到lcd显示的三基色(RGB);linux系统中的宏定义FB_VISUAL_MONO01: 黑白像素,0=白 1=黑FB_VISUAL_MONO02: 黑白像素,0=黑 1=白FB_VISUAL_TRUECOLOR: 真彩色,每个像素值直接是RGB分量FB_VISUAL_PSEU.
2020-11-25 15:52:49
1529
原创 将ramdisk文件系统编译进内核
简介可以把根文件系统编译进内核里面,这样貌似能加快启动速度;设置在此之前需要先构建你自己的根文件系统,可参考busybox根文件系统制作配置内核选项#1 BLK_DEV_INITRD选项#/XXX为文件系统所在路径[*]General setup [*]Initial RAM filesystem and RAM disk (initramfs/initrd) support (/XXX)Initramfs source file(s)#2 BLK_DEV_RAM[*]Dev.
2020-11-23 16:09:05
642
原创 libdrm移植
简介DRM(Direct Rendering Manager)是Linux目前主流的图形显示框架,相比FB架构,DRM更能适应当前日益更新的显示硬件。比如FB原生不支持多层合成,不支持VSYNC,不支持DMA-BUF,不支持异步更新,不支持fence机制等等,而这些功能DRM原生都支持。同时DRM可以统一管理GPU和Display驱动,使得软件架构更为统一,方便管理和维护引用。libdrm则是提供给应用层的库,抽象接口,方便用户操作使用;移植下载地址#解压并进入解压后的文件夹xz -d li.
2020-11-21 00:15:37
5032
原创 Linux编译提示[-Werror=uninitialized]错误
简介在进行linux源码编译时提示may be used uninitialized in this function [-Werror=uninitialized],原因是添加了-Werror选项把警告提示为错误;解决在源码根目录中找到-Werror选项并删除即可;
2020-11-18 11:32:10
8373
原创 busybox根文件系统制作
简介busybox提供许多shell命令,如cd、ifconfig等等,可以用于制作linux根文件系统;编译源码下载#解压tar xzf busybox-1_32_0.tar.gzcd busybox-1_32_0#配置busybox#设置busybox setting->build options->cross compiler prefix 为arm-linux-(你自己对应的交叉编译器)#取消静态编译选项busybox setting->build opti.
2020-11-17 23:33:10
402
原创 alsa-utils移植
简介alsa-utils提供了一些linux下的alsa声卡测试程序,如声卡控制amixer、播放aplay和录音record,注意声音播放和录音时同一个程序,只需要将aplay名字改为arecord就是录音应用程序;下载下载地址移植解压后进入解压目录并运行脚本程序:#!/bin/bash#INSTALL_DIR=$(pwd)/_install#cross_compiler=arm-linux-gnueabihf-HOST=arm-linux-gnueabihf./configu.
2020-11-12 14:01:03
361
原创 alsa-lib移植
简介alsa-lib是针对音频应用编程的库,供应用层使用;下载下载链接移植解压后运行下面脚本:#!/bin/bashprefix=$(pwd)/_installdatarootdir=$(pwd)/_datarootdirif [ ! -d "${prefix}" ]; then mkdir ${prefix} if [ $? != 0 ]; then echo "文件夹:${prefix}创建失败" .
2020-11-12 12:00:27
365
原创 ASoC驱动框架简介
简介ASoC框架是一种linux系统声卡驱动框架,是针对嵌入式设备在linux alsa声卡驱动框架基础上进行了一层封装,意在将声卡和cpu两部分的控制代码分离开来;如上图是音频系统的硬件示意图,声卡通过I2S接口与cpu进行音频数据传输,通过I2C接口与cpu进行控制通讯(数据接口和控制接口也可以是其他);录音数据通路:麦克风---->声卡–(I2S)->DMA---->内存;播放数据通路:内存---->DMA–(I2S)->声卡---->扬声器;如图所..
2020-11-10 17:08:24
4044
2
原创 v4l2驱动框架简介
简介v4l2全称是video for linux version2,是linux针对视频的一套驱动框架,包括视频输入(如摄像头),视频输出(如VGA输出等),视频编解码;本章节主要针对视频输入设备(如摄像头);摄像头数据流摄像头数据从内核空间(驱动)传输到用户空间(APP)主要有两种方法:a:用户空间通过read系统调用进入内核空间,内核空间驱动通过v4l2_file_operations->read读函数里调用copy_to_user函数将视频数据拷贝到用户空间,这种方法效率低下,对..
2020-11-05 17:16:22
4872
3
原创 strace系统调用跟踪工具
简介strace是linux系统应用程序系统接口调用跟踪工具,可用于应用程序调试或者驱动调试学习;移植源码下载地址#解压并进入解压后的目录tar xf strace-5.9.tar.xzcd strace-5.9#建立安装输出文件mkdir out_dir#查看配置选项./configure -h#配置#--prefix 安装目录#--host 目标主机./configure --prefix=$(pwd)/out_dir/ --host=arm-linux-gnueabi.
2020-10-29 12:26:31
142
原创 网络根文件系统启动参数设置
前提条件a. 确定uboot阶段网络可用(ping一下主机)b 确定主机端nfs服务器正常使用#本地挂载测试sudo mount -t nfs -o nolock localhost:/home/XXX/ /mnt/参数设置在开发板uboot阶段从主机下载设备树文件、内核,并挂载nfs根文件系统#设置开发板ipenv set ipaddr 192.168.1.155#设置服务器ipenv set serverip 192.168.1.103#设置启动参数env set b.
2020-10-28 17:47:22
280
原创 wm8960驱动调试问题集合
开发环境:linux4.14.12itopimx6ull修改设备树(simple-card)widgets和routing没声音修改reg_default寄存器的值没有更新到wm8960中
2020-10-11 12:59:18
2921
原创 libiconv移植
简介iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件。它的作用是在多种国际编码格式之间进行文本内码的转换。移植libiconv下载地址#解压并进入目录tar xzf libiconv-1.16.tar.gz cd libiconv-1.16#配置mkdir out_dir./configure --prefix=$(pwd)/out_dir --host=arm-linux-gnueabihf make && make install #将ou.
2020-09-25 16:52:38
528
原创 imx6ull移植QT5.7.0
简介QT是一个跨平台的UI工具,主要用C++开发,速度快。依赖库libpng移植QT源码下载configure 配置内容可参考链接#解压并进入源码#根据CPU架构等修改qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf文件#根据cpu架构添加以下内容QT_QPA_DEFAULT_PLATFORM = linuxfbQMAKE_CFLAGS += -O2 -march=armv7-a -mtune=cortex-a7QMAKE_C..
2020-09-24 14:31:47
609
原创 libpng移植
简介依赖于zlibzlib库移植移植下载链接#解压并进入目录tar xzf libpng-1.2.59.tar.gzcd libpng-1.2.59#配置mkdir out_dir./configure --host=arm-linux-gnueabihf --prefix=$(pwd)/out_dir/ CC=arm-linux-gnueabihf-gccmake && make install#将out_dir中生成的文件拷贝到交叉工具链和开发板文件系统中.
2020-09-17 11:43:39
323
原创 zlib移植过程简介
简介zlib是数据压缩函数库;移植官网下载地址#解压进入目录tar xzf zlib-1.2.11.tar.gzcd zlib-1.2.11#配置mkdir out_dir./configure --prefix=$(pwd)/out_dir/ #修改Makefile里的默认编译工具#将Makefile下列变量前缀改为自己编译器前缀CC=arm-linux-gnueabihf-gccLDSHARED=arm-linux-gnueabihf-gcc -shared -Wl,-so.
2020-09-17 11:41:09
695
原创 ubuntu QT库更改
简介不同的开发板可能使用不同的交叉编译工具链,那么所编译出来的QT库也可能不一样(即使是同一版本,交叉工具链换了也需要重新编译);qmake命令qmake -v可以查看当前使用的QT版本;qmake在/usr/bin/目录下,为当前目录 qtchooser命令连接文件;qtchooser -l查看当前所支持的QT库,实际上该命令会去/usr/share/qtchooser/目录下查看解析所有XXX.config文件以获取所有QT库信息,一个XXX.config代表一个QT库,所以编译好一个板子的.
2020-09-16 17:54:06
464
原创 开发板网卡自动获取ip并设置网关
udhcpc命令udhcpc命令可用于客户端自动获取ip并设置网关;Usage: udhcpc [-fbnqvoCRB] [-i IFACE] [-r IP] [-s PROG] [-p PIDFILE] [-V VENDOR] [-x OPT:VAL]... [-O OPT]... -i,--interface IFACE Interface to use (default eth0) -p,--pidfile FILE Crea.
2020-09-14 13:40:21
1423
原创 Wpa_supplicant工具移植
简介Wpa_supplicant是配置无线网卡设备的工具,其依赖于libnl库和libopenssl库。libnl库移植源码下载#解压源码tar xzf libnl-3.5.0.tar.gz #进入mulu cd libnl-3.5.0#创建安装文件夹mkdir out_dir#配置#--host 交叉编译器前缀(目标机)#--prefix 安装路径./configure --host=arm-linux-gnueabihf --prefix=$(pwd)/out_dir/#.
2020-09-13 18:07:25
579
原创 wireless_tool库移植
库文件下载官网地址解压编译#解压tar xzf wireless_tools.29.tar.gz#进入解压后的目录cd wireless_tools.29#修改Makefilevim Makefile#根据自己的交叉编译工具修改CC AR和RANLIBCC = arm-linux-gnueabihf-gccAR = arm-linux-gnueabihf-arRANLIB = arm-linux-gnueabihf-ranlib#编译make #将相关可执行文件可库函数复制.
2020-09-12 15:01:19
186
原创 开发板ping不通外网
问题:开发板可以拼通内网但是不能ping通外网如错误提示:ping: bad address ‘www.baidu.com’解决方法:添加网关#route命令查看路由信息route#给默认网卡添加网关route add default gw 192.168.1.1#给特定网卡(eth1)添加网关route add default gw 192.168.1.1 eth1...
2020-09-10 21:42:04
1192
原创 linux cpuinfo->hardware 名字修改
修改位置在linux内核arch/arm/mach-XXX中的:DT_MACHINE_START(IMX6UL, "Freescale i.MX6 Ultralite") .init_irq = imx6ul_init_irq, .init_machine = imx6ul_init_machine, .init_late = imx6ul_init_late, .dt_compat = imx6ul.
2020-08-14 11:47:51
1017
原创 ubuntu更换编译器版本
gcc -v查看当前版本安装需要的版本#sudo apt-get insall gcc-xsudo apt-get insall gcc-x-multilibsudo apt-get insall g++-xsudo apt-get insall g++-x-multilib更新优先级#其中/usr/bin/gcc-x为版本所在的位置#NUM为设置的优先级 100 为最大优先级sudo update-alternatives --install /usr/bin/gcc..
2020-07-29 14:23:05
747
原创 Linux内核返回错误类型
//errno-base.h#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#define ESRCH 3 /* No such process */#define EINTR 4 /* Interrupted system call */#define EIO 5 /* I/O error */#define ENXIO 6 /* N
2020-07-16 17:05:22
331
原创 fdisk、mkfs和dd命令对存储设备进行分区、文件系统格式化和数据写入操作
fdisk命令对存储设备进行分区dd命令对存储设备进行写操作dd iflag=dsync oflag=dsync if=/dev/zero of=$2 bs=1M count=1sudo dd iflag=dsync oflag=dsync if=./itop4412.img of=/dev/sdb bs=512 seek=206848
2020-07-05 16:57:17
2766
原创 linux启动后/sys、/proc中没有任何文件
造成该现象的直接原因:/etc/fstab中的文件系统没被加载;导致该直接原因的可能原因:1 ect/init.d/rcS中的没有执行mount -a挂载文件系统;mount -a 的作用是将 /etc/fstab 中定义的所有系统挂上;2 /etc/中没正确定义fstab文件3 ect/init.d/rcS无执行权限...
2020-06-21 01:44:28
1349
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人