我的嵌入式linux开发步骤

2019-07-12 18:50发布

我的嵌入式linux开发步骤: 1.       安装虚拟机,<安装及使用心得>,选择桥接模式   2.       虚拟机串口设置,linux使用MINCOM通信>;   3.       用交叉网线连接PC&开发板.   4.NFS(PC)设置:<安装及使用心得>&启动流程>&< linux开关机脚本相关>  备注:      a.nfs的文件权限设置777                    b.挂载/卸载nfs时候,注意当前所在文件夹,以免不成功 PC linux/etc/rc.d/rc.local里面增加了部分命令,随机启动.如下: [root@localhost rc.d]# more rc.local #!/bin/sh # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local ifconfig eth0 10.96.15.169 ifconfig eth0 netmask 255.255.255.0 /etc/rc.d/init.d/smb start /etc/rc.d/init.d/nfs start /etc/rc.d/init.d/portmap start /etc/rc.d/init.d/iptables stop echo "nfs setup OK from /etc/rc.d/rc.local." [root@localhost rc.d]#   4.       NFS(开发板)设置:<安装及使用心得> 在开发板设置脚本/usr/yangchu.sh,这样开机运行该脚本来自动挂载 #!/bin/sh ifconfig eth0 10.96.15.170 mount -t nfs 10.96.15.169:/home/myth /mnt -o nolock echo nfs ok!” 此时由于NFS的缘故,可以在开发板mnt文件里看到实时变化的10.96.15.169:/home/myth文件夹的情况.    在开发板/etc/init.d/rcS的最后加入了执行上述脚本的语句,开机会自动运行    这里发现一个问题:发现板子启动时,不会去执行/usr/etc/rc.local文件,而且/etc/init.d/rcS文件包含了/usr/etc/rc.local的所有语句.不晓得这个是不是板子 的一个bug,所以开发商把后者的语句都让前者去执行完毕了.    此外一个小发现记录下来:之前用minicom连上板子后,一直是看不到光标的,这给操作带来很大不便,但无意中发现在minicom执行一个非法操作:cat /usr/1.jpg后会自动退出 minicom.不过重新进入minicom后就可以看到光标了.   5.PC上编辑hello.c文件分别见虚拟机myth文件,autotools生成makefile,并用GDB调试.编写基础>&调试精粹及使用实例>   6.PC上安装交叉编译工具,<交叉编译场景(arm-linux)分析>:     一般情况下,主机和目标机是同一类型的计算机,这就是正常的编译,没有什么好说的。所谓交叉编译就是在主机上为目标机编译,比如在PC上编译,然后在手机上运行,这种 编译就叫交叉编译.交叉编译需要交叉编译器,不同的目标机(主要是看芯片类型)需要不同的交叉编译器,比如我们这里要介绍的arm-linux交叉编译,所用的交叉编译器就是arm-linux-gcc系列。 使用稳定版本cross-2.95.3.tar.bz2来建立交叉编译环境:          a.cross-2.95.3.tar.bz2解压到/usr/local/arm,会在该文件夹生成文件夹2.95.3,并删除压缩包cross-2.95.3.tar.bz2          b./etc/profile最后行增加环境变量"export PATH=$PATH:/usr/local/arm/2.95.3/bin"   7.利用交叉编译工具,PC上将步骤6生成的hello.cmakefile生成可在开发板运行的hello   a.修改makefile里的gcc工具   b../configure --host=arm-linux --prefix=/xxx          --host:指定目标机的平台类型。一般格式为CPU类型-操作系统名称。比如,目标机的CPUarm,操作系统为linux,可以这样写--host=arm-linux          --prefix:这是安装路径的前缀,即编译结果放置的位置。默认值是/usr或者/usr/local,交叉编译时不能使用默认值,否则它会覆盖你本机的文件,所以要指定一个路径。比如,可以指定为--prefix=/work/cross/rootfs/usr.配置完成后,运行make编译,运行make install安装。   8.做几个完全开发流程>里的实验.   9.内核模块编译:<内核模块编译>:   10.驱动: