嵌入式linux烧写(二)—Linux内核的裁剪和编译
一、内核的获得
可以从网上下载内核文件,http://www.kernel.org。如果是为了练习,尽量下载2.4.x的内核。因为2.6.x的内核比较大,当然编译也需要更都的时间。
二、内核的编译
Linux内核的编译菜单主要有三个版本:
1)make config:进入命令行,可以一行一行的配置。
2)make menuconfig:开发人员比较熟悉的menuconfig菜单。
3)make xconfig:在2.4.X以及以前版本中xconfig菜单是基于TCL/TK的图形库的.
我们采用menuconfig菜单
编译内核需要root权限,以下操作都假定你是root用户.先在根目录下建立名为ARM2410的目录.然后
把你需要升级的内核拷到/usr/src/下(下文中以2.4.18的内核的linux-2.4.18.tar.gz为例),命令为
#cp linux-2.4.18.tar.gz /usr/src
然后解压该文件,命令为:
#tar -zxvf linux-2.4.18.tar.gz
如果你所下载的是.bz2文件,例如linux-2.4.0test8.tar.bz2,请使用下面的命令
#bzip2 -d linux-2.4.18.tar.bz2
#tar -xvf linux-2.4.18.tar
下面我们开始编译:
第一步:在终端下进入内核所在目录 "/arm2410";
第二步:键入make menuconfig,进入内核配置菜单,如下图:
注意:
1)带有"-->"表示该选项包含选项;
2)每个选项前面有[ ]或< >,中括号表示仅有2种选择(*或空),尖括号表示有3种选择(M,*或空),按空格键可显示这几个选择;
3)M表示以模块方式编译进内核,在内核启动后,需要手工执行insmod命令才能使用该项驱动;*表示直接编译进内核;空表示不编译进内核;
第三步:按着自己的需求,配置内核.一共有21项.
第四步:键入make clean命令,删除已生成的模块和目标文件.
第五步:键入make dep命令,编译变量依赖关系等;
第六步:键入make zlmage生成经压缩以后的内核映像文件zlmage;
第七步:键入make modules编译模块;
第八步:键入make modules_install安装编译完成的模块;
内核映像文件zlmage存放在 ./arch/arm/boot/目录下.
相关文档:
来源:http://www.armjishu.com/index.php
大部分人都不太清晰的疑惑-----Linux中的地址空间
有这么一系列的问题,是否在困扰着你:用户程序编译连接形成的地址空间在什么范围内?内核编译后地址空间在什么范围内?要对外设进行访问,I/O的地址空间又是什么样的?
先回答第一个问题。Linux最常见的可执行文件格式为elf(E ......
以下举例中:蓝色字体为命令输入,红色字体为终端输出。
1.1 查看文件和目录(ls)
ls命令是linux最常用的命令,用来显示文件或者目录的相关信息。一般会搭配以下参数常用:
-a:显示全部文件,与隐藏文件(开头为.的文件)一起列出来。
-l:列出长数据串,包括文件属性。
-t:按时间排序。
-h: ......
Linux 多线程通信
Linux 多线程通信
摘自资料(linux 与Windows不同)
线程间无需特别的手段进行通信,因为线程间可以共享数据结构,也就是一个全局变量可以被两个线程同时使用。不过要注意的是线程间需要做好同步,一般用mutex。可以参考一些比较新的UNIX/Linux编程的书,都会提到Posix线程编程,比如《U ......
MySQL :: Linux 下自动备份数据库的 shell 脚本
Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库。其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令。
脚本内容如下:
#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
......
工作中用到gdb来分析程序崩溃生产的core文件问题:
这里从网上查来的一个命令用法:
1,说明:
ulimit用于shell启动进程所占用的资源.
2,类别:
shell内建命令
3,语法格式:
  ......