Chinaunix首页 | 论坛 | 博客
  • 博客访问: 400636
  • 博文数量: 101
  • 博客积分: 2324
  • 博客等级: 大尉
  • 技术积分: 887
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-19 19:28
文章分类

全部博文(101)

文章存档

2012年(3)

2011年(60)

2010年(38)

分类: LINUX

2011-03-26 10:34:15

、主机平台上安装VMmare7.0ubuntu9.10

Ø      ubuntu分区:/boot  100M  ext3  primary

                     swap  1024M(内存的2)    logical

                       /     剩下的所有空间    ext4     logical

Ø      注意:VMmare一定要下载完整版,一般绿色版、精简版没有VMware tools

           VMmare6.5VMware7.0都支持ubuntu9.10  相应的VMware tools也是支持的

Ø      安装交叉编译器后安装build-essential     sudo  apt-get  build-essential   C/C++提供编译环境

查看GCC是否安装成功 :  arm-linux-gcc  -v

二,移植Linux-2.6.29(别的版本大同小异2.6.29—2为主版本号6为次版本号29为补丁号其中的编号偶数为稳定版本)

1, 获取源码地址

2, 关于交叉编译器

 

编译内核都会用cross-3.4.1

 

本笔记用的是4.3.2

 

解压4.3.2/usr/local/arm

 

4.3.2arm-linux-gcc-导入环境变量里

 

echo $PATH—查看环境变量

 

gedit /etc/bash.bashrc ----编辑脚步自动写入环境变量

 

# crosstool PATH configure

 

if [ -d /usr/local/arm/4.3.2/bin ] ; then

 

PATH=/usr/local/arm/4.3.2/bin:"${PATH}"

 

fi

 

source /etc/profile --- 执行脚本使其加入环境变量中

 

(用arm-linux-gcc 4.00以上的编译器做出都 文件系统老是报这个错


而用rm-linux-gcc 3.xx 版本都都不会,看来一下内核的配置


原来问题在这里

Kernel Features  --->
[*] Use the ARM EABI to compile the kernel                  


[*]   Allow old ABI binaries to run with this kernel (EXPERIMENTA)


把这个选上就可以了)

3, 添加ARM的支持

 

gedit Makefile

 

                                    ARCH?=$(SUBARCH)

                        CROSS_COMPILE?=

         改成:

 

                         ARCH?=arm

                         CROSS_COMPILE?=arm-linux-

         arm-linux-   后的“-”容易丢失

 

为内核添加yaffs2支持

 

    下载源码 点击Download GUN tarball ,下载cvs-root.tar.gz 

    执行patch-ker.sh给内核打补丁     ./patch-ker.sh

 

再次配置内核添加yaffs2支持

 

    File system--àMiscellaneous filesysytem--à  <*> YAFFS2 file system support

 

再次生成镜像即可

 

     4,、修改目标平台的时钟频率arch/arm/mach-s3c2440/mach-smdk2440.c

              s3c2440-init-clocks(16934400) 改成 s3c2440-init-clocks(12000000)

 

5,修改机器码

 

         arch/arm/tools/mach-type s3c2440的机器码一定要与vivi 中的一致

 

 

Vivi param show –显示一小参数

 

 

 

6,修改MTD分区

         arch/arm/plat-s3c24xx/common-smdk.c 中修改


 

 

 

 

Vivi part show –显示以下参数

 


bootloader中的分区要与内核中的分区完全一致,包括分区名、起始地址、分区大小,比保

 

证内核、文件系统能够烧写到nandflash

 

        7       制作配置文件

           arch/arm/configs 下有 s3c2410-deconfig   一般的,以s3c2410-deconfig为基础制作

 

2440的的配置文件

 

    s3c2410-deconfig拷贝到 .config make 内核是按照  .config 中的配置生成zImage

 

       cp  arch/arm/configs/s3c2410-deconfig   .config

 

             修改配置  

 make menuconfig  

 

 

 

 

 选择“system Type”将s3c2410 Machine s3c2440

 

              Machine SMDK…….全部选中,其他类型不选(可选可不选)

 

              内核配置

 

第一部分:全部删除

 

Code maturity level options ---> 代码成熟等级选项

 

[]Prompt for development and/or incomplete code/drivers 默认情况下是选择的,这将会

 

在设置界面中显示还在开发或者还没有完成的代码与驱动.不选。

 

第二部分 :除以下选项,其它全部删除

 

General setup—


System V IPC (IPC:Inter Process Communication)
是组系统调用及函数库,它能让程序彼此

间同步进行交换信息。某些程序以及DOS模拟环境都需要它。为进程提供通信机制,这将使系统中各进程间有交换信息与保持同步的能力。有些程序只有在选Y的情况下才能运行,所以不用考虑,这里一定要选。

 

第三部分:除以下选项,其它全部删除

 

