第三章续:简单总结第三章中出现的命令!

1)  root@EasyARM-iMX257 ~# ddif=/dev/zero of=/dev/shm/disk bs=1024 count=10240

dd:是linux下非常有用,我觉得有必要积累下来。它是用来指定大小的拷贝一个文件,并在拷贝的同时进行指定的转换。

其参数:

if=输入的文件(或设备名称);

of=输出的文件(或设备的名称);

ibs=bytes一次读入bytes个字节,即指定一个块大小为bytes个字节。

obs=bytes一次输出bytes个字节,即指定一个块大小为bytes个字节。

bs=bytes同时设置/写缓存区的字节数;

count=blocks只拷贝输入的blocks块;

说了这些命令可能大家还是不理解/dev/zero,它是linux下一个特殊的设备,永远输出0的一个设备文件,它可作为输入全为空的文件,因此可以用来创建新文件和已覆盖的方式清除旧文件。

这样,这就命令的意思就很清晰:用一个输出为0的输入设备,创建一个每次输出1024bytes,总共输出10240bytes(10M)。

注意:单位问题:bs=1024=1k=2b=1024c=512w;

Eg:  dd if=/dev/zero of=/dev/shm/disk bs=1kcount=10240;

ddif=/dev/zero of=/dev/shm/disk bs=2b count=10240;一个意思。

当然我们也可以用dd命令备份eg:#dd if=/dev/hdb of=/dev/hdd,即把/dev/hdb备份到/dev/hdd。

2)  root@EasyARM-iMX283 ~# insmod /root/demos/g_file_storage.kostall=0 file=/dev/shm/disk removable=1

当我们执行完1)命令上,会生成一个10M文件,为刚生成输出的10M文件加载驱动。

Insmod:是加载动态模块的命令;

命令格式:isnmod[-fkmpsvxX][-o <模块命令>][模块文件][符号名称=符号值]

-fkmpsvxX这些都是insmod命令的一些参数,代表什么意思在此就在赘述。/root/demos/g_file_storage.ko就是模块驱动,file=/dev/shm/disk就是模块文件,也就我们就是要给它加载模块驱动,而stall=0、removable=1就是[符号名称=符号值],说实话,这两个参数具体的我也太懂。

呼唤大神来具体解释。注:想要卸载该模块,用rmmod代替insmod即可。

3)  root@EasyARM-iMX283 ~# mount/dev/shm/disk /mnt

mount命令:这句命令的意思是把刚才前面创建的这个loop类型文件挂载到/mnt目录下,文档已经讲得很清楚了,Mount命令在NFS挂载会详细的总结一下。

4)     root@EasyARM-iMX283 ~#echo 1>/sys/class/leds/led-err/brightness #控制LED点亮

echo命令本意是查看命令的意思,在这里与重定向符号“>” 配合使用,从而将1重定向到控制LED灯的操作接口。

Eg:创建一个文件的方法

root@EasyARM-iMX283 ~# > emptyfile //创建一个名为emptyfile的文件

root@EasyARM-iMX283 ~# echo“Only one line in file” > emptyfile //创建一个名为emptyfile的文件,并写入Only one line infile。

这样就应该很清楚echo 1>/sys/class/leds/led-err/brightness #控制LED点亮这句话的意思,文档中操作蜂鸣器、LCD背光的程序跟这个类似。

如何在C应用程序里实现对LED的控制呢?

直接调用系统函数eg:system(“echo 1>/sys/class/leds/user-led/brightness”);

5)  root@EasyARM-iMX283 ~# cat/sys/class/backlight/mxs-bl/brightness

cat 命令显示文件内容。

从此以外,可用cat file0 file0 file1 file2file3 > file  //将file0 1 2 3文件的内容输入到file,有点合并的意思。

6)  root@EasyARM-iMX283 ~# date 2014.05.07-10:30:10   #设置系统时间

root@EasyARM-iMX283~# hwclock -w #将时间写入RTC

这是一个写入时间,并且将时间保存在RTC内的命令,没什么可说的,但是需要注意,有的网友在输入hwclock –w时会出现hwclock:can’n open/dev/misc/rtc’: No such file or directory

这种情况出现一般是因为内核RTC没有配置,在linux内核文件下输入make menuconfig 配置内核Device→Driver→RealTime Clock→Freescale MXS series RTC 选中,编译内核,烧写下载即可。

2、关于文档的第四章

l  关于ssh,我已经在对应用程序的开发模式,已经说得很清楚了,只要网络设置好,以ssh登陆开发板是非常方便的。

