iptables交叉编译
㈠ 嵌入式系统原理与应用---简答题
环境搭建
一、认识开发板
1,ARM开发板的硬件配置(以S3C2410为例)
CPU、SDRAM、FLASH、LCD(包括键盘LED驱动器,触摸屏)、以太网、USB、串口、调试接口(JTAG)、AD及扩展。
2,ARM体系结构与编程。
仅仅了解arm开发板的硬件构成显然是不够的,还需要由表及里,了解ARM体系结构与编程。这部分内容有相应文档,中文版有杜春雷编写的《ARM体系结构与编程》。
注:SDRAM = Synchronous DRAM,同步动态随机存取存储器
这是一种与CPU实现外频Clock同步的内存模式,一般都采用168Pin的内存模组,工作电压为3.3V。所谓clock同步是将CPU与RAM通过一个相同的时钟锁在一起,使RAM和CPU能够共享一个时钟周期,以相同的速度同步工作,这样可以取消等待周期,减少数据传输的延迟,因此可提升计算机的性能和效率。
二、开发板与宿主机直接通信
开发板与主机之间的通信有4种方式:
1.JTAG。
2.COM。传输协议通常是xmodem/ymodem/zmodem.
3.网口。TFTP协议。
4.SD卡口
三、宿主机之windows平台
开发环境:ADS1.2+超级终端
ADS1.2:学会使用ADS平台软件,会用AXD进行调试。
超级终端:一般设置波特率115200,数据位8位,停止位1,无奇偶校验,软件硬件流控制设为无。
配置网络:主要是配置NFS,需关闭防火墙,简化嵌入式网络调试环境设置过程。
四、宿主机之linux平台
开发环境:Linux+minicom
Linux:定制或全部安装。下载安装交叉编译器
minicom:初始化,配置,同windows下超级终端。
配置网络:主要是配置NFS,需关闭iptables。
五、文件烧写
包括烧写内核,根文件系统,应用程序等。
内核映像的烧写有两种方式:
1.vivi,xmodem协议下载,然后烧写
2.linux系统启动后,使用imagewrite工具烧写imagewrite /dev/mtd/0 zImage:192k
㈡ iptables源码怎样进行交叉编译
./configure --host=arm-linux
arm-linux 代表你安装的cross compiler名,取前半部分,如 arm-gnuabi-linux-gcc 你就舔 arm-gnuabi-linux
./configure 后还可以跟很多参数选项,用于包含和指定依赖库的位置等等。你用 ./configure --help看看就行了。
㈢ Linux C编程从初学到精通的目 录
第1部分 基础篇
第1章 Linux系统概述 1
1.1 什么是Linux 2
1.2 Linux系统特点及主要功能 2
1.2.1 Linux系统特点 3
1.2.2 Linux系统的主要功能 3
1.3 Linux的内核版本和发行版本 5
1.4 系统的安装 6
1.4.1 系统安装前的准备工作 6
1.4.2 从光盘安装Linux 6
1.4.3 从硬盘安装Linux 22
1.4.4 在虚拟机下安装Linux 22
1.5 Shell的使用 27
1.5.1 Shell简介 27
1.5.2 常见Shell的种类 28
1.5.3 Shell的简单使用 29
1.5.4 通配符 30
1.5.5 引号 31
1.5.6 注释符 33
1.6 Linux常用命令 33
1.6.1 与目录相关的命令 33
1.6.2 与文件相关的命令 34
1.6.3 与网络服务相关的命令 35
1.7 本章小结 35
实战演练 36
第2章 C语言编程基础 37
2.1 C语言的历史背景 38
2.2 C语言的特点 38
2.3 C语言的基本数据类型 39
2.3.1 整型 39
2.3.2 实型 40
2.3.3 字符型 41
2.4 运算符与表达式 43
2.4.1 算术运算符与算术表达式 43
2.4.2 赋值运算符与赋值表达式 44
2.4.3 逗号运算符与逗号表达式 45
2.5 C程序的3种基本结构 46
2.5.1 顺序结构 46
2.5.2 选择结构 47
2.5.3 循环结构 51
2.6 C语言中的数据输入与输出 54
2.6.1 字符输出函数putchar 54
2.6.2 字符输入函数getchar 54
2.6.3 格式输出函数printf 54
2.6.4 格式输入函数scanf 56
2.7 函数 57
2.7.1 函数的定义 57
2.7.2 函数的调用 58
2.7.3 变量的存储类别 59
2.8 数组 62
2.8.1 一维数组的定义和使用 63
2.8.2 二维数组的定义和使用 64
2.8.3 字符数组和字符串 65
2.8.4 常用字符串处理函数 66
2.9 指针 69
2.9.1 地址和指针 69
2.9.2 指针的定义和使用 70
2.9.3 数组与指针 71
2.9.4 字符串与指针 72
2.9.5 指向函数的指针 72
2.10 结构体和共用体 73
2.10.1 定义和引用结构体 73
2.10.2 结构体数组 74
2.10.3 指向结构体的指针 74
2.10.4 共用体 75
2.10.5 使用typedef定义类型 77
2.11 链表 77
2.11.1 链表概述 77
2.11.2 建立动态单向链表 78
2.11.3 单向链表的输出 80
2.11.4 对单向链表的删除操作 80
2.11.5 对单向链表的插入操作 81
2.11.6 循环链表 82
2.11.7 双向链表 82
2.12 位运算符和位运算 83
2.12.1 “按位与”运算符(&) 84
2.12.2 “按位或”运算符(|) 84
2.12.3 “取反”运算符(~) 84
2.12.4 “异或”运算符(^) 84
2.12.5 移位运算符(<<和>>) 85
2.12.6 位域 85
2.13 C语言预处理命令 86
2.13.1 宏定义 86
2.13.2 文件包含 87
2.13.3 条件编译 88
2.13.4 #error等其他常用预处理命令 89
2.14 本章小结 89
实战演练 89
第3章 vi与Emacs编辑器 91
3.1 vi的使用 92
3.1.1 启动与退出vi 92
3.1.2 vi的命令行模式 93
3.1.3 vi的插入模式 96
3.1.4 vi的底行模式 96
3.2 vi使用实例 97
3.3 Emacs的使用 100
3.3.1 启动与退出Emacs 101
3.3.2 Emacs下的基本操作 102
3.4 Emacs使用实例 107
3.5 本章小结 109
实战演练 109
第4章 gcc编译器与gdb调试器 110
4.1 gcc编译器简介 111
4.2 如何使用gcc 112
4.2.1 gcc编译初步 112
4.2.2 警告提示功能 114
4.2.3 优化gcc 116
4.2.4 连接库 119
4.2.5 同时编译多个源程序 120
4.2.6 管道 120
4.2.7 调试选项 121
4.3 gdb调试器 122
4.3.1 gdb简介 122
4.3.2 gdb常用命令 123
4.3.3 gdb调试初步 124
4.4 gdb的使用详解 126
4.4.1 调用gdb 127
4.4.2 使用断点 127
4.4.3 查看运行时数据 129
4.4.4 查看源程序 133
4.4.5 改变程序的执行 135
4.5 xxgdb调试器简介 138
4.6 本章小结 139
实战演练 139
第5章 make的使用和Makefile的编写 141
5.1 什么是make 142
5.1.1 make机制概述 142
5.1.2 make与Makefile的关系 144
5.2 Makefile的书写规则 147
5.2.1 Makefile的基本语法规则 148
5.2.2 在规则中使用通配符 149
5.2.3 伪目标 149
5.2.4 多目标 151
5.2.5 自动生成依赖性 151
5.3 Makefile的命令 152
5.4 变量 154
5.4.1 变量的基础 154
5.4.2 赋值变量 154
5.4.3 define关键字 156
5.4.4 override指示符 156
5.4.5 目标变量和模式变量 157
5.5 常用函数调用 158
5.5.1 字符串处理函数 158
5.5.2 文件名操作函数 162
5.5.3 循环函数 164
5.5.4 条件判断函数 165
5.5.5 其他常用函数 166
5.6 隐式规则 168
5.6.1 隐式规则举例 168
5.6.2 隐式规则中的变量 169
5.6.3 使用模式规则 170
5.7 本章小结 173
实战演练 173
第2部分 提高篇
第6章 文件I/O操作 174
6.1 Linux文件系统简介 175
6.1.1 Linux的文件系统结构 175
6.1.2 文件类型 176
6.1.3 文件访问权限 179
6.2 基于文件描述符的I/O操作 179
6.2.1 文件描述符 180
6.2.2 标准输入、标准输出和标准出错 180
6.2.3 文件重定向 181
6.2.4 文件的创建、打开与关闭 182
6.2.5 文件的定位 186
6.2.6 文件的读写 188
6.3 文件的属性操作 192
6.3.1 改变文件访问权限 192
6.3.2 改变文件所有者 193
6.3.3 重命名 193
6.3.4 修改文件长度 194
6.4 文件的其他操作 195
6.4.1 stat、fstat和lstat函数 195
6.4.2 p和p2函数 196
6.4.3 fcntl函数 197
6.4.4 sync和fsync函数 197
6.5 特殊文件的操作 198
6.5.1 目录文件的操作 198
6.5.2 链接文件的操作 201
6.5.3 管道文件的操作 204
6.5.4 设备文件 204
6.6 本章小结 205
实战演练 205
第7章 基于流的I/O操作 206
7.1 流与缓存 207
7.1.1 流和FILE对象 207
7.1.2 标准输入、标准输出和标准出错 207
7.1.3 缓存 207
7.1.4 对缓存的操作 210
7.2 流的打开与关闭 212
7.2.1 流的打开 212
7.2.2 流的关闭 214
7.2.3 流关闭前的工作 216
7.3 流的读写 216
7.3.1 基于字符的I/O 217
7.3.2 基于行的I/O 220
7.3.3 直接I/O 222
7.3.4 格式化I/O 224
7.4 本章小结 226
实战演练 227
第8章 进程控制 228
8.1 进程的基本概念 229
8.1.1 Linux进程简介 229
8.1.2 进程与作业 230
8.1.3 进程标识 230
8.2 进程控制的相关函数 232
8.2.1 fork和vfork函数 232
8.2.2 exec函数 237
8.2.3 exit和_exit函数 242
8.2.4 wait和waitpid函数 245
8.2.5 进程的一生 251
8.2.6 用户ID和组ID 251
8.2.7 system函数 253
8.3 多个进程间的关系 255
8.3.1 进程组 255
8.3.2 会话期 256
8.3.3 控制终端 257
8.4 本章小结 259
实战演练 259
第9章 信号 260
9.1 Linux信号简介 261
9.1.1 信号的基本概念 261
9.1.2 信号处理机制 265
9.2 信号操作的相关函数 267
9.2.1 信号的处理 267
9.2.2 信号的发送 274
9.2.3 信号的阻塞 282
9.2.4 计时器与信号 284
9.3 本章小结 286
实战演练 287
第10章 进程间通信 288
10.1 进程间通信简介 289
10.2 管道 290
10.2.1 管道的概念 290
10.2.2 管道的创建与关闭 291
10.2.3 管道的读写 292
10.3 命名管道 297
10.3.1 命名管道的概念 297
10.3.2 命名管道的创建 297
10.3.3 命名管道的读写 299
10.4 消息队列 303
10.4.1 消息队列的概念 303
10.4.2 消息队列的创建与打开 305
10.4.3 消息队列的读写 306
10.4.4 获得或设置消息队列属性 308
10.5 共享内存 312
10.5.1 共享内存的概念 312
10.5.2 共享内存的相关操作 313
10.6 信号量 318
10.6.1 信号量的概念 319
10.6.2 信号量集的相关操作 320
10.7 本章小结 325
实战演练 326
第11章 网络编程 327
11.1 网络编程的基础知识 328
11.1.1 计算机网络体系结构 328
11.1.2 传输控制协议TCP 333
11.1.3 用户数据报协议UDP 335
11.1.4 客户机/服务器模式 336
11.2 套接口编程基础 336
11.2.1 什么是套接口 337
11.2.2 端口号的概念 338
11.2.3 套接口的数据结构 338
11.2.4 基本函数 340
11.3 TCP套接口编程 343
11.3.1 TCP套接口通信工作流程 343
11.3.2 TCP套接口Client/Server程序实例 356
11.4 UDP套接口编程 360
11.4.1 UDP套接口通信工作流程 360
11.4.2 UDP套接口Client/Server程序实例 362
11.5 原始套接口编程 365
11.5.1 原始套接口的创建 365
11.5.2 原始套接口程序实例 365
11.6 本章小结 376
实战演练 376
第12章 Linux图形界面编程 377
12.1 Linux下的图形界面编程简介 378
12.1.1 Qt简介 378
12.1.2 GTK+简介 378
12.2 界面基本元件 381
12.2.1 一个简单的例子 381
12.2.2 窗口 383
12.2.3 标签 385
12.2.4 按钮 386
12.2.5 文本框 387
12.3 界面布局元件 389
12.3.1 表格 390
12.3.2 框 393
12.3.3 窗格 395
12.4 其他常用元件 398
12.4.1 进度条、微调按钮、组合框 398
12.4.2 单选按钮、复选按钮 402
12.4.3 下拉菜单 404
12.5 信号与回调函数 406
12.6 本章小结 409
实战演练 409
第3部分 实战篇
第13章 设计Linux下的计算器 411
13.1 软件功能分析 412
13.2 程序模块的划分 413
13.3 软件的具体实现 415
13.3.1 头文件 415
13.3.2 十六进制界面显示函数 416
13.3.3 十进制界面显示函数 417
13.3.4 八进制界面显示函数 418
13.3.5 二进制界面显示函数 419
13.3.6 进制间转换函数 420
13.3.7 信号处理模块 423
13.3.8 主函数 432
13.4 软件使用效果演示 438
13.5 本章小结 439
第14章 Linux平台下聊天软件的设计 440
14.1 软件功能概述 441
14.1.1 服务器端功能需求 441
14.1.2 客户端功能需求 442
14.1.3 错误处理需求 442
14.2 Glade集成开发工具简介 443
14.3 软件功能模块划分 444
14.3.1 服务器功能模块划分 444
14.3.2 客户端功能模块划分 445
14.3.3 消息标识的定义 445
14.3.4 消息结构体的设计 446
14.4 服务器程序的具体实现 447
14.4.1 服务器消息处理流程 447
14.4.2 服务器主要函数和变量 448
14.4.3 服务器消息处理模块的设计与实现 449
14.4.4 服务器数据存储的方法 450
14.4.5 用户注册流程 450
14.5 客户端程序的具体实现 451
14.5.1 客户端操作流程 451
14.5.2 客户端发送和接收消息流程 451
14.5.3 客户端主要函数和变量 452
14.5.4 客户端功能模块的设计与实现 453
14.6 聊天软件使用效果演示 455
14.7 本章小结 459
第15章 Linux远程管理工具的设计 460
15.1 软件功能概述 461
15.1.1 Webmin简介 461
15.1.2 软件总体设计 461
15.2 服务器端程序设计 463
15.2.1 服务器端工作流程 463
15.2.2 系统用户管理操作 464
15.2.3 系统用户组的管理操作 466
15.2.4 系统服务启动管理 468
15.2.5 DNS管理操作 469
15.2.6 Apache服务管理操作 471
15.2.7 FTP服务管理操作 474
15.3 客户端程序 475
15.3.1 连接界面 475
15.3.2 主界面 477
15.4 本章小结 479
第16章 Linux下简易防火墙软件的设计 480
16.1 Netfilter基础 481
16.1.1 什么是Netfilter 481
16.1.2 Netfilter的HOOK机制 482
16.1.3 HOOK的调用 485
16.1.4 HOOK的实现 486
16.1.5 IPTables简介 488
16.1.6 Netfilter可以实现的控制功能 489
16.2 软件设计概述 491
16.2.1 软件整体框架 491
16.2.2 管理端的设计 492
16.2.3 控制端的设计 493
16.3 用Netfilter设计控制端功能模块 495
16.3.1 ICMP管理控制模块 495
16.3.2 FTP管理控制模块 497
16.3.3 HTTP管理控制模块 499
16.3.4 模块的编译、加载与卸载 499
16.4 软件功能测试 501
16.5 本章小结 503
第17章 基于Linux的嵌入式家庭网关远程交互操作平台的设计 504
17.1 嵌入式技术简介 505
17.1.1 嵌入式系统的概念 505
17.1.2 嵌入式操作系统 506
17.1.3 嵌入式处理器 507
17.2 家庭网关的概念及其网络体系结构 509
17.2.1 智能家庭网络的概念 509
17.2.2 家庭网关的远程交互操作技术简介 510
17.2.3 嵌入式家庭网关的网络体系结构 510
17.3 嵌入式家庭网关的开发平台 511
17.3.1 S3C2410微处理器简介 511
17.3.2 交叉编译环境的建立 513
17.4 远程交互平台的设计 515
17.4.1 应用软件的开发模式 515
17.4.2 嵌入式Web服务器 516
17.4.3 通用网关接口CGI 519
17.5 Linux下软件模块的具体实现 520
17.5.1 登录验证模块 521
17.5.2 串口通信模块 521
17.5.3 中央空调控制模块 522
17.5.4 智能水表数据采集模块 528
17.5.5 试验结果 528
17.6 本章小结 529
㈣ linux学习的步骤
教你一个快乐中学习linux的方式,就是安装Fedora系统,要自己亲手安装,然后根据教程用命令配置你的linux系统,这里为什么说让你安装fedora系统呢,就是因为此系统是命令操作为主的,能让你更好的得到锻炼,系统安装好后,你只要用这个系统进行各种操作就可以了,例如看电影 听音乐 聊QQ等等,前提是这些软件你要手动去用命令去linux源安装,在这些玩,用的过程中,你的linux知识不知不觉就提高了.遇到不会的操作就多找找教程,我觉得这个学习没有步骤,因为你在使用linux系统时,对于linux 的知识已经在不断加深了. 纯手打,比较有诚意,复制一大篇根本没意义.
㈤ 如何移植iptables1.4.9到Tiny6410
首先 你编译的程序 用cat命令看 目录应该是\\/lib\\/libc.so.6 而Android 是 \\/system\\/lib\\/libc.so \r\n本来已经有C库了 但是 我这里没有用~ 你可以在 你的PC安装机子上找到 交叉编译arm-eabi-gcc或 arm-linux-gcc安装目录下的arm\\/4.3.2\\/....\\/libc\\/lib\\/libc2.8.so好像 是这个 有一个是libc.so.6 这个是一个连接 不是文件 查看属性 看下连接的文件应该是 那个libc2.8.so (放心它是arm版的)拷贝这个文件到 安卓\\/system\\/lib\\/去 然后\r\n用RE文件 为它添加一个 连接 \\/system\\/lib\\/libc.so.6 就可以了 \r\n这样 标准库是被移植去了 但是 你的应用程序 有可能使用的是 \\/lib\\/libc.so.6 不是 \\/system\\/lib\\/libc.so.6\r\n先测试不行的话 就把 \\/system\\/lib 连接为\\/lib