【文档说明】建立ArmLinux仿真开发环境课件.pptx,共(49)页,695.926 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-92635.html
以下为本文档部分文字说明:
建立ArmLinux仿真开发环境X-Men小组1内容•1.Armlinux-2.4.18仿真环境的建立•2.Armlinux-2.6.0内核配置的问题2Armlinux-2.4.18•交叉编译环境•编译ARMLinux内核•制作根文件系统•装载ARML
inux3相关软件:•ubuntu7.10•skyeye_1_2_3•cross-2.95.3•busybox-1.004•系统准备:安装UBUNTU7.10设置系统的更新源更新源就是提供Ubuntu相关软件下载的服务器地址a先把原有的更新源备份一下:sudocp/etc/apt/sourc
es.list/etc/apt/sources.list_backupb输入用户密码后,然后编辑新的更新源sudogedit/etc/apt/sources.list563.保存编辑好的文件,执行以下命令更新.sudo
apt-getupdatesudoapt-getdist-upgrade4.更新完后,重新启动系统.75.安装本机编译工具在终端上,输入sudoapt-getinstallbuild-essential将安装本机所需的编译工具
和相关支持库。如此步没做,后面进行一些编译时会有很多的错误。8•安装交叉编译环境1.先下载cross-2.95.3.tar.bz22.解压缩,产生2.95.3这个目录,在/usr/local目录下新建一个目录arm,将2.95
.3目录及其内容拷贝到此目录下如果是用cross-3.2则可以在根目录/下直接解压缩就可以了93.添加环境变量sudogedit~/.bashrcexportPATH=$PATH:/usr/local/arm/bin注意:此步后
要重新登录系统更改才有效4.检查是否建立好交叉编译环境对arm-linux-使用tab键功能查看arm-linux-gcc的版本用arm-linux-gcc编译目标版的可执行程序1011•编译ARMLinux内核1.准备内核2.配置内核3.编译内核12a准备内核1.下载标准Li
nux的内核源码和ARMLinux的补丁linux-2.4.18.tar.bz2patch-2.4.18-rmk7.bz22.解压缩内核,并打上ARMLinux的补丁patch-p1<../patch-2.4.18-rmk7.bz2错误:找不到patch命令原因:Ubuntu
默认没有安装patch工具解决:安装patchsudoapt-getinstallpatch13b配置内核这个环节是最麻烦的,进展最慢的地方。1:容易出错:2:错误不好解决。如果在此之前的步骤能成功完成,在这个环节会少
很多的错误,节省很多时间。所以如果有很多很奇怪的错误,最好不要盲目,先检查之前的编译工具,支持库,环境变量等是否设置正确。当然之前能顺利完成,在这个环节还是有不少错误;对内核的配置还是有很多不清楚的地方。关于内核编译配置选项简介可以参照下面的网址
:http://lamp.linux.gov.cn/Linux/kernel_options.html14配置内核的方式三种方式:•makeconfig命令行式的一般不推荐•makexconfig可用
鼠标点击选择•makemenuconfig菜单式,用键盘控制15错误及解决方法•错误1:•如执行“makexconfig”指令,进入内核设置时,系统会报错说没有wish命令。•解决方法:•根据提示进行安装wish即可。Ubuntu默认是没有安装这个命令的。16•错误2:•若运行m
akemenuconfig会提示ncurses找不到,这是因为menuconfig用到了ncurses库.系统默认没有安装.•解决办法如下:•sudoapt-getinstalllibncurses5-dev。17错误3:配置完后编译内核,开始编译。
编译中报错:这个错误很常见。18解决方法:这个原因是你在配置内核的时候选了vga的支持,去掉consoledrivers下的vgatextconsole选项后重新编译19•错误4:20解决方法:去掉characterdevice中的virtualterminal选
项。21制作根文件系统这个环节也是很比较困难的地方,出错很多1)安装busybox工具包2)创建文件系统的映象文件3)配置根文件系统22busybox•错误1:23解决办法:makemenuconfig,
然后选择NetworkingUtilities.将route项不选。24•错误2:25如果出现找不到内核版本号的编译错误,可以有两种方法解决:(1)把你的内核源码中的version.h文件拷贝到交叉编译器的包含文件的linux目录下;(2)该方法来源于论坛上面的一位朋友,做法为删掉#in
clude<linux/version.h>换成#defineUTS_RELEASE"2.4.18-rmk7"#defineLINUX_VERSION_CODE132114#defineKERNEL_VERSION(a,b,c)(((a)<<16)+((b)<<8)+(c))(该方法我试验成功)2
627•老师PPT关于busybox的介绍和编译安装虽说只有两页,自己当时也感觉不是很麻烦。可是自己真正做的时候确遇到了很多问题。28创建文件系统的映象文件①在/mnt下创建img目录,然后进入根目录执行如下指令创
建一个空的映象文件:$ddif=/dev/zeroof=initrdbs=1024kcount=1$mke2fs-F-m0initrd②使用如下指令加载创建的文件系统,并复制文件系统中必要的文件:$mount-text2-oloopini
trd/mnt/img$cp-Rd/tmp/target/*/mnt/img29创建设备文件建立设备文件,一个简单的方法是复制主机/dev/目录下一些必要的设备文件到/mnt/img/dev/目录下.基本的设备文件有:/
dev/console/dev/fd0/dev/null/dev/arm0/dev/tty/dev/tty0在复制的过程中,要注意使用dp参数以保证文件属性不变.3031•sudocp-dp/dev
/tty/mnt/img/dev32•解决方法:•增加映象文件的大小,重新建立5M的映象文件•ddif=/dev/zeroof=initrdbs=5Mcount=133ARMLinux移植到Skyeye上运行1.安装skyeye在终端中输入sudoapt-get
installskyeye命令,skyeye1.2.3就安装好了2.将生成的内核映像vmlinux和根文件系统initrd拷贝到一个文件下3.编写skyeye.conf文件34353637Armlinux-2.6.0•交叉编译ARMLinux内核38•错误一:在输入“
makexconfig”后,如果出现很多错误,原因是系统一些编译相关的软件包没有安装。39•在安装了相关软件后,可用看到gcc的版本是4.1.340错误二:出错原因:系统里的gcc是4.1,它对语法要求非常严格,导致该
错误。41解决办法:或者去注释掉出错的那一行,或将该行static修饰符去掉。42错误三:出错原因:makexconfig运行需要相关的依赖包,出现此错误,说明此步之前没有安装QT开发包43解决办
法:安装QT开发包,在新立得软件开发包管理器内安装右图所示的软件包。44错误四:我认为是:系统里的gcc是4.1,它对语法要求非常严格,导致该错误45做到这步终于可用出makexconfig的界面了46
•编译内核•2.6版可以直接用make命令就可用了,不需先makedep后再执行make命令。•注意编译器的版本,要是cross-3.3以上的版本。47谢谢•陈坤,刘江,衷心感谢你们的帮助!48•效果很全面,持之以恒是关键。22.12.522.12.5Monday,December5,2
022•自觉遵守饭堂纪律,养成饮食卫生习惯。07:57:1807:57:1807:5712/5/20227:57:18AM•防止违章动火六大禁令。22.12.507:57:1807:57Dec-225-Dec-22•没有措施的管理是空谈,没有计划的工作是空洞。07:57:1807:57:1807:
57Monday,December5,2022•防事故年年平安福满门讲安全人人健康乐万家。22.12.522.12.507:57:1807:57:18December5,2022•推动全员品质活动,提高全
员工作十七。2022年12月5日上午7时57分22.12.522.12.5•用心呵护,塑造金牌品质。2022年12月5日星期一上午7时57分18秒07:57:1822.12.5•安全不仅关系自己,安全连同国家集体。2022年12月上午7时57分22.12.507:57De
cember5,2022•人人齐努力,创造好品质。2022年12月5日星期一7时57分18秒07:57:185December2022•以安全第一为荣,以忽视安全为耻。上午7时57分18秒上午7时57分07:57:1822.12.5•遵章是幸福的保障,违纪是灾祸的开端。22.12
.522.12.507:5707:57:1807:57:18Dec-22•不接受不合格品,不制造不合格品,不交付不合格品。2022年12月5日星期一7时57分18秒Monday,December5,2022•生产再忙安全不忘,人命关天安全优先。22.
12.52022年12月5日星期一7时57分18秒22.12.5谢谢大家!