怎么样把linux内核版本为2.6.31的内核移植到版本为2.6.12的TE2440开发板上

这是一个非常大的问题,移植总是涉及三件事:引导加载程序和根文件系统已经是唯一剩下的了。
首先,下载2.6.12的正式版本代码,然后将其与您的板上可以运行的代码进行比较,看看需要更改哪些内容,最后将这些更改更新到2.6.31版本中,然后将其添加到官方中即可。
代码。
移植并不是一件容易的事,你一定会遇到很多问题。
您可以在JulianTec邮件列表上提问。

如何制作Linux根文件系统

根文件系统一直是所有类Unix操作系统的重要组成部分。
它也可以被认为是嵌入式Linux系统区别于其他传统嵌入式操作系统的一个重要特征,但它也引入了一些复杂性。
我们必须清楚地了解根文件系统的基本结构,仔细选择所需的系统库、内核模块和应用程序,配置各种初始化脚本文件,选择合适的文件系统类型并将其放置在适合实际存储设备的位置。
Linux根文件系统以树形结构组织,包含管理内核和系统所需的各种文件和程序。
一般来说,根“/”目录下的顶级目录都有相对固定的名称和用途。
下面是Linux根文件系统中比较常见的目录结构:/bin是存放二进制可执行命令的目录。
该目录存储所有用户都可以使用的基本命令。
这些命令是在挂载其他文件系统之前使用的,因此/bin目录必须与根文件系统位于同一分区。
/bin目录下常用的命令有:cat、chgrp、chmod、cp、ls、sh、kill、mount、umount、mkdir、mknod、[、test等命令“[”实际上是测试命令。
我们在使用Busybox创建root文件系统时,可以在生成的bin目录中看到一些可执行文件,即一些可用的命令。
/dev是存放设备文件的目录。
设备文件是Linux中特有的一种文件类型,各种设备都可以通过文件的形式进行访问,即通过读写特定的设备文件来使用特定的设备。
例如,可以通过“dev/ttySAC0”文件使用串口0,通过“/dev/mtdblock1”可以访问MTD设备的第二个分区。
/etc是存放系统配置和管理文件的目录。
该目录下存放各种配置文件。
对于PC上的Linux系统来说,/etc目录下有大量的文件和目录。
这些目录文件是可选的并且依赖于系统。
您拥有的应用程序取决于这些程序是否需要配置文件。
在嵌入式系统中,这些可以显着减少。
/home用户的主目录。
例如,用户user的主目录是/home/user。
您可以使用~user来表示用户的目录。
对于每个普通用户来说,/home子目录下都有一个以用户名命名的目录,里面存放着与用户相关的配置文件。
/lib是存储动态链接共享库和可加载驱动程序的目录。
共享库用于引导系统。
运行根文件系统中的可执行程序,例如/bin/sbin目录中的程序。
/sbin是存放系统管理员使用的管理程序的目录。
系统命令存放在该目录中,即只有管理员才能使用的命令也可以存放在/usr/sbin、/usr/local/中。
sbin目录,/sbin目录存放基本的系统命令,用于启动系统、修复系统等。
与/bin目录类似,/sbin可以在挂载其他文件系统之前使用,因此/sbin目录必须与分区上的根文件系统位于同一位置。
/sbin目录下常用的命令包括:shutdownrebootfdiskfsck等本地用户安装的系统命令放在/usr/local/sbin目录下。
/tmp公共临时文件存储点,用于存储临时文件,通常是一个空目录。
一些需要生成临时文件的程序使用/tmp目录,因此/tmp目录必须存在并且可以访问。
系统管理员的主目录/root是root用户的目录。
这样一来,普通用户的目录就是/home下的子目录。
/mnt系统提供这个目录是为了让用户可以临时挂载其他文件系统。
用于临时挂载文件系统的挂载点通常是一个空目录。
您还可以在其中创建一个空子目录,例如/mnt/cdram/mnt/hda1。
用于临时安装CD和硬盘。
/proc虚拟文件系统,可以直接访问该目录来获取系统信息。
这是一个空目录,通常用作proc文件系统的挂载点。
proc文件系统是一个虚拟的文件系统,没有真正的存储设备,由内核临时生成的目录和文件来表示系统的运行状态并操作文件控制系统。
/usr是最大的目录,几乎所有您需要使用的应用程序和文件都可以在该目录中找到。
/usr目录下的内容可以存放在另一个分区中,然后在系统启动后挂载到根文件系统中的/usr目录中。
它存储共享和只读的程序和数据,这表明/usr目录的内容可以在多个主机之间共享,并且这些内容大多符合FHS标准。
/usr中的文件应该是只读的,与其他主机相关,变量文件应该保存在其他目录中,例如/var。
在嵌入式系统上,/usr目录可以变得更小。
/var一些大文件的溢出区与/usr目录相反,/var目录存储可变数据,例如spool目录(邮件、新闻)、日志文件和临时文件。
---------------------------------------------------------------------1.移植环境:1.Ubuntu10.10Release版本2.u-boot.bin3目标机:FS_S5PC100平台4.交叉编译器Arm-cortex_a8-linux-gnueabi-gcc-----------------------------------------------------------------------2.移植步骤1.下载源码我们选择的版本是busybox-1.17.3.tar下载.bz2路径是:http://busybox.net/downloads/2。
解压源码$tarxvfbusybox-1.17.3.tar.bz23进入源码目录$cdbusybox-1.17.34配置源码$makemenuconfigBusyboxSettings--->BuildOptions--->[*]BuildBusyBoxasastaticbinary(nosharedlibs)[]ForceNOMMUbuild[]BuildwithLargeFileSupport(foraccessingfiles>2GB)(arm-cortex_a8-linux-gnueabi-)CrossCompilerprefix()AdditionalCFLAGS5,编译$make6,安装busybox,默认安装路径为_install$makeinstall7在源码目录下,进入安装目录$cd_install$lsbinlinuxrcsbinusr8,创建其他需要的目录$mkdirdevetcmntprocvartmpsysroot9,添加库,在_install目录下创建lib文件夹并将工具链中的库复制到lib目录$mkdirlib$cp/home/linux/x-tools/arm-cortex_a8-linux-gnueabi/arm-cortex_a8-linux-gnueabi/lib/*./lib/删除lib中所有目录、.o文件和.a文件并收缩库以减小文件系统大小$rm*.o*.a$arm-cortex_a8-linux-gnueabi-striplib/*10,添加系统启动文件在etc中添加inittab$vim/etc/inittab文件的内容如下:#thisisrunfirstExceptionwhenbootinginsingle-usermode.::sysinit:/etc/init.d/rcS#/bin/shinvocalsonselectedttys#Starta"askfirst"shellontheconsole(无论可能be)::askfirst:-/bin/sh#要处理的事情dotorestarttheprocessinit::restart:/sbin/init#Thingstodobeforerebooting::ctrlaltdel:/sbin/reboot在etc下面添加文件fstab$vim/etc/fstab文件内容如下:#devicemount-pointtypeoptionsdumpfsckorderproc/procprocdefaults00tmpfs/tmptmpfsdefaults00sysfs/syssysfsdefaults00tmpfs/devtmpfsdefaults00我们这里挂载的文件系统有三个proc,sysfs和tmpfs内核中默认支持proc和sysfs,不支持tmpfs需要添加tmpfs支持并更改内核配置:$makemenuconfigFilesystems--->Pseudofilesystems--->[*]Virtualmemoryfilesystemsupport(formershmfs)[*]TmpfsPOSIX。
AccessControlLists重新编译内核$makezImage在etc下创建init.d目录,并在init.d下创建rcS文件$mkdir/etc/init.d-p$vim/etc/init.d/rcSrcS文件内容为:#!/bin/sh#Thisisthefirstscriptfilledbyinitprocess/bin/mount-a给rcS添加可执行权限:$chmod+xinit.d/rcS将配置文件添加到etc$vim/etc/配置文件内容为:#!/bin/shexportHOSTNAME=farsightexportUSER=rootexportHOME=root#exportPS1="\[\u@\h\W\]\$"exportPS1="[$USER@$HOSTNAME\W]\#"PATH=/bin:/sbin:/usr/bin:/usr/sbinLD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATHexportPATHLD_LIBRARY_PATH11。
您需要在设备文件的根文件系统中创建设备节点。
在dev$mknoddev/consolec51中创建控制台节点重要提示:如果新创建的文件系统大小超过8M,请删除。
不必要的库文件。