嵌入式linux之我行linux移植.docx
- 文档编号:8693719
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:68
- 大小:1,017.29KB
嵌入式linux之我行linux移植.docx
《嵌入式linux之我行linux移植.docx》由会员分享,可在线阅读,更多相关《嵌入式linux之我行linux移植.docx(68页珍藏版)》请在冰豆网上搜索。
嵌入式linux之我行linux移植
Linux-2.6.30.4在2440上的移植之内核
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。
一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。
如有错误之处,谢请指正。
∙共享资源,欢迎转载:
一、移植环境
∙主 机:
VMWare--Fedora9
∙开发板:
Mini2440--64MBNand
∙编译器:
arm-linux-gcc-4.3.2
二、移植步骤
1.准备工作目录和解压内核源码
#mkdirmy2440
#cdmy2440/
#tar-jxvflinux-2.6.30.4.tar.bz2
2.进入内核根目录修改Makefile使之编译成ARM平台
#cdlinux-2.6.30.4
#geditMakefile
3.修改机器码,根据友善提供的VIVI里面的机器码是782,所以内核也要改成782才能启动
#geditarch/arm/tools/mach-types
4.修改系统平台时钟为12MHz(即:
12000000)
#geditarch/arm/mach-s3c2440/mach-smdk2440.c
5.修改NandFlash分区。
这里只创建三个分区,其他多余的分区屏蔽掉
#geditarch/arm/plat-s3c24xx/common-smdk.c
6.配置内核选项
#makemenuconfig
首先加载s3c24xx系列的通用配置,然后在此基础上修改
各配置选项如下。
这里只列出了要修改的项,其他的默认
配置完后将配置文件保存为.config,这样方便下次makemenuconfig时默认加载上次配置过的文件
7.交叉编译内核
#makezImage
如果没有任何错误,编译出来的内核在arch/arm/boot/目录下,文件zImage即是。
8.将内核镜像文件zImage下载到Mini2440上测试
新内核2.6.30.4的使用:
64MBNandFlash分区情况:
三、结束语
Ok,新的内核移植成功,但是现在开发板还不能正常运行,因为还有各种设备的驱动和文件系统没有移植,这些将在后续的篇章中一一讲述。
文件系统
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。
一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。
如有错误之处,谢请指正。
∙共享资源,欢迎转载:
一、移植环境
∙主 机:
VMWare--Fedora9
∙开发板:
Mini2440--64MBNand
∙编译器:
arm-linux-gcc-4.3.2
∙yaffs补丁:
cvs-root.tar.gz这里下载http:
//www.aleph1.co.uk/cgi-bin/viewcvs.cgi/
∙Busybox:
busybox-1.13.0.tar.tar
∙yaffs制作工具:
mkyaffs2image.tgz(友善提供)
二、移植步骤
1.准备工作目录和进入工作目录
#mkdirmy2440
#cdmy2440
2.给内核打上yaffs补丁,使内核对yaffs的支持
#tar-zxvfcvs-root.tar.gz
#cdcvs/yaffs2/
#./patch-ker.shc/root/my2440/linux-2.6.30.4/
3.配置内核,使其对yaffs2文件系统的支持。
配置完后重新编译内核,下载到开发板上
Filesystems--->
<>Secondextendedfssupport
<>Ext3journallingfilesystemsupport
<>TheExtended4(ext4)filesystem
<>Reiserfssupport
<>JFSfilesystemsupport
<>XFSfilesystemsupport
<>OCFS2filesystemsupport
<>Btrfsfilesystem(EXPERIMENTAL)Unstablediskformat
[*]EnablePOSIXfilelockingAPI
[*]Dnotifysupport
[*]Inotifyfilechangenotificationsupport
[*]Inotifysupportforuserspace
[]Quotasupport
Kernelautomountersupport
Kernelautomounterversion4support(alsosupportsv3)
FUSE(FilesysteminUserspace)support
Caches--->
CD-ROM/DVDFilesystems--->
<*>ISO9660CDROMfilesystemsupport
[]MicrosoftJolietCDROMextensions
[]Transparentdecompressionextension
<>UDFfilesystemsupport
DOS/FAT/NTFilesystems--->
<*>MSDOSfssupport
<*>VFAT(Windows-95)fssupport
(437)DefaultcodepageforFAT
(iso8859-1)DefaultiocharsetforFAT
<>NTFSfilesystemsupport
Pseudofilesystems--->
[*]Miscellaneousfilesystems--->
---Miscellaneousfilesystems
<>ADFSfilesystemsupport(EXPERIMENTAL)
<>AmigaFFSfilesystemsupport(EXPERIMENTAL)
<>AppleMacintoshfilesystemsupport(EXPERIMENTAL)
<>AppleExtendedHFSfilesystemsupport
<>BeOSfilesystem(BeFS)support(readonly)(EXPERIMENTAL)
<>BFSfilesystemsupport(EXPERIMENTAL)
<>EFSfilesystemsupport(readonly)(EXPERIMENTAL)
<*>YAFFS2filesystemsupport
-*-512byte/pagedevices
[]Useolder-styleon-NANDdataformatwithpageStatusbyte
[]LetsYaffsdoitsownECC
-*-2048byte(orlarger)/pagedevices
[*]Autoselectyaffs2format
[]Disablelazyloading
[]Turnoffwidetnodes
[]Forcechunkerasecheck
[*]CacheshortnamesinRAM
<*>JournallingFlashFileSystemv2(JFFS2)support
(0)JFFS2debuggingverbosity(0=quiet,2=noisy)
[*]JFFS2write-bufferingsupport
[]VerifyJFFS2write-bufferreads
[*]JFFS2summarysupport(EXPERIMENTAL)
[]JFFS2XATTRsupport(EXPERIMENTAL)
[]AdvancedcompressionoptionsforJFFS2
<*>CompressedROMfilesystemsupport(cramfs)
SquashFS4.0-Squashedfilesystemsupport
[]Additionaloptionformemory-constrainedsystems
<>FreeVxFSfilesystemsupport(VERITASVxFS(TM)compatible)
<>Minixfilesystemsupport
<>SonicBlueOptimizedMPEGFileSystemsupport
<>OS/2HPFSfilesystemsupport
<>QNX4filesystemsupport(readonly)
<*>ROMfilesystemsupport
RomFSbackingstores(Blockdevice-backedROMfilesystemsupport)--
<>SystemV/Xenix/V7/Coherentfilesystemsupport
<>UFSfilesystemsupport(readonly)
<>NILFS2filesystemsupport(EXPERIMENTAL)
[*]NetworkFileSystems--->
PartitionTypes--->
-*-Nativelanguagesupport--->
<>DistributedLockManager(DLM)--->
4.编译busybox生成文件系统所需要的应用程序
1)解压busybox源码,修改Makefile使之编译成ARM平台:
#tar-jxvfbusybox-1.13.0.tar.tar
#cdbusybox-1.13.0
#geditMakefile
大概164行改成CROSS_COMPILE=arm-linux-,189行改成ARCH=arm
2)配置busybox选项,下面只列出了要注意的地方,没有列出的默认即可
#makemenuconfig
BusyboxSettings--->
GeneralConfiguration--->
Bufferallocationpolicy(AllocatewithMalloc)--->
[*]Showverboseappletusagemessages
[*]Storeappletusagemessagesincompressedform
[*]Support--install[-s]toinstallappletlinksatruntime
[*]Enablelocalesupport(systemneedslocaleforthistowork)
[*]Supportfor--long-options
[*]UsethedevptsfilesystemforUnix98PTYs
[*]Supportwritingpidfiles
[*]RuntimeSUID/SGIDconfigurationvia/etc/busybox.conf
[*]Suppresswarningmessageif/etc/busybox.confisnotreadable
(/proc/self/exe)PathtoBusyBoxexecutable
BuildOptions--->
[*]BuildBusyBoxasastaticbinary(nosharedlibs)
[*]BuildwithLargeFileSupport(foraccessingfiles>2GB)
InstallationOptions--->
[]Don'tuse/usr
Appletslinks(assoft-links)--->
(./_install)BusyBoxinstallationprefix
BusyboxLibraryTuning--->
(6)Minimumpasswordlength
(2)MD5:
TradeBytesforSpeed
[*]Faster/procscanningcode(+100bytes)
[*]Commandlineediting
(1024)Maximumlengthofinput
[*]vi-stylelineeditingcommands
(15)Historysize
[*]Historysaving
[*]Tabcompletion
[*]Fancyshellprompts
(4)Copybuffersize,inkilobytes
[*]Useioctlnamesratherthanhexvaluesinerrormessages
[*]SupportinfinibandHW
LinuxModuleUtilities--->
(/lib/modules)Defaultdirectorycontainingmodules
(modules.dep)Defaultnameofmodules.dep
[*]insmod
[*]rmmod
[*]lsmod
[*]modprobe
---Optionscommontomultiplemodutils
[]Supportversion2.2/2.4Linuxkernels
[*]Supporttaintedmodulecheckingwithnewkernels
[*]Supportformodule.aliasesfile
[*]Supportformodule.symbolsfileLinuxSystemUtilities--->
3)编译和安装busybox,安装完后会在busybox-1.13.0/_install/目录下生成:
bin、linuxrc、sbin、usr
#make
#makeinstall
5.开始构建文件系统
1)新建一个目录root-2.6.30.4,把busybox-1.13.0/_install/目录下生成:
bin、linuxrc、sbin、usr复制过来,并且在该目录下创建文件系统所需要的其他目录
#mkdirroot-2.6.30.4
#cp-rfbusybox-1.13.0/_install/*root-2.6.30.4/
#cdroot-2.6.30.4/
#mkdirdevetchomelibmntoptproctmpvarwww
2)向各目录中添加文件系统所需要的目录或文件,没有提到的就不用添加。
这里要注意各种文件的权限,建议都改为777,命令:
#chmod777文件名
"dev"目录,创建两个设备文件:
#mknodconsolec51
#mknodnullc13
"etc"目录,创建各种配置文件并向里面添加内容,没有列出的就不用添加:
boa/boa.conf:
boaWEB服务器配置文件,暂时为空。
group:
系统用户组配置文件,内容如下:
root:
*:
0:
daemon:
*:
1:
bin:
*:
2:
sys:
*:
3:
adm:
*:
4:
tty:
*:
5:
disk:
*:
6:
lp:
*:
7:
lp
mail:
*:
8:
news:
*:
9:
uucp:
*:
10:
proxy:
*:
13:
kmem:
*:
15:
dialout:
*:
20:
fax:
*:
21:
voice:
*:
22:
cdrom:
*:
24:
floppy:
*:
25:
tape:
*:
26:
sudo:
*:
27:
audio:
*:
29:
ppp:
x:
99:
500:
x:
500:
plg
501:
x:
501:
fa
inittab:
系统init进程配置文件,内容如下:
#/etc/inittab
:
:
sysinit:
/etc/init.d/rcS
console:
:
askfirst:
-/bin/sh
:
:
ctrlaltdel:
/sbin/reboot
:
:
shutdown:
/bin/umount-a-r
mime.types:
暂时为空。
passwd:
系统密码文件,内容如下:
root:
:
0:
0:
root:
/:
/bin/sh
ftp:
:
14:
50:
FTPUser:
/var/ftp:
bin:
*:
1:
1:
bin:
/bin:
daemon:
*:
2:
2:
daemon:
/sbin:
nobody:
*:
99:
99:
Nobody:
/:
sky:
:
502:
502:
LinuxUser,,,:
/home/sky:
/bin/sh
rc.d/init.d/httpd:
内容如下:
#!
/bin/sh
base=boa
#Seehowwewerecalled.
case"$1"in
start)
/usr/sbin/$base
;;
stop)
pid=`/bin/pidof$base`
if[-n"$pid"];then
kill-9$pid
fi
;;
esac
exit0
sysconfig/HOSTNAME:
主机名称文件,内容如下:
MY2440
fstab:
系统挂载文件系统列表,内容如下:
#device mount-point type options dump fsckorder
none /proc proc defaults 0 0
none /dev/pts devpts mode=0622 0 0
tmpfs /dev/shm tmpfs defaults 0 0
init.d/rcS:
系统启动加载项,内容如下:
#!
/bin/sh
PATH=/sbin:
/bin:
/usr/sbin:
/usr/bin
runlevel=S
prevlevel=N
umask022
exportPATHrunlevelprevlevel
#
# TrapCTRL-C&conlyinthisshellsowecaninterruptsubprocesses.
#
/bin/mount-tprocnone/proc
/bin/mount-ttmpfsnone/tmp
/bin/mount-ttmpfsnone/var
/bin/mkdir-p/var/log
/bin/hostname-F/etc/sysconfig/HOSTNAME
mdev.conf:
mdev设备配置文件,暂时为空。
net.conf:
网络配置文件,暂时为空。
profile:
用户环境配置文件,内容如下:
#Ashprofile
#vim:
syntax=sh
#Nocorefilesbydefault
#ulimit-S-c0>/dev/null2>&1
USER="`id-un`"
LOGNAME=$USER
PS1='[\u@\h\W]\#'
PATH=$PATH:
/usr/local/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:
/usr/local/lib
HOSTNAME=`/bin/hostname`
exportUSERLOGNAMEPS1PATHLD_LIBRARY_PATH
resolv.conf:
DNS配
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 linux 移植