fl2440最小系统移植梳理

fl2440最小系统移植梳理
所谓的嵌入式开发就是自己DIY一个系统,放到开发板上跑。最小系统则是基于linux内核,考虑开发板实际硬件的一个最简单的系统。
准备工作:在linux下制作好自己的交叉编译器
一    fl2440开发板的了解,创建fl440项目框架
[xn@localhost fl2440]$ tree
| -- 3rdparty 今后移植到ARM开发板上的第三方应用程序软件包
|-- bootloader u-boot移植代码
|-- crosstool 交叉编译器
|-- driver 今后写的驱动文件
|-- images 编译出的image文件,如Linux内核,根文件系统等;
|-- linux
| |-- kernel Linux内核源码路径
| `-- rootfs 根文件系统目录树路径
`-- program 我们今后自己写的应用程序

二    源码修改

修改一:晶振
修改二:machine ID
修改三:串口驱动设备名字改为ttyS
修改四:顶层Makefile中配置交叉编译器路径
修改五:添加DM9000网卡设备支持

三    内核配置和编译
   kconfig   .config  Makefile  三者的关系
   采用由平台厂商提供的sc2410_deconfig,用作编译内核.config的参考
   注意export TERM=vt100命令的使用。
   使用u_boot编译产生的mkimage命令  
make
mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 30008040 -n "Linux Kernel" -d arch/arm/boot/zImage linuxroms3c2440.bin
chmod a+x linuxrom-s3c2440.bin

四  根文件系统制作
1.创建根文件系统树目录结构
| -- bin 系统基本命令bin
|-- sbin 系统管理命令
|-- dev 系统设备节点所在路径
|-- root root用户home
|-- etc 系统配置文件所在路径
| `-- init.d 系统初始化、启动程序脚本
|-- lib 系统动态库路径
| `-- modules
| `-- 3.0.0 linux内核驱动模块需要该路径
|-- usr
| |-- bin 用户基本命令路径
| |-- lib 用户动态库文件
| `-- sbin 用户管理命令路径
|-- apps nandflash apps分区挂载点,用来存放应用程序
|-- data nandflash data分区挂载点,用来存放数据
|-- info nandflash info分区挂载点,用来存放设备信息
|-- mnt 系统挂载点
| |-- mmc SD卡挂载点
| `-- usb U盘挂载点
|-- proc linux proc文件系统挂载点
|-- sys linux sys文件系统挂载点
|-- tmp linux tmp文件系统挂载点
`-- var 系统日志等文件存放路径
2.安装动态库,并链接到rootfs中的lib下
3.安装busybox,并链接到开发板的bin路径下
4.创建/dev路径下的设备节点
5.创建/var路径下的文件
6.创建/etc路径下的文件
         创建etc/inittab
         创建etc/fstab
         创建etc/hostname
         创建etc/int.d
                创建etc/init.d/rcS
                创建etc/init.d/S10_network
                创建etc/init.d/S99_rcsApp
          创建shell配置文件
          创建linux登录账号文件
          创建linux其他文件
                 /etc/resolv.conf文件
                 /etc/hosts文件
                 /etc/TZ文件
                 /etc/TZ文件
7.把内核中支持initramfs的选项选上,重新编译内核


猜你喜欢

转载自blog.csdn.net/xn6666/article/details/79958967