linux驱动环境搭建

编写驱动前,理所当然的,我们应事先将环境搭建好,废话不多说,直奔主题。

环境的搭建:

一、开发板使用TQ2440

这个没什么好说,去购买一块开发板即可。

二、linux的版本为linux2.6.30.4(以后再使用linux.3.4或更高)

linux直接使用天嵌公司提供的zImage_Q43_2.6.30.4_20100531.bin

三、搭建uboot环境参数

烧写uboot、linux镜像就不多说了,参考天嵌使用手册即可。这里要说一下uboot的环境参数,因为我们在开发驱动肯定要使用NFS文件系统。要想使用NFS文件系统,需要设置以下几个东西:

1.前提已经将uboot、zImage烧写到NAND FLASH

2.在NOR FLASH启动方式下(当然NOR FLASH要烧写有uboot),在uboot的菜单栏下,选择0设置uboot环境参数,具体如何设置,请看图解:


a.  在NOR FLASH启动方式下,在uboot的菜单栏中选择0设置uboot环境参数

linux驱动环境搭建_第1张图片


b.选择1,设置为NFS启动方式,具体参考如下图所示

linux驱动环境搭建_第2张图片


c.设置完成后,切忌要输入 s ,将环境参数保存到NAND FLASH中,否则功亏一篑。

linux驱动环境搭建_第3张图片


d.设置完成后,回到uboot的菜单栏后,两次输入q后进入uboot命令行,查看一下uboot的启动参数



发现启动参数为:

bootargs: console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.123:/usr/src/root_2.6.30.4 ip=192.168.1.110:192.168.1.123:192.168.1.110:255.255.255.0:SKY2440.embedsky.net:eth0:off

并测试开发板能够与linux服务器进行网络通信。


ping测试注意事项:

1.确保linux服务器能与windows之间互ping通

2.windows使用wifi无线网络时,开发板不能只用交叉网线与电脑相连接,这样开发板最终不能与linux服务器之间互ping通,必须将网线一端连至开发板,另一端连至路由器或者交换机。


IP地址设置的注意事项:

如发现在uboot菜单栏中设置ip地址无效,即在uboot的命令行下发现ip并没有真正得到设置,那么需要手工进行设置,如何手工进行设置?

EmbedSky> set ipaddr 192.168.1.110
EmbedSky> set serverip 192.168.1.123
EmbedSky> save


四、linux服务器的环境搭建

1.设置NFS文件系统共享目录

在/etc/exports文件里添加如下内如:

/usr/src/root_2.6.30.4  *(rw,sync,no_root_squash)

2.开启NFS服务器

/etc/init.d/nfs restart

正常的启动界面如下:

linux驱动环境搭建_第4张图片


五、解决error


BUG1:

linux驱动环境搭建_第5张图片

IP-Config: Complete:
     device=eth0, addr=192.168.1.110, mask=255.255.255.0, gw=192.168.1.110,
     host=SKY2440, domain=, nis-domain=embedsky.net,
     bootserver=192.168.1.123, rootserver=192.168.1.123, rootpath=
Looking up port of RPC 100003/2 on 192.168.1.123


如果开发板启动卡在了如上界面所示,那么表示无法挂接NFS文件系统,可能的原因:

1.开发板的网络有问题,开发板不能与linux服务器互ping通

2.linux服务器没有开启NFS服务器

3.NFS文件系统的共享路径有误

4.防火墙没有关闭


BUG2:

能够启动文件系统,但是30s后,linux又自动重启?

原因(很明显是看门狗的原因):

因为天嵌制作的zImage内核里, 没有进行喂狗,而使用的文件系统大部分是我自己制作的,里面并没有喂狗程序,所以我们要拷贝天嵌的EmbedSky_wdg到自制文件系统的sbin目录,并修改etc/init.d s/rcS                                    

etc/init.d s/rcS中添加一句:

EmbedSky_wdg &

表示启动看门狗,自动喂狗,这样linux就不会自动重启了。


你可能感兴趣的:(linux驱动环境搭建)