
linux
文章平均质量分 83
laoyouji
这个作者很懒,什么都没留下…
展开
-
ubuntu 20.04常用操作
Ubuntu 18.04 将“关闭、最小化、最大化”按钮移动到标题栏左侧:改到左边:gsettings set org.gnome.desktop.wm.preferences button-layout ‘close,maximize,minimize:’改到右边:gsettings set org.gnome.desktop.wm.preferences button-layout ‘:close,maximize,minimize’或者使用工具:sudo apt install dconf-原创 2021-03-22 23:10:55 · 2542 阅读 · 0 评论 -
交叉编译openssl使用Hi3518EV300工具链
1、下载文件:https://codeload.github.com/openssl/openssl/tar.gz/OpenSSL_1_1_0lexport CROSS_COMPILE=arm-himix100-linux-./config no-asm shared no-async --prefix=$(pwd)/../cross_libmake -j4make install...原创 2019-09-20 20:28:05 · 730 阅读 · 0 评论 -
交叉编译工具链中库和头文件的搜索路径
echo 'main(){}'|arm-himix100-linux-gcc -E -v -xxxx@xxxx:tool$ echo 'main(){}'|arm-himix100-linux-gcc -E -v -Using built-in specs.COLLECT_GCC=arm-himix100-linux-gccTarget: arm-linux-uclibceabiCo...原创 2019-08-28 09:37:18 · 3959 阅读 · 0 评论 -
简述configure、pkg-config、pkg_config_path三者的关系
转自:http://www.mike.org.cn/articles/description-configure-pkg-config-pkg_config_path-of-the-relations-between/一、什么是configure 源码安装过程中大多会用到configure这个程序,一般的configure都是一个script,执行时可以传入必要参数告知配置项目。...转载 2019-08-27 16:04:38 · 1690 阅读 · 0 评论 -
Autotools上手指南1——autoconf基本思想
转自:http://blog.dccmx.com/2011/01/autotools-1/要想弄懂Autotools并使用它,必须先要了解一下M4这个怪物。那么何为M4呢,M4的名称取自Macro(M后面跟4个字母…)。它和C预处理器里的宏是一个概念(其实,M4和C预处理器都K&R操刀设计的!!),用来处理文本替换。也就是说,M4是bash里的预处理器。取自维基的例子:转载 2013-03-04 09:12:32 · 796 阅读 · 0 评论 -
解决下载Android4.0源码时遇到的问题
本文解决公用IP(外网IP有限,经常发生在公司网络环境或虚拟机上)的机器下载Android源代码遇到的问题。注意本文只针对当前从android.googlesource.com下载源码时遇到的问题,因为网络和后续Android源码维护升级等因素,有时效性,并不能保证以后一定还起作用。利用五一假期期间,用家里的网络要把Android2.3,4.0都下载下来。但操作起来还真有遇到了问题。转载 2013-01-13 12:54:18 · 636 阅读 · 0 评论 -
Kernel.org hacked – how to get Android repo?
最近下载android源码报错误如下:curl: (7) couldn't connect to host和 [text] view plaincopyroot@localhost WORKING_DIRECTORY]# repo sync android.git.kernel.org[0: 130.23转载 2013-01-13 10:37:53 · 779 阅读 · 0 评论 -
alsa 音频库的移植
Andrew Huangbluedrum@163.comalsa 是在LINUX出现比较晚的音频处理库,主要是针对原有的OSS的库进行改进.性能更好,支持多个播放源等.但相应的,增加的编程的复杂性. 旧的oss是采用标准文件IO接口,设备打开采用open,声音播录是采用数据IO接口(read/write),设备的参数采用ioctl来控制.都是系统调用因此无需额外库和配置文件来操作设备.但转载 2012-12-11 08:47:19 · 545 阅读 · 0 评论 -
linux mmap驱动实现
在实现驱动程序的mmap函数时,要注意映射地址的转换问题,见代码。 定义一个设备结构体:[cpp] view plaincopystruct leedriver { struct cdev cdev; unsigned char mem[MEMSIZE]; }; 这里面这个MEMSIZE,最小都要是4096,因为内存映射是以页为转载 2012-12-09 14:24:50 · 1774 阅读 · 0 评论 -
[转]goAhead 2.5嵌入式web服务器移植到arm9 2440 + linux中
web服务嵌入式linuxmakefile编译器ssl目录(?)[+]作者:reille 本博客网址:http://blog.youkuaiyun.com/reille/,转载请注明出处。本文内容概要:详细描述了移植goAhead 2.5到S3C2440的linux系统的过程、步骤、遇到的问题及其解决方法。开发环境: 宿 主 机:window XP;转载 2012-11-08 23:19:31 · 2454 阅读 · 0 评论 -
P2P在NAT和防火墙上的穿透
概述本文主要讨论关于P2P通信的一些常见问题和解决方案。主要内容包含:P2P通信与网络设备的关系、不同的网络设备特征对P2P产生的影响、网络地址转换(NAT)的类型、NAT类型的检测方法、协议防火墙的突破方法、隧道技术、对于不同的NAT类型采取的穿透方法。目前P2P通信在穿透上至少存在着两个问题:防火墙穿透和NAT穿透,两者对于网络访问的限制是处于不同角度而实现的,其中防火墙是基于转载 2012-10-31 01:13:30 · 10645 阅读 · 0 评论 -
uboot makefile 之make
uboot根目录下makefile[python] view plaincopyprint?VERSION = 2010 PATCHLEVEL = 03 SUBLEVEL = EXTRAVERSION = ifneq "$(SUBLEVEL)" "" U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)转载 2012-10-28 21:10:11 · 1543 阅读 · 0 评论 -
uboot makefile分析之 make xx_config
make mini2440_config 分析: Uboot第一步--make xxx_config。多么性感啊,我们就从这里开始吧··· [python] view plaincopyprint?mini2440_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 tekkam转载 2012-10-28 21:06:30 · 1964 阅读 · 0 评论 -
Linux cpufreq 机制了解
引用文章链接:http://www.ibm.com/developerworks/cn/linux/l-cn-cpufreq/http://blog.youkuaiyun.com/linweig/archive/2010/10/28/5972312.aspx Cpufreq 的由来随着 energy efficient computing 和 performance per watt 等概转载 2012-10-22 10:24:26 · 1150 阅读 · 0 评论 -
Putty中文乱码的解决方法
Putty在默认情况下没有使用UTF-8编码,因此在显示中文的时候会出现乱码。解决方法非常简单:按照下图,在连接之前,左边窗口中的“转换”选项卡(如图所示),然后在右边“假定接收的数据字符集”的下拉选择菜单中选择“UTF-8”即可。Putty中文汉字乱码修改点击“打开”按钮连接之后,将能够正常使用输入法输入中文字符并且正常显示中文文本。如果当前已经连接了服务器,则在转载 2012-10-21 00:41:27 · 1163 阅读 · 0 评论 -
linux新内核的时钟机制代码读后感
如果说cfs是linux的一个很有创意的机制的话,那么linux中另一个创意就是nohz,我在前面已 经写了好几篇关于nohz的文章了,因此本文就不再阐述代码细节了,linux的创意在于设计而不在代码,代码主要解决的问题是实用性,就像gcc一样, 就是一个编译器,应用编译原理设计而出,它内部却充实着编译原理之外的巧妙。有血有肉才活得精彩,如果说nohz之前的linux内核是骨架的话,那么从 noh转载 2012-10-20 01:23:20 · 1619 阅读 · 0 评论 -
linux下利用本地桌面显示远程桌面
我们经常会遇到这样的情况,就是想访问远程的桌面,主要有两种方法:1,ssh利用ssh -X 命令可以访问远程客户端,在上面进行GUI的操作,例如firefox,进行视频监控。有时需要用ssh -XY2,xhost在本机运行#xhost +这样任何主机都可以访问你的桌面,然后登录到远程客户机器:# export DISPLAY=IP:number上面的IP是你本机的ip,转载 2012-10-20 01:08:12 · 2946 阅读 · 0 评论 -
Linux时间管理
linux的时钟系统的两大主要功能是计时和定时。计时功能就是指记录或设置当前的系统时间(包括日期),gettimeofday、settimeofday、time、clock_gettime、clock_settime等系统调用与计时相关。定时功能与定时器相关。设定一个定时器的(定时)时间,设定定时器的回调函数,启动定时器,在(定时)时间到时,定时器的回调函数会被调用。在 Linux内核中主要有转载 2012-10-20 00:54:42 · 4942 阅读 · 0 评论 -
关于驱动开发中mmap函数的实现
在编写设备驱动程序的时候,如果要想把设备内存映射到用户空间,那需要我们实现mmap,通过看ldd3上面的介绍,对实现mmap有了一点了解. 书上介绍主要是利用 intremap_pfn_range(struct vm_area_struct *vma, unsigned long virt_addr,unsigned long pfn, unsigned long size, pgpr转载 2012-09-11 23:04:10 · 924 阅读 · 0 评论 -
linux内存模型之buddy(伙伴)系统三从bootmem到buddy的过渡
===================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.youkuaiyun.com/gdt_A20=================================== 摘要: buddy基本模型建立起来后,bootmem也将要退出历史舞台了,boomem管理的内存都要过渡到buddy中,同样高端转载 2012-09-11 08:59:22 · 1373 阅读 · 0 评论 -
Linux 内存管理之highmem简介
一、Linux内核地址空间一般来说Linux 内核按照 3:1 的比率来划分虚拟内存(X86等):3 GB 的虚拟内存用于用户空间,1GB 的内存用于内核空间。当然有些体系结构如MIPS使用2:2 的比率来划分虚拟内存:2 GB 的虚拟内存用于用户空间,2 GB 的内存用于内核空间,另外像ARM架构的虚拟空间是可配置(1:3、2:2、3:1)。内核线性地址空间用于为内核的运行提供最基本的支持,转载 2012-09-10 23:25:56 · 7030 阅读 · 0 评论 -
kmap/kmalloc/ioremap/kmalloc/kzalloc/kcalloc/vmalloc
kmap函数: 把某块高端内存映射到页表,然后返回给用户一个填好vitual字段的page结构 建立永久地址映射,不是简单的返回virtual字段的pageioremap: 驱动程序无法直接访问io物理地址,所以ioremap是为了使将其映射到虚拟内存,然后直接像访问内存那样访问io 当开启了CONFIG_HIGHMEM时,能操作大于896M的RAM转载 2012-09-10 23:21:30 · 1283 阅读 · 0 评论 -
gcc 如何编译成bin文件
嵌入式开发的时候,我们的编译一个*.S文件,并最终生成bin文件,编译命令大致如下:CC=arm-softfloat-linux-gnu-gccLD=arm-softfloat-linux-gnu-ldOBJCOPY=arm-softfloat-linux-gnu-objcopy $(CC) -g $(CFLAG) -c boot.S #先将boot.S文件生成boot转载 2012-08-21 00:05:04 · 20600 阅读 · 0 评论 -
WAP协议研究笔记—彩信的传输
WAP协议研究笔记—彩信的传输 转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/absurd作者联系方式:Li XianJing 更新时间:2006-12-19 我们知道,彩信(MMS)和WAP浏览器是WAP协议的两大主要应用。WAP协议有点复杂,也算是SmartPhone中的核心技术之一吧,它包括WDP/WTP/WSP这一套传输协议,也包括W转载 2012-08-19 09:56:07 · 1082 阅读 · 0 评论 -
关于USB微帧与数据包包长与端点缓冲区的理解
搞了这么久USB了,还是不知道DATA0,DATA1的最大包长,以及端点描述符中的最大包长与68013的端点缓冲区有什么关系,经过二小时的奋斗得出如下结论: 1.DATA0或DATA1实际上就是一个端点描述符中的最大包长。换句话说,68013发一次数据包就是一个DATA0或 DATA12.微帧是用来作为传输时间基准的。在每个微帧之间可以传一到多次转载 2012-08-19 00:05:35 · 2818 阅读 · 0 评论 -
关于接口描述符中bAlternateSetting的使用
今天看CY7C68013开发手册时,突然想起,在USB接口描述符中有一个bAlternateSetting字段一直没用过,花了一上午时间也没找到相关资料!就在快中午时突然看到一句话:“bAlternateSetting用于在同一个接口中的多个描述符中进行切换". 一下子感觉抓住要点了。经过百度及查阅USB specification2.0得出如下结论: 在USB协议中同一个配置中的转载 2012-08-19 00:03:44 · 1540 阅读 · 0 评论 -
./configure -build,-host,-target设置
./configure -build,-host,-target设置build:执行代码编译的主机,正常的话就是你的主机系统。这个参数一般由config.guess来猜就可以。当然自己指定也可以。host:编译出来的二进制程序所执行的主机,因为绝大多数是如果本机编译,本机执行。所以这个值就等于build。只有交叉编译的时候(也就是本机编译,其他系统机器执行)才会build和host不同。用转载 2012-08-17 00:50:06 · 2141 阅读 · 0 评论 -
抛弃中断bottom half,使用中断线程吧
在linux里,中断处理分为顶半(top half),底半(bottomhalf),在顶半里处理优先级比较高的事情,要求占用中断时间尽量的短,在处理完成后,就激活底半,有底半处理其余任务。底半的处理方式主要有soft_irq,tasklet,workqueue三种,他们在使用方式和适用情况上各有不同。soft_irq用在对底半执行时间要求比较紧急或者非常重要的场合,主要为一些subsystem用,转载 2012-08-16 14:57:16 · 710 阅读 · 0 评论 -
小白学Linux之动态库的创建和使用
Linux下动态库生成和使用一.动态库的基本概念1.动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序。动态链接库是目标文件的集合,目标文件在动态链接库中的组织方式是按照特殊方式形成的。库中函数和变量的地址是相对地址,不是绝对地址,其真实地址在调用动态库的程序加载时形成。2.动态链接库的名称有别名(soname), 真名(realname)和链转载 2012-08-16 14:41:54 · 1083 阅读 · 0 评论 -
Linux 中断学习之前言篇
中断之原理篇前言:中断是计算机发展中一个重要的技术,它的出现很大程度上解放了CPU,提高了CPU的执行效率。在中断出现之前,CPU对IO采用的是轮询的方式进行服务,这使的CPU纠结在某一个IO上,一直在等待它的响应,如果它不响应,CPU就在原地一直的等下去。这样就导致了其他IO口也在等待CPU的服务,如果某个IO出现了important or emergency affairs,CPU转载 2012-08-16 13:58:27 · 609 阅读 · 0 评论 -
linux 中断学习之小试牛刀篇
Linux中断内核编程前言在前面分析了中断的基本原理后,就可以写一个内核中断程序来体验以下,也可以借此程序继续深入来了解内核中断的执行过程一.内核中断程序:我们还是来看一看成程序:在看程序之前,要熟悉如何进行模块编程,和了解module_pararm()的用法。如果不熟悉的话请大家看,module_param()的学习和Linux内核模块编程,在此不作解释。1.程序inte转载 2012-08-16 13:49:16 · 802 阅读 · 0 评论 -
request_threaded_irq
Namerequest_threaded_irq — allocate an interrupt lineSynopsisint fsfuncrequest_threaded_irq (unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn,转载 2012-08-16 13:43:48 · 588 阅读 · 0 评论 -
slab slub和内存管理
内核对象缓冲区管理Linux 内核在运行过程中,常常会需要经常使用一些内核的数据结构(对象)。例如,当进程的某个线程第一次打开一个文件的时候,内核需要为该文件分配一个称为 file 的数据结构;当该文件被最终关闭的时候,内核必须释放此文件所关联的 file 数据结构。这些小块存储空间并不只在某个内核函数的内部使用,否则就可以使用当前线程的内核栈空间。同时,这些小块存储空间又是动态变化的,不转载 2012-08-14 08:25:03 · 1324 阅读 · 0 评论 -
asmlinkage
asmlinkage在大型C语言项目工程或者linux内核中我们都会经常见到两个FASTCALL和armlinkage两个标识符(修饰符),那么它们各有什么不同呢?今天就给大家共同分享一下自己的心得.大家都知道在标准C系中函数的形参在实际传入参数的时候会涉及到参数存放的问题,那么这些参数存放在哪里呢? 有一定理论基础的朋友一定会肯定地回答:这些函数参数和函数内部局部变量一起被分转载 2012-07-19 22:30:40 · 794 阅读 · 0 评论 -
ubuntu11.10安装hostapd,有线与无线网卡组成路由器
1、从apt-get install hostapd安装之后,用hostapd会提示以下错误:root@skyi:/media/Loondisk/hostapd/hostapd-git/hostap/hostapd# hostapd -d /etc/hostapd/hostapd.confConfiguration file: /etc/hostapd/hostapd.confnl8原创 2012-05-20 00:10:07 · 15710 阅读 · 0 评论 -
2.6.18内核和2.6.25以后内核remap_pfn_range()对kmalloc()到的区别
对于2.6.25以上内核,直接调用vma->vm_flags |= VM_SHARED | VM_RESERVED;io_remap_pfn_range(vma, vma->vm_start, phy_addr >> PAGE_SHIFT, vma->vm_end - vma->vm_start, vma->vm_page_prot);但是2.6转载 2012-05-08 23:27:18 · 2308 阅读 · 0 评论 -
mips一致性DMA映射、流式DMA映射的使用
一、流式DMA:1、一般的使用方法是:dma_buf = (void *)__get_free_pages(GFP_ATOMIC|GFP_DMA, get_order(s->fragsize));desc->snd_buffer = dma_buf;desc->snd_dma = dma_map_single(NULL, desc->snd_buffer, s->fragsize,原创 2012-04-30 21:37:09 · 4917 阅读 · 0 评论 -
mips中的read、write、ioremap、out、in函数
一、我们在驱动里面一般是这样访问寄存器的(以龙芯1b-linux-3.1内核为例):__raw_writel(__raw_readl(LS1X_INTC_INTCLR(n)) | (1 #define LS1X_INTC_INTCLR(n) LS1X_INTC_REG(n, 0xc) ---->#define LS1X_INTC_REG(n, x) (ioremap(原创 2012-04-29 21:09:40 · 1903 阅读 · 0 评论 -
PVID和VID彻底研究
PVID和VID彻底研究(上)——PVID的作用及和VID的区别Pvid和Vid经常出现于二、三层交换机里,由于PVID和VID的设置不合理,造成VLAN划分变得混乱。本文就对PVID和VID进行了彻底研究。pvid是交换机上的概念,说的是进入该端口的报文如果没有打vlan id就按pvid的值打上,vid是报文上的vlan tag的意思.不是同个概念哦.首先解释一转载 2012-04-18 19:24:18 · 1683 阅读 · 2 评论