linux
文章平均质量分 51
丁香树下丁香花开
丁香树下,丁香花开!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
wpa_supplicant-2.6交叉编译及错误解决
最近项目上需要使用wpa_supplicant与wpa_cli相关的工具测试wifi,网上百度了下,好像要下载wpa_supplicant的源码编译,虽然网上已经有人下载交叉编译过,但是每个人的编译环境不一样,那么也会遇到各种各样的问题,那么解决方法也不相同,在交叉编译过程中,也遇到了问题,记录下编译过程及解决方法。1.openssl-1.0.0交叉编译下载:https://www.open...原创 2018-05-18 20:19:26 · 4659 阅读 · 0 评论 -
编译报错R_ARM_THM_MOVW_ABS_NC against `a local symbol
我们在编译动态库的时候,会遇到如下错误:/opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: adb.o: relocation R_ARM_THM_MOVW_ABS_NC against `a local symb原创 2018-01-03 15:09:04 · 7735 阅读 · 0 评论 -
android adb 流程原理代码分析(一)
由于要用到adb的知识,但是对adb啥也不了解,看了下android的代码,adb的源码在system/core/adb下面,然后网上搜下了资料,发现很多大神的源码分析,瞬间信心爆棚,把大神写的博客都浏览了一遍,然后手动运行了下adb命令,顺便跟踪了下过程,发现原来还是很好的理解,源码的各种线程创建,函数回调,对于我这种基础不咋好的,,还是看的晕晕呼呼,现在把我自己的理解给大家分享,有理解错误的还原创 2018-02-01 20:48:48 · 8853 阅读 · 10 评论 -
怎样配置android configfs gadgets
怎样配置android configfs gadgets 目录1.简介2.内核配置3.从安卓界面使能USB gadgets 3.1 针对AOSP的主分支 修改init.${ro.hardware}.rc 3.2 针对android-L(5.1.1) 修改init.rc 修改in...翻译 2018-03-19 17:33:26 · 5636 阅读 · 4 评论 -
usb接口测试
#/bin/shusb_num=$(cat /proc/scsi/scsi | grep "Vendor" | wc -l)if [ $usb_num = 2 ];then echo "test usb success"else echo "test usb failed"fi判断USB接口是否有设备插入,usb_num为检查到的USB设备个数。...原创 2018-03-30 19:10:50 · 5518 阅读 · 0 评论 -
led测试
#/bin/shfor i in {1,2,3}do echo 0 > /sys/class/leds/sysled/brightness sleep 1 echo 255 > /sys/class/leds/sysled/brightness sleep 1done循环点亮led灯,跟平台相关。原创 2018-03-30 19:24:50 · 466 阅读 · 0 评论 -
mem内存测试
下载源码: http://pyropus.ca/software/memtester/old-versions/memtester-4.2.2.tar.gzlinux下移植参考:https://blog.youkuaiyun.com/vc66vcc/article/details/56009538android下移植参考:http://blog.youkuaiyun.com/csh86277516/article/det...原创 2018-03-30 19:30:25 · 1961 阅读 · 0 评论 -
remote测试
#/bin/shecho 1 > /sys/class/remote/amremote/debug_enablefor i in {1,2,3,4,5}do dmesg | grep scancode=0x19 if [ $? = 0 ];then dmesg | grep scancode=0x1a if [ $? = 0 ];then ...原创 2018-03-30 19:34:12 · 586 阅读 · 0 评论 -
factoryreset恢复出厂设置测试
#/bin/shrm -rf /cache/recovery/commandecho "--wipe_data" > /cache/recovery/commandecho "--wipe_cache" >> /cache/recovery/commandsyncsyncsleep 1syncsyncreboot recoveryandroid系统进入reco...原创 2018-03-30 19:36:45 · 6303 阅读 · 0 评论 -
wifi测试
不通过android UI操作,直接命令打开wifi,测试wifi功能,适用于amlogic平台的android O之后的版本。1. hardware/amlogic/wifi/multi_wifi/config/wpa_supplicant.conf 加入:ctrl_interface=/data/misc/wifi/wpa_supplicant2.shell脚本:#/bin/shsvc w...原创 2018-03-30 19:47:22 · 4019 阅读 · 0 评论 -
button按键测试
#include <stdio.h>#include <unistd.h>#include <linux/input.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include原创 2018-03-30 19:54:15 · 1850 阅读 · 0 评论 -
__attribute__((constructor))和__attribute__((destructor))
gcc为函数提供了几种类型的属性,其中包含:构造函数(constructors)和析构函数(destructors)。 程序员应当使用类似下面的方式来指定这些属性:__attribute__((constructor)) // 在main函数被调用之前调用__attribute__((destructor)) // 在main函数被调用之后调12#include __attribu原创 2017-12-14 16:13:06 · 1485 阅读 · 0 评论 -
编译出错Relocations in generic ELF (EM: 62)
今天在交叉编译libnl的时候,出错了,信息如下:编译出错aarch64-linux-gnu-gcc -L/mnt/nfsroot/frank.yu/android-O/factorytest/wifi/out/lib --static -o wpa_supplicant config.o notify.o bss.o eap_register.o ../src/utils/common.o ....原创 2018-05-18 20:16:36 · 19572 阅读 · 0 评论 -
Bluez调试工具hcitool与gattool的使用实例
转载:https://blog.youkuaiyun.com/talkxin/article/details/50610984作者:PaulYoung_BlogBluez协议栈在安装完以后,会提供两个命令行调试工具,hcitool与gattool,我们可以根据提供的工具来轻松的调试我们的蓝牙设备。 当然 需要注意的是,在调试BLE设备时,需要获得root权限。蓝牙设备的开启与关闭首先,查看在使用hci工具时...转载 2018-05-30 16:55:45 · 4073 阅读 · 0 评论 -
sha1 sha256 md5 crc32几种摘要签名算法的效率,及实现对比及分析
sha1/sha256/md5/crc32这几种算法都是目前比较常用的摘要算法,在我们实际开发中,经常会需要使用,我们该如何选择呢,哪个算法的速度更快呢? 我们选择了一个差不多1G大小的system.img来分别计算下这四种不同的摘要信息,我们写了一个脚本来计算,更方便我们查看对比结果:date -u +%rsha256sum system.imgdate -u +%r...原创 2018-07-31 19:59:00 · 15052 阅读 · 0 评论 -
查看服务器编译android/linux后台线程个数
由于日常开发中,我们都是公用的服务器编译,这样有时服务器会变的异常缓慢,我们就需要查看下,是谁使用了大量的多线程编译: 对于编译android系统,使用的是make otapackage -j*编译:我们可以使用如下命令查看 ps -ax | grep "j" | grep "otapackage"即可查看到其他人使用的线程个数。...原创 2018-09-28 11:22:57 · 923 阅读 · 3 评论 -
一种通过printf打印的调试程序的方法
我们在写代码的时候,有时候需要调试程序的时候,对于初学者,可以通过简单的增加printf函数打印,这样能够来跟踪程序的踪迹,举个很简单的代码:#include<stdio.h>#include<stdlib.h>int main(){ int a = 4; int b = 2; int c = 5; int d = 800; ...原创 2018-10-22 20:19:51 · 1579 阅读 · 0 评论 -
把png图片资源转换为framebuffer可显示数据
我们都知道,我们是通过framebuffer来显示图片的,但是我们有不能直接把png图片显示到framebuffer,因为framebuffer是不能直接识别png图片的。 我们如何把一个1.png图片转换为framebuffer需要的格式呢?1. 了解framebuffer的大小# cat /sys/class/graphics/fb0/window_axis ...原创 2018-11-30 20:17:23 · 2355 阅读 · 0 评论 -
一个exfat U盘引起的systen crash
最近遇到一个奇葩的问题,客户反馈,在Android 系统的TV上,插入exfat格式的U盘,然后就system crash了,经过一系列分析后,我们找到了原因,把分析过程分享下,希望对有类似的问题的朋友参考: 由于kernel打印的信息比较多,我们截取比较重要的信息分析:这里out_of_memory了, 内存耗尽了,我们继续看看下面的打印,看看是哪个进程导致的内存消耗...原创 2018-12-06 19:59:18 · 1453 阅读 · 0 评论 -
linux下可执行bin程序提示not found/no such file or directory/not executable
我们经常在执行二进制bin程序时,会遇到提示not found/no such file or directory/not executable等错误信息,在什么情况下会出现这种问题呢,我们一起罗列下几种常见的几种场景:1.可执行bin程序确实不存在这个错误就比较低级了,你的可执行bin没有打包或者拷贝进来,执行的时候,自然找不到了2.可执行bin程序的路径不对我们...原创 2018-12-28 16:00:43 · 10050 阅读 · 0 评论 -
Can't find ext4 filesystem(EXT4-fs:Bad magic number in super-block)
针对目前市面上主流的android系统的嵌入式设备,都是使用的emmc的flash存储,相应的使用的是ext4的文件系统,当ext4的system分区无法挂载的时候,我们改如何分析呢?何种操作导致的ext4分区无法挂载呢? 我们出问题的设备的启动log如下:[ 1.868201@2] fs_mgr: Warning: unknown flag format[ ...原创 2019-03-11 17:43:13 · 7342 阅读 · 1 评论 -
嵌入式 Linux 软件更新机制及架构汇总
原文链接:http://os.51cto.com/art/201610/519221.htm 作者:Michael Larabel 原文标题:概览最有前景的下一代嵌入式 Linux 软件更新机制 多个 Linux 软件商使用增量原子更新方式来传递更可靠的发行版更新,通过二进制差异实现更小体积的更新,假如出现意外状况也运行回退。这些新的发行版升级机制包含了 SWUp转载 2017-09-14 11:15:50 · 2391 阅读 · 0 评论 -
linux 静态库的链接 undefined reference
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1. 链接时缺失了相关目标文件(转载 2017-04-12 18:19:56 · 5701 阅读 · 1 评论 -
fread fwrite之后文件指针位置
在调用fread fwrite之后,文件指针,会根据读写的长度,相应的往后偏移:#include #include #include int main() { char *tmp = "hhhh"; FILE *p = fopen("aa.txt", "r+"); char *buf = (char *)malloc(128); fread(buf, 1原创 2017-04-28 12:43:06 · 15993 阅读 · 0 评论 -
基于mtd的nandflash的擦写nanderase与nandwrite
对于nand平台更新,我们有两个常用工具可用,一个是nanderase擦除的命令,一个是nandwrite写数据的命令,我们先了解一下nand的基本特性。 Nand flash只有一种操作,就是把1写为0,不能把0写为1,所以我们在写入之前,先要把所有的位置1,也就是擦除动作。Nand擦除是以block块大小为最小单位,写入是以page页为最小单位。 由于工作需求,需要封装原创 2017-05-24 17:06:03 · 13469 阅读 · 0 评论 -
Linux下tar bz gz等压缩包的压缩和解压
原文出处:阳光岛主 http://blog.youkuaiyun.com/ithomer/article/details/5918185Linux下用户经常需要备份计算机系统中的数据,为了节省存储空间,常常将备份文件进行压缩,本文是对压缩和解压命令的大致总结.tar.gz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf Fil转载 2017-05-05 16:38:41 · 2030 阅读 · 0 评论 -
ubifs烧写到nand flash中的几种方法
原文出处:http://blog.chinaunix.net/uid-20729605-id-2386476.html 作者:niutao.linux折腾了好几天,突然柳暗花明,继而思之,发现原来是出门就走错了路,悲剧之余,写下此笔记,以省自己,警他人。正题,关于UBIFS的介绍在此就不多说,详见:http://www.linux-mtd.infradead转载 2017-05-26 14:40:34 · 6967 阅读 · 0 评论 -
fatal error: linux/compiler-gcc6.h: No such file or directory
原文出处:http://blog.youkuaiyun.com/baicaiaichibaicai/article/details/60330484 作者:白菜爱吃白菜在交叉编译i.MX6UL的Kernel代码时出现这个错误CHK include/config/kernel.release Using .. as source for kernel GEN ./Makefile CH转载 2017-05-26 16:36:29 · 5928 阅读 · 0 评论 -
makefile下$^,$@,$?,$<,$(@D),$(@F)定义使用详解
每次看makefile的时候,总会遇到一些变量记不住,就需要去查找资料,今天有时间,就顺便把几个常用的变量学习了下,顺便总结了下记忆方法,感觉记住它们并不难,特把方法分享给大家。变量定义:$^所有的依赖目标的集合。以空格分隔。如果在依赖目标中有多个重复的,那个这个变量会去除重复的依赖目标,只保留一份。 $@表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,原创 2017-07-03 15:01:07 · 4620 阅读 · 0 评论 -
Linux编程gcc编译器禁止所有警告和显示所有警告
原文出处:http://www.cjjjs.com/paper/czxt/201711222273782.html编译程序的时候,经常会出现警告。不过对于很多经过,程序员经常无视它的存在,甚至觉得警告挺烦人的。在linux编译程序时,我们可以很方便的禁止所有警告和显示所有警告。 gcc编译器命令选项-Wall 用来显示所有警告信息,而-w则用来禁止所有警告的显示。默认是显转载 2017-08-17 14:21:29 · 4384 阅读 · 0 评论 -
linux下执行bin不加./怎么直接运行
在linux平台下,我们编译的可执行bin文件,如果需要运行,则直接./test 即可运行, 如果我们不想加上./怎么直接运行test这个bin呢? 我们先来分析下这个./test是啥意思,首先test是可执行bin的名字,./表示是当前目录,那么简单了,其实./就是告知test的路径。 我们可以echo $PATH, 可以查看当前设置的环境变量,我们吧test的路原创 2017-08-14 14:07:24 · 12940 阅读 · 0 评论 -
dd 命令详解
dd命令是Linux/Unix下的一个很常见的文件拷贝工具。我们先列下dd命名的常用的参数,再详细分析: bs=BYTES read and write up to BYTES bytes at a time cbs=BYTES convert BYTES bytes at a time conv=CONVS convert the原创 2017-08-25 19:17:12 · 7672 阅读 · 0 评论 -
fflush和fsync的一些总结
int fflush(FILE *stream);If stream points to an output stream or an update stream in which the most recent operation was not input, the fflush function causes any unwritten data for that stream to转载 2017-03-15 18:51:57 · 2081 阅读 · 0 评论 -
通过SHA_init/SHA_update/SHA_final生成sha散列值
在《sha1 -- 生成 sha1 散列值》中给出了可以生成 SHA1() 函数,它应用很简单。实际上,OpenSSL 还提供了另外一套 API 用以产生 sha1 散列值,该套 API 可以生成更大文件的散列值。比如在 32 位系统下,应用程序不能访问超过 4G (2[sup]32[/sup] )的内存空间,从 SHA1() 函数的第 1 个参数指针也知道,它所指向的空间也不能超过 4G转载 2017-08-16 16:40:53 · 1827 阅读 · 0 评论 -
open函数返回值为0
open函数是我们开发中经常会遇到的,这个函数是对文件设备的打开操作,这个函数会返回一个句柄fd,我们通过这个句柄fd对设备文件读写操作。 我们在对这个fd作判断的时候,经常会用到: fd = open(filename, O_RDONLY); If (fd Printf(“open %s error!\n”, fi原创 2017-08-30 15:07:26 · 26838 阅读 · 0 评论 -
Makefile编译时怎么打印出变量值
1、输出打印信息的方法是:$(warning xxxxx)2、输出打印变量值的方法是:$(warning $(XXX))转载 2017-09-25 19:43:08 · 1419 阅读 · 0 评论 -
ubifs分区挂载及信息查看
ubi挂载操作:(1)格式化ubi分区 ubiformat /dev/mtd* 格式化mtdblock*(2)与ubi建了连接 ubiattach /dev/ubi_ctrl -m * mtdblock*与ubi建立连接(3)创建volume ubimkvol /dev/ubi* -s 100MiB -N my_ubi_vol 在ubi原创 2017-10-17 19:25:22 · 6478 阅读 · 0 评论 -
ubootenv工具fw_printenv及配置文件fw_env.config
原文出处:http://blog.youkuaiyun.com/qq_29729577/article/details/50580727希望朋友们多多指点,好的技术或心得一起分享: uboot向kernel传参机制以及kernel如何解析cmdline参数大家可以参考其他前辈的博文,这方面的讲解十分详尽。 在这里我总结以下自己在uboot自定义一个参数并从kernel中取得的方法:转载 2017-10-09 17:36:07 · 6871 阅读 · 0 评论 -
linux下查找bin依赖的动态库之ldd使用
ldd是什么?ldd如何使用?ldd什么场景使用? 本文尽量的把上面的上个问题解释清楚,有理解不到位的地方还请多多指正。 ldd是什么? ldd不是命令,是一个shell脚本,保存路径/usr/bin/ldd,可以直接cat或者vi查看具体的实现。 ldd的全称是list dynamic dependencies,意思是,列出动态库依赖关系,我们原创 2017-09-22 15:51:33 · 4726 阅读 · 0 评论 -
linux下查找bin依赖的动态库之readelf使用
有时候我们需要查找可执行程序的依赖的动态库,我们可以使用readelf,废话不多少,直接上例子:kevin.yu@droid11-sz:/mnt/nfsroot/kevin$ readelf -d /bin/ls | grep "Shared library" 0x0000000000000001 (NEEDED) Shared library: [libselinu原创 2017-09-22 16:20:44 · 6179 阅读 · 0 评论
分享