导航:首页 > 程序命令 > linux命令移植

linux命令移植

发布时间:2022-07-12 05:35:14

linux必学的60个命令

Linux必学的60个命令

安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;

文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;

系统管理相关命令:df、top、free、quota、at、lp、adser、groupadd、kill、crontab;

网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;

系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;

其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

Linux的优点

1、Linux由众多微内核组成,其源代码完全开源;

2、Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈;

3、Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;

❷ Linux系统移植的目录

第1篇 系统移植基础篇
第1章 linux内核介绍 2
1.1 系统调用接口 2
1.1.1 linux系统调用 2
1.1.2 用户编程接口 2
1.1.3 系统调用与服务例程的对应关系 3
1.1.4 系统调用过程 3
1.1.5 系统调用传递的参数 4
1.2 进程管理 4
1.2.1 进程 4
1.2.2 进程描述符 5
1.2.3 进程状态 6
1.2.4 进程调度 6
1.2.5 进程地址空间 8
1.3 内存管理 10
1.3.1 内存管理技术 10
1.3.2 内存区管理 12
1.3.3 内核中获取内存的几种方式 13
1.4 虚拟文件系统 14
1.4.1 虚拟文件系统作用 14
.1.4.2 文件系统的注册 15
1.4.3 文件系统的安装和卸载 15
1.5 设备驱动程序 17
1.5.1 字符设备驱动程序 17
1.5.2 块设备驱动程序 18
1.5.3 网络设备驱动程序 21
1.5.4 内存与i/o操作 22
1.6 小结 23
第2章 嵌入式linux开发环境搭建 24
2.1 虚拟机及linux安装 24
2.1.1 虚拟机的安装 24
2.1.2 单独分区安装系统 30
2.1.3 虚拟机和主机通信设置 31
2.1.4 vmware tools工具安装 33
2.1.5 虚拟机与主机共享文件 35
2.1.6 虚拟机与主机文件传输 36
2.2 交叉编译工具 38
2.2.1 交叉编译工具安装 38
2.2.2 交叉编译器测试 43
2.3 超级终端和minicom 44
2.3.1 超级终端软件的安装 44
2.3.2 minicom使用 45
2.3.3 securecrt使用 48
2.4 内核、文件系统加载工具 48
2.4.1 烧写bootloader 48
2.4.2 内核和文件系统下载 52
2.4.3 应用程序和文件传输 54
2.5 在开发中使用网络文件系统(nfs) 56
2.5.1 虚拟机设置 56
2.5.2 虚拟机的ip地址设置 56
2.5.3 验证网络连接 59
2.5.4 设置共享目录 59
2.5.5 启动nfs服务 60
2.5.6 修改共享配置后 61
2.5.7 挂载nfs 61
2.5.8 双网卡挂载nfs 61
2.6 小结 62
第2篇 系统移植技术篇
第3章 bootloader移植 64
3.1 bootloader介绍 64
3.1.1 bootloader与嵌入式linux系统的关系 64
3.1.2 bootloader基本概念 64
3.1.3 bootloader启动过程 66
3.2 bootloader之u-boot 67
3.2.1 u-boot优点 67
3.2.2 u-boot的主要功能 68
3.2.3 u-boot目录结构 68
3.3 u-boot移植过程 69
3.3.1 环境配置 69
3.3.2 修改cpu/arm920t/start.s 70
3.3.4 具体平台相关修改 79
3.3.5 其他部分修改 81
3.3.6 u-boot的编译 84
3.4 bootloader之vivi 85
3.4.1 vivi简介 85
3.4.2 vivi配置与编译 85
3.4.3 代码分析 88
3.5 vivi的运行 88
3.5.1 bootloader启动的阶段一 89
3.5.2 bootloader启动的阶段二 95
3.6 小结 95
第4章 linux内核裁剪与移植 96
4.1 linux内核结构 96
4.1.1 内核的主要组成部分 96
4.1.2 内核源码目录介绍 97
4.2 内核配置选项 99
4.2.1 一般选项 99
4.2.2 内核模块加载方式支持选项 100
4.2.3 系统调用、类型、特性、启动相关选项 101
4.2.4 网络协议支持相关选项 102
4.2.5 设备驱动支持相关选项 102
4.2.6 文件系统类型支持相关选项 103
4.2.7 安全相关选项 104
4.2.8 其他选项 104
4.3 内核裁剪及编译 105
4.3.1 安装内核源代码 105
4.3.2 检查编译环境设置 105
4.3.3 配置内核 106
4.3.4 编译内核 115
4.4 内核映像文件移植到arm板 116
4.4.1 移植准备 116
4.4.2 烧写系统 118
4.5 内核升级 121
4.5.1 准备升级内核文件 121
4.5.2 移植过程 122
4.6 小结 125
第5章 嵌入式文件系统制作 126
5.1 文件系统选择 126
5.1.1 flash硬件方案比较 126
5.1.2 嵌入式文件系统的分层结构 127
5.2 基于flash的文件系统 127
5.2.1 jffs文件系统(journalling flash filesystem) 128
5.2.2 yaffs文件系统(yet another flash file system) 130
5.2.3 cramfs文件系统(compressed rom file system) 133
5.2.4 romfs文件系统(rom file system) 134
5.3 基于ram的文件系统 135
5.4 文件系统的制作 135
5.4.1 制作ramdisk文件系统 136
5.4.2 制作yaffs2文件系统 144
5.4.3 制作jffs2文件系统 150
5.4.4 其他文件系统制作 152
5.5 小结 153
第3篇 系统移植与驱动篇
第6章 lcd驱动移植 156
6.1 认识lcd相关硬件原理 156
6.1.1 lcd概述 156
6.1.2 lcd控制器 157
6.1.3 lcd控制器方块图 157
6.1.4 lcd控制器操作 158
6.1.5 lcd控制寄存器 163
6.2 lcd参数设置 166
6.3 内核lcd驱动机制 167
6.3.1 framebuffer概述 167
6.3.2 framebuffer 设备驱动的结构 167
6.4 linux 2.6.25的lcd驱动源码分析 171
6.4.1 lcd驱动开发的主要工作 171
6.4.2 s3c2410fb_init()函数分析 172
6.4.3 s3c2410fb_probe()函数分析 173
6.4.4 s3c2410fb_remove()函数分析 178
6.5 移植内核中的lcd驱动 179
6.5.1 lcd硬件电路图 179
6.5.2 修改lcd源码 179
6.5.3 配置内核 184
6.6 小结 187
第7章 触摸屏驱动移植 188
7.1 触摸屏概述 188
7.1.1 触摸屏工作原理 188
7.1.2 触摸屏的主要类型 188
7.2 s3c2440 adc接口使用 191
7.2.1 s3c2440触摸屏接口概述 191
7.2.2 s3c2440触摸屏接口操作 192
7.3 2.6内核触摸屏驱动源码分析(s3c2410_ts.c源码分析) 196
7.4 linux内核输入子系统介绍 201
7.4.1 input子系统概述 202
7.4.2 输入设备结构体 202
7.4.3 输入链路的创建过程 205
7.4.4 使用input子系统 206
7.4.5 编写输入设备驱动需要完成的工作 208
7.5 触摸屏驱动移植和内核编译 209
7.5.1 修改初始化源码 209
7.5.2 修改硬件驱动源码s3c2440_ts.c 211
7.5.3 修改kconfig和makefile 213
7.5.4 配置编译内核 214
7.5.5 触摸屏测试程序设计 215
7.6 小结 216
第8章 usb设备驱动移植 217
8.1 usb协议 217
8.1.1 usb协议的系统主要组成部分 217
8.1.2 总线物理拓扑结构 219
8.1.3 usb设备、配置、接口、端点 219
8.1.4 usb设备状态 222
8.1.5 usb枚举过程 223
8.1.6 usb请求块(urb) 226
8.2 usb主机驱动 230
8.2.1 usb主机驱动结构和功能 230
8.2.2 主机控制器驱动(usb_hcd) 231
8.2.3 ohci主机控制器驱动 233
8.2.4 s3c24xx ohci主机控制器驱动实例 234
8.3 usb设备驱动 237
8.3.1 usb骨架程序分析 237
8.3.2 usb驱动移植的时钟设置 241
8.4 usb鼠标键盘驱动 242
8.4.1 usb鼠标驱动代码分析 242
8.4.2 usb键盘驱动代码分析 245
8.4.3 内核中添加usb鼠标键盘驱动 248
8.5 u盘驱动 249
8.5.1 内核配置 249
8.5.2 移植和测试 250
8.6 小结 252
第9章 网卡驱动程序移植 253
9.1 以太网概述 253
9.1.1 以太网连接 253
9.1.2 以太网技术概述 254
9.1.3 以太网的帧结构 256
9.2 网络设备驱动程序体系结构 258
9.2.1 嵌入式linux网络驱动程序介绍 258
9.2.2 linux网络设备驱动的体系结构 259
9.2.3 网络设备驱动程序编写方法 259
9.2.4 网络设备驱动程序应用实例 261
9.3 net_device 数据结构 262
9.3.1 全局信息 262
9.3.2 硬件信息 263
9.3.3 接口信息 263
9.3.4 设备方法 266
9.3.5 公用成员 268
9.4 dm9000网卡概述 268
9.4.1 dm9000网卡总体介绍 269
9.4.2 dm9000网卡的特点 269
9.4.3 内部寄存器 270
9.4.4 功能描述 274
9.5 dm9000网卡驱动程序移植 275
9.5.1 dm9000网卡连接 275
9.5.2 驱动分析——硬件的数据结构 276
9.5.3 驱动分析——数据读写函数 277
9.5.4 驱动分析——重置网卡 277
9.5.5 驱动分析——初始化网卡 277
9.5.6 驱动分析——打开和关闭网卡 282
9.5.7 驱动分析——数据包的发送与接收 283
9.5.8 dm9000网卡驱动程序移植 285
9.6 小结 288
第10章 音频设备驱动程序移植 289
10.1 音频设备接口 289
10.1.1 pcm(脉冲编码调制)接口 289
10.1.2 iis(inter-ic sound)接口 289
10.1.3 ac97(audio codec 1997)接口 289
10.1.4 linux音频设备驱动框架 290
10.2 linux音频设备驱动——oss驱动框架 291
10.2.1 oss驱动架构硬件 291
10.2.2 oss驱动架构代码 291
10.2.3 oss初始化函数oss_init() 293
10.2.4 oss释放函数oss_cleanup() 294
10.2.5 打开设备文件函数sound_open() 295
10.2.6 录音函数sound_read() 296
10.2.7 播放函数sound_write() 297
10.2.8 控制函数sound_ioctl() 297
10.3 linux音频设备驱动——alsa驱动框架 298
10.3.1 card和组件 299
10.3.2 pcm设备 303
10.3.3 控制接口 306
10.3.4 ac97 api音频接口 308
10.4 音频设备应用程序编写 312
10.4.1 dsp接口编程 312
10.4.2 mixer接口编程 315
10.4.3 alsa应用程序编程 316
10.5 音频设备驱动移植 318
10.5.1 添加uda1341结构体 318
10.5.2 修改录音通道 319
10.5.3 内核中添加uda1341驱动支持 320
10.5.4 移植新内核并进行测试 321
10.6 音频播放程序madplay的移植 322
10.6.1 准备移植需要的源文件 322
10.6.2 交叉编译 322
10.6.3 移植和测试 323
10.6.4 编译中可能遇到的问题 324
10.7 小结 324
第11章 sd卡驱动移植 325
11.1 sd卡简介 325
11.1.1 sd卡系统概念 325
11.1.2 sd卡寄存器 325
11.1.3 sd功能描述 326
11.2 sd卡驱动程序分析 329
11.2.1 host驱动部分 330
11.2.2 core驱动部分 333
11.2.3 card驱动部分 337
11.3 sd卡移植步骤 339
11.3.1 添加延时和中断 339
11.3.2 配置内核 340
11.3.3 烧写新内核 341
11.4 小结 342
第12章 nandflash驱动移植 343
12.1 nandflash介绍 343
12.1.1 nandflash命令介绍 343
12.1.2 nandflash控制器 344
12.2 nandflash驱动介绍 345
12.2.1 nand芯片结构 345
12.2.2 nandflash驱动分析 346
12.3 nandflash驱动移植 351
12.3.1 内核的修改 351
12.3.2 内核的配置和编译 353
12.4 小结 353
第4篇 系统移植高级篇
第13章 minigui与移植 356
13.1 minigui在上位机中的安装 356
13.1.1 安装需要的安装文件 356
13.1.2 minigui的运行模式 357
13.1.3 编译并安装minigui 357
13.1.4 编译安装minigui需要的图片支持库 360
13.1.5 编译minigui应用程序例子 360
13.2 eclipse开发minigui程序 361
13.2.1 linux下安装eclipse介绍 361
13.2.2 使用eclipse编译minigui程序 363
13.2.3 设置外部工具 367
13.2.4 运行程序 368
13.3 vc++6.0开发minigui程序 368
13.3.1 安装windows开发库 368
13.3.2 建立新工程 369
13.3.3 添加文件和设置工程 370
13.3.4 编译和运行程序 371
13.3.5 minigui程序编程风格举例 372
13.4 minigui的交叉编译和移植 374
13.4.1 交叉编译minigui 375
13.4.2 移植minigui程序 376
13.5 小结 378
第14章 qt开发与qtopia移植 379
14.1 qt安装与编程 379
14.1.1 下载安装qt 379
14.1.2 qt编程 380
14.1.3 使用qmake生成makefile 382
14.2 qtopia core在x86平台上的安装和应用 383
14.2.1 qtopia core安装准备 383
14.2.2 编译qtopia core 384
14.2.3 qtopia在x86平台上的应用开发 385
14.3 qtopia core在嵌入式linux上的移植 388
14.3.1 qtopia core移植准备 389
14.3.2 交叉编译qtopia core 389
14.3.3 编译内核 392
14.3.4 应用程序开发 392
14.3.5 应用程序移植 395
14.4 小结 395
第15章 嵌入式数据库berkeley db移植 396
15.1 数据库的基本概念 396
15.1.1 利用文档和源代码 396
15.1.2 创建环境句柄 396
15.1.3 创建数据库句柄 397
15.1.4 打开数据库 398
15.1.5 dbt结构 398
15.1.6 存取数据 399
15.1.7 关闭数据库 400
15.2 berkeley db数据库安装 400
15.2.1 安装成c库 400
15.2.2 安装成c++库 401
15.2.3 交叉编译安装berkeley db 401
15.3 使用berkeley db数据库 403
15.3.1 代码分析 403
15.3.2 编译运行程序 406
15.4 移植berkeley db数据库 407
15.4.1 数据库设计 407
15.4.2 编写应用程序 407
15.4.3 调试和交叉编译应用程序 409
15.4.4 数据库的移植和测试 410
15.5 小结 410
第16章 嵌入式数据库sqlite移植 411
16.1 sqlite支持的sql语句 411
16.1.1 数据定义语句 411
16.1.2 数据操作语句 412
16.2 sqlite数据库编译、安装和使用 412
16.2.1 安装sqlite 413
16.2.2 利用sql语句操作sqlite数据库 413
16.2.3 利用c接口访问sqlite数据库 414
16.3 移植sqlite 417
16.3.1 交叉编译sqlite 417
16.3.2 交叉编译应用程序 418
16.4 移植sqlite数据库 418
16.4.1 文件移植 419
16.4.2 运行应用程序 419
16.4.3 测试sqlite3 419
16.5 小结 421
第17章 嵌入式web服务器boa移植 422
17.1 boa介绍 422
17.1.1 boa的功能 422
17.1.2 boa流程分析 423
17.1.3 boa配置信息 426
17.2 boa编译和html页面测试 428
17.2.1 编译boa源代码 428
17.2.2 设置boa配置信息 429
17.2.3 测试boa 429
17.3 cgi脚本测试 431
17.3.1 编写测试代码 431
17.3.2 编译测试程序 431
17.3.3 测试cgi脚本 431
17.4 boa交叉编译与移植 431
17.4.1 交叉编译boa 432
17.4.2 准备测试程序 432
17.4.3 配置boa 432
17.4.4 测试 433
17.5 boa与sqlite结合 433
17.5.1 通过cgi程序访问sqlite 434
17.5.2 编译和测试 436
17.6 小结 437
第18章 嵌入式web服务器thttpd移植 438
18.1 thttpd介绍 438
18.1.1 web服务器比较 438
18.1.2 thttpd的特点 438
18.1.3 thttpd核心代码分析 439
18.2 thttpd编译和html页面测试 442
18.2.1 配置文件介绍 442
18.2.2 thttpd编译 443
18.2.3 运行和测试thttpd 443
18.3 cgi脚本测试 446
18.3.1 编写测试代码 446
18.3.2 编译测试程序 447
18.3.3 测试cgi脚本 447
18.4 thttpd交叉编译与移植 447
18.4.1 交叉编译thttpd 447
18.4.2 交叉编译cgi程序 448
18.4.3 移植thttpd 448
18.4.4 测试 449
18.5 thttpd与嵌入式数据库结合 450
18.5.1 通过cgi程序访问sqlite 450
18.5.2 编译和测试 452
18.6 小结 453
第19章 jvm及其移植 454
19.1 jvm介绍 454
19.1.1 jvm原理 454
19.1.2 jvm支持的数据类型 455
19.1.3 jvm指令系统 456
19.1.4 jvm寄存器 456
19.1.5 jvm栈结构 456
19.1.6 jvm碎片回收堆 459
19.1.7 jvm异常抛出和异常捕获 459
19.2 类装载 460
19.2.1 装载类的结构体 460
19.2.2 装载类的操作 461
19.3 垃圾回收 463
19.3.1 mark-and-sweep回收算法 464
19.3.2 分代回收算法 465
19.3.3 增量收集 466
19.4 解析器 466
19.4.1 函数interpret() 466
19.4.2 函数fastinterpret() 467
19.4.3 函数slowinterpret () 469
19.5 java编程浅析 470
19.5.1 java程序命令 470
19.5.2 java构造函数 470
19.5.3 java主函数 470
19.5.4 java程序编译与运行 471
19.6 kvm执行过程 471
19.6.1 kvm启动过程 471
19.6.2 kvm用到的计数器清零 474
19.6.3 kvm初始化内存管理 475
19.6.4 kvm中的哈希表初始化 476
19.6.5 kvm中的事件初始化 477
19.6.6 kvm中的资源释放 477
19.7 pc机安装jvm 477
19.7.1 jvm在windows上的安装 478
19.7.2 jvm在linux上的安装 479
19.8 kvm移植和测试 480
19.8.1 sdk安装和环境变量设置 480
19.8.2 修改makefile和代码 480
19.8.3 kvm编译 481
19.8.4 测试 481
19.8.5 移植 483
19.9 小结 485
第20章 voip技术与linphone编译 486
20.1 voip介绍 486
20.1.1 voip基本原理 486
20.1.2 voip的基本传输过程 487
20.1.3 voip的优势 487
20.1.4 voip的实现方式 487
20.1.5 voip的关键技术 488
20.2 osip协议概述 488
20.3 osip状态机 489
20.3.1 ict(invite client (outgoing) transaction)状态机 489
20.3.2 nict(non-invite client (outgoing) transaction)状态机 498
20.3.3 ist(invite server (incoming) transaction)状态机 499
20.3.4 nist(non-invite server (incoming) transaction)状态机 500
20.4 osip解析器 500
20.4.1 初始化解析类型函数osip_body_init() 500
20.4.2 释放函数osip_body_free() 501
20.4.3 字符串到body类型转换函数osip_body_parse() 501
20.4.4 body类型到字符串类型转换函数osip_body_to_str() 502
20.4.5 克隆函数osip_body_clone() 504
20.4.6 osip解析器分类 505
20.5 osip事务层 506
20.6 sip建立会话的过程 508
20.7 rtp协议 510
20.7.1 rtp基本概念 510
20.7.2 发送rtp 511
20.7.3 接收rtp 513
20.8 linphone编译与测试 515
20.8.1 编译linphone需要的软件包 516
20.8.2 x86平台上编译和安装 516
20.8.3 linphone测试 519
20.8.4 进一步的测试和开发 523
20.9 linphone交叉编译 523
20.9.1 linphone的交叉编译 523
20.9.2 linphone的测试 526
20.10 小结 527

