common cmd

设置系统当前日期 和 时间
#date -s "2015-11-04 08:44"


ps -aux


//解压tar文件
tar -xvf file.tar


//压缩为tar文件
tar cvf  file.tar  ./* 






tar -xvjf file.tar.bz2 //decompress
tar -zvjf dir file.tar.bz2   //compress






tar zxvf fileName.tar.gz //decompress




tar 命令:
//压缩
#tar cvjf file.tar.bz2  file_dir


//解压
#tar xvjf file.tar.bz2


//////////////////////////////////////////////


1,把编译好的应用层软件menuNew拷贝到/media/ROOTFS/home/root/目录下:
2,拷贝文件系统到sd之前,先用tar命令在prefix目录下运行tar命令:
tar  cvjf   ../rootfs.tar.bz2   ./*
cp   ../rootfs.tar.bz2   opt/






SourceCRT 给系统发送文件:
#rz
然后选择文件,添加




打开新的console 快捷键:Shift + Ctrl + T










查看系统当前的驱动的主设备号:
#cat /proc/devices


创建设备节点(主设备号为188,次设备号分别为0和1):
#mknod  /dev/ttyUSB0  c  188  0
#mknod  /dev/ttyUSB1  c  188  1






/////////////////////////////tftp /////////////////////////////
开发板从host获取文件file_name的命令(busy_box):
#tftp -g -r file_name 192.168.2.188




#setenforce 0
#/etc/init.d/iptables stop
#service nfs restart
#/etc/init.d/xinetd restart
#service xinetd restart








//////////////////////////////////////rpm //////////////////////////
查看已经安装的rpm :
#rpm -qa


安装:
#rpm -ivh






////////////////////////////////////// debug //////////////////////////
//打开sysrq功能:
echo 1 >/proc/sys/kernel/sysrq


//sysrq显示:
echo t > /proc/sysrq-trigger






////////////////////////////////////// wpa_cli //////////////////////////
root@bd-corp:~# wpa_cli -iwlan0 status    
bssid=80:89:17:7a:2e:52
ssid=TP-LINK_2016
id=1
mode=station
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.1.168
address=d0:5f:b8:1c:11:d5
root@bd-corp:~# 






//查看当前目录的文件夹的大小:
[root@localhost 802]# du -h --max-depth=1
13G ./trunk
66M ./qt
13G .








//linux svn CheckOut cmd:
[root@localhost trunk]# svn checkout https://192.168.2.200:8443/svn/802/trunk/ --username=cmy --password=cmy




其中如果遇到GMONE的密码,输入:0








[root@localhost trunk]# svn checkout https://192.168.2.200:8443/svn/802/branches/ --username=cmy --password=cmy






svn 查看某个版本具体的修改内容:
#svn log -r 95 -v




svn 提交修改的文件:
#svn commit 文件名 -m "注释内容"










//添加驱动就是修改源文件所在目录的Kconfig 和Makefile.在这两个文件中添加自己源文件的相关内容行。然后在#make menuconfig 界面中选择上自己的这个驱动。






/**********************  debugfs_create_file  相关 ************************/
如果内核中用debugfs_create_file创建了供调试用的文件,如果要打开这个文件来查看调试信息,需要手动挂在这个调试的文件目录:mount -t debugfs none /sys/kernel/debug    然后退出/sys/kernel/debug目录,重新查看该目录就可以看到相关的调试目录。


root@bd-corp:/sys/kernel/debug# mount -t debugfs none /sys/kernel/debug
root@bd-corp:/sys/kernel/debug# cd ..
root@bd-corp:/sys/kernel# ls debug/
bdi             memblock        omapdss         voltage
clock           mmc0            pm_debug        vram
gpio            mmc1            sched_features  wakeup_sources
ieee80211       musb            tracing
kprobes         omap_mux        usb




/**************************  查看framebuffer 相关信息 **************************/
root@bd-corp:~# 
root@bd-corp:~# fbset -i


mode "800x600"
    geometry 800 600 800 600 32
    timings 0 0 0 0 0 0 0
    rgba 8/16,8/8,8/0,0/0
endmode


Frame buffer device information:
    Name        : omapfb
    Address     : 0x93e00000
    Size        : 33554432
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 1
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 3200
    Accelerator : No
root@bd-corp:~# 
root@bd-corp:~# 


1, framebuffer 内存放的数据格式是  RGB 24 (un-packed in 32-bit container),该内存区域对应的overlay是 graphics layers(而不是video layers的层, video overlay的缓冲区的数据格式yuv422)。qt程序也是通过这个framebuffer(对应的设备为/dev/fb0)显示输出到lcd的,所以qt的界面数据格式也是RGB 24 (un-packed in 32-bit container)。
2, 在驱动 "omap_vout"(文件omap_vout.c) 中可以使能设置 video2 overlay的参数,该驱动会创建video_device “/dev/video7” ,应用层通过设置该设备的透明key,fmt等参数,然后设置VIDIOC_STREAMON该设备,便可使能video2 overlay,然后graphics layers 和 video2 layers 同时显示输出到lcd。










