嵌入式学习笔记200-Linux kernel初体验

  1. 本实验采用linux-2.6.30.4 version测试,交叉编译为4.3.3,相关源码可以自行下载或到本博客查看是否有,在自己环境下尝试编译kernel通过确保环境ok为后续的移植做好准备。
  2. 对下载的linux-2.6.30.4.tar.bz2进行解压到自己指定位置 tar jxvf linux-2.6.30.4.tar.bz2 -C your_path
  3. 修改编译工具及架构: 进入kernel根目录 cd linux-2.6.30.4 修改makefile,大概在193行将ARCH ?= (SUBARCH) 改成 ARCH = arm, 将194行的CROSS_COMPILE ?= 改成 CROSS_COMPILE = /XX/XX/4.3.3/bin/arm-linux-
  4. 基本工作完成可以开始尝试编译处镜像文件了,在根目录下执行 make menuconfig进行kernel的配置,不过却出现了如下提示:

    [email protected]:~/samba/linux-2.6.30.4$ make menuconfig

    Unable to find the ncurses libraries or the required header files.

    ‘make menuconfig’ requires the ncurses libraries.

    Install ncurses (ncurses-devel) and try again.

make[1]: [scripts/kconfig/dochecklxdialog] 错误 1

make: [menuconfig] 错误 2

[email protected]:~/samba/linux-2.6.30.4$

提示需要ncurses libraries 在终端执行 sudo apt-get install ncurses-dev,不过又出现另外报错:

【警告】:下列软件包不能通过验证!

libtinfo-dev libncurses5-dev

不经验证就安装这些软件包吗?[y/N] Y

错误 http://hk.archive.ubuntu.com/ubuntu/ precise/main libtinfo-dev i386 5.9-4

解析“hk.archive.ubuntu.com:http”时,出现了某些故障(-5 - 没有与主机名关联的地址)

错误 http://hk.archive.ubuntu.com/ubuntu/ precise/main libncurses5-dev i386 5.9-4

解析“hk.archive.ubuntu.com:http”时,出现了某些故障(-5 - 没有与主机名关联的地址)

无法下载 http://hk.archive.ubuntu.com/ubuntu/pool/main/n/ncurses/libtinfo-dev_5.9-4_i386.deb 解析“hk.archive.ubuntu.com:http”时,出现了某些故障(-5 - 没有与主机名关联的地址)

无法下载 http://hk.archive.ubuntu.com/ubuntu/pool/main/n/ncurses/libncurses5-dev_5.9-4_i386.deb 解析“hk.archive.ubuntu.com:http”时,出现了某些故障(-5 - 没有与主机名关联的地址)

E: 有几个软件包无法下载,您可以运行 apt-get update 或者加上 –fix-missing 的选项再试试?

最后发现是ubuntu无法联网…………………….

在VBox将桥接改成NAT就可以了,然后再改为桥接以便本机的win7可以访问,毕竟用的是samba实现win7和ubuntu互联的。不过Vbox之前是配置两个网卡的一个配置桥接一个配置NAT就可以了,不过不知道我的VBox怎么不能设置第二块网卡了………………

make menuconfig 后会出现如下画面:

这里我们只是验证kernel是否可以编译过去,所以采用kernel已配置好的config,将光标移至最下的倒数第二有个“Load an Alternate Configuration File”,按回车键进入输入框,输入地址为 “/arch/arm/s3c2410_defconfig”,期间如果输入错误要 ctrl+backspace来删除,如果直接退出最后点击”YES”的话只是保存到之前load的file里,应该是在首页将光标移至最下的“Save an Alternate Configuration File” 直接保存为“.config”,会在根目录下生成.config配置文件,以后make menuconfig会直接导入这个配置文件,导入后对menuconfig的更改会直接保存到这个.config,所以如果希望这个.config是个蓝本不想被修改可以导入后最后不要直接退出点击“YES”,而是选择 “Save an Alternate Configuration File“ ,不过推荐的做法是直接在根目录下备份.config cp .config .config.bak

5. 保存配置退出后直接 make all 即可

接着会进行一系列的编译,大概需要7,8分钟,这取决你电脑的配置了,

最后会在arch/arm/boot/下生成zImage

至此,Linux kernel所需的环境是ok的,为接下来的porting做好了准备

时间: 2024-10-08 19:09:10

嵌入式学习笔记200-Linux kernel初体验的相关文章

嵌入式学习笔记100-uboot1.1.6初体验

到官网或其他网上下载u-boot-1.1.6.tar.bz2 解压包到相应目录:tar -jxvf u-boot-1.1.6.tar.bz2 -C ../xxxxxx , 我是解压到samba共享的目录上以便到时候用sourceinsight建立工程. 解压好后先 make distclean or make mrproper 确保源码干净 setup project via sourceinsight uboot 流程分析: 查看makefile,发现关键code如下: Makefile: #

python学习笔记18(UliPad 初体验)

在windows下安装配置Ulipad 由于UliPad 是由wxPython 开发的,所以,需要先安装wxPython . wxPython下载地址: http://www.wxpython.org/download.php#stable Ulipad下载地址: http://files.cnblogs.com/dolphin0520/ulipad.4.1.py27.rar 安装完成之后,打开Ulipad就是如下界面了: (注意:安装成功后可能启动不了Ulipad,关闭有道词典类的软件就OK了

嵌入式学习笔记101-uboot_1.1.6移植(1)

根据前篇博文(嵌入式学习笔记100-uboot1.1.6初体验)最后的结论,现在开始将其实现: a. 修改makefile的CROSS_COMPILE指定编译器 arm-linux-gcc -v –> gcc version 3.4.5 CROSS_COMPILE = /opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/arm-linux- chmod -R 777 u-boot-1.1.6/

嵌入式学习笔记201-Linux kernel动起来

在前篇博文<嵌入式学习笔记200-Linux kernel初体验>在已经确保环境编译是ok的,接下来让kernel能够最基本的动起来,起码可以看到基本的启动打印! 修改外部输入时钟频率, 修改 linux-2.6.30.4\arch\arm\mach-s3c2440\mach-smdk2440.c 在大概163行将16934400改成12000000. static void __init smdk2440_map_io(void) { s3c24xx_init_io(smdk2440_iod

嵌入式学习笔记202-Linux kernel跑起来

在<嵌入式学习笔记104-uboot_1.1.6移植(4)>.<嵌入式学习笔记300-linux根文件系统搭建>uboot和根文件系统都准备好的前提下,此时的kernel已基本可以跑起来,不过还差正确的挂起文件系统,其中uboot传给kernel的挂载处是root=/dev/mtdblock2 ,而在<嵌入式学习笔记201-Linux kernel动起来>的打印分区信息是: mtd: partition "Boot Agent" doesn't en

第三次随笔--安装虚拟机及学习linux系统初体验

第三次随笔--安装虚拟机及学习linux系统初体验 ·学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 首先按照老师的提示步骤进行VirtualBox虚拟机的安装,安装过程可谓一帆风顺,一马平川,并没有遇到什么问题. ·成功安装之后打开虚拟机 对就是这个样子,略微有一点激动,还好,在自己的电脑上运行并不会有太多的卡顿 ·参考老师的学习方法通过实践学习Linux 基础入门(新版)课程,掌握常用的Linux命令,重点是3/4/5/6/7/8节. 虚拟机安

嵌入式学习笔记104-uboot_1.1.6移植(4)

前面的4篇uboot博文基本概括了uboot的整体flow,现在使能支持启动linux,至此之前请先阅读<嵌入式学习笔记200-Linux kernel初体验>和<嵌入式学习笔记201-Linux kernel动起来>.准备kernel的镜像文件才可以立马检测uboot是否能够启动kernel.在u-boot-1.1.6\include\configs\tq2440.h 最后添加如下几行code: /****************** boot kernel setup ****

嵌入式学习笔记103-uboot_1.1.6移植(3)

经过之前对uboot的整体flow分析,现在开始针对2440移植,需要注意的是移植的code可能包含支持部分的2410code 不过并没有在s3c2410板子实测过. 主要概括:第一阶段的汇编code尽量短小,能用C实现的就用C,由于2440的board和头文件是从2410 copy过来的 里面会有很多信息或者宏关于2410,并且很多.c文件的头文件由于include的是2410,所以新增的一些关于2440的结构体也会一并放在2410.h,移植的思想与前文类似, 根据code的执行流程来移植.

Hadoop学习笔记(9) ——源码初窥

Hadoop学习笔记(9) ——源码初窥 之前我们把Hadoop算是入了门,下载的源码,写了HelloWorld,简要分析了其编程要点,然后也编了个较复杂的示例.接下来其实就有两条路可走了,一条是继续深入研究其编程及部署等,让其功能使用的淋漓尽致.二是停下来,先看看其源码,研究下如何实现的.在这里我就选择第二条路. 研究源码,那我们就来先看一下整个目录里有点啥: 这个是刚下完代码后,目录列表中的内容. 目录/文件 说明 bin 下面存放着可执行的sh命名,所有操作都在这里 conf 配置文件所在

嵌入式学习笔记008-裸奔篇之串口

串口是个好东西,前几篇裸奔程序由于没有串口,自己调试都是有led等来表示的,比较"苦逼",终于可以用串口了~~~,这里主要采用上一篇博文(嵌入式学习笔记007-裸奔篇之定时器),也就是串口也是用中断实现的,而且也只是在前一篇博文增加串口的初始化uart0_init(),以及在中断处理函数增加对串口的处理.只要稍微改造前一篇博文就是一个通用的中断处理程序! 这里主要实现在串口输入一个字符,接受后+2再发送到串口,所以在串口输入a 会返回c---. 由于code都有相应的注释,读者自行查看