
linux笔记
legendmaker
嵌入式系统 驱动 SOC COPC
展开
-
centos6.3 安装tftp
1,安装tftp服务器[root@centos6 centos6_iso]# mount -o loop CentOS-6.0-x86_64-bin-DVD1.iso mnt1/[root@centos6 centos6_iso]# find -iname *tftp*.rpm./mnt1/Packages/tftp-0.49-5.1.el6.x86_64.rpm./mnt1/Pa转载 2013-01-15 17:47:27 · 670 阅读 · 0 评论 -
目标主机不能到达
destination hostunreachable目标主机不能到达 “Destination HostUnreachable”信息说明对方主机不存在或者没有跟对方建立连接。网线没接好,或者网卡有问题!检查物理连接,重启机子一般在确定你的TCP/IP网络属性的设置正确下,检查你的网线或者网卡是不是没插好我想应该是物理连接方面没接好吧。。。 机子已经转载 2013-08-29 10:26:06 · 7859 阅读 · 0 评论 -
内存屏障
内存屏障的分类:编译器引起的内存屏障缓存引起的内存屏障乱序执行引起的内存屏障1、编译器引起的内存屏障:我们都知道,从寄存器里面取一个数要比从内存中取快的多,所以有时候编译器为了编译出优化度更高的程序,就会把一些常用变量放到寄存器中,下次使用该变量的时候就直接从寄存器中取,而不再访问内存,这就出现了问题,当其他线程把内存中的值改变了怎么办?转载 2013-08-29 09:37:56 · 559 阅读 · 0 评论 -
统计项目代码总行数
linux bash下,命令:find/home/zhangzhuan/netra-2.6.37/(项目目录) -name "*.*" | xargs file * |grep ASCII | cut -d":" -f1 | xargs wc -l |grep -E 'total$'|grep -Eo '[0-9]+' | sed -n 'H;${x;s/\n/+/g;s/^+*/原创 2013-08-29 09:40:28 · 884 阅读 · 0 评论 -
内核宏ALIGN的含义
在linux2.6.30.4中,在include/linux/kernel.h文件中,ALIGN宏的定义如下:[cpp]viewplaincopyprint?#defineALIGN(x,a) __ALIGN_MASK(x,(typeof(x))(a)-1)#define__ALIGN_MASK(x,mask) (((x)+(mask))&~(mask))转载 2013-08-29 09:42:04 · 636 阅读 · 0 评论 -
如何判断是linux/windows库,module或程序debug还是release
linux:readelf -S xxx.a |grep "\.debug*" 如果有输出, 是debug, 没有是release windows:dumpbin /DEPENDENTS xx.dll, 结果输出中有MSVCRTD.dll的是debug版本. 为了脚本自动判断, 可用powergrep等工具自动分拣. .lib和我们的编译选项有关, 通过dum原创 2013-08-29 09:45:24 · 2649 阅读 · 0 评论 -
移植glib库,procps到arm平台
移植glibexport OBJ_PATH=/home/Richard/windisks/e/apps/platform/dm81xx/usrexport PKG_CONFIG_PATH=$OBJ_PATH/lib/pkgconfigexport OBJ_HOST=arm-none-linux-gnueabi1.移植zlibexport CHOST=$OBJ_HOST原创 2013-08-29 10:15:39 · 1540 阅读 · 0 评论 -
用 vmlinuz 得到 vmlinux 逆转化
用 vmlinuz 得到 vmlinux 逆转化分类: linux内核 2012-05-03 16:10 119人阅读 评论(0) 收藏 举报http://www.linuxquestions.org/questions/programming-9/convert-vmlinuz-to-vmlinux-530085/The vmlinuz isn't just the compre转载 2013-08-29 10:19:02 · 1733 阅读 · 0 评论 -
在linux中查看线程数的三种方法
在linux中查看线程数的三种方法最大线程数:cat /proc/sys/kernel/threads-max1、top -H手册中说:-H : Threads toggle加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。 2、ps xH手册中说:H Show threads as if they were processes这样可以查转载 2013-08-29 10:23:51 · 9214 阅读 · 0 评论 -
内核中断过程
start_kernel------>setup_arch--->early_trap_init-----> (Copy the vectors, stubs and kuser helpers (in entry-armv.S))软中断:asm_do_IRQ----->irq_exit------>invoke_softirq-------->do_softirq/__do_softir原创 2013-08-29 10:25:11 · 475 阅读 · 0 评论 -
Dmidecode命令详解
Dmidecode命令详解Dmidecode 这款软件允许你在 Linux系统下获取有关硬件方面的信息。Dmidecode 遵循 SMBIOS/DMI 标准,其输出的信息包括BIOS、系统、主板、处理器、内存、缓存等等。偶发现这个工具很有用,就总结一下。一、Dmidecode简介DMI (Desktop Management Interface,DMI)就是帮助收集转载 2013-09-03 14:48:08 · 2205 阅读 · 0 评论 -
x86平台GPIO调试注意事项
调X86平台GPIO的时候,先看清是Super IO (SIO)的GPIO,还是南桥(PCH)的GPIO它们可能重名,比如都叫GP20 这些GPIO都是通过打开/dev/port设备来操作,只不过操作的地址不同 原理图上,PCH(南桥)的GPIO一般表示为PCH_GPIOxxx 南桥GPIO调时看文档看Intel的datasheet 而SIO的芯片一般是winbond的,看这个转载 2013-09-05 16:21:09 · 5237 阅读 · 1 评论 -
linux下读取cpu核温度。
通过加载coretemp.ko驱动,再读取CPU温度cat /sys/devices/platform/coretemp.0/temp1_input。原创 2013-10-18 13:26:02 · 5304 阅读 · 1 评论 -
busybox启用telnetd服务
1、内核配置Device Drivers --->Character devices[*] Unix98 PTY support [*] Legacy (BSD) PTY support(256) Maximum转载 2013-10-28 14:42:54 · 1137 阅读 · 0 评论 -
sendto()函数erron含义。
The Open Group Base Specifications Issue 6IEEE Std 1003.1, 2004 EditionCopyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.NAMEsendto - send a message on a socketSYNOPSI转载 2013-11-18 16:46:54 · 2544 阅读 · 0 评论 -
fd最大值和限制
fd的数量决定了fd的最大值 在Linux下,系统全部能够打开的fd总数为:/proc/sys/fs/file-max,取决于内存The file-max file /proc/sys/fs/file-max sets the maximum number of file-handles that the Linux kernel will allocate. We general转载 2013-12-11 17:34:13 · 2091 阅读 · 0 评论 -
linux驱动的模块依赖问题
内核模块如果引用到Linux内核中的符号,这个则不属于模块间的依赖,因为内核导出的符号本身就是供内核模块所使用。本帖要讨论的是在两个独立编译的模块A和B之间,B如果要引用A导出的符号,在Makefile中该如何把这一信息加入的问题。绝大多数情形下,内核配置时能会启用CONFIG_MODVERSIONS,这意味着无论是内核还是内核模块,在导出符号时都会为该符号生成CRC校验码,这个校验码保存转载 2014-01-03 13:28:22 · 1520 阅读 · 0 评论 -
dma传输与memcpy传输对比测试程序
/* * DMA test module * * Copyright (C) 2007 KEDACOM Corporation * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public Lice原创 2014-08-20 17:31:46 · 2504 阅读 · 0 评论 -
用yum下载rpm包(不安装)到制定目录用yum下载rpm包
1.安装yum-downloadonly # yum install yum-downloadonly -y 2.下载到指定目录 # yum install rpm包 -y --downloadonly --downloaddir=(下载路径)原创 2013-08-29 10:21:59 · 3395 阅读 · 0 评论 -
系统初始化函数集(subsys_initcall)和初始化段应用
系统初始化函数集(subsys_initcall)和初始化段应用前言:前段时间做一个项目需要设计一个动态库,并希望在加载库的同时自动执行一些初始化动作,于是联想到了linux内核众子系统的初始化,于是研究之,并在过这程中发现了初始化段的存在,利用初始化段实现了该功能。工作一年,笔记积累多了,慢慢变得杂乱无章,于是开博,一方面整理笔记,梳理知识,另一方面和大家交流,共同进步。转载 2013-08-29 10:07:35 · 664 阅读 · 0 评论 -
如何获取CentOS内核源码。参阅http://wiki.centos.org/HowTos/I_need_the_Kernel_Sourc
1. Maybe you do not need the full kernel sourceIf you need to compile a kernel driver module, the chances are youdo not really need the full kernel source tree. You might just need thekernel-d转载 2013-08-28 09:59:14 · 892 阅读 · 0 评论 -
grub重装
由于安装 Loading ata_piix drive 时候加载时间过长,不能安装,于是想进入bios修改硬盘为ide模式,不小心 设置acpi为disabled了,安装好CentOS后,发现不能进入xp,于是 fdisk /mbr 删除了grub,还是不能修复xp,一不小心又把bios恢复为default,可以进入。 恢复grub: centos光盘启动后,进入linux rescue模转载 2013-08-28 10:09:32 · 687 阅读 · 0 评论 -
ifconfig之下,dropped包的含义。
ifconfig shows dropped rx packetsThis document (7007165) is provided subject to the disclaimer at the end of this document.EnvironmentSUSE Linux Enterprise Server 11 Service Pack 2Situation转载 2013-08-28 10:11:21 · 10725 阅读 · 0 评论 -
Linux 2.6.32的内核栈和用户空间栈关系
1.进程的堆栈内核在创建进程的时候,在创建task_struct的同事,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈。2.进程用户栈和内核栈的切换当进程因为中断转载 2013-08-28 10:12:19 · 514 阅读 · 0 评论 -
linux下使用ip命令修改mac地址
在bash下,使用命令:ip link set eth0(网卡的设备名称) address aa:aa:aa:aa:aa:aa(mac地址)原创 2013-08-28 10:15:23 · 8007 阅读 · 1 评论 -
Linux串口读写
Linux串口读写串口简介串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是RS-232-C接口(又称EIARS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定转载 2013-08-28 10:18:19 · 1004 阅读 · 0 评论 -
Linux用户进程内存泄露一种检测方法
在Linux中,用户进程在/proc/{pid}/status文件中记录了该进程的内存使用实时情况。 *VmSize: 虚拟内存大小。 整个进程使用虚拟内存大小,是VmLib,VmExe, VmData,和 VmStk的总和。* VmLck: 虚拟内存锁。 进程当前使用的并且加锁的虚拟内存总转载 2013-08-28 10:20:50 · 701 阅读 · 0 评论 -
linux系统内存实际使用率
通过定期采集/proc文件系统内的meminfo文件来获取当前内存使用情况。 proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提转载 2013-08-28 10:21:47 · 699 阅读 · 0 评论 -
Linux中__init、__devinit等初始化宏
在内核里经常可以看到__init,__devinit这样的语句,这都是在init.h中定义的宏,gcc在编译时会将被修饰的内容放到这些宏所代表的section。其典型的定义如下:#define__init __section(.init.text)__cold notrace#define__initdata __section(.init.data)转载 2013-08-28 10:25:54 · 681 阅读 · 0 评论 -
set_task_state()与__set_task_state()的区别
#define__set_task_state(tsk, state_value) \do { (tsk)->state =(state_value); } while (0)#defineset_task_state(tsk, state_value) \set_mb((tsk)->state,(state_value))set_task_state()带有一个memor转载 2013-08-28 10:30:50 · 1402 阅读 · 0 评论 -
vim替换字符串
vi/vim 中可以使用 :s 命令来替换字符串。该命令有很多种不同细节使用方法,可以实现复杂的功能。 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为转载 2013-08-28 10:31:28 · 647 阅读 · 0 评论 -
xargs使用技巧
xargs大多数 Linux命令都会产生输出:文件列表、字符串列表等。但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file命令显示文件类型(可执行文件、ascii文本等);您可以处理输出,使其仅显示文件名,现在您希望将这些名称传递给ls-l命令以查看时间戳记。xargs命令就是用来完成此项工作的。它允许您对输出执行其他某些命令。记住下面这个来自于第1部分中的语法:转载 2013-08-28 10:32:40 · 535 阅读 · 0 评论 -
linux下ip命令使用
linux ip 命令基本上,ip命令就是整合了 ifconfig 与 route 这两个指令。不过, ip 可以达成的功能却更多! 如果您有兴趣的话,请自行 vi /sbin/ifup ,就知道整个 ifup 就是利用 ip 这个指令来达成的。[root@linux ~]# ip [option] [动作] [指令]参数:option :设定的参数,主要有:-s :显转载 2013-08-28 10:16:16 · 585 阅读 · 0 评论 -
清除arp
ip neigh flush dev eth0ip link set arp off dev eth0ip link set arp on dev eth0原创 2013-08-29 10:04:22 · 1426 阅读 · 0 评论 -
设置socket超时时间
struct timeval tv_out;tv_out.tv_sec = 10;//等待10秒tv_out.tv_usec = 0;setsockopt(fd,SOL_SOCKET,SO_RCVTIMEO,&tv_out, sizeof(tv_out));原创 2013-08-29 10:05:09 · 863 阅读 · 0 评论 -
添加路由
ip route add default via 2.1.1.101原创 2013-08-29 10:06:00 · 577 阅读 · 0 评论 -
Centos 7 使用Apache部署Redmine。
1. Redmine部署到本机。 (1)安装ruby环境。 curl -L https://get.rvm.io | bash source /etc/profile.d/rvm.sh rvm list known rvm install 2.2 (2)安装mariadb yum install mariadb m原创 2015-10-14 11:53:34 · 2418 阅读 · 0 评论