/**************************  基于串口的 xyzModem协议 的传输文件的命令 **************************/
1, 在uboot中实现的命令:loadb(kermit协议)   loady(yModem协议)
2, 在embedded linux中实现程序是sz 和 rz




<====uboot中通过loady传输、擦写uImage文件:===>
1,target#loady ${loadaddr} 115200
2, 在SecureCRT的“传输”中选择“发送Ymodem”,选择要传输的文件uImage,开始传输。
3,传输完成后,擦除nand指定的指定区域,然后把ram中的uImage烧写到该区域。




对应的测试代码如下:


BD_802 # loady ${loadaddr} 115200
## Ready for binary (ymodem) download to 0x82000000 at 115200 bps...
CCCCCCCCC
开始 ymodem 传输。  按 Ctrl+C 取消。
  100%    3183 KB    2 KB/s 00:18:31       0 Errors
xyzModem - CRC mode, 25468(SOH)/0(STX)/0(CAN) packets, 11 retries
## Total Size      = 0x0031bcf8 = 3259640 Bytes


BD_802 # nand erase ${kernel_addr} ${kernel_size}
NAND erase: device 0 offset 0x700000, size 0x800000
Erasing at 0xee0000 -- 100% complete.
OK


BD_802 # nandecc sw
SW ECC selected


BD_802 # nand write ${loadaddr} ${kernel_addr} ${filesize}
NAND write: device 0 offset 0x700000, size 0x31bcf8
 3260416 bytes written: OK


BD_802 # 
### Linux 内核中 `common/cmd_usb` 的实现细节与代码 在 Linux 内核中,USB 子系统的实现是一个复杂而庞大的模块。它不仅涉及内核核心部分的驱动程序设计,还涵盖了用户空间与内核空间之间的交互机制。以下是对 `common/cmd_usb` 相关实现细节的分析: #### 1. USB 子系统的基本结构 Linux 内核中的 USB 子系统主要由以下几个部分组成: - **核心框架**:提供通用的 USB 设备管理和接口抽象。 - **主机控制器驱动**:负责与硬件(如 EHCI、XHCI)进行交互。 - **设备驱动**:针对特定类型的 USB 设备(如存储、网络、音频等)提供支持。 `common/cmd_usb` 可能是一个与命令行工具或用户空间交互相关的功能模块,通常用于简化 USB 配置或操作。具体实现可能位于内核源码的 `drivers/usb` 或 `fs/gadget` 目录下[^4]。 #### 2. 用户空间与内核空间的交互 对于 `cmd_usb` 的实现,通常需要结合用户空间工具(如 `usbutils` 或 `libusb`)和内核驱动程序。例如: - 用户空间工具通过系统调用(如 `ioctl` 或 `write`)向内核传递指令。 - 内核中的 USB 驱动程序接收这些指令并执行相应的操作。 这种交互可以通过虚拟文件系统(如 `/dev/usb` 或 `/sys/class/usb`)实现[^5]。 #### 3. 示例代码分析 以下是一个简单的代码片段,展示了如何通过内核模块实现 USB 命令处理逻辑: ```c #include <linux/module.h> #include <linux/kernel.h> #include <linux/usb.h> static int __init usb_cmd_init(void) { pr_info("USB command module initialized\n"); // 初始化 USB 子系统 usb_register_subsys(); return 0; } static void __exit usb_cmd_exit(void) { pr_info("USB command module exited\n"); // 注销 USB 子系统 usb_unregister_subsys(); } module_init(usb_cmd_init); module_exit(usb_cmd_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Kernel Developer"); MODULE_DESCRIPTION("A simple USB command handler"); ``` 此代码片段展示了如何初始化和注销 USB 子系统。实际应用中,`common/cmd_usb` 的实现可能更加复杂,涉及具体的命令解析和设备操作逻辑[^6]。 #### 4. vDSO 与 USB 子系统的关联 虽然 `vDSO` 主要用于优化系统调用性能,但它也可能间接影响 USB 子系统的实现。例如,某些 USB 操作可能依赖于高效的内存映射机制,而 `vDSO` 提供了这种支持[^2]。 #### 5. 套接字与 USB 的交互 套接字(Socket)通常用于网络通信,但在某些情况下,也可以通过 USB 实现类似的功能。例如,USB 网络设备(如 USB 网卡)可能使用套接字与应用程序进行数据交换[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值