- 博客(41)
- 问答 (1)
- 收藏
- 关注
原创 Intel IOMMU (VT-d) initialization for Linux
Intel IOMMU (VT-d) initialization for Linux
2023-12-12 12:24:27 1176
原创 Linux网桥配置及应用
近期需要搭建一个开发板上网的测试环境,于是顺便学习一下Linux的网桥配置。实验环境为Virtualbox 6.1 + Ubuntu-20.04,虚拟机共享主机网络上网,通过usb以太网卡连接开发板,本文主要就是配置网桥连接usb以太网卡与虚拟机的主网卡,使开发板能通过网桥上网。虚拟机的配置不在本文描述,默认虚拟机可正常上网,并正常识别usb以太网卡,如下:如上enp0s3为虚拟机共享主机上网的网卡,enx34298f742220为usb以太网卡。虚拟机的默认路由配置也先记录一下,后续进行路由配置的时
2022-06-23 18:59:30 1592 1
转载 内核模块加载顺序的控制
前言看i915显卡驱动时,发现i915模块代码假定自己会在intel-agp的模块加载之后执行,我就不理解,两个模块,怎么保证intel-agp模块执行一定在前呢?百度后,没看对这个知识点说的比较透的,于是,有了本文。注意,本文说的模块只是种通俗的说法,实际体现为自动被调用的功能,比如驱动的注册,子系统的注册等,不是编译成“模块”的模块。本文中的模块都是被编译进内核的模块,当然也可以被编译成“模块”。编译成“模块”的模块加载顺序不在本文讨论范围。理解本文需要一点内核Makefile基础,一点ELF
2021-12-22 13:43:55 957
原创 OpenCV交叉编译环境搭建
前言初学OpenCV,在Ubuntu上可以用apt-get方便的解决编译依赖,OpenCV的编译过程较为顺利。但想在嵌入式arm板子上进行测试,编译则不这么顺利,特别是在解决依赖的问题上比较繁琐,如ffmpeg,网上也有很多案例和解决方法可供参考。我个人追求极简主义(其实是懒……),既然目的仅仅是编译OpenCV,就尽量不要花太多时间去编译其他依赖库,以免本末倒置。在这描述一种借助buildroot构建解决所有编译依赖的方法。编译buildroot我个人比较习惯用buildroot去构建文件系统,因
2021-11-24 18:38:14 4126 2
转载 Ubuntu apt-offline official guide
focal (8) apt-offline.8.gzProvided by: apt-offline_1.8.2-1_all bugNAME apt-offline - Offline APT Package managerSYNOPSIS apt-offline [ARGUMENTS] [OPTIONS]DESCRIPTION apt-offline brings offline package management functionality to Debian ba
2021-11-03 15:18:01 479
原创 Linux NFS使用摘要
目录前言NFS ServerNFS Client前言在本文简要记录Linux NFS的使用方式。NFS ServerHost PC是Ubuntu-20.04安装NFS Serversudo apt-get install nfs-kernel-server设置NFS目录-------- /etc/exports 添加:<your path> *(rw,sync,no_root_squash)重启NFS服务sudo /etc/init.d/nfs-ker
2021-10-31 16:35:31 146
原创 Qt调试问题记录(持续更新)
目录前言调试平台调试记录g++编译选项不支持前言本人调试Qt所遇到的问题均会记录在此,方便回溯。调试平台Qt版本:5.12.11Host PC:Ubuntu-20.04Target:ARM/ARM64调试记录g++编译选项不支持arm-linux-gnueabi-g++: error: unrecognized command line option ‘-Wshift-overflow=2’arm-linux-gnueabi-g++: error: unrecognized com
2021-10-31 16:09:21 2880 5
原创 从零构建GCC编译工具链简记
文章目录前言参考Buildroot网上资料前置准备编译流程binutilsgmp/mpfr/mpcgcc第一阶段Linux kernel headerc librarygcc第二阶段gdb后记前言由于种种原因,最近有个需求,需要在Windows下用gcc交叉编译,但arch不是常见的arm,网上找不到现成的,刚好又在看龙书《编译原理》,于是索性自己尝试编译一个gcc。本文仅对流程进行简要记录,方便自己以后回溯,不会提及太多细节以及特定arch相关的描述。参考本人小白,一开始天真的以为只需要下载一个
2021-10-25 16:25:39 2738
转载 ubuntu设置指定软件不参与升级
以synergy为例,需使用sudo 或 root打开终端,输入:sudo echo synergy hold | sudo dpkg --set-selections查询Ubuntu系统被锁定不更新的软件包状态(hold), 命令为:sudo dpkg --get-selections | grep hold 查看是否锁定成功或者使用sudo dpkg --get-selections | more 查询系统所有软件状态是被锁定(hold)的软件包恢复可升级状态,命令:sudo echo
2021-01-18 22:14:34 304
转载 OSI与TCP/IP网络模型对比
目录OSI模型TCP/IP参考模型OSI模型人们已经进行一些讨论关于如何将TCP/IP参考模型映射到OSI模型。由于TCP/IP和OSI模型组不能精确地匹配,还没有一个完全正确的答案。 另外,OSI模型下层还不具备能够真正占据真正层的位置的能力;在传输层和网络层之间还需要另外一个层(网络互连层)。特定网络类型专用的一些协议应该运行在网络层上,但是却运行在基本的硬件帧交换上。类似协议的例子有ARP和STP(用来保持冗余网桥的空闲状态直到真正需要它们)。然而,它们是本地协议并且在网络互连功能下面运行。不可否
2020-09-27 11:32:02 257
原创 Android P 跳过 Gapps 开机引导
目录更改 USER_SETUP_COMPLETE 和 DEVICE_PROVISIONED更改 USER_SETUP_COMPLETE 和 DEVICE_PROVISIONED打开命令行,输入命令: adb shell settings put secure user_setup_complete 1 adb shell settings put global device_provisioned 1
2020-09-19 15:52:50 942
转载 Linux 网络协议栈收消息过程-Ring Buffer
想看能不能完整梳理一下收消息过程。从 NIC 收数据开始,到触发软中断,交付数据包到 IP 层再经由路由机制到 TCP 层,最终交付用户进程。会尽力介绍收消息过程中的各种配置信息,以及各种监控数据。知道了收消息的完整过程,了解了各种配置,明白了各种监控数据后才有可能在今后的工作中做优化配置。所有参考内容会列在这个系列最后一篇文章中。Ring Buffer 相关的收消息过程大致如下:图片...
2020-01-16 16:21:12 965
转载 宋宝华:关于linux内存管理中DMA ZONE和dma_alloc_coherent若干误解的澄清
1.DMA ZONE的大小是16MB?这个答案在32位X86计算机的条件下是成立的,但是在其他的绝大多数情况下都不成立。首先我们要理解DMA ZONE产生的历史原因是什么。DMA可以直接在内存和外设之间进行数据搬移,对于内存的存取来讲,它和CPU一样,是一个访问master,可以直接访...
2020-01-16 15:40:10 920
转载 raw socket编程
从应用开发的角度看,SOCK_STREAM、SOCK_DGRAM 这两类套接字似乎已经足够了。因为基于 TCP/IP 的应用,在传输层的确只可能建立于 TCP 或 UDP 协议之上,而这两种套接字SOCK_STREAM、SOCK_DGRAM 又分别对应于 TCP 和 UDP,所以几乎所有所有的应用都可以使用这两种套接字来实现。但是,从另外的角度,这两种套接字有一些局限:怎样发送一个 ICM...
2019-12-31 16:53:31 1309
转载 是谁关闭了Linux抢占,而抢占又关闭了谁?
前言本人的目的在于解惑,把读者从糊里糊涂的状态解救出来。本文对比分析:preempt_disable() local_irq_disable()/local_irq_save(flags) spin_lock() spin_lock_irq()/spin_lock_irqsave(lock, flags)哪些关闭了抢占?另外,再说清楚,抢占又关闭了谁。首先,把这几个API...
2019-12-12 15:20:54 211
转载 多级页表如何节约内存
前言在学习计算机组成原理时,书中谈到,"使用多级页表可以压缩页表占用的内存",在了解了多级页表的原理后,恐怕对这句话还是理解不了:把页表换成多级页表了就能节约内存了?不是还是得映射所有的虚拟地址空间么?比如做个简单的数学计算,假如虚拟地址空间为32位(即4GB)、每个页面映射4KB以及每条页表项占4B,则进程需要1M个页表项(4GB / 4KB = 1M),即页表(每个进程都有一个页表)占...
2019-12-12 15:20:35 1141
转载 ARM汇编伪指令
GNU平台无关符号定义伪指令.global,.local,.set,.equ.global使得符号对连接器可见,变为对整个工程可用的全局变量.global symbol.local表示符号对外部不可见,只对本文件可见.local symbol.set给一个全局变量或局部变量赋值,和.equ的功能一样.set symbol expr.set s...
2019-10-15 19:50:28 384
转载 DH密钥交换和ECDH原理
原文链接http://blog.csdn.net/sudochen/article/details/9164427原文 下面我们以Alice和Bob为例叙述Diffie-Hellman密钥交换的原理。1,Diffie-Hellman交换过程中涉及到的所有参与者定义一个组,在这个组中定义一个大质数p,底数g。2,Diffie-Hellman密钥交换是一个两部分的过程,...
2019-02-21 19:02:58 613
翻译 DBUS ---- Type System
前言 最近在看BlueZ源码,有关DBUS的知识点,在此记录下来。原文Type SystemD-Bus has a type system, in which values of various types can be serialized into a sequence of bytes referred to as the wire format in a sta...
2019-02-21 18:56:24 498
原创 位运算——异或“∧”
概念 异或运算符”∧”也称XOR运算符。它的规则是若参加运算的两个二进位同号,则结果为0(假);异号则为1(真)。即 0∧0=0,0∧1=1, 1^0=1,1∧1=0。应用1. 使特定位翻转 比如:01111010,想使其低4位翻转,即1变为0,0变为1。可以将它与00001111进行∧运算。2. 实现两个值的交换 通过按位异或运算,可以...
2019-02-01 13:47:53 3221
转载 Linux Kernel printk-formats
原文 https://www.kernel.org/doc/html/latest/core-api/printk-formats.html How to get printk format specifiers rightAuthor: Randy Dunlap <rdunlap@infradead.org> Author: Andrew Murra...
2018-12-29 10:14:27 1189
原创 linux 进程管理 task_struct 中 parent/children/sibling 成员的关系
前言 最近在看《Linux内核设计与实现(原书第3版)》中第进程管理,有点疑问,上网顺便补习了linux内核链表第相关知识,在此记录下来。 疑问 书中写到:3.2.6 进程家族树... 同样,也可以按一下方式依次访问子进程: struct task_struct *task; struct list_head *list...
2018-09-30 14:01:12 5832 1
转载 usb alternate settings
前言 最近在看linux usb core 驱动源码,对alternate settings的概念有点疑问,记录下网上好的解释。
2016-08-09 11:40:59 2587
原创 Android Linux内核驱动程序(基于goldfish-3.10内核)
最近在学习老罗博客(点击打开博客),看到他的《在Ubuntu上为Android系统编写Linux内核驱动程序》一文(文章链接),自己也跃跃欲试,不过教程是基于goldfish-2.6.29内核的,而我的环境是android 6.0,goldfish-3.10内核的,在编译过程中遇到的问题我都会在本文记录下来。
2016-06-03 09:32:44 3844 11
转载 linux 进程和线程的区别
原文地址 http://blog.csdn.net/forrest2009/article/details/6413756原文进程与线程 进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。
2016-04-21 00:08:55 444
转载 c++中的 extern "C"
原文地址 http://songpengfei.iteye.com/blog/1100239原文比如说你用C 开发了一个DLL 库,为了能够让C ++语言也能够调用你的DLL 输出(Export) 的函数,你需要用extern "C" 来强制编译器不要修改你的函数名。通常,在C 语言的头文件中经常可以看到类似下面这种
2016-04-20 23:43:32 495
转载 Android sp<> 指针类的用法
在android 中可以广泛看到的template class Sp 句柄类实际上是android 为实现垃圾回收机制的智能指针。智能指针是c++ 中的一个概念,因为c++ 本身不具备垃圾回收机制,而且指针也不具备构造函数和析构函数,所以为了实现内存( 动态存储区) 的安全回收,必须对指针进行一层封装,而这个封装就是智能指针,其实说白了,智能指针就是具备指针功能同时提供安全内存回收的一个类。当然,
2016-04-20 17:38:09 10241
原创 Java 子类调用this笔记
前言 最近在看Android源码,遇到了有关this的一个问题,自己写了一个测试小程序帮助理解。代码class AllBase { void func() { System.out.println("AllBase func"); }}class TestBase extends AllBase { private AllBase mOut
2016-04-19 10:11:16 678
原创 Java private类构造函数笔记
前言 最近在看Android源码的时候遇到了private类构造函数,于是写了一个测试小程序,帮助理解。代码class TestPrivate { private TestPrivate() { System.out.println("TestPrivate constructor"); } static TestPrivate mInstance;
2016-04-19 09:45:39 764
转载 Android 系统服务一览
1.AccountManagerServiceAndroid账户服务,提供了对账户、密码、授权的集中管理。2.AccessibilityManagerService辅助管理程序截获所有的用户输入,并根据这些输入给用户一些额外的反馈,起到辅助的效果,View的点击、焦点等事件分发管理服。3.ActivityManagerServiceAndroid framework框架
2016-03-30 15:58:32 558
翻译 Java‘s regular expressions
Creating regular expressionsYou can begin learning regular expressions with a subset of the possible constructs. A complete list of constructs for building regular expressions can be found in the JD
2016-03-14 15:08:47 412
翻译 Summary of "Holding Your Objects"
SummaryJava provides a number of ways to hold objects:1.An array associates numerical indexes to objects. It holds objects of a known type so that you don’t have to cast the result when you’re l
2016-03-09 15:27:10 521
翻译 Java多态中重写static函数
Pitfall: fields and static methodsOnce you learn about polymorphism, you can begin to think that everything happens polymorphically. However, only ordinary method calls can be polymorphic. For exa
2016-03-01 10:04:12 581
翻译 Java多态中重写private函数
Pitfall: “overriding” private methodsHere’s something you might innocently try to do://: polymorphism/PrivateOverride.java// Trying to override a private method.package polymorphism;import
2016-03-01 09:52:06 833
原创 Java类初始化顺序
前言 最近在看《Thinking In Java》,看到有关初始化顺序的时候有些迷茫,然后写了一个小示例程序求证了一下,如有不妥,请指出。
2016-02-25 15:48:37 579
翻译 Java类实例化过程
To summarize the process of creating an object, consider a class called Dog:1.Even though it doesn’t explicitly use the static keyword, the constructor is actually a static method. ...
2016-02-24 22:42:16 400
空空如也
c++ 重载操作符友元问题
2015-12-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人