随笔分类 - 技术-Linux
摘要:看 linux 设备驱动开发详解时,字符设备驱动一章,注册globalmem驱动时,出现如下错误:# insmod globalmem.koinsmod: can't insert 'globalmem.ko': Device or resource busy原因:模块使用的是静态分配设备号的方式,...
阅读全文
摘要:1)创建方法符号链接创建方法:$ ln -s myfile mylink硬链接创建方法:$ln myfile mylink2)区别(1)符号链接可以指向其它硬盘分区中的文件,硬链接不可以;(2)符号链接可以指向目录文件,普通用户下创建的硬链接不可以。
阅读全文
摘要:Options -> Preferences -> General 去掉 "Backgroud synchronization every " 选项
阅读全文
摘要:linux 内核通过内核线程这种方式来实现在后台运行一些操作。内核线程是在内核空间中单独存在的标准进程。内核线程与普通进程最大的不同在于:内核线程没有地址空间。内核线程只能工作于内核空间,不能上下文切换至用户空间。除此之外,内核线程与普通进程一样是可以被调度及抢占的。
阅读全文
摘要:修改内核时,make uImage 时遇到这么一个错误:"dereferencing pointer to incomplete type"该错误的解释是:你的指针,有一个类型,这个类型是不完全的。也就是说,我们只给出了这个类型的声明,没有给出其定义。这里的类型多半是结构,联合之类的东西。这个错误其...
阅读全文
摘要:传统意义上,在调用 fork() 生成子进程时,属于父进程的所有资源都会复制一份给子进程。而采用复制所有资源给子进程的方法不仅是幼稚的也是低效的,更糟的是,如果子进程生成后马上调用 exec() 执行了一个应用,那么之前复制给子进程的资源将被浪费。在 linux 中, fork() 的实现采用了 写...
阅读全文
摘要:调试 imx6 的 spi slave 内核驱动,前期调试总免不了得要追一下寄存器的设置,过程函数的调用。采用了 printk() 打印语句。1、采用的硬件方法是:分析 imx6 spi slave 的各路引脚主要是 clk, cs, mosi, miso, gnd, vcc,连接至spi 主端(C...
阅读全文
摘要:一、gdb server 的生成1、官网下载 gdb-7.8.tar.gzhttp://ftp.gnu.org/gnu/gdb2、解压$ tar zxf gdb-7.8.tar.gz参考 gdb-7.8/gdb/gdbserver/README,按如下描述进行配置。3、新建空目录$ mkdir s-...
阅读全文
摘要:与用户空间应用不同的是,内核不能调用标准C库或其它任何不属于内核的库。主要原因是,速度及大小的限制。标准C库对内核而言实在是太大了。许多常用的的 libc 函数已经在内核中实现了。内核中的库文件是在内核的根目录下 lib 目录下存放。如常用的字符串操作函数是在 lib/string.c 中定义的,调...
阅读全文
摘要:1、内核既不能访问C库也不能访问标准C头文件2、内核按照 GNU C 的标准进行编码3、内核没有内存保护4、内核实现浮点运算比较困难5、内核的每个进程拥有比较小且大小固定的栈空间6、由于内核支持异步中断,可抢占,对称多处理器,导致了同步及并发的实现需要重点关注7、可移植性很重要
阅读全文
摘要:1、理论依据1)make 支持将编译过程分解成多个并发的任务2)内核的 Makefiles 有正确的依赖关系,将内核编译过程分解成多个并发任务不会导致编译失败2、方法$ make -jn其中 n 代表了可分解的任务数,实际的经验是,为每个处理器分配1至2个任务,比如 4 核的机器,可以使用以下命令:...
阅读全文
摘要:实现的方法是输出重定向,以下实现将所有无价值的输出重定向到 无返回的黑洞中。$ make > /dev/null或者,编译内核时:$ make uImage > /dev/null
阅读全文
摘要:内核的配置由 以CONFIG 为前缀的 CONFIG_FEATURE 形式的配置选项决定。配置选项决定了以下两个方面:1)哪些文件被编译2)预处理器指令处理哪些代码配置选项通过 bool 选项 及 tristate 选项 来控制编译过程。bool 选项的值为 yes 和 no,tristate 选项...
阅读全文
摘要:1)进入源码官网https://www.kernel.org/页面如下:2)主线的git 地址,当点mainline 后面的 “browse ”时,如下:点一下,企鹅右边的 index:kernel/git/torvalds/linux.git,即可找到 主线源码的 git 地址具体如下(三者都是相...
阅读全文
摘要:在Linux中,任何时候,处理器都处于以下三种状态之一:1)在用户空间,在某个进程中执行用户代码2)在内核空间,处于进程上下文中,执行某个特定的进程3)在内核空间,处于中断上下文中(与进程无关),进行中断处理应用程序、内核与硬件的关系图如下:
阅读全文
摘要:1、linux kernel development 3rd edition 中,Andrew Morton 说 " The best way to understand a part of of the kernel is to make changes to it. Making a chang...
阅读全文
摘要:1、前提假设服务端的ip为 192.168.1.120客户端的ip为 192.168.1.252、在服务器端进行 ssh server 的安装$ sudo apt-get install openssh-server2、在客户端通过ssh的登录服务器$ ssh xxx@192.168.1.120登录...
阅读全文
摘要:1、问题描述安装openssh-server时,检测到系统中安装有vsftpd,两者不兼容,需要将vsftpd卸载。在卸载时出现Sub-process /usr/bin/dpkg returned an error code (1)2、解决方案由于之前在安装 vsftpd 时,新建了一个临时的 ft...
阅读全文
摘要:1. 先决条件是 emacs 已经安装完成2. 安装cscope$ sudo apt-get install cscope3. 在emacs 配置文件 .emacs 中添加 cscope支持(require 'xcscope)4. 生成内核源码的索引文件在内核源码的顶层目录下执行下面的命令生成索引文...
阅读全文
摘要:1. 确认无线无卡的芯片组xp下(前提是已经安装了其xp驱动),将无线网卡插进PC,设备管理器中,选无线网卡,在详细信息中,选服务,知其芯片组为AR92712. 确认需要下载的无线网卡驱动根据以下网站https://wireless.wiki.kernel.org/en/users/drivers/...
阅读全文

浙公网安备 33010602011771号