摘要: passwd 作为普通用户和超级权限用户都可以运行,但作为普通用户只能更改自己的用户密码,但前提是没有被root用户锁定;如果root用户运行passwd ,可以设置或修改任何用户的密码; passwd 命令后面不接任何参数或用户名,则表示修改当前用户的密码;请看下面的例子; [root@local 阅读全文
posted @ 2019-06-29 19:47 樊伟胜 阅读(366) 评论(0) 推荐(0)
摘要: Id Finger Pwck 检查/etc/passwd配置文件内的信息与实际主文件夹是否存在,还可比较/etc/passwd和/etc/shadow的信息是否一致,另外如果/etc/passwd中的数据字段错误也会提示。 Grpck 和pwck功能相近,这是检查用户组的。 Groups newgr 阅读全文
posted @ 2019-06-29 19:46 樊伟胜 阅读(861) 评论(0) 推荐(0)
摘要: 交换分区最大容量为64G,最多只能建32个, 创建交换分区 #fdisk /dev/hdaànà+容量àpàt(修改系统ID)à分区号à82àpàw #mkswap /dev/hda2(以上划分的分区号) 构建swap格式 #swapon /dev/hda2 加载即完成增加swap #swapon 阅读全文
posted @ 2019-06-29 19:45 樊伟胜 阅读(939) 评论(0) 推荐(0)
摘要: 类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文件系统),下面我们就以SUN Solaris2.8和REDHAT as server 3 为例简单介绍一下在linux下如何mount nfs网络共享。 在linux客户端挂接(mount)NFS磁盘共 阅读全文
posted @ 2019-06-29 19:44 樊伟胜 阅读(681) 评论(0) 推荐(0)
摘要: [root@centos57 ~]# umount /dev/hda1 用设备文件名来卸载 [root@centos57 ~]# umount /aixi 用挂载点来卸载 umount: /aixi: device is busy 如果提示设备忙,不急可以使用如下命令卸载 #umount -l /m 阅读全文
posted @ 2019-06-29 19:44 樊伟胜 阅读(665) 评论(0) 推荐(0)
摘要: Windows网络共享的核心是SMB/CIFS,在linux下要挂接(mount)windows的磁盘共享,就必须安装和使用samba 软件包。现在流行的linux发行版绝大多数已经包含了samba软件包,如果安装linux系统时未安装samba请首先安装samba。当然也可以到 www.samba 阅读全文
posted @ 2019-06-29 19:43 樊伟胜 阅读(374) 评论(0) 推荐(0)
摘要: 和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全一样。插入U盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。 [root at pldyrouter root]# fdisk -l Dis 阅读全文
posted @ 2019-06-29 19:42 樊伟胜 阅读(798) 评论(0) 推荐(0)
摘要: 对linux系统而言,USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。 [root at pldyrouter /]# fdisk -l Disk /dev/sda: 73 dot 4 阅读全文
posted @ 2019-06-29 19:40 樊伟胜 阅读(3426) 评论(0) 推荐(0)
摘要: 支持大于2T的磁盘,2T以下的最好还是用Fdisk来分区。 [root@centos57 aixi]# parted /dev/hda print Model: VMware Virtual IDE Hard Drive (ide) Disk /dev/hda: 2147MB Sector size 阅读全文
posted @ 2019-06-29 19:38 樊伟胜 阅读(491) 评论(0) 推荐(0)
摘要: 1、从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。 #cp /dev/cdrom /home/sunky/mydisk.iso 或 #dd if=/dev/cdrom of=/home/sunky/mydisk.iso 注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/h 阅读全文
posted @ 2019-06-29 19:38 樊伟胜 阅读(432) 评论(0) 推荐(0)
摘要: df:列出文件系统的整体磁盘使用情况 [root@centos57 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/VolGroup00-LogVol00 16G 4.2G 11G 28% / /dev/sda1 99M 13M 81M 14% /boot t 阅读全文
posted @ 2019-06-29 19:36 樊伟胜 阅读(341) 评论(0) 推荐(0)
摘要: linux文件颜色的含义:蓝色代表目录 绿色代表可执行文件 红色表示压缩文件 浅蓝色表示链接文件 灰色表示其他文件 红色闪烁表示链接的文件有问题了 黄色表示设备文件 蓝色文件 目录 白色文件 一般性文件,如文本文件,配置文件,源码文件等 浅蓝色文件 链接文件,主要是使用ln命令建立的文件 绿色文件 阅读全文
posted @ 2019-06-29 19:35 樊伟胜 阅读(573) 评论(0) 推荐(0)
摘要: 终端快捷键: Ctrl + a/Home 切换到命令行开始 Ctrl + e/End 切换到命令行末尾 Ctrl + l 清除屏幕内容,效果等同于clear Ctrl + u 清除剪切光标之前的内容 Ctrl + k 剪切清除光标之后的内容 Ctrl + y 粘贴刚才所删除的字符 Ctrl + r 阅读全文
posted @ 2019-06-29 19:09 樊伟胜 阅读(516) 评论(0) 推荐(0)
摘要: 1.作用 检查整个Linux网络状态。 2.格式 netstat [-acCeFghilMnNoprstuvVwx][-A][--ip] 3.主要参数 -a--all:显示所有连线中的Socket。 -A:列出该网络类型连线中的IP相关地址和网络类型。 -c--continuous:持续列出网络状态 阅读全文
posted @ 2019-06-29 18:18 樊伟胜 阅读(188) 评论(0) 推荐(0)
摘要: 1.作用 telnet表示开启终端机阶段作业,并登入远端主机。telnet是一个Linux命令,同时也是一个协议(远程登陆协议)。 2.格式 telnet [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][主机名称IP地址<通信端口>] 3.主要参数 -8:允许使 阅读全文
posted @ 2019-06-29 18:18 樊伟胜 阅读(470) 评论(0) 推荐(0)
摘要: 1.作用 ping检测主机网络接口状态,使用权限是所有用户。 2.格式 ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t] IP地址 3.主要参数 -d:使用Socket的SO_DEBUG功能。 -c:设置完成要求回应的次数。 -f:极限检测。 -i:指定收发信息 阅读全文
posted @ 2019-06-29 18:11 樊伟胜 阅读(935) 评论(0) 推荐(0)
摘要: 1.作用 使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户。 2.格式 crontab [ -u user ] 文件 crontab [ -u user ] { -l | -r | -e } 3.主要参数 -e:执行文字编辑 阅读全文
posted @ 2019-06-29 18:09 樊伟胜 阅读(237) 评论(0) 推荐(0)
摘要: 1.作用 ifconfig用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。 2.格式 ifconfig -interface [options] address 3.主要参数 -interface:指定的网络接口名,如eth0和eth1。 up:激活指定的网 阅读全文
posted @ 2019-06-29 18:09 樊伟胜 阅读(235) 评论(0) 推荐(0)
摘要: 1.作用 ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig、route等,使用权限为超级用户。几乎所有的Linux发行版本都支持该命令。 2.格式 ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]] 3. 阅读全文
posted @ 2019-06-29 18:09 樊伟胜 阅读(252) 评论(0) 推荐(0)
摘要: 1.作用 kill命令用来中止一个进程。 2.格式 kill [ -s signal | -p ] [ -a ] pid ... kill -l [ signal ] 3.参数 -s:指定发送的信号。 -p:模拟发送信号。 -l:指定信号的名称列表。 pid:要中止进程的ID号。 Signal:表示 阅读全文
posted @ 2019-06-29 18:07 樊伟胜 阅读(396) 评论(0) 推荐(0)
摘要: 1.作用 groupadd命令用于将新组加入系统。 2.格式 groupadd [-g gid] [-o]] [-r] [-f] groupname 3.主要参数 -g gid:指定组ID号。 -o:允许组ID号,不必惟一。 -r:加入组ID号,低于499系统账号。 -f:加入已经有的组时,发展程序 阅读全文
posted @ 2019-06-29 17:34 樊伟胜 阅读(176) 评论(0) 推荐(0)
摘要: 1.作用 lp是打印文件的命令,使用权限是所有用户。 2.格式 lp [-c][-d][-m][-number][-title][-p] 3.主要参数 -c:先拷贝文件再打印。 -d:打印队列文件。 -m:打印结束后发送电子邮件到用户。 -number:打印份数。 -title:打印标题。 -p:设 阅读全文
posted @ 2019-06-29 17:33 樊伟胜 阅读(718) 评论(0) 推荐(0)
摘要: 1.作用 useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。 2.格式 useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [ 阅读全文
posted @ 2019-06-29 17:33 樊伟胜 阅读(201) 评论(0) 推荐(0)
摘要: 1.作用 at命令用来在指定时刻执行指定的命令序列。 2.格式 at [-V] [-q x] [-f file] [-m] time 3.主要参数 -V:显示标准错误输出。 -q:许多队列输出。 -f:从文件中读取作业。 -m:执行完作业后发送电子邮件到用户。 time:设定作业执行的时间。time 阅读全文
posted @ 2019-06-29 17:32 樊伟胜 阅读(203) 评论(0) 推荐(0)
摘要: 1.作用 quota命令用来显示磁盘使用情况和限制情况,使用权限超级用户。 2.格式 quota [-g][-u][-v][-p] 用户名 组名 3.参数 -g:显示用户所在组的磁盘使用限制。 -u:显示用户的磁盘使用限制。 -v:显示没有分配空间的文件系统的分配情况。 -p:显示简化信息。 4.应 阅读全文
posted @ 2019-06-29 17:31 樊伟胜 阅读(388) 评论(0) 推荐(0)
摘要: 1.作用 top命令用来显示执行中的程序进程,使用权限是所有用户。 2.格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要参数 d:指定更新的间隔,以秒计算。 q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。 c:显示 阅读全文
posted @ 2019-06-29 17:30 樊伟胜 阅读(655) 评论(0) 推荐(0)
摘要: 1.作用 free命令用来显示内存的使用情况,使用权限是所有用户。 2.格式 free [-b|-k|-m] [-o] [-s delay] [-t] [-V] 3.主要参数 -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。 -s delay:显示每隔多少秒数来显示一次内存使用情况 阅读全文
posted @ 2019-06-29 17:30 樊伟胜 阅读(200) 评论(0) 推荐(0)
摘要: 1.作用 df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。 2.格式 df [options] 3.主要参数 -s:对每个Names参数只给出占用的数据块总数。 -a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个 阅读全文
posted @ 2019-06-29 17:18 樊伟胜 阅读(324) 评论(0) 推荐(0)
摘要: 1.作用 ln命令用来在文件之间创建链接,它的使用权限是所有用户。 2.格式 ln [options] 源文件 [链接名] 3.参数 -f:链结时先将源文件删除。 -d:允许系统管理者硬链结自己的目录。 -s:进行软链结(Symbolic Link)。 -b:将在链结时会被覆盖或删除的文件进行备份。 阅读全文
posted @ 2019-06-29 17:17 樊伟胜 阅读(312) 评论(0) 推荐(0)
摘要: 1.作用 cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户。 2.格式 cat [options] 文件1 文件2…… 3.[options]主要参数 -n:由第一行开始对所有输出的行数编号。 -b:和-n相似,只不过对于空白行不编号 阅读全文
posted @ 2019-06-29 17:16 樊伟胜 阅读(283) 评论(0) 推荐(0)
摘要: 1.作用 cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户。 2.格式 cmp[options] 文件名 3.[options]主要参数 -l: 将字节以十进制的方式输出,并方便将两个文件中不同的以八进制的方式输出。 阅读全文
posted @ 2019-06-29 17:11 樊伟胜 阅读(234) 评论(0) 推荐(0)
摘要: 1.作用 diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。 2.格式 diff [options] 源文件 目标文件 3.[options]主要参数 -a:将所有文件当作文本文件来处理。 -b:忽略空格造成的不同。 -B:忽略空行造成的不同。 -c:使用纲要输出格式。 阅读全文
posted @ 2019-06-29 17:10 樊伟胜 阅读(205) 评论(0) 推荐(0)
摘要: 1.作用 ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。 2.格式 ls [options][filename] 3.options主要参数 -a, --all:不隐藏任何以“.” 字符开始的项目。 -A, --almost-all:列出除了“ . ”及 “.. ”以外 阅读全文
posted @ 2019-06-29 17:06 樊伟胜 阅读(634) 评论(0) 推荐(0)
摘要: 1.作用 mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组合。 2.格式 mv[options] 源文件或目录 目标文件或目录 3.[options]主要参数 -i:交互方式操作。如果mv操作将导致对已存在的目标 阅读全文
posted @ 2019-06-29 17:05 樊伟胜 阅读(267) 评论(0) 推荐(0)
摘要: 1.作用 find命令的作用是在目录中搜索文件,它的使用权限是所有用户。 2.格式 find [path][options][expression] path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。 3.主要参数 [ 阅读全文
posted @ 2019-06-29 17:04 樊伟胜 阅读(384) 评论(0) 推荐(0)
摘要: 1.作用 dd命令用来复制文件,并根据参数将数据转换和格式化。 2.格式 dd [options] 3.[opitions]主要参数 bs=字节:强迫 ibs=<字节>及obs=<字节>。 cbs=字节:每次转换指定的<字节>。 conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。 cou 阅读全文
posted @ 2019-06-29 17:03 樊伟胜 阅读(309) 评论(0) 推荐(0)
摘要: 1.作用 grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 2.格式 grep [options] 3.主要参数 [options]主要参数: -c: 阅读全文
posted @ 2019-06-29 17:00 樊伟胜 阅读(224) 评论(0) 推荐(0)
摘要: 1.作用 mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。 2.格式 mkdir [options] 目录名 3.[options]主要参数 -m, --mode=模式:设定权限<模式>,与chmod类似。 -p, --parents: 阅读全文
posted @ 2019-06-29 16:50 樊伟胜 阅读(218) 评论(0) 推荐(0)
摘要: 1.作用 件内容判断文件类型,使用权限是所有用户。 2.格式 file通过探测文 file [options] 文件名 3.[options]主要参数 -v:在标准输出后显示版本信息,并且退出。 -z:探测压缩过的文件类型。 -L:允许符合连接。 -f name:从文件namefile中读取要分析的 阅读全文
posted @ 2019-06-29 16:49 樊伟胜 阅读(238) 评论(0) 推荐(0)
摘要: 1.作用 last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户。通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统。 2.格式 1ast[—n][-f file][-t tty] [—h 节点][-I —IP][—1][-y][1D] 3.主要参数 -n:指定 阅读全文
posted @ 2019-06-29 16:47 樊伟胜 阅读(1246) 评论(0) 推荐(0)
摘要: 1.作用 exit命令的作用是退出系统,它的使用权限是所有用户。 2.格式 exit 3.参数 exit命令没有参数,运行后退出系统进入登录界面。 阅读全文
posted @ 2019-06-29 16:46 樊伟胜 阅读(446) 评论(0) 推荐(0)
摘要: 1.作用 chsh命令的作用是更改使用者shell设定,它的使用权限是所有使用者。 2.格式 chsh [ -s ] [ -list] [ --help ] [ -v ] [ username ] 3.主要参数 -l:显示系统所有Shell类型。 -v:显示Shell版本号。 4.应用技巧 前面介绍 阅读全文
posted @ 2019-06-29 16:45 樊伟胜 阅读(347) 评论(0) 推荐(0)
摘要: 1.作用 umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。 2.格式 unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir 3.使用说明 umount 命令是mount命令的逆 阅读全文
posted @ 2019-06-29 16:44 樊伟胜 阅读(469) 评论(0) 推荐(0)
摘要: 1.作用 mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。 2.格式 mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir 3.主要参数 -h:显示辅助信息。 -v:显示信息,通常和-f用来除错。 阅读全文
posted @ 2019-06-29 16:43 樊伟胜 阅读(548) 评论(0) 推荐(0)
摘要: 1.作用 install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户。 2.格式 (1)install [选项]... 来源 目的地 (2)install [选项]... 来源... 目录 (3)install -d [选项]... 目录... 在前两种格式中,会将<来源>复制至<目 阅读全文
posted @ 2019-06-29 16:40 樊伟胜 阅读(343) 评论(0) 推荐(0)
摘要: 1.作用 reboot命令的作用是重新启动计算机,它的使用权限是系统管理者。 2.格式 reboot [-n] [-w] [-d] [-f] [-i] 3.主要参数 -n: 在重开机前不做将记忆体资料写回硬盘的动作。 -w: 并不会真的重开机,只是把记录写到/var/log/wtmp文件里。 -d: 阅读全文
posted @ 2019-06-29 16:39 樊伟胜 阅读(387) 评论(0) 推荐(0)
摘要: 1.作用 halt命令的作用是关闭系统,它的使用权限是超级用户。 2.格式 halt [-n] [-w] [-d] [-f] [-i] [-p] 3.主要参数说明 -n:防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块。 -w:并不是真正的重启或关机 阅读全文
posted @ 2019-06-29 16:28 樊伟胜 阅读(398) 评论(0) 推荐(0)
摘要: 1.作用 shutdown命令的作用是关闭计算机,它的使用权限是超级用户。 2.格式 shutdown [-h][-i][-k][-m][-t] 3.重要参数 -t:在改变到其它运行级别之前,告诉init程序多久以后关机。 -k:并不真正关机,只是送警告信号给每位登录者。 -h:关机后关闭电源。 - 阅读全文
posted @ 2019-06-29 16:27 樊伟胜 阅读(680) 评论(0) 推荐(0)
摘要: 1.作用 login的作用是登录系统,它的使用权限是所有用户。 2.格式 login [name][-p ][-h 主机名称] 3.主要参数 -p:通知login保持现在的环境参数。 -h:用来向远程登录的之间传输用户名。 如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是l 阅读全文
posted @ 2019-06-29 16:26 樊伟胜 阅读(1063) 评论(0) 推荐(0)
摘要: 所有使用 /proc 的模块应当包含 <linux/proc_fs.h> 来定义正确的函数. 要创建一个只读 /proc 文件, 你的驱动必须实现一个函数来在文件被读时产生数据. 当 某个进程读文件时(使用 read 系统调用), 这个请求通过这个函数到达你的模块. 我们先 看看这个函数并在本章后面 阅读全文
posted @ 2019-06-29 13:19 樊伟胜 阅读(201) 评论(0) 推荐(0)
摘要: 一旦你有一个定义好的 read_proc 函数, 你应当连接它到 /proc 层次中的一个入口项. 使用一个 creat_proc_read_entry 调用: struct proc_dir_entry *create_proc_read_entry(const char *name,mode_t 阅读全文
posted @ 2019-06-29 13:19 樊伟胜 阅读(904) 评论(0) 推荐(0)
摘要: /proc 文件系统是一个特殊的软件创建的文件系统, 内核用来输出消息到外界. /proc 下 的每个文件都绑到一个内核函数上, 当文件被读的时候即时产生文件内容. 我们已经见到 一些这样的文件起作用; 例如, /proc/modules, 常常返回当前已加载的模块列表. /proc 在 Linux 阅读全文
posted @ 2019-06-29 13:18 樊伟胜 阅读(300) 评论(0) 推荐(0)
摘要: 如果你不小心, 你会发现自己用 printk 产生了上千条消息, 压倒了控制台并且, 可能地, 使系统日志文件溢出. 当使用一个慢速控制台设备(例如, 一个串口), 过量的消息速率也 能拖慢系统或者只是使它不反应了. 非常难于着手于系统出错的地方, 当控制台不停地输 出数据. 因此, 你应当非常注意 阅读全文
posted @ 2019-06-29 13:17 樊伟胜 阅读(438) 评论(0) 推荐(0)
摘要: printk 函数将消息写入一个 LOG_BUF_LEN 字节长的环形缓存, 长度值从 4 KB 到 1 MB, 由配置内核时选择. 这个函数接着唤醒任何在等待消息的进程, 就是说, 任何在系统 调用中睡眠或者在读取 /proc/kmsg 的进程. 这 2 个日志引擎的接口几乎是等同的, 但 是注意 阅读全文
posted @ 2019-06-29 13:16 樊伟胜 阅读(137) 评论(0) 推荐(0)
摘要: 在驱动开发的早期, printk 非常有助于调试和测试新代码. 当你正式发行驱动时, 换句 话说, 你应当去掉, 或者至少关闭, 这些打印语句. 不幸的是, 你很可能会发现, 就在你 认为你不再需要这些消息并去掉它们时, 你要在驱动中实现一个新特性(或者有人发现了 一个 bug), 你想要至少再打开 阅读全文
posted @ 2019-06-29 13:16 樊伟胜 阅读(607) 评论(0) 推荐(0)
摘要: Linux 在控制台记录策略上允许一些灵活性, 它允许你发送消息到一个指定的虚拟控制台 (如果你的控制台使用的是文本屏幕). 缺省地, 这个"控制台"是当前虚拟终端. 为了选择 一个不同地虚拟终端来接收消息, 你可对任何控制台设备调用 ioctl(TIOCLINUX). 下面 的程序, setcon 阅读全文
posted @ 2019-06-29 13:15 樊伟胜 阅读(479) 评论(0) 推荐(0)
摘要: 一个不同是 printk 允许你根据消息的严重程度对其分类, 通过附加不同的记录级别或者 优先级在消息上. 你常常用一个宏定义来指示记录级别. 例如, KERN_INFO, 我们之前曾 在一些打印语句的前面看到过, 是消息记录级别的一种可能值. 记录宏定义扩展成一个字 串, 在编译时与消息文本连接在 阅读全文
posted @ 2019-06-29 13:10 樊伟胜 阅读(2819) 评论(0) 推荐(0)
摘要: Unix 系统已经长时间支持名为 readv 和 writev 的 2 个系统调用. 这些 read 和 write 的"矢量"版本使用一个结构数组, 每个包含一个缓存的指针和一个长度值. 一个 readv 调 用被期望来轮流读取指示的数量到每个缓存. 相反, writev 要收集每个缓存的内容到一 阅读全文
posted @ 2019-06-29 13:08 樊伟胜 阅读(460) 评论(0) 推荐(0)
摘要: scull 使用的内存区, 也称为一个设备, 长度可变. 你写的越多, 它增长越多; 通过使用 一个短文件覆盖设备来进行修整. scull 驱动引入 2 个核心函数来管理 Linux 内核中的内存. 这些函数, 定义在 <linux/slab.h>, 是: void *kmalloc(size_t 阅读全文
posted @ 2019-06-29 13:07 樊伟胜 阅读(493) 评论(0) 推荐(0)
摘要: 我们开始在真实的 scull 函数中使用它们. open 方法 open 方法提供给驱动来做任何的初始化来准备后续的操作. 在大部分驱动中, open 应当 进行下面的工作: 检查设备特定的错误(例如设备没准备好, 或者类似的硬件错误 如果它第一次打开, 初始化设备 如果需要, 更新 f_op 指针 阅读全文
posted @ 2019-06-29 13:06 樊伟胜 阅读(494) 评论(0) 推荐(0)
摘要: 在内部, scull 使用一个 struct scull_dev 类型的结构表示每个设备. 这个结构定义为: struct scull_dev { struct scull_qset *data; /* Pointer to first quantum set */ int quantum; /* 阅读全文
posted @ 2019-06-29 13:05 樊伟胜 阅读(258) 评论(0) 推荐(0)
摘要: 注册 driver_register 通过 module_init(s3c2410_nand_init);注册 Nand Flash 驱动. 在 s3c2410_nand_init ()中通过 driver_register()注册 s3c2410_nand_driver 驱动程序,如下所示: st 阅读全文
posted @ 2019-06-29 12:35 樊伟胜 阅读(230) 评论(0) 推荐(0)
摘要: device_driver include/linux/device.h struct device_driver { const char * name; /* 驱动名称 */ struct bus_type * bus; /* 总线类型 */ struct completion unloaded 阅读全文
posted @ 2019-06-29 12:04 樊伟胜 阅读(320) 评论(0) 推荐(0)
摘要: Nand Flash 设备添加时数据结构包含关系 struct mtd_partition partition_info[] --> struct s3c2410_nand_set nandset --> struct s3c2410_platform_nand superlpplatfrom -- 阅读全文
posted @ 2019-06-29 12:03 樊伟胜 阅读(212) 评论(0) 推荐(0)
摘要: s3c2410 专有数据结构 s3c2410_nand_set struct s3c2410_nand_set { int nr_chips; /* 芯片的数目 */ int nr_partitions; /* 分区的数目 */ char *name; /* 集合名称 */ int nr_map; 阅读全文
posted @ 2019-06-29 12:03 樊伟胜 阅读(165) 评论(0) 推荐(0)
摘要: 1.1 U-BOOT 对从 Nand Flash 启动的支持 1.1.1 从 Nand Flash 启动 U-BOOT 的基本原理 1. 前 4K 的问题 如果 S3C2410 被配置成从 Nand Flash 启动(配置由硬件工程师在电路板设置), S3C2410 的 Nand Flash 控制器 阅读全文
posted @ 2019-06-29 12:02 樊伟胜 阅读(473) 评论(0) 推荐(0)
摘要: U-BOOT 对 Nand Flash 命令的支持 在 U­BOOT 下对 Nand Flash 的支持主要是在命令行下实现对 nand flash 的操作。对 nand flash 实现的命令 为:nand info、nand device、nand read、nand write、nand er 阅读全文
posted @ 2019-06-29 12:02 樊伟胜 阅读(1045) 评论(0) 推荐(0)
摘要: 本原理:在 windows 环境下借助 ADS 仿真器将在 SDRAM 中的一段存储区域中的数据写到 Nand flash 存 储空间中。烧写程序在纵向上分三层完成: 第一层: 主烧写函数(完成将在 SDRAM 中的一段存储区域中的数据写到 Nand flash 存储空间中); 第二层: 为第一层主 阅读全文
posted @ 2019-06-29 09:19 樊伟胜 阅读(885) 评论(0) 推荐(0)
摘要: ECC 产生方法 ECC 是用于对存储器之间传送数据正确进行校验的一种算法,分硬件 ECC 和软件 ECC 算法两种,在 S3C2410 的 Nand Flash 控制器中实现了由硬件电路(ECC 生成器)实现的硬件 ECC。 ECC 产生方法 ECC 是用于对存储器之间传送数据正确进行校验的一种算 阅读全文
posted @ 2019-06-29 09:16 樊伟胜 阅读(2123) 评论(0) 推荐(0)
摘要: Nand flash 芯片型号为 Samsung K9F1208U0B,数据存储容量为 64MB,采用块页式存储管理。8 个 I/O 引脚充当数据、地址、命令的复用端口。 芯片内部存储布局及存储操作特点 一片 Nand flash 为一个设备(device), 其数据存储分层为: 1 设备(Devi 阅读全文
posted @ 2019-06-29 09:15 樊伟胜 阅读(2494) 评论(0) 推荐(0)
摘要: 对 Nand Flash 存储芯片进行操作, 必须通过 Nand Flash 控制器的专用寄存器才能完成。所以,不能对 Nand Flash 进行总线操作。而 Nand Flash 的写操作也必须块方式进行。对 Nand Flash 的读操作可以按字节读取。 Nand Flash 控制器特性 1. 阅读全文
posted @ 2019-06-29 09:15 樊伟胜 阅读(2836) 评论(0) 推荐(0)
摘要: 下载 cramfs 工具 从 http://prdownloads.sourceforge.net/cramfs/cramfs­1.1.tar.gz下载源代码包. 把下载包拷贝到 dev_home/tools 下. [arm@localhost tools]$tar ­xzvf cramfs­1.1 阅读全文
posted @ 2019-06-29 09:14 樊伟胜 阅读(378) 评论(0) 推荐(0)
摘要: 下载 从 http://www.acme.com/software/thttpd/ 下载 thttpd 到/tmp 目录当中,并解压. 编译 thttpd [arm@localhost thttpd­2.25b]$ CC=arm­linux­gcc ./configure ­­host=arm­li 阅读全文
posted @ 2019-06-29 09:13 樊伟胜 阅读(473) 评论(0) 推荐(0)
摘要: inetd 的选择及获取 Busybox1.1.3 提供了 inetd 支持。如果读者使用的是较低版本的不提供 inetd 的 Busybox,那么可以考虑使 用 netkit 套件来提供网络服务。强烈建议使用高版本的 Busybox。此节后半部分介绍如果编译布署 netkit 当中的 inetd。 阅读全文
posted @ 2019-06-29 09:12 樊伟胜 阅读(227) 评论(0) 推荐(0)
摘要: 下载 从 http://tinylogin.busybox.net/downloads/tinylogin­1.4.tar.bz2下载 tinylogin­1.4 到/tmp 目录当中,并解压. 修改 tinyLogin 的 Makefile [arm@localhost tinylogin­1.4 阅读全文
posted @ 2019-06-29 09:07 樊伟胜 阅读(289) 评论(0) 推荐(0)
摘要: 下载 busybox 从 http://www.busybox.net/downloads/busybox­1.1.3.tar.gz/下载 busybox­1.1.3 到/tmp 目录当中,并解压. 进入解压后的目录,配置 Busybox [arm@localhost busybox­1.1.3]$ 阅读全文
posted @ 2019-06-29 09:06 樊伟胜 阅读(225) 评论(0) 推荐(0)
摘要: 创建 linuxrc,加入如下内容: [arm@localhost my_rootfs]#vi linuxrc #!/bin/sh 创建 linuxrc,加入如下内容: [arm@localhost my_rootfs]#vi linuxrc #!/bin/sh #挂载/etc 为 ramfs, 并 阅读全文
posted @ 2019-06-29 09:05 樊伟胜 阅读(592) 评论(0) 推荐(0)
摘要: [arm@localhost my_rootfs]#mkdir bin dev etc home lib mnt proc sbin sys tmp root usr [arm@localhost my_rootfs]#mkdir mnt/etc [arm@localhost my_rootfs]# 阅读全文
posted @ 2019-06-29 09:04 樊伟胜 阅读(231) 评论(0) 推荐(0)
摘要: 内核移植过程 下载 linux 内核 从 http://www.kernel.org/pub/linux/kernel/v2.6/linux­2.6.14.1.tar.bz2 下载 linux­2.6.14.1 内核至 home/arm/dev_home/kernel. [root@localhos 阅读全文
posted @ 2019-06-29 09:03 樊伟胜 阅读(459) 评论(0) 推荐(0)
摘要: 为 cs8900a 建立编译菜单 1. 拷贝到文件 把 cs8900a 的压缩包拷贝到 arm 用户下的 dev_home/localapps/ [arm@localhost localapps]$ tar ­xzvf cs8900a.tar.gz [arm@localhost localapps] 阅读全文
posted @ 2019-06-29 09:03 樊伟胜 阅读(162) 评论(0) 推荐(0)
摘要: 如果把一个传到内存中的文件写入到 Nand Flash 中, 如:新的 uboot.bin, zImage(内核), rootfs 等, 如果做呢?我们可以用 Nand Flash 命令来完成. 但是 Nand Flash 写时,必须先要把 Nand Flash 的写入区全部擦除后,才能写. 下面以 阅读全文
posted @ 2019-06-29 09:01 樊伟胜 阅读(1297) 评论(0) 推荐(0)
摘要: 所以命令都可以简写,只要命令前面的一部分不会跟其它命令相同,就可以不用写全整个命令. 所以命令都可以简写,只要命令前面的一部分不会跟其它命令相同,就可以不用写全整个命令. save 命令 CRANE2410 # sa Saving Environment to Flash... Un-Protect 阅读全文
posted @ 2019-06-29 09:00 樊伟胜 阅读(253) 评论(0) 推荐(0)
摘要: U­BOOT 常用命令 通常使用 help(或者只使用问号?),来查看所有的 U­BOOT 命令。将会列出在当前配置下所有支持的命令。 但是我们要注意,尽管 U­BOOT 提供了很多配置选项,并不是所有选项都支持各种处理器和开发板,有些选项 可能在你的配置中并没有被选上。 4.1.1 获得帮助信息 阅读全文
posted @ 2019-06-29 08:57 樊伟胜 阅读(1025) 评论(0) 推荐(0)
摘要: 1. 工作用户 uboot 2. u­boot 版本 1.1.4 3. 工具链 2.95.3 步骤 我们为开发板取名叫: crane2410, 并在 u­boot 中建立自己的开发板类型 修改 Makefile [uboot@localhost uboot]#vi Makefile #为 crane 阅读全文
posted @ 2019-06-29 08:54 樊伟胜 阅读(677) 评论(0) 推荐(0)
摘要: 调用一系列的初始化函数 1. 指定初始函数表: init_fnc_t *init_sequence[] = { cpu_init, /* cpu 的基本设置 */ board_init, /* 开发板的基本初始化 */ interrupt_init, /* 初始化中断 */ env_init, /* 阅读全文
posted @ 2019-06-29 08:53 樊伟胜 阅读(385) 评论(0) 推荐(0)
摘要: 启动模式介绍 大多数 Boot Loader 都包含两种不同的操作模式:"启动加载"模式和"下载"模式,这种区别仅对于开发人 员才有意义。但从最终用户的角度看,Boot Loader 的作用就是用来加载操作系统,而并不存在所谓的启动加 载模式与下载工作模式的区别。 启动加载(Boot loading 阅读全文
posted @ 2019-06-29 08:52 樊伟胜 阅读(435) 评论(0) 推荐(0)
摘要: u-boot 介绍 U­boot 是德国 DENX 小组的开发用于多种嵌入式 CPU 的 bootloader 程序, U­Boot 不仅仅支持嵌入式 Linux 系统的引导,当前,它还支持 NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS 嵌入式操作系统。U­B 阅读全文
posted @ 2019-06-29 08:50 樊伟胜 阅读(951) 评论(0) 推荐(0)
摘要: 主要符号说明 OUTPUT_FORMAT(bfdname) 指定输出可执行文件格式. OUTPUT_ARCH(bfdname) 指定输出可执行文件所运行 CPU 平台 ENTRY(symbol) 指定可执行文件的入口段 段定义说明 1. 段定义格式 SECTIONS { ... 段名 : { 内容 阅读全文
posted @ 2019-06-29 08:49 樊伟胜 阅读(687) 评论(0) 推荐(0)
摘要: .abort: 停止汇编 .align abs­expr1, abs­expr2: 以某种对齐方式,在未使用的存储区域填充值. 第一个值表示对齐方式,4, 8,16 或 32. 第 二个表达式值表示填充的值. .if .else .endif: 支持条件预编译 .include "file": 包含 阅读全文
posted @ 2019-06-29 08:47 樊伟胜 阅读(279) 评论(0) 推荐(0)
摘要: 1. @ 表示注释从当前位置到行尾的字符. 2. # 注释掉一整行. 3. ; 新行分隔符. 阅读全文
posted @ 2019-06-29 08:47 樊伟胜 阅读(143) 评论(0) 推荐(0)
摘要: 生成可以执行的 2 进制代码 [arm@localhost gcc]#arm­linux­copydump ­O binary hello hello.bin 阅读全文
posted @ 2019-06-29 08:46 樊伟胜 阅读(310) 评论(0) 推荐(0)
摘要: 3.2.1 1. 移除所有的符号信息 [arm@localhost gcc]#cp hello hello1 [arm@localhost gcc]#arm­linux­strip ­strip­all hello ­­strip­all: 是移除所有符号信息 [arm@localhost gcc] 阅读全文
posted @ 2019-06-29 08:45 樊伟胜 阅读(1531) 评论(0) 推荐(0)
摘要: 1. 查看静态库或.o 文件的组成文件 [arm@localhost gcc]$ arm­linux­objdump ­a libhello.a 2. 查看静态库或.o 文件的络组成部分的头部分 [arm@localhost gcc]$ arm­linux­objdump ­h libhello.a 阅读全文
posted @ 2019-06-29 08:44 樊伟胜 阅读(680) 评论(0) 推荐(0)
摘要: 1. 读 elf 文件开始的文件头部 1. 读 elf 文件开始的文件头部 [arm@localhost gcc]$ arm­linux­readelf ­h hello ELF Header: Magic: 7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 阅读全文
posted @ 2019-06-29 08:44 樊伟胜 阅读(1094) 评论(0) 推荐(0)
摘要: 静态库是在编译时需要的库。 1. 建立一个静态库 [arm@localhost gcc]#arm­linux­ar ­r libhello.a h1.o h2.o 2. 为静态库建立索引 [arm@localhost gcc]#arm­linux­ar ­s libhello.a [arm@loca 阅读全文
posted @ 2019-06-29 08:35 樊伟胜 阅读(863) 评论(0) 推荐(0)
摘要: 1. 编译 C 文件,生成 elf 可执行文件 h1.c 源文件 #include <stdio.h> void hellofirst(void) { printf("The first hello! \n"); } h2.c 源文件 #include <stdio.h> void hellosec 阅读全文
posted @ 2019-06-29 08:31 樊伟胜 阅读(457) 评论(0) 推荐(0)
摘要: 常用工具介绍 名称 归属 作用 arm­linux­as binutils 编译 ARM 汇编程序 arm­linux­ar binutils 把多个.o 合并成一个.o 或静态库(.a) arm­linux­ranlib binutils 为库文件建立索引,相当于 arm­linux­ar ­s 阅读全文
posted @ 2019-06-29 08:30 樊伟胜 阅读(151) 评论(0) 推荐(0)
摘要: [arm@localhost tchain3.4.4]#cd ${KERNEL} [arm@localhost kernel]#tar xvfz linux­2.6.14.1.tar.gz [arm@localhost kernel]#cd linux­2.6.14.1 [arm@localhost 阅读全文
posted @ 2019-06-29 08:29 樊伟胜 阅读(494) 评论(0) 推荐(0)
摘要: 重新以 arm 用户登陆,让新设置的环境变量起作用. [arm@localhost arm]#su arm [arm@localhost arm]#cd ${SRC} [arm@localhost tchain3.4.4]#tar xzvf binutils­2.16.tar.gz [arm@loc 阅读全文
posted @ 2019-06-29 08:28 樊伟胜 阅读(1139) 评论(0) 推荐(0)
摘要: 1. 启动 AXD 先启动 Dragon­ICE Server 程序. 按如下步聚启动 AXD: 开始­>所有程序­>ARM Developer Suite v1.2­>AXD Debugger 2. 装载仿真器库文件 从 AXD 菜单的 Options­­> Configure Target... 阅读全文
posted @ 2019-06-29 08:27 樊伟胜 阅读(267) 评论(0) 推荐(0)