❸ 如何以低成本将Linux 内核移植到嵌入式处

1 高速USB硬件接口设计目前的嵌入式系统设计中,USB接口的外扩主要采用微处理器芯片自带的USB控制器,一般只支持低速和全速协议,无法实现高速数据传输。该设计采用AT91RM9200处理器外扩ISP1761 USB控制器方案,解决了嵌入式系统下USB设备的传输速度问题。
AT91RM9200是Atmel公司一款基于ARM920T内核的微型处理器。它有丰富的系统与应用外设及标准接口,时钟频率可达180 MHz,并且具有低功耗、低成本、高性能,在嵌入式系统中应用广泛。ISP1761是Philips公司开发的一款高速USB On The Go(OTG)控制器,芯片内集成了64 KB的高速缓冲,单次处理数据达32 KB,极大地提升了系统的处理性能,并且功耗很低,其内部集成了Slave主机控制器和外设控制器。此外,ISP761还有可配置的32 b/16 b异步CPU接口,该设计ISP1761外部数据总线设置为16 b模式。
处理器AT91RM9200与外扩USB控制器的连接如图1所示。其中,A[17∶1]为地址线;DATA[15∶0]为数据线;WR_N为读使能;RD_N为写使能;CS_N片选信号采用NCS2;AT9lRM9200的中断源1分配给ISP1761作为其中断信号。处理器和ISP1761之间的数据传输通过中断方式实现,当USB接口有中断产生时,处理器的中断服务程序通过读取ISP1761的中断寄存器判断中断来源,从而执行相应的读/写操作。
2 高速USB软件驱动实现2.1 Linux系统中USB驱动结构USB内核模块是Linux系统中USB子系统的核心模块,它为USB驱动(设备和主控制器)提供了一个统一的接口,以访问和控制USB硬件。
如图2所示,应用程序发出的USB请求块(URB)经过上层的USB设备驱动和USB内核后到达USB主控制器。处于最底层USB主控制器的驱动(HCD)是USB主机直接与硬件交互的软件模块,它将解析URB后,再将数据发送到指定的USB设备上。
图3为ISP1761与操作系统相连接的接口框图。图5中,ISP1761要完成操作系统与USB设备的通信。驱动部分主要分两个层次:ISP1761硬件抽象层(HAL)和主控制器驱动(HCD)层。前者,通过GPIO接口和操作系统平台的相关函数来完成访问ISP1761硬件的功能;后者,主要实现将数据传输给连接的USB设备,并管理根集中器端口的功能。
因此,该设计的软件驱动部分主要由以下两个层次来完成USB主机端的驱动功能。
(1)ISP1761的HAL层。云顶赌场首先初始化设备结构,并添加设备到系统的设备层。其中,初始化部分主要完成ISP1761资源(如内存、中断等)的初始化设置和AT91RM9200处理器的初始化设置,为后期注册驱动程序做准备。如果系统成功添加了设备,在加载和卸载ISP1761主控制器驱动程序到内核时,就会进一步执行平台驱动程序的注册,否则将不能注册驱动程序。一旦注册成功,驱动程序就已经和设备绑定,任何用户态程序要操作此设备都可以通过platform_driver结构所定义的函数进行。下面给出该系统注册的platform_driver结构:
其中,在设备探测和注销等函数中调用了如下一个重要的结构体isp1761_dev。该结构体主要包含了ISP1761设备驱动的基本信息和中断处理例程指针。
(2)ISP1761的HCD层。Philips公司的ISP1761主控制器芯片遵循EHCI标准。该层在加载和卸载ISP1761主控制器驱动到内核时被调用,主要负责与连接的USB设备进行数据传输,并管理根集中器端口。具体包括主控制器例程、内存管理、根集中器和中心集中器的管理、数据传输等。
其中,pehci_hcd_urb_enqueue()函数是该部分所要实现的重点函数,主要用于完成将来自USB core层的urb传输请求转换成EHCI可识别的传输描述结构。然后安排到EHCI的periodic schele list或者asynchronous schele list的合适位置。当HC完成urb对应的传输后,EHCI HCD通过urb→cornplete()通知USB core对应的传输结果,最终完成通信过程。该函数的原型如下:
3 USB驱动的调试使用USB驱动的正常使用必须在内核中正确选择配置,除了默认配置之外,还要添加诸如SCSI设备的支持,VFAT文件格式的支持,新添加ISP1761驱动的支持等。ISP1761的驱动采用模块方式编译,系统启动后,逐层插入驱动模块加载USB主控制器驱动程序到内核。此时,系统插入U盘可成功获得分区,如下所示:
执行挂载命令mount-t vfat/dev/scsi/host0/busO/target0/lun0/partl/mnt/ usb(前提是已经在/mnt目录下建立了USB目录,并且U盘的格式为win-dows下的vfat)便可成功挂载U盘到指定的目录/mnt/usb下。
拷贝U盘上的文件到嵌入式系统,经多次测试,速度可达到约100~125 Mb/s,相比传统的嵌入式Linux系统下对USB的支持,速度得到了很好的提高,基本满足高速读/写的要求。
结语随着USB接口在嵌入式领域越来越广泛的应用和嵌入式Linux内核的不断扩展,嵌入式Linux内核支持的USB设备和USB主控制器越来越丰富,相应的驱动开发工作也将日益突出。该设计给出了嵌入式Linux系统下高速USB主控制器的硬件设计方案和驱动的实现方法,在提高系统性能的同时,降低了成本,有很好的实际应用价值。同时驱动的模块化结构设计保持了其最大可移植性,对于嵌入式下USB主控制器的驱动开发具有很好的借鉴意义。

