随笔分类 - Linux
摘要:Linux2.6内核驱动移植参考 随着Linux2.6的发布,由于2.6内核做了教的改动,各个设备的驱动程序在不同程度上要 进行改写。为了方便各位Linux爱好者我把自己整理的这分文档share出来。该文当列举 了2.6内核同以前版本的绝大多数变化,可惜的是由于时间和精力有限没有详细列出各个 函数的用法。 特别声明:该文档中的内容来自http:/lwn.net,该网也上也有各个函数的较为详细的 说明可供各位参考。如果需要该文档的word版的朋友, 请mail到jlpan82@gmail.com索 取。 1、 使用新的入口 必须包含 <linux/init.h> module_ini
阅读全文
摘要:Linux HZLinux核心几个重要跟时间有关的名词或变数,底下将介绍HZ、tick与jiffies。HZLinux核心每隔固定周期会发出timer interrupt (IRQ 0),HZ是用来定义每一秒有几次timer interrupts。举例来说,HZ为1000,代表每秒有1000次timer interrupts。 HZ可在编译核心时设定,如下所示(以核心版本2.6.20-15为例): adrian@adrian-desktop:~$ cd /usr/src/linux adrian@adrian-desktop:/usr/src/linux$ make menuconfig Pr
阅读全文
摘要:ioctl函数本函数影响由fd参数引用的一个打开的文件。#include<unistd.h>intioctl( int fd, int request, .../* void *arg */ );返回0:成功 -1:出错第三个参数总是一个指针,但指针的类型依赖于request参数。我们可以把和网络相关的请求划分为6类:套接口操作文件操作接口操作ARP高速缓存操作路由表操作流系统下表列出了网络相关ioctl请求的request参数以及arg地址必须指向的数据类型:类别Request说明数据类型套接口SIOCATMARKSIOCSPGRPSIOCGPGRP是否位于带外标记设置套接口的进
阅读全文
摘要:Shell脚本的执行方式: 注明:wd代表“脚本保存的目录”1.fork语法:/wd/shell.shfork是最普通的,就是直接在脚本里面用/wd/shell.sh来调用shell.sh这个脚本.运行的时候开一个子shell执行调用的脚本,子shell执行的时候,父shell还在。子shell执行完毕后返回父shell。子shell从父shell继承环境变量.但是子shell中的环境变量不会带回父shell2.exec语法: exec /wd/shell.shexec与fork不同,不需要新开一个sub-shell来执行被调用的脚本. 被调用的脚本与父脚本在同一个shell内执行。但是使用e
阅读全文
摘要:1、总结背景在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量PATH的设置问题,而PATH的设置也是在linux下定制环境变量的一个组成部分。本案例基于RedHat AS4讲解环境变量定制的问题。2、变量简介Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。3、定制
阅读全文
摘要:当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录;这时就想到用source命令,如:source /etc/profile对source进行了学习,并且用它与sh 执行脚本进行了对比,现在总结一下。source命令:source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令。功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。用法:source filename 或 . filenamesource命令(从 C Shell 而来)是bash s
阅读全文
摘要:使用前的准备:1、首先下载makeself的软件包,其中包含的文件主要有:makeself.sh makeself-header.sh等2、将这两个文件放入目录/usr/bin下,并通过ln -s makeself.sh makeself来做一个符号链接。使用:makeself是一个小巧的shell工具,它将你的程序打成一个可执行的shell包,安装更加容易方便。如有一个文件夹: dnsServerSetup文件夹内有文件:named.conf.in named.broadcast localdomain.zone named.zero named.local bind-chroot-9.2.
阅读全文
摘要:makeself是一个小型shell脚本,他可以吧特定目录下的文件打包成为一个shell脚本类似的文件,并且能够像shell脚本一样执行。例如我在test目录下创建了多个shell脚本和一些配置文件,这些脚本在执行时可能会相互调用并读取配置文件。使用makeself工具可以将这些文件统一打包成一个脚本并执行,非常的方便。makeself使用方法:1、首先makeself:http://megastep.org/makeself/makeself.run2、下载完成后会得到makeself.run,文件,直接运行后会得到makeself.sh(可以将该文件拷贝到/usr/bin目录下)3、mak
阅读全文
摘要:修改ip地址即时生效:# ifconfig eth0 192.168.0.20 netmask 255.255.255.0启动生效:修改/etc/sysconfig/network-scripts/ifcfg-eth0修改default gateway即时生效:# route add default gw 192.168.0.254启动生效:修改/etc/sysconfig/network-scripts/ifcfg-eth0修改dns修改/etc/resolv.conf修改后可即时生效,启动同样有效修改host name即时生效:# hostname fc2启动生效:修改/etc/sysco
阅读全文
摘要:Linux静态IP设置IP配置:/etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0BOOTPROTO=staticHWADDR=00:26:18:0B:38:C0ONBOOT=yesIPADDR=192.168.0.20NETMASK=255.255.255.0GATEWAY=192.168.0.1IP生效:/sbin/ifdown eth0/sbin/ifup eth0通知网关更新信息:/etc/init.d/network restart配置DNS:vi /etc/resolv.confnameserver 202.96.134.133
阅读全文
摘要:配置文件位于:/etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.3NETMASK=255.255.255.0GATEWAY=192.168.0.1 使IP地址生效:/sbin/ifdown eth0/sbin/ifup eth0配置dns解析echo "nameserver 211.98.1.28">> /etc/resolv.conf 通知网关更新信息:/etc/init.d/network restart ①简介
阅读全文
摘要:作者:北南南北来自:LinuxSir.Org摘要:本文是关于Linux操作系统主机名(hostname)的文档,对主要配置文件/etc/hosts进行简要的说明 ;另外对基配具工具hostname也进行了举例说明; 欢迎高手斧正,谢谢; ++++++++++++++++++++++++++++++++++++++++正文++++++++++++++++++++++++++++++++++++++++1、 什么是主机名;无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。但IP地址不方便记忆,所以又有了域名。域名只是在公网
阅读全文
摘要:rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具优点:比ftp命令方便,而且服务器不用打开FTP服务。首先先了解有关的两个命令可以提供很方便的操作:sz:将选定的文件发送(send)到本地机器rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器第一步:下载rzsz-3.48.tar.gz文件下载地址:http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz [root@localhost soft]# ll总计 72-rw-r--r-- 1 root root 65566 2004-05
阅读全文
摘要:Vmware有自己的硬盘管理工具,其所在位置是/vmware/vmware workstation/,名称为vmware-vdiskmanager.exe,具体的参数及命令格式可以参照帮助文档。其使用方法如下:假设虚拟机装有Linux操作系统,虚拟机名称为AS4,安装路径是H:\AS4,则首先进入到vmware-vdiskmanager所在的目录下,然后执行如下命令:vmware-vdiskmanager.exe -x 10Gb "H:\AS4\Red Hat Enterprise Linux 4.vmdk"其中,-x参数表示为虚拟机增加存储空间,后面所跟的数字表示存储空间
阅读全文
摘要:Linux添加硬盘是在原来安装的硬盘空间不够或者需要使用其他硬盘上的东西时候的解决办法,因为大多数初学者习惯使用虚拟机,这里以在Vmware虚拟机中实现Linux添加硬盘的具体步骤来详细介绍说这个问题。Vmware中为linux增加硬盘1. 在vmware的setting中为虚拟机增加一个硬盘。2. 在vmware中看见 第1个硬盘是 /dev/sda , 第2个硬盘是 /dev/sdb3. 创建硬盘信息fdisk /dev/sdba. 按n添加分区,选p(主分区);b. 选1,也就是sdb1;c. 然后就是空间划分,一路回车。默认是使用整个磁盘空间。d. 然后按w写入分区信息4. 格式化硬盘
阅读全文
摘要:每次测试自己写的驱动模块都要自己mknod设备文件,总觉得是一种不好的行为而且要自己指定主设备号和次设备号,就是没有书上说sysfs、udev什么程序员不需关心设备号之类的优点了内核TMD经常变,一个2.6.25上还好好的驱动,跑到2.6.29上就不能编译通过了,妈的,可以理解为什么Linux驱动工程师会高薪了,好,我忍了这里的方法只能保证倒2.6.31,再往后就未知了,所以死读书是不行的要融会贯通,深入理解,有问题直接到内核代码里找答案在2.6.17以前,在/dev目录下生成设备文件很容易,devfs_mk_bdevdevfs_mk_cdevdevfs_mk_symlinkdevfs_mk_
阅读全文
摘要:从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用 class_device_create创建对应的设备。(不太明白什么是devfs,udev,对linux中的文件系统没有什么概念呢。)大致用法如下:struct class *myclass = class_create(THIS_MO
阅读全文
摘要:这确实有些混乱:1. 命令行参数“console=ttySAC0”与/dev/目录没有任何关系,它被用来选择从哪个设备输出内核、驱动的printk信息:①. 在内核kernel/printk.c中,有这一行代码:__setup("console=", console_setup);对于命令行参数“console=ttySAC0”,console_setup函数会将设备名(name)、索引(index)解析出来:名为ttySAC,索引为0──表示第一个设备②. S3C2410的串口驱动文件drivers/serial/s3c2410.c中,有如下数据结构:1882 stati
阅读全文
摘要:mdev的hotplug模式1, busybox 添加mdev支持2, 在/etc/rc.d/rcS中添加#mount filesystem/bin/mount -a#start mdevecho /sbin/mdev > /proc/sys/kernel/hotplug #设置系统的hotplug程序为mdevmdev –s/etc/fstab的内容如下:proc /proc proc defaults 0 0none /tmp ramfs defaults 0 0mdev /dev ramfs defaults 0 0sysfs /sys sysfs defaults 0 0执行md
阅读全文
摘要:不需挂载就能查看的命令:1. file[root@localhost dev]# file -s /dev/sda1/dev/sda1: Linux rev1.0ext4filesystemdata (extents) (huge files)2.parted[root@localhost dev]# parted /dev/sdaGNU Parted 1.8.8Using /dev/sdaWelcome to GNU Parted! Type 'help' to view a list ofcommands.(parted) printModel: VMware, VMwar
阅读全文

浙公网安备 33010602011771号