- 博客(89)
- 收藏
- 关注
原创 在 Linux 上用 zram 替代传统交换空间 | Linux 中国
我在我的电脑上花了很多时间(我是说工作),我发现了很多有趣的东西。其中最近引起我注意的是zram0设备。我是在几个月前写一篇文章时第一次注意到它,它显示在lsblk它被识别为交换空间,这就是首先引起我的好奇心的原因,所以我做了一些研究。zram 最初被称为 “压缩缓存(compcache)”,即 “压缩的高速缓存”。事实证明,zram 是一个用于创建内存内压缩缓存的工具,特别是作为交换空间使用。但为什么呢?当我开始研究 zram 时,我只发现了几篇关于将 zram 用于交换空间的基础文章。
2024-03-04 17:32:18
1578
1
原创 USB总线-Linux内核USB3.0设备控制器复合设备之USB gadget configfs分析
下面是获取usb_function_instance的过程。如下图所示,当用户空间执行ln -s /sys/kernel/config/usb_gadget/g1/functions/uac2.0 /sys/kernel/config/usb_gadget/g1/configs/c.1时,内核会调用USB gadget configfs的config_usb_cfg_link函数。执行完上述脚本后,/sys/kernel/config/usb_gadget/g1/目录下的文件组成如下所示。
2024-02-07 15:02:14
119
原创 Android usb gadget
显示系统中以及连接到系统的USB总线信息的工具。你可以用lsusb命令对你的系统上的USB设备做一个诊断。想要了解更全面的命令信息, 输入man lsusb来查看它的手册。本文以拆解的方式,逐步剥离 usb 设备端驱动框架,带领大家来重新认识usb 设备端驱动,同时给出了一个 compsite 设备的通用驱动框架模型,并从源码层次分析整个驱动流程。有关USB 或者 其他类似的高级驱动,笔者有个建议,在初学时一点更要【把握主次,忽略细节】。
2024-02-07 10:19:53
108
原创 linux usb驱动架构 linux内核usb驱动
从图中可以看到一个Full Configuration Descriptor不仅包含了配置描述符,还包含了所有的接口和端点描述符,如果是HID设备还包括HID描述符,注意看图中标红的位置,配置描述符集合的长度,是配置描述符,接口描述符,HID描述符,端点描述符的总长度。一个USB设备只有一个设备描述符,设备描述符为主机提供了许多信息,如设备满足的USB规范,设备支持的协议,供应商标识、产品标识等等。每个接口都有一个接口描述符,接口描述符会记录端点数量等信息,接口描述符中也包含USB类别的信息。
2024-02-01 10:41:13
110
原创 Netfilter 是如何工作的(六):连接跟踪信息的入口创建(in)和出口确认(confirm)
在 Netfilter 是如何工作的(五) 中连接跟踪信息使用的机制的Netfilter在报文进入系统的入口处,将连接跟踪信息记录在报文上,在出口进行confirm.确认后的连接信息本文以一个本机上送过程中的TCP/IPv4的SYN握手报文为例,详细分析连接跟踪机制的工作流程。
2024-01-12 14:54:55
1082
原创 Linux安全之SELinux理解 ---chmod chcon chown
restorecon -v /var/www/html/index.html # 如果要以回递的方式撤消整个目录的缺省安全性脉络 restorecon -Rv /var/www/html # 除此之外,如果我们只想检查/var/www/html目录内有哪些文件的安全性脉络需要被撤消 # 我们在采用 restorecon 时可以应用 -n 这个标旗来防止重新标签的行动 restorecon -Rv -n /var/www/html。在未启用 SELinux 的情况下,要控制用户的文件访问权,唯有通过。
2023-12-25 11:45:03
83
原创 Linux安全之SELinux理解
restorecon -v /var/www/html/index.html # 如果要以回递的方式撤消整个目录的缺省安全性脉络 restorecon -Rv /var/www/html # 除此之外,如果我们只想检查/var/www/html目录内有哪些文件的安全性脉络需要被撤消 # 我们在采用 restorecon 时可以应用 -n 这个标旗来防止重新标签的行动 restorecon -Rv -n /var/www/html。在未启用 SELinux 的情况下,要控制用户的文件访问权,唯有通过。
2023-12-11 12:02:04
1669
原创 Qualcomm thermal的介绍
03-07 22:01:44.619 D/ThermalEngine( 2110): update_active_thresh: tsens_tz_sensor2 Active(1), Hi(0) 2147483647, Lo(1) 45000, Interval(0) 2147483647 //设置低温point45度触发中断。1:首先上层set_point(默认85度)会写入/sys/class/thermal/thermal_zoneX/trip_point_0_temp。
2023-10-30 11:47:31
19
原创 高通 thermal子系统
答:ss_algorithm.c中increase_mitigation_lvl函数里的判断可以看出:instance->lvl_arr[instance->curr_lvl + 1].lvl.value < instance->dev_mtgn_max_limit,下一个阶梯小于限制限制的,那么就不改限制了,因为这个限制的是最大频率,最小频率不由这里决定。答:解析的函数策略不一样,获取的数据也不一样,ss-data.c走的是ss_algorithm.c的handle_timer_sig函数。
2023-10-30 11:44:00
12
原创 linux ubi 分区,ubi卷重分区及卷创建流程解析
依据ubi->slots(最大卷数目),进行轮询,找到未占用的卷id号vol_id,分配给新创建的卷。然后调用_ubi_dev_init函数初始化,此函数执行了mtdparts_init和ubi_init函数,然后执行_ubi_dev_attach(UBIPAC_PART),将ubi设备attach到给定的mtd分区UBIPAC_PART,并且返回新的ubi设备号。6)调用ubi_attach_mtd_dev函数,将上述mtd设备attach到ubi_num为UBI_DEV_NUM_AUTO的ubi设备。
2023-08-22 10:25:47
31
原创 linux reboot命令重启的时候卡住问题解决
普通的reboot是通过busybox为入口,进入halt_main函数,然后给init进程发送SIGTERM信号,init进程接收到信号后给其他进程发送终止信号,最后调用C库函数reboot,reboot通过系统调用sys_reboot进入内核,内核将整个系统重启。最近在做一个linux嵌入式产品的时候发现,reboot命令不起作用,经过定位确定是自己的守护进程的问题,reboot命令在给守护进程发SIGTERM信号时未能关闭进程。此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。
2023-08-15 15:39:51
58
原创 buildroot使用介绍
进入buildroot首先映入眼帘的是一系列目录,简要介绍如下:├── arch: 存放CPU架构相关的配置脚本,如arm/mips/x86,这些CPU相关的配置,在制作工具链时,编译uboot和kernel时很关键.├── board├── boot├── configs: 放置开发板的一些配置参数.├── dl: 存放下载的源代码及应用软件的压缩包.├── docs: 存放相关的参考文档.├── fs: 放各种文件系统的源代码.
2023-08-11 17:53:05
2191
原创 高通9x07平台关于模块modem射频 RF MCFG生成MBN的总结
1.1: cefs(efs2.mbn)制作步骤:1.擦擦CEFS分区;(2).device_config.xml损坏,通过cefs软件还原功能(需有cefs备份分区功能)达到解决死机问题;1.2:激活hw_default mbn后,/policyman/目录下device_config.xml必需保留;(4).若modem版本回退到旧版本MBN,较新MBN会被删除,Modem重新激活旧的MBN.(1).通过各个sw mbn配制device_config.xml,进行MBN OTA升级;
2023-06-28 12:07:18
918
原创 wifi连接的4次握手的过程
无线技术总览802.1X连接过程PSK连接过程1. Open System Authentication (Request initiate by client)2. Open system Authentication (Response by AP)3. Association Request (sent by client)4. Association Response (send by AP)5. 4-Way Handshake – EAPoL Key E.
2022-04-12 10:22:21
3409
原创 Linux的SOCKET编程详解
1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX system V有:消息(message)、共享存储区(shared memory)和信号量(semaphore)等.他们都仅限于用在本机进程之间通信。网间进程通信要解决的是不同主机进程间的相互
2022-01-21 20:38:50
503
原创 网络驱动之net_device结构体
在Linux系统中,网络设备都被抽象为struct net_device结构体。它是网络设备硬件与上层协议之间联系的接口,了解它对编写网络驱动程序非常有益,所以本文将着手简要介绍linux-2.6.38.8/include/linux/netdevice.h文件中struct net_device结构体的所有成员(没有按照它们定义的顺序)。 1、网络设备相关信息 (1)、设备名 1 2 char name[IFNAMSIZ]; ...
2022-01-06 17:38:36
1118
原创 Linux设备驱动之中断与定时器
一、中断1.概述 所谓中断是指cpu在执行程序的过程中,出现了某些突发事件急待处理,cpu必需暂停执行当前执行的程序,转去处理突发事件,处理完之后cpu又返回原程序位置并继续执行,根据中断来源,中断分为内部中断和外部中断,软中断指令等属于内部中断,中断还可以分为可屏蔽中断和不可以屏蔽中断。Linux 的中断处理分为顶半部和底半部,顶半部完成尽可能少得的比较紧急的功能,往往只是简单的完成“登记中断”的工作,就是将底半部处理程序挂到该设备的底半部处理队列中去,中断处理机制如下图:2、中断编程
2022-01-06 17:36:19
676
原创 何为文件系统,何为根文件系统?
知道nand flash吧,就是存储数据的介质,里面都是一个个的存储单元,如果你想从nand上读取数据,就要熟悉nand的读写时序,然后一页一页地读存储在nand上面的数据。很不方便是不是?因为这些数据都是二进制的,到底存储的是什么,是一个图片,还是一部电影,我们很难直观地看出来。如果你的数据存储在硬盘上,你想读取数据,也要熟悉硬盘的读写方式,然后从一个个扇区里去读,这些物理底层的操作很麻烦,不同的设备由不同的读写方式,很不方便。那怎么办?文件系统,可以看作管理这些存储单元的一个程序。就像管理耕..
2022-01-05 14:54:08
859
原创 认真分析mmap:是什么 为什么 怎么用
阅读目录mmap基础概念 mmap内存映射原理 mmap和常规文件操作的区别 mmap优点总结 mmap相关函数 mmap使用细节回到顶部mmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间
2021-07-30 20:43:25
143
原创 深入分析request_irq的dev_id参数作用
request_irq的作用是申请使用IRQ并注册中断处理程序。request_irq()函数的原型如下: /* kernel/irq/manage.c */int request_irq( unsigned int irq,irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long irqflags, const char *devname, void *dev_id );...
2020-09-11 20:40:48
1353
1
原创 使用cdev_init()、cdev_add()替代register_chrdev()。加载驱动后,/proc/devices/下没有设备,lsmod显示模块加载,/dev/下有设备。驱动测试程序正
《Linux 设备驱动程序》P61页,“早期的办法”节上说“注册一个字符设备驱动程序的经典方法是:int register_chrdev(... ...);”在上一节“字符设备的注册”给出的注册方法是:定义cdev型结构体、cdev_init()、cdev_add()实现注册。 我将“006_u-boot_内核_根文件系统(新1期_2期间的衔接)”的“first_drv.c”中static int first_drv_init(void){}的major = register_chrdev...
2020-09-11 14:28:03
2318
原创 (一)802.11无线网络权威指南学习笔记
1,IEEE 802.11是一个协议簇,主要包含以下规范(技术族谱):1)物理层规范:802.11b,802.11a,802.11g;2)增强型MAC层规范:802.11i,802.11r,802.11h等;3)高层协议规范:802.11f,802.11n,802.11p,802.11s等。2,802.11和OSI模型的关系IEEE802规范将重心放在OSI模型的最下面两层...
2019-10-29 11:11:52
1740
原创 VLAN,一遍就能理解
https://baijiahao.baidu.com/s?id=1628398215665219628&wfr=spider&for=pc
2019-10-18 19:23:48
1208
转载 Omnipeek空口抓包(4):抓取路由器下的无线网络包
本文链接:https://blog.youkuaiyun.com/superhcq/article/details/97897969 ...
2019-10-11 15:03:54
1354
转载 跟着omnipeek学802.11之Omnipeek无线空中抓包入门
分类专栏: 802.11 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.youkuaiyun.com/flyingcys/article/details/82534737无线产品如蓝牙、zigbee开发过程中,由于没有直接连接,通常开发中都要用到一个dongle用于抓取空中数据包,然后分析定位网络、通讯...
2019-09-25 18:32:51
2205
转载 抓取WIFI空中包工具--OmniPeek
抓取WIFI空中包工具--OmniPeek1. 简介2. OmniPeek环境搭建2.1 OmniPeek下载2.2 wifi dongle的OmniPeek driver安装3. OmniPeek的使用3.1 抓包3.1.1 设置过滤抓包3.2 分析包3.3 WPA加密包如何解密1. 简介wifi的连接交互,是在路由跟连接设备之间进行的,而这中间的媒介是空气,而如何抓取到这空中的交互过程,...
2019-09-25 17:13:57
1852
转载 linux下的常用命令总结
本文链接:https://blog.youkuaiyun.com/simonforfuture/article/details/78614208 ...
2019-09-23 12:31:26
146
原创 Linux修改权限功能------chmod
一.chmod命令概况chmod是Linux/Unix中修改文件或者目录权限的命令,通过修改权限可以让指定的人对文件可读、可写、可运行,极大地保证了数据的安全性。二.chmod命令的语法命令名称: chmod执行权限: 所有用户功能描述: 改变文件或目录权限语法: 第一种方法 chmod [{ugoa}{+-=}{rwx}] ...
2019-09-23 11:38:56
1507
1
原创 windows10 修改java环境变量不生效
maven-3.1.1 ----> 和 jdk 的版本要匹配 !我是将jdk下java.exe,javaw.exe,javaws.exe拷贝到C:\Windows\System32 就OK了————————————————小坑1、删除目录C:\Windows\System32下java.exe,javaw.exe,javaws.exe就是这三...
2019-08-22 10:38:21
3934
原创 JAVA/ android开发笔记:MainActivity.java与activity_main.xml
前言刚开始开发android的时候,新建一个activity总是会新建两个文件,我们已默认命名MainActivity.java与activity_main.xml两个文件来给大家介绍。activity_main.xmllayout就是布局,所以activity_main.xml其实就是一个布局文件。何为布局文件:我们拖的各种各样的控件在上面,系统就会自动帮我们生成xml代码。那能...
2019-08-19 12:28:01
3090
转载 Android Camera从App层到framework层到HAL层的初始化过程
转载 :https://blog.youkuaiyun.com/hutongling/article/details/77053920Android的camera 从上到下分为四个部分:Application :应用层Framework 层HAL 层(hardware abstract layer)一般面向开发者的话主要集中在Application层和framework层,但是一些厂商需要...
2019-08-19 12:26:10
1330
原创 Android----- getevent,sendevent,input命令的使用
https://myeyeofjava.iteye.com/blog/1999615
2019-08-16 18:09:59
191
原创 替换Android自带apk (adb模式和串口模式)
adb 模式:安卓自带的app放在/system/app/下,当我们想要替换这些应用时可以参考如下步骤1.获得root权限$adb root2重新加载/system分区$adb remount3.adb push xxx.apk /system/app/4.进入Android命令方式$adb shell5.重新安装apk#pm...
2019-08-16 14:43:39
2531
转载 关于connect: network is unreachable 问题的解决【转】
发现有网友问有关ping命令出现connect: network is unreachable 的问题。这通常是因为没正确设置ip地址。解决方法:在确保完善网卡驱动,以及确保将网卡驱动编译进内核后,检查ls /etc/sysconfig/network-script/ifcfg-eth0一、看是否在上述目录下存在ifcfg-eth0 这个文件,若存在则按下面的步骤操作:1.手工配置i...
2019-08-16 12:19:25
15232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人