❹ 什么叫linux系统移植

一般来讲Linux系统移植是把Linux从一个已经支持的硬件架构上移植到一个还未支持的硬件架构上。由于Linux最初是Linus Trovalds为x86架构写的,因此一般Linux系统移植是把x86版本移植到别的架构上,例如arm、mips、powerPC、SPARC(近几年主流Linux发行版都倾向于只支持x86、amd64和arm版,对其他平台的支持越来越少了)。

❺ 如何移植linux天嵌2440的开发板,有linux源码包和EABI,是tar.bz2格式,这个是要放到linux系统下

移植包括uboot、内核、文件系统三个分面。。
linux源码包主要是内核、eabi是一个交叉编译工具(不懂),就是在linux平台生成2440开发板能执行的文件。
首先你要移植uboot、原后到内核,最后文件系统。一步步来吧,这里面内容多的是!不看资料还真说不清楚。。建议先照着资料一步步做。

❻ linux移植命令的依赖文件,不同步到小系统上

我估计是环境变量的问题。
注意一点,chroot 是保留当前环境变量的。而重新启动后,环境变量就是需要启动过程来设置的。

❼ 如何手动移植linux系统到迅为4412

方法/步骤

1
首先连接好 iTOP-4412 开发板的调试串口到 pc 上,在 pc 的 windows 系统下打开串口
调试工具。开发板上电,在串口调试工具里按任意 pc 键盘的任意按键使开发板进入 uboot 命令行模式,如下图所示:

