Blog

一遍用了千遍,千遍只为一遍

linux USB学习(三)

一些基本的概念

简介 这里主要介绍USB一些会涉及到的基本概念,后续会慢慢的补充跟完善。 USB主控制器种类 种类 对应的USB的协议和支持的速率 创立者 功能划分 常用于 OHCI USB 1.1=Low Speed和Full Speed Compaq,M...

linux USB学习(二)

usb_device_id结构体

简介 这篇主要是讲下usb_driver结构体中的id_table成员,也就是usb_device_id结构体,以及结合具体的cdc-ncm驱动的一些分析。 usb_device_id 在Linux内核中,使用usb_driver结构体描述一个USB设备驱动,在编写新的USB设备驱动时,主要应该完成的工作是probe()和disconnect()函数,即探测和断开函数,它们分别在设备被...

bond简单实现

简介 bond功能用于多网卡的设备,也可以用于有线和无线网络同时接入一个网络的情况,主要就是将两张网卡当成一张网卡来使用,可以起到带宽加倍的作用,也可以起到安全冗余的作用,一个网卡挂了的话另一个网卡还能继续完成所有的工作。 过程 总的步骤如下 内核选项打开bond相关选项并编译 编译ifenslave工具 升级内核,并加载bonding驱动 ifenslave绑定网...

crontab命令

概述 主要记录crontab命令的使用方法,包括什么是crontab命令,怎么使用,crontab命令的语法,以及简单的介绍其他相关的内容 什么是crontab crontab 命令用于设置周期性被执行的指令。通过 crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell 脚本。时间间隔的单位可以是分钟、小时、日、月、周的任意组合。 crontab语法 cro...

网络知识小记

不定时更新

前言 不定时更新,跟网络相关的一些小知识 之前在另外一篇文章也有介绍过其他的网络工具小知识,两篇可以结合一起看看 修改主机名字 主机名字是什么,比如这样 这样 临时修改 host 新主机名字 永久修改 vim /etc/hostname #直接输入你的新主机名字即可 子网掩码 明确两个...

tcpdump编译以及交叉编译

通用脚本一次性搞定

前言 有时候会遇到用tcpdump工具来抓包分析,大多数时候需要交叉编译,而交叉编译总是离不开libcap跟tcpdump,记得之前自己下载源码编译半天还是失败,后来用buildroot相当的方便。不过今天文章里面想分享的方法,是通过一个编译脚本即可解决所有的烦恼,你可以交叉编译,又可以根据你自己当前机器的架构来。 准备 安装flex 与 bison Flex 和 Bison ...

mmap学习笔记

应用层 驱动层

前言 应用程序在跟驱动程序之间传递数据的时候,如果是通过read和write来进行的话,涉及到用户态跟内核态之间的数据传输,要走copy_from_user跟copy_to_user的数据拷贝。假设如果每次App给Kernel传的数据比较多,比如几MB,这样数据传输效率会比较低,改进方法是通过mmap来实现,把内核的buffer映射到用户态,App直接在用户态进行读写操作。 实现过程 ...

linux软链接与硬链接的区别

前言 之前一直对软链接跟硬链接有点印象,但是用的时候总是会重新翻一遍资料或者上网重新搜索,知道这两个是有区别的,但总是没记住,现在记录下来加深自己的印象。 用法 原文件 现在先生成我们的原始文件touch yuanshiwenjian,内容为this is the original file 软链接 这个时候生成原始文件的软链接 ln -s yuanshiwenjian s...

linux USB学习(一)

USB驱动实验

前言 记录下自己做的USB驱动的实验。实验主要分两种,一种是板子做USB主机的实验,另一个种则是做从机的实验。 USB主机实验 USB鼠标实验 USB 鼠标键盘属于 HID 设备。HID,翻译过来就是人体学接口设备,主要是一些人机交互的设备,比如键盘,鼠标,摇杆,绘图板等等。如果想要实现USB鼠标功能,分两步走,需要内核使能通用HID驱动和鼠标的驱动。 使能通用HID驱动 mak...

linux音频应用层学习相关记录

alsa-lib alsa-utils

前言 这篇文章主要是记录一下自己在应用层使用alsa-lib跟alsa-util,主要是amixer跟mplayer的使用,所以是在音频驱动跟LCD驱动已经加载好的情况下去做这件事情的。 内核起来后,可以看到已经有alsa device 对于声卡设备,在/dev/snd下也有相关的节点 这里简单的说下每个节点的作用 controlC0:用于声卡控制,C0表示...