zoukankan      html  css  js  c++  java
  • ubuntu 步步为营之uclinux编译和移植(完整版)

    本节主要包含(ubuntu10.04)

    一,linux下的经常使用压缩解压缩命令

    二,环境建立

    三,内核编译

    四,移植


    一,linux下的经常使用压缩解压缩命令

    在linux下常见的压缩文件格式有tar   gzip    zip   bzip2    compress等

    首先对于tar格式的,压缩和解压缩方式例如以下

    .tar 解压  #tar -xvf file1.tar               压缩 #tar -cvf file1.tar 

    .tar.gz 解压  #tar -zxvf file1.tar         压缩 #tar -zcvf file1.tar 

    .tar.bz 解压  #tar -jxvf file1.tar         压缩 #tar -jcvf file1.tar 

    对于gzip格式的,压缩和解压缩方式例如以下

     .gz后缀的  解压  #gzip  -d  file1.gz        压缩 #gzip file1

    对于zip格式的,压缩和解压缩方式例如以下

     .zip后缀的  解压  #uzip    file1.zip       压缩 #zip file.zip file1 file2   file3

    对于bzip2格式的,压缩和解压缩方式例如以下

    .bz2          解压  #bunzip2 file.bz2       压缩 #bzip2 *



    二,环境建立

    首先要把交叉工具设置好(具体见上一篇文章,嵌入式开发环境建立)

    别人提供的(

    uClinux,下载地址:http://www.uclinux.org/pub/uClinux/dist/uClinux-dist-20051110.tar.gz
    交叉编译环境:http://www.uclinux.org/pub/uClinux/uclinux-elf-tools/arm-elf-tools-20030314.sh

    我用的是天祥提供的arm-elf-tools

    把光盘代码中的软件arm-elf-tools-20040427.sh 复制到
    linux 的根文件夹下运行./ arm-elf-tools-20040427.sh 结果出现+43错误

    (有人说#chmod 777 arm-elf-tools-20040427.sh后再运行就不出错不知道没试过

    解决的方法:

    #tail -n+43 arm-elf-tools-20040427.sh >> 1.tar.gz

    #tar -zxvf  1.tar.gz

    运行之后,在控制台中输入 arm-elf-gcc –v

    假设成功安装了就会出现版本比如2.95.3

    查看安装在了那里

    #which arm-elf-gcc 

    检查是否将路径增加PATH的方法:
    echo $PATH

    应该能看到我们的编译工具所在的路径


    然后准备好uclinux内核,我这里用的是2.4

    我是直接放到了home/wenzer/share目录下这个目录是和windows共享的

    所以比較方便

    解压
    #tar xvzf uClinux2.4.tar.gz

    然后等待编译

    三,内核编译

    进到我们刚解压的目录下,须要改动个文件

    #cd uClinux-dist
    #make mrproper

    等待》。。。

    (我的出现了一个错误被忽略了说缺少relase我忽略了这个提示)
    改动文件1

    #vi linux2.4.x/arch/armnommu/vmlinux-armv.lds.in


    在__sto__kallsyms = ,;
    *(.got)后面加上:
    romfs_data = .;
    romfa.o
    romfs_data.end = .;
    然后wq退出
    这一步假设不做,编译的时候会出错(等号两边都必须有空格)。


    (4510须要改动makefile

    #vi vendors/Samsung/4510B/Makefile

    在genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR)的下一行增加
    arm-elf-ld -r -o $(ROOTDIR)/$(LINUXDIR)/romfs.o -b binary $(ROMFSIMG)
    然后wq保存退出

    )

    #make menuconfig

    出错了

    >> Unable to find the Ncurses libraries.
    >>
    >> You must have Ncurses installed in order
    >> to use 'make menuconfig'

    解决方法:

    运行命令: sudo apt-get install ncurses-dev 就可以!

    (ncurses 用于make menuconfig界面显示

    继续又一次make试试ok了进入了配置界面

    四,移植

    我把移植分成了四段,前三段配置最后一段生成镜像文件
    第一段:
    选择公司和产品

    退出保存
    中间会问你要不要IIC啊之类的一路回车无论
    等待...
    第二段:
    配置界面出现
    配置系统

    保存退出
    第三段
    配置界面三出现

    应用程序和busybox
    第四段
    生成镜像
     #make dep
     #make lib_only
    这一步会出错须要安装软件
    #apt-get install bison
    又一次#make lib_only

    接下来
     #vi config/.config
    然后将"CONFIG_USER_OLD_PASSWORDS=y"凝视掉"#CONFIG_USER_OLD_PASSWORDS=y"

     #make user_only
     #make romfs
     #make image
    假设这一步提示错误,无论他继续运行下一步
     #make
    这样就会在/image下生成我们想要的文件
    。ram结尾的能够直接在ram中执行
    image.rom是能够自解压的正是我们须要的烧写到flash中


  • 相关阅读:
    HDU 5213 分块 容斥
    HDU 2298 三分
    HDU 5144 三分
    HDU 5145 分块 莫队
    HDU 3938 并查集
    HDU 3926 并查集 图同构简单判断 STL
    POJ 2431 优先队列
    HDU 1811 拓扑排序 并查集
    HDU 2685 GCD推导
    HDU 4496 并查集 逆向思维
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4292148.html
Copyright © 2011-2022 走看看