zoukankan      html  css  js  c++  java
  • EasyARM-iMX257 linxu两年前的笔记

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

    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 用来改变文件的所有者,在此不再详细解释。

  • 相关阅读:
    深入Android 【一】 —— 序及开篇
    Android中ContentProvider和ContentResolver使用入门
    深入Android 【六】 —— 界面构造
    The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibility is enabled for this application. Turn off ASP.NET compatibility mode in the web.config or add the AspNetCompatibilityRequirements attribute to the ser
    Dynamic Business代码片段总结
    对文件的BuildAction以content,resource两种方式的读取
    paraview 3.12.0 windows下编译成功 小记
    百度网盘PanDownload使用Aria2满速下载
    netdata的安装与使用
    用PS给证件照排版教程
  • 原文地址:https://www.cnblogs.com/yangsanchao/p/5014483.html
Copyright © 2011-2022 走看看