l  关于NFS自己的总结

NFS服务器设置步骤(在linux主机终端输入命令):

a)   建立共享文件夹:mkdir /home/vmuser/EasyARM-iMX283

b)   设置共享目录:sudo vi /etc/exports加入:/home/vmuser/EasyARM-iMX283  *(rw,sync,no_root_squash)

c)    使设置生效 重新开启 sudo/etc/init.d/nfs-kernel-server restart

NFS开发板设置步骤(在开发板串口终端输入命令):

a)  新建挂载点eg:开发板中已经有mnt/nfs目录,直接挂在即可。

b)  挂载共享目录mount –t nfs 192.168.2.10:/home/vmuser/EasyARM-iMX283 /mnt/nfs -o nolock

c)  访问共享目录cd /mtn/nfs,用ls –l查看

d)   卸载挂载点:umount –t nfs 192.168.2.10:/home/vmuser/EasyARM-iMX283 /mnt/nfs -a nolock

umount /mnt/nfs 命令也可。

在linux主机中挂载跟这个比较类似,不再另行总结。

在此介绍几个命令:

a)    设置共享目录时:sudo vi /etc/exports加入:/home/vmuser/EasyARM-iMX283  *(rw,sync,no_root_squash)

i.   客户端主机地址 ,表示所有主机

ii.   rw 可读写 (ro只读 ),sync 设置NFS服务器 同步写磁盘(不会轻易丢失数据),

iii.   no_root_squash :允许超级用户的权限

b)   mount –t nfs 192.168.2.10:/home/vmuser/EasyARM-iMX283/mnt/nfs -o nolock

i.   -t nfs指定文件系统的类型,通常不用指定,但NFS需指定;

ii.  由于nfs mount 默认选项包括文件锁,有时挂载时会出现:Mount:mounting 192.168.2.10:/home/vmuser/EasyARM-iMX283 /mnt/nfs failed :Connection refused     需要加上-o nolock即可解决这一问题;

iii.  192.168.2.10:/home/vmuser/EasyARM-iMX283就是挂载目标;

iv.  /mnt/nfs则是挂载目录。

注意:nfs挂载命令是在网络配置好,且linux开启nfs服务之后才能做的事,开发板和linux相互ping通才可以进行nfs挂载。

l  关于tftp的总结

iMX283开发板是不支持tfpt的,我目前没有实现tftp下载东西到开发板。但是这里面有几个命令还是需要总结一下的:

vmuser@Linux-host~$ sudo chmod -R 777 /tftpboot

vmuser@Linux-host~$ sudo chown -R nobody   /tftpboot

a)    这里chmod 命令可以改变文件或目录的访问权,该命令有两种用法。一种是包含字母和操

作符表达式的文字设定法;另一种是包含数字的数字设定法。

在总结这个之前,必须要说一下:

u 表示“用户(user)”,即文件或目录的所有者。

g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

o 表示“其他(others)用户”。

a 表示“所有(all)用户”。它是系统默认值。

在linux终端输入:ls –l可查看文件属性:

Eg:-rw-rw-r-- 1vmuser vmuser   39  7月 31 10:37 test.sh              ①

第1个rw就表示是u的权限,第2个rw就表示是g的权限,第3个r就表示是o的权限。r表示可读,w表示可写,x表示可执行。+可添加某个权限。-可取消某个权限。

i.    文字设定法:以①为Eg:将g加上对test.sh写和执行权限,u和g权限不变:chmod o+wx test.sh

ls –l查看权限::-rw-rw-rwx 1vmuser vmuser   39  8月  8 13:16 test.sh

ii.   数字设定法:

0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。

以①Eg:将o加上对test.sh写和执行权限,u和g权限不变:chmod 667 test.sh

第一个6代表u是读写权限,第二个6代表g是读写权限,7表示o是可读可写可执行的权限。

这样就很容易解释文档中:vmuser@Linux-host ~$ sudochmod -R 777 /tftpboot这句命令的意思了,注意:其中-R表示递归。

注意:chown 用来改变文件的所有者,在此不再详细解释。

EasyARM-iMX257 linxu两年前的笔记的更多相关文章

  1. EasyARM-iMX257 linux两年前的笔记

    我依然清晰的记得刚拿到Imx283 257的情景,兴奋中充满忧虑,对操作系统的概念只知一二,不知三四!!周立功出品的资料我一直觉得是比较精品的,同样这款iMX283配套的文档资料(v1.04)也是比较 ...

  2. 两年前详细分析了ijkplayer的代码

    两年前详细分析了ijkplayer的代码,太久没总结了,现在只能上传一张图片了.把fly替换成ijk就行了. 用diagramDesigner画的,因为这个工具足够简单,用visio不知道要画到什么时 ...

  3. .net网站自动化部署-致两年前的遗留的问题

    又到一年国庆,终于有了难得的几天空闲,计划陪陪媳妇娃子,再把最近阅读的几本相关书总结梳理下.当然,计划总是美好的,于时接到了一个老朋友电话.大意是他搞了一个.net小网站,部署了4个节点,每次更新程序 ...

  4. 两年前实习时的文档——Platform学习总结

    1  概述 驱动程序实际上是硬件与应用程序之间的中间层.在Linux操作系统中,设备驱动程序对各种不同的设备提供了一致的訪问接口,把设备映射成一个特殊的设备文件,用户程序能够像其它文件一样对设备文件进 ...

  5. 两年前实习时的文档——MMC学习总结

    1概述 驱动程序实际上是硬件与应用程序之间的中间层.在Linux操作系统中,设备驱动程序对各种不同的设备提供了一致的訪问接口,把设备映射成一个特殊的设备文件,用户程序能够像其它文件一样对设备文件进行操 ...

  6. C++ const && 二叉树合集

    话说昨天因为校园网的问题导致现在才发博文~唉,想吐槽~ 这个是昨天写的,觉得,用来回顾还是很不错的,比较具体的都在笔记中,尤其我觉得里面经验性的东西还是不错的. 2013-8-26 今天在回顾我以前写 ...

  7. jdk1.8之线程中断

    在Core Java中有这样一句话:"没有任何语言方面的需求要求一个被中断的程序应该终止.中断一个线程只是为了引起该线程的注意,被中断线程可以决定如何应对中断 " 线程中断不会使线 ...

  8. 使用RSEM进行转录组测序的差异表达分析

    仍然是两年前的笔记 1. prepare-reference 如果用RSEM对比对后的bam进行转录本定量,则在比对过程中要确保比对用到的索引是由rsem-prepare-reference产生的. ...

  9. 4.View绘制分析笔记之onDraw

    上一篇文章我们了解了View的onLayout,那么今天我们来学习Android View绘制三部曲的最后一步,onDraw,绘制. ViewRootImpl#performDraw private ...

随机推荐

  1. lodash入门

    简介 Lodash是一个著名的javascript原生库,不需要引入其他第三方依赖.是一个意在提高开发者效率,提高JS原生方法性能的JS库.简单的说就是,很多方法lodash已经帮你写好了,直接调用就 ...

  2. vue富文本编辑器TinyMec才是最好用的

    最近在做一个后台管理系统,系统中需要一个编辑器,没多想,百度查之,找了好些.如下: UEditor CKEditor 4 Vue-html5-editor wangeditor quill .... ...

  3. 移动端布局的一些设置(在viewport里设置使页面显示相同宽度,显示相同像素大小)

    viewport(视口) 具体数值(不设置时默认为980 ,部分安卓手机不支持设置成具体数值) width=device-width 和设备宽度保持一致 user-scalable=no 是否允许用户 ...

  4. Angular第三方UI组件库------ionic

    一.Angular  UI组件库  ------------ionic 1. 官网:https://ionicframework.com 文档:https://ionicframework.com/d ...

  5. JSONObject转换为map

    http://cloudyxuq.iteye.com/blog/1618213 private static HashMap<String, String> toHashMap(Objec ...

  6. 六、表达式:前缀&&后缀

    count为运算后的值.

  7. 重磅!阿里P8费心整理Netty实战+指南+项目白皮书PDF,总计1.08G

    前言 Netty是一款用于快速开发高性能的网络应用程序的Java框架.它封装了网络编程的复杂性,使网络编程和Web技术的最新进展能够被比以往更广泛的开发人员接触到. Netty不只是一个接口和类的集合 ...

  8. 前端基础进阶(十四):es6常用基础合集

    在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译. ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得高兴的是,如果你熟悉 ...

  9. [转]什么是OpenSSH

    定义 SSH是什么? 相关概念 OpenSSH安全吗?究竟安全在哪里呢? Telnet这么好的一个工具为什么还要用户手动开启呢? SSH账户类型 iPhone中修改密码的大致步骤 如何从电脑连接通过S ...

  10. Rocket - debug - TLDebugModuleOuter

    https://mp.weixin.qq.com/s/9nMo6IYmDCz7S-ALFx824g 简单介绍TLDebugModuleOuter的实现. 1. DebugModuleAccessTyp ...