2
然后在 uboot 输入分区命令:“fdisk -c 0 1024 300 300”,如下图所示:

3
上面图片里的命令是把 emmc分区,其中的 1024 是 linux 的存储空间,单位是 MB,也
就是 1G。如果想分配更大的空间修改这个值即可。
执行完上面的命令,如下图所示:

END
方法/步骤2

1
然后在 uboot 命令行分别输入下面的命令,格式化分区:
fatformat mmc 0:1
ext3format mmc 0:2
ext3format mmc 0:3
ext3format mmc 0:4
至此 EMMC的分区已经只做好了,下面我们开始制作 linux 文件系统,拷贝光盘
“linux/root_xxxxxxxx.tar.gz”(xxxxxxxx 是版本日期,)到 Ubuntu 虚拟机上,例如我这
里拷贝到了“/home/topeet/linux”目录,如下图所示:

2
然后使用“tar -xvf root_20140912.tar.gz”命令解压 linux 文件系统,如下图所示:

3
解压完成后,输入“ls”命令,可以看到生成了”root“文件夹

❽ 如何件android中的命令移植到linux开发板上,想使用android中的一些命令,方便开发,比如logcat命令

本文用《Android深度探索(卷1):HAL与驱动开发》的随书源代码为例详细说明如何配置Android驱动开发和测试环境,并且如何使用源代码中的build.sh脚本文件在各种平台(UbuntuLinux、Android模拟器和S3C6410开发板)上编译、安装和测试Linux驱动。
建议读者使用UbuntuLinux12.04或更高版本实验本文的方法。
最好用root账号登录Linux。
一、安装交叉编译器
如果只是在UbuntuLinux上测试Linux驱动就不需要安装交叉编译器了,但要在Android模拟器或S3C6410开发板上进行测试,就必须安装交叉编译器。
首先下载交叉编译器(分卷压缩
下载后解压,会发现有两个tgz文件,可以将这两个文件放到/root/compilers目录中,在Linux终端进入该目录,执行如下命令安装交叉编译器。
[plain]viewplain
#tarzxvfarm-linux-gcc-4.3.2.tgz-C/
#tarjxvfarm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2-C/
二、编译和测试Linux内核
这里的Linux内核有两个,一个是goldfish,也就是Android模拟器使用的Linux内核、另外一个是S3C6410开发板使用的Linux内核(Linux2.6.36)。
读者首先要下载这两个Linux内核。
Android模拟器用的Linux内核源代码(分卷压缩)
用于S3C6410开发板的Linux内核源代码(分卷压缩)
分卷1
分卷2
由于随书代码中的word_count驱动已经在goldfish和linux2.6.36中分别建立了符号链接,以便在编译linux内核时同时也会编译word_count驱动,所以linux内核与源代码目录应与作者机器上的目录相同。
也就是两个linux内核目录与源代码目录如下:
linux内核目录
/root/kernel/goldfish
/root/kernel/linux_kernel_2.6.36
源代码目录
/root/drivers
注意/root/drivers目录下就直接是每一章的源代码了,例如/root/drivers/ch
06、/root/drivers/ch07
现在需要将/usr/local/arm/arm-none-linux-gnueabi/bin路径加到Linux的PATH环境变量中(不会加的上网查,这是Linux的基本功)
最后进入/root/compilers/goldfish目录,执行make命令编译linux内核,如果完全编译,大概20分钟左右。
编译完成后,会在/root/kernel/goldfish/arch/arm/boot目录中生成一个zImage文件,代码1.7MB,这就是用于Android模拟器的Linux内核文件。
三、编译Linux驱动
现在来编译随书光盘的驱动程序,这里以word_count驱动为例。
在Linux终端进入/root/drivers/ch06/word_count目录。
先别忙着编译。
首先要设置打开/root/drivers/common.sh文件,修改第一行UBUNTU_KERNEL_PATH变量值为自己机器上安装的UbuntuLinux内核路径,只要执行“ls/usr/src”命令即可查看当前机器可用的linux内核。

❾ 如何移植 linux 到安卓手机

移植toolbox到普通Linux系统中
toolbox是Android中专用的busybox,从嵌入式Linux转过来都会大大地吐槽功能简陋。但实质上也有很多特有的很好用的功能。比如getevent命令来调试所有的输入事件。已经静态编译出来了(下载地址:toolbox 静态编译),这里记录一下移植过程。
原本以为会很难,所以一直放很久才开始做,最终很简单,只需要稍加修改Android.mk就可以编译出一个静态链接的toolbox。以下diff文件就是改动信息。
diff --git a/system/core/toolbox/Android.mk b/system/core/toolbox/Android.mk
index 086ba0d..d5aef3b 100755
--- a/system/core/toolbox/Android.mk
+++ b/system/core/toolbox/Android.mk
@@ -91,6 +91,7 @@ LOCAL_SRC_FILES := \
grep/grep.c grep/fastgrep.c grep/file.c grep/queue.c grep/util.c

LOCAL_SHARED_LIBRARIES := libcutils libc libusbhost
+LOCAL_STATIC_LIBRARIES := libc libcutils

LOCAL_C_INCLUDES := bionic/libc/bionic

@@ -102,6 +103,7 @@ LOCAL_C_INCLUDES += external/libselinux/include

endif

+LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_MODULE := toolbox

# Including this will define $(intermediates).

然后进行编译就自动编译成了静态链接的了。
$ file out/target/proct/xxx/system/bin/toolbox
out/target/proct/xxx/system/bin/toolbox: ELF 32-bit LSB executable, ARM, \
version 1 (SYSV), statically linked, stripped
$12341234

当然,我没有编译所有的CPU架构的,只是编译了ARMv7的,所以比较低的架构或者其它CPU可能不能直接使用,那么就自行编译吧。
<完>

阅读全文

与linux命令移植相关的资料

热点内容
热水器水量服务器是什么意思 浏览:115
stk卫星编译 浏览:477
对后台程序员的要求 浏览:758
ios大文件夹图标 浏览:624
生的计划pdf 浏览:711
oppoa93加密便签在哪查找 浏览:19
两个数字的加减乘除运算编程 浏览:227
给手机加密码忘记了怎么办 浏览:601
单片机运算符 浏览:297
移动端微信商城源码 浏览:443
编程猫下一个背景在哪里 浏览:358
javaclasstype 浏览:238
乐高编程和乐高课的延伸 浏览:356
苹果手机怎么切换app美国账号 浏览:865
编译程序输入一个字符串 浏览:407
圆命令画法 浏览:308
如果给电脑e盘文件加密 浏览:802
javaswing项目 浏览:778
androidsdksetup 浏览:1005
pdf怎么设置中文 浏览:128