【内核配置】四、搭建完整的mini2440开发板驱动开发环境(仿照JZ2440驱动开发环境搭建)
主 机:VMWare--Ubuntu-16.04.2-x64-100ask
开发板:Mini2440--256M NandFlash, 2M NorFlash, 64M SDRAM, LCD-TD35;
bootlorder:u-boot1.16, Kernel:2.6.22.6;
编译器:arm-linux-gcc-3.4.5
一、mini2440开发板驱动环境搭建:
《mini2440用户手册》说明原文>>
注意:本开发板提供的 linux 内核并不能直接用于 u-boot ,因为我们公司是不使用u-boot的,并且对其各个参数设置并不了解,关于 U-Boot 的使用方法用户可以参考网上的资料。
我了个。。。鉴于使用免费版的mini2440光盘资料,驱动开发环境搭建从未成功过,罢了,虽然以后LCD和触摸屏驱动学习时会有些问题,但还是换熟悉的u-boot和uImage来搭建环境吧。
二、在mini2440开发板上搭建驱动开发环境
1、使用百问网提供的u-boot.bin;
2、按照百问网的方法配置生成uImage:
视频是以JZ2440为模板录制的,
里面讲解的程序并不能照搬到TQ2440、MINI2440等其他开发板, 但是修改并不复杂。
全地球的2440开发板,基本上只有按键、LED用的引脚不同,LCD参数不同。
使用JZ2440的好处是,视频里的代码不用修改就可以直接运行.
使用其他开发板也有好处,虽然你得自己修改代码,但是修改过程中会让你学到更多东西。并且我们也提供了TQ2440/MINI2440的代码。
另外: 光盘里的linux-2.6.22.6在TQ2440/MINI2440上使用时会导致蜂鸣器响,
这是因为JZ2440的LCD用GPB0作为LCD背光使能引脚,
而TQ2440/MINI2440用GPB0作为蜂鸣器的使能引脚
使用TQ2440/MINI2440时,重新配置内核把自带的LCD驱动去掉即可,方法如下:
在内核目录下执行: make menuconfig
-> Device Drivers
-> Graphics support
<> S3C2410 LCD framebuffer support //输入N,表示不使用;
有问题请在论坛上提问.
网 站(论坛): www.100ask.net
注:具体uImage的生成方法见: https://www.cnblogs.com/xiaohujian/p/10007775.html
补:LCD驱动课程关于Mini2440的内核修改配置如下:
make menuconfig去掉原来的LCD驱动程序,由<Y>配置为<M>:
-> Device Drivers
-> Graphics support
<M> S3C2410 LCD framebuffer support //<M> modularizes features。
内核菜单配置的项目前缀说明:
<Y>includes; <N>表示不使用; <*>表示编进内核去; <M> 表示作为一个模块(即源码(.c文件)编译成模块(.ko文件)),即像一个驱动程序一样,可事后加载使用;
3、按照百问网的方法创建最小根文件系统。
三、网络文件系统NFS的配置与使用
直接从NFS启动根文件系统,启动参数修改:
原启动参数:bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
修改后: set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.105:/work/nfs_root/fs_second ip=192.168.1.44:192.168.1.105:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0
主机IP:192.168.1.105
单板IP:192.168.1.44
网关:192.168.1.255
子网掩码:255.255.255.0
根文件系统:/work/nfs_root/fs_second
注释:
官方linux内核系统中,nfsroot.txt启动参数修改意见:
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>