- 博客(67)
- 资源 (4)
- 收藏
- 关注
原创 wpa_supplicant/wpa_cli 手动测试WiFi相关功能
在Wifi驱动移植成功后,手动执行wpa_supplicant和wpa_cli验证WiFi STA/P2P相关功能
2024-03-15 19:52:05
825
原创 Android 使用adb操作WiFi相关指令
最常用的就是 svc wifi enable/disable,再使用wpa_supplicant/wpa_cli来验证,但对于AP功能就没办法验证了,其实Android有组很强大的shell指令集,包含各个方便,这里只记录下平时使用的WiFi相关指令。其他可以指令可以使用adb shell cmd wifi -h查看,如果需要连接WiFi以外的相关指令可以使用adb shell cmd -l(小写L)adb shell cmd wifi list-scan-results //查看扫描结果。
2024-03-13 17:04:31
14170
1
原创 iPhone连接WiFi后继续使用4G网络
使用亿联投屏时,iPhone手机连接方式是连接车机的AP,但同时又需要手机的网络导航之类的,所以就需要将手机在连接WiFi后仍然可以使用手机网络4G/5G。Linux系统在用hostapd起AP后需要起DHCP服务,只需要修改udhcpd.conf,将路由ip设置为0即可。android10就删除了dnsmasq,使用了独立的新的 DhcpServer模块。② Android10及以上版本设置如下。① Android10以下版本设置如下。③ Linux系统设置。
2024-03-13 10:45:00
308
原创 Android P 系统 SELinux 报错修改
sourcecontext指的是“scontext=u:r:gocsdk:s0”的gocsdk,targetcontext 指的是“tcontext=u:object_r:device:s0” 中的device, class指的是“tclass=lnk_file”中的lnk_file,operation指的是“{}”中的create,PS:如demo仅仅是资源文件,可以直接在file_context做匹配字段,在device/fsl/imx8m/sepolicy/file.te上可以看到所有的文件类型。
2024-03-08 18:34:55
340
1
转载 关于WiFi DFS和WiFi自适应的介绍
1.关于WIFI DFS介绍 DFS(Dynamic Frequency Selection)动态频率选择,这个概念只针对具有5G频段的产品,比如802.11a和802.11ax标准。DFS是为了使无线产品主动探测军方使用的频率,并主动选择另一个频率,以避开军方频率的一个功能。欧洲在军用雷达普遍使用5G频段,若民用5G产品和军方存在抢波段的行为,则会对军事雷达和通讯产生干扰,因此欧盟法规规定在欧洲出售的无线产品必须具备DFS功能。这个功能是属于强制性的,不符合标准的产品将不会获得欧盟的上市...
2021-07-15 10:36:33
8209
原创 基于Linux下TCP/IP协议局域网聊天室
这几天一直在看TCP/IP这块的内容,写个简单socket通信demo,实现了多个客户端相互发送消息,以及服务端给多个客户端发送上线/下线消息基本框架:server.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdbool.h>#include <arpa/inet.h>#include <sys/types.h>#
2021-05-15 14:02:38
913
原创 WiFi开启热点冲突
OS:Linux3.18 + Android4.4问题点: 开发板已经接入4G模块,可以正常上网,现在要通过开启Wifi热点共享网络,在设置里开启AP模式时,wifi一直在不停的开关,不能打开热点。原本不加4G模块,ap功能是正常的,添加后不能用,以为是4g模块和wifi驱动冲突,看kernel和logcat,一点点找,iptables这部分存在问题。具体的natcontroller功能及runcmd功能列表看Android系统中iptables的应用(三)NatController,这时候看log
2021-03-12 10:45:12
936
转载 Linux WiFi: operation not possible due to RF-kill
Ubuntu下在图形界面没有Enable Wi-Fi的时候在终端使用ifconfig wlan0 up的时候报错SIOCSIFFLAGS: Operation not possible due to RF-kill使用rfkill list命令查看被被关闭的射频0: hci0: Bluetooth Soft blocked: no Hard blocked: no1: tpacpi_bluetooth_sw: Bluetooth ..
2020-12-15 16:41:08
807
转载 Android 设置无线热点模块隐藏SSID
在Android上需要将无线热点SSID设置为隐藏的,与系统沟通后发现在无线热点的配置文件中有相关的配置项可以实现方便实现此功能。在/data/misc/wifi/hostpad.confg文件中加入如下ignore_broadcast_ssid=1加入此配置项后重启启动wifi热点模块即可很方便的隐藏SSID,如需不隐藏则将值配置为0即可。拓展:在根据wifi名和密码连接热点时,如果热点SSID为隐藏的,则这时候可能会连接不上,需要在连接的配置文件中添加扫描连接隐藏SSID的配置,配置代码如.
2020-06-15 16:17:41
3050
3
原创 Wifi模块—源码分析Wifi启动(Android P)
一、前言Android P在wifi这块改动挺大的,Wifi到AndoidO之后不再使用jni,所以AndroidP也一样不再使用jni来实现Java代码与本地的C/C++代码交互,而是使用HIDL,Hardware Interface Define Language。摒弃了以前的hardware/libhardware_legacy/wifi/wifi.c作为底层接口,所以得重新梳理下整个w...
2019-06-21 15:26:01
2400
转载 Android移植Wifi驱动之wpa_supplicant通信socket设置
1.3.4 在android中使用BCM43xx前面的过程只是在android系统中添加编译了BCM43xx驱动源码,但是要想在android中使用它,还需要费一番功夫。需要修改的地方在开始的地方已经用蓝色背景标注了,在这里我们要看看到底要修改哪些文件。1.3.4.1 hardware/libhardware_legacy/wifi/wifi.c为BCM43xx驱动模块做...
2018-04-25 11:51:49
1456
原创 [i.MX6Q][QNX Neutrino 6.6.0]调试笔记------LVDS显示配置
QNX提供给imx6-SebreSmart的BSP默认是HDMI显示的,我板子是LVDS接显示屏的,所以需要修改显示这块。从资料介绍来看,QNX是采用了一个OpenWF的API集,具体如何实现的不关心,这里只需要关心的是如何去配置LCD的参数和时序供OpenWF使用即可OpenWF™是一个免版税,跨平台APIs,它提供了一个底层硬件抽象接口,利用组成成分和显示硬件合成窗口系统。当有新的
2017-09-27 10:35:51
5887
1
原创 [i.MX6Q][QNX Neutrino 6.6.0]调试笔记------Buildfile
1.1 QNX目标系统嵌入利用QNX的模块性和和可裁剪性,其嵌入过程一般是:构建Buildfile -> 编译buildfile生成系统映象文件 -> 启动目标系统 ->嵌入式系统软件设计。其中的关键是构建Buildfile[19]。通常一个嵌入式系统需要一个可启动的操作系统映象文件(OS Image)。对于基于QNX的嵌入式一个应用系统,就是根据所选择的CPU
2017-09-22 16:57:17
2744
原创 [i.MX6Q][QNX Neutrino 6.6.0]调试笔记------IPL源码分析
QNX源码下三大主分支,也是组成QNX系统的三大模块:Initial program loader(IPL)、Startup、Flash Filesystem1、IPL介绍 IPL是一段初始化启动程序类似于uboot,在启动QNX时也可以用uboot替代,不过IPL更加简洁,启动时间更快。IPL的主要职责就是进行最小的硬件配置以启动Startup程序,从而启动microkernel
2017-08-17 15:43:42
3836
1
原创 Android4.4关于电阻屏调试和校准
一、关于滑鼠模式最近在Android4.4上移植了一个电阻屏驱动,开机后,触摸屏可以工作,只不过是和笔记本电脑上面触摸板似的,你点击滑动界面上面会有一个白色的远点广播跟着你动,但是一旦你抬起手,点击操作的话就不行了你点击屏幕上面的任何一点响应的位置都是光标所在的位置,这就是滑鼠模式了,那么如何实现单点模式呢?看网上资料了解还需要在system/usr/idc 下添加自己相应的idc
2017-08-17 10:06:12
3957
1
原创 [i.MX6Q][QNX Neutrino 6.6.0]调试笔记------安装SDP和BSP编译
1、安装SDPQNX_SDP分为Windows版和Linux版的,个人习惯Linux下开发,所以这里只记录Linux的安装。开发环境:Ubuntu12.04-32bit刚好有一个32位的Ubuntu系统,所以面前了安装32位库的步骤了,如果是64位的,还需要安装下面的32位的库文件sudo apt-get install libgtk2.0-0:i386 libXtst6:i386
2017-08-11 12:08:50
4477
原创 [i.MX6Q][QNX Neutrino 6.6.0]调试笔记------初识QNX_Neutrino
由于公司发展需要,所以本人从Android开始转向QNX学习,这也是个不可多得学习机会,据说QNX的系统以及服务是需要重金购买的,我拿到《 QNX Development License Certificate》之前都没听说过QNX系统,从零开始记录下自己学习过程吧。也希望有更多的人交流,网上这一块的资料实在是少得可怜。
2017-08-10 17:40:21
3140
原创 Linux启动分析之Initramfs
在前面已经分析了rootfs的挂载,解决了VFS架构下原始挂载点的问题,也提到了Initramfs文件包的填充,这里记下如何实现Initramfs填充一、Initramfs概述1.initrd 在早期的linux系统中,一般只有硬盘或者软盘被用来作为linux根文件系统的存储设备,因此也就很容易把这些设备的驱动程序集成到内核中。但是现在的嵌入式系统中可能将根文件系统保
2016-12-21 15:11:16
15482
原创 Linux启动分析之文件系统的挂载
基于内核版本:Linux-3.0.35这几天在优化开机时间,发现其中挂载文件系统的时耗费了大量时间,所以才想着对内核挂载文件系统的过程跟踪分析,同时也在网上学到了很多,在这里整理记录下。一、rootfs的诞生Linux一切皆文件的提出:在Linux中,普通文件、目录、字符设备、块设备、套接字等都以文件被对待;他们具体的类型及其操作不同,但需要向上层提供统一的操作接口。虚
2016-12-21 11:26:15
1677
原创 使用BusyBox制作嵌入式Linux根文件系统
STEP 1:构建目录结构 创建根文件系统目录,主要包括以下目录/dev /etc /lib /usr /var /proc /tmp /home /root /mnt /bin /sbin /sys #mkdir /home/rootfs#cd /home/rootfs#mkdir dev etc lib usr var
2016-12-20 15:38:22
678
原创 Linux取消开机登录
最近在移植Linux3.0.35内核时,发现在内核启动完时需要输入登录账号此处省略N多开机打印信息...Synthesizing initial hotplug eventsSetting the hostname to freescaleMounting filesystemscp: write error: No space left on devicecp: write err
2016-12-06 11:16:46
4046
原创 Linux下LCD自动熄屏解决方法
正常情况下Linux会在一段时间后默认关闭屏幕,默认为10分钟。开始一直认为是Gnome或KDE等桌面环境设置的屏幕保护程序或电源管理功能,即使不安装桌面环境屏幕照样会自动关闭。下面就来分析下原因。看到网上的资料说这是由vt驱动来设置的。下面进入内核源码目录下的drivers文件夹,后执行[cpp] view plain copy
2016-12-05 18:19:20
7158
转载 Ubuntu添加开机自动运行程序
ubuntu下有很多中开机自动运行程序的方法,在开机的不同过程中可以启动不同的程序.如在开机启动时自动运行程序,是通过修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 /etc/rc.d/rc.local 文件(该文件通常是系统最后启动的脚本),
2016-11-17 17:49:19
3574
转载 I2C Tools 学习笔记
1.安装2.I2C总线扫描 通过i2cdetect -l指令可以查看设备上的I2C总线[plain] view plain copy pi@raspberrypi:~$ i2cdetect -l i2c-0 i2c bcm2708_i2c.0
2016-08-26 12:24:30
1291
原创 i.MX6DL学习记录---kernel移植
软件版本:uboot-2013-04 + kernel-3.10.35硬件版本:i.MX6DL-Sabreasd准备工作移植kernel和uboot差不多,由于这里下载的是freescale官网维护的kernel版本,所以工作量不是很大,找到对应的config文件,参照自己的硬件修改对应的源码即可。以前接触的kernel都是使用传统的ATAGS方式传递内核参数,
2016-07-28 15:25:15
9574
原创 i.MX6DL学习记录---uboot移植
软件版本:uboot-2013-04硬件版本:i.MX6DL-Sabreasd源码获取:Freescale的内核和uboot都是使用git管理的 [http://git.freescale.com/git/cgit.cgi],在这里都可以浏览到,也可以选择任意版本的源码下载这里选择imx系列的uboot移植:由于这
2016-07-25 12:32:45
4451
原创 i.MX6DL学习记录---uboot之Makefile分析
https://code.youkuaiyun.com/BOJUE01/1122.git
2016-07-22 16:57:22
2211
原创 Linux3.0.35支持emmc5.0
Linux3.0.35内核目前只支持emmc4.5以下,所有使用最新的emmc5.0以上就需要作出以下修改:drivers/mmc/core/mmc.c
2016-07-21 11:04:34
2251
转载 Makefile 使用总结
Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力. 本篇博客是基于 {精华} 跟我一起
2016-07-19 18:27:09
440
原创 i.MX6dl移植Ubuntu系统
在恩智浦官网下载Ubuntu文件系统包 oneiric.tgz https://www.nxp.com/webapp/sps/download/license.jsp?colCode=L3.0.35_4.1.0_UBUNTU_RF 替换掉MFG下的烧录文件系统将 oneiric.tgz 放在Mfgtools-Rel-4.1.0_130816_MX6DL_UPDATER\
2016-07-08 11:35:43
2133
原创 ubuntu12.04升级后找不到共享目录
今天开始搭建Android开发环境,先升级系统,升级后发现windows和ubuntu共享的目录不见了,引用一个帖子的解决办法:“后来ubntu上发现的10.04的更新通知,选择了同意更新 ,但升级完毕后发现这个共享目录不见了!!。而且重新在vmware上设置新的共享目录也不能加载了!!经过多方查询找到了原因,原来与host system共享文件是通过vmware tool的工具包实现的。对于gu
2016-07-04 16:13:26
752
原创 fatal error: error closing /tmp/ccsdc7Zt.s: No space left on device
不知道大家是否经常遇到这样的问题,提醒你tmp文件夹下 空间不足了,不能满足编译的需求,这个时候可以:mkdir 文件夹——你可以使用的文件夹 比如说 mkdir /abc/tmp/然后只要export TMPDIR=/abc/tmp/这样就不会出现 tmp文件夹不够用的情况了
2016-07-01 16:12:58
3522
原创 Linux下编译LTIB问题记录
最近在使用基于ARM Cortex-A9内核的飞思卡尔i.MX6Q四核处理器开发一款产品,在ubuntu 12.04上编译LTIB时遇到了找不到zlib的问题(在此之前已经安装了必须的各种库文件)。错误信息如下:=============================chenke@ubuntu:~/imx6/L3.0.35_4.1.0_130816_source/sour
2016-07-01 16:12:23
876
原创 内核驱动之module_init
在写内核驱动或分析驱动时总是从module_init和module_exit开始的,一直都知道这是个驱动程序初始化的函数,也没去多想它,今天分析了下驱动究竟是何时加载到内核中的呢?结果发现还是得从这个函数入手首先函数定义 include/linux/init.h#ifndef MODULE...#define module_init(x) __initcall(x);...
2016-04-19 16:45:53
1284
转载 Linux之V4L2基础编程
本文内容来源于网络,本博客进行整理。1. 定义V4L2(Video For Linux Two) 是内核提供给应用程序访问音、视频驱动的统一接口。2. 工作流程:打开设备-> 检查和设置设备属性-> 设置帧格式-> 设置一种输入输出方法(缓冲 区管理)-> 循环获取数据-> 关闭设备。3. 设备的打开和关闭:#include int open(const char
2016-02-26 18:24:13
715
转载 Programmer’s dilemma
---------https://medium.com/@tyrchenRecently I interviewed tens of candidates for a kernel programmer’s position. These candidates are from big, good companies, which are famous for chips or embed
2015-12-18 15:02:18
643
转载 adb 常用命令大全
1. 显示系统中全部Android平台: android list targets2. 显示系统中全部AVD(模拟器): android list avd3. 创建AVD(模拟器): android create avd --name 名称 --target 平台编号4. 启动模拟器: emulator -avd 名称 -sdcard ~/名称.
2015-11-06 16:53:53
477
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人