Loadable module support ---> 可引导模块支持 建议作为模块加入内核

[] Enable loadable module support

 

这个选项可以让你的内核支持模块,模块是什么呢?模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行支持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在运行时可以使用modprobe命令来加载它到内核中去(在不需要时还可以移除它)。一些特性是否编译为模块的原则是,不常使用的,特别是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文件系统,系统总线的支持就不要编为模块了,否在无法启动系统。

[]Automatic kernel module loading

 

 一般情况下,如果我们的内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用modprobe命令来加载它,内核才能使用。不过,如果你选择了这个选项,在内核需要一些模块时它可以自动调用modprobe命令来加载需要的模块,这是个很棒的特性,当然要选Y喽。

 

第四部分:全部删除

 

Block layer-----〉块设备

 

第五部分:除以下选项,其它全部删除

 

Processor type and features ---> 处理器类型

 

Subarchitecture Type (PC-compatible) --->

 

 这选项的主要的目的,是使Linux可以支持多种PC标准,一般我们使用的PC机是遵循所谓IBM兼容结构(pc/at)。这个选项可以让你选择一些其它架构。我们一般选择PC-compatible就可以了。

 

Processor family386 :

 

它会对每种CPU做最佳化,让它跑的好又快,一般来说,你是什么型号的就选什么型号的就好。我选的是386,这样内核会省下不少空间


第六部分:除以下选项,其它全部删除

 

Power management options (ACPI, APM) ---> 电源管理选项

 

[ ] Power Management Debug Support

 

电源管理的调试信息支持,如果不是要调试内核有关电源管理部份,请不要选择这项。

 

ACPI Support ---

高级电源接口配置支持,如果BIOS支持,建议选上这项

 

[]Button

这个选项用于注册基于电源按钮的事件,比如power, sleep等,当你按下按钮时事件将发生,一个守护程序将读取/proc/acpi/event,并执行用户在这些事件上定义的动作比如让系统关机。可以不选择,根据自己的需求


第七部分:除以下选项,其它全部删除

Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> 总线选项

 

[]PCI support

 

PCI access mode (Any) --->

PCI外围设备配置,强列建议选Any,系统将优先使用MMConfig,然后使用BIOS,最后使用Direct检测PCI设备。


第八部分:除以下选项,其它全部删除

 

Executable file formats --->


Kernel support for ELF binaries ELF
是开放平台下最常用的二进制文件,它支持不同的硬件平台。一定要选。


第九部分:除以下选项,其它全部删除


Networking


Networking options --->


[]Unix domain sockets


[]TCP/IP networking

 

第十部分:除以下选项,其它全部删除

 

Device Drivers --->设备驱动

 

Block devices-------

 

[]Compaq SMART2 support

 

[] Compaq Smart Array 5xxx support

 

[]Loopback device support

大部分的人这一个选项都选N,因为没有必要。但是如果你要mount iso文件的话,你得选上Y。这个选项的意思是说,可以将一个文件挂成一个文件系统。如果要烧光盘片的,那么您很有可能在把一个文件烧进去之前,看看这个文件是否符合IS09660的文件系统的内容,是否符合您的需求。而且,可以对这个文件系统加以保护。不过,如果您 想做到这点的话,您必须有最新的mount程序,版本是在2.5X版以上的。而且如果您希望对这个文件系统加上保护,则您必须有des.1.tar.gz这个程序。注意:此处与网络无关。建议编译成模块

[] RAM disk support

 

SCSI device support ---> 里面有关于USB支持的,要选择

 

[]SCSI device support USB要用,必须选择


[]legacy /proc/scsi/ support USB
要用,必须选择


[]SCSI disk support USB
要用,必须选择


SCSI Low-level drivers


[]Serial ATA(SATA) support


[]Intel PIIX/ICH SATA support
这个必须选择,否则无法产生引导文件


[]Via SATA support


Networking device support --->
这个下面是选网卡驱动,一定要选


Ethernet(1000mbit)-
我的电脑是千兆网卡所以就选这个


[]broadcom Tigon3support


Input device support --->
这个里面要设置你的鼠标键盘什么的


[]Provide legacy /dev/psaux device


Graphics support --->


[]Support for frame buffer devices
支持Frame buffer的,一定要选择


USB support --->


[]USB device filesystem
这个好象是用U盘必须的


[]EHCI HCD (USB 2.0) support
usb2.0就选上把,编译成模块


[]OHCI HCD support
必须选择,编译成模块


[]UHCI HCD (most Intel and VIA) support
必须选择,编译成模块


[]USB Mass Storage support
U盘必须选择


USB Human Interface Device (full HID) support
里面选择usb鼠标和usb键盘,如果你有一定选上这个必需选


HID input layer support
应该选择


/dev/hiddev raw HID device support
如果这里有USB键盘和鼠标选项,一定要选择

 

       触摸屏

 

  Device Drivers->

    Input device support->

      [*]   Touchscreens->

        <*>   Samsung S3C2410 touchscreen input driver

 

UDA1341(声卡)支持

Device Drivers->

    <*> Sound card support->

      <*>   Advanced Linux Sound Architecture->

        <*>   OSS Mixer API 

        <*>   OSS PCM (digital audio) API 

......

        <*>   ALSA for SoC audio support->

 <*>   SoC I2S Audio support UDA134X wired to a S3C24XX

 

.U

  SCSI支持:

  Device Drivers->

    SCSI device support->

      <*> SCSI device support

      <*> SCSI disk support

  USB支持:

  Device Drivers->

    [*] USB support->

      <*>   USB Mass Storage support

  FAT文件系统支持

  File systems->

DOS/FAT/NT Filesystems->          

 

 <*> MSDOS fs support

  支持中英文编码

  File systems->

    -*- Native language support->

      <*>   Codepage 437 (United States, Canada)

      <*>   NLS ISO 8859-1  (Latin 1; Western European Languages)

      <*>   NLS UTF-8      

   

.USB摄像头

 

Device Drivers->

    <*> Multimedia support->

      <*>   Video For Linux                                        

      [ ]     Enable Video For Linux API 1 (DEPRECATED)    

      [*]     Enable Video For Linux API 1 compatible Layer

      [*]   Video capture adapters (NEW)->

        [*]   Autoselect pertinent encoders/decoders and other helper chips

        [*]   V4L USB devices (NEW)->

 <*>   USB Video Class (UVC)

 [ ]     UVC input events device support

 <*>   GSPCA based webcams->

   <*> 全选([ ]     Enable evdev support)

 

.Linux字体

 

 

Device Drivers->

    Graphics support->

      Console display driver support->

         [*]   VGA 8x16 font

 

 


第十一部分:除以下选项,其它全部删除

 

file systems --->文件系统
<*> Second extended fs support
[*] Ext2 extended attributes
[*] Ext2 POSIX Access Control Lists
[*] Ext2 Security Labels
Ext3 journalling file system support
[*] Ext3 extended attributes
[*] Ext3 POSIX Access Control Lists
[*] Ext3 Security Labels
以上这些肯定是要选择的,linux的标准文件系统
Kernel automounter support
内核自动挂载的,当然要选
Kernel automounter version 4 support (also supports v3)
当然要选
DOS/FAT/NT Filesystems --->
DOS FAT fs support
MSDOS fs support
VFAT (Windows-95) fs support
NTFS file system support
Native language support
语言支持,这里就支持英语和汉语就行了,不多说了
[]NLS ISO 8859-1
必须选择,这个是关于U盘挂载的。
CD-ROM/DVD Filesystems --->
这个是关于挂载ISO文件的,用的话就选。
<*> ISO 9660 CDROM file system support

 

       nfs(默认开启)

  

记得每次更改nfs文件夹时,都要重新开启nfs

 

File systems->

    Network File Systems->

      <*>   NFS client support 

      [*]     NFS client support for NFS version 3 

      [*]       NFS client support for the NFSv3 ACL protocol extension 

      [*]     NFS client support for NFS version 4 (EXPERIMENTAL)

      [ ]       NFS client support for NFSv4.1 (DEVELOPER ONLY) 

      [*]     Root file system on NFS

 

yaffs2文件系统

 

File systems->

    [*] Miscellaneous filesystems->

      <*>   YAFFS2 file system support                                       

           -*-     512 byte / page devices                                          

           [ ]       Use older-style on-NAND data format with pageStatus byte (NEW)   

           [ ]         Lets Yaffs do its own ECC (NEW)                          

           -*-     2048 byte (or larger) / page devices                     

           [*]       Autoselect yaffs2 format (NEW)                               

           [ ]       Disable YAFFS from doing ECC on tags by default (NEW)         

           [ ]       Disable lazy loading (NEW)                                    

           [ ]     Turn off wide tnodes (NEW)                                       

           [ ]     Force chunk erase check (NEW)                                     

           [*]     Cache short names in RAM (NEW)                                  

           [ ]     Empty lost and found on boot (NEW)                            

           [ ]     Disable yaffs2 block refreshing (NEW)                           

           [ ]     Disable yaffs2 background processing (NEW)

 

第十二部分: 全部删除

 

Instrumentation support

 

第十三部分:全部删除

 

Kernel hacking --->破解核心?可不是当骸客啦,不选

 

第十四部分:全部删除

 

Security options --->

 

第十五部分:全部删除

 

Cryptographic options --->这是核心支持加密的选项

 

第十六部分:全部删除

 

Library routines --->

 

编译系统

 

make

 

生成目标文件

 

make zImage or make bzImage

 

一般用 make zImage

 

()

 

 

阅读(1053) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~