zedboard--运行在demo系统上的helloworld驱动(十八)
0赞前面虚拟机安装ubuntu12.04已经完成,按照之前的方法安装交叉编译环境也很顺利,要写能在板子上运行的驱动程序,必须要编译内核,首先下载内核。
使用git命令下载似乎不是很好使,https://github.com/Digilent/linux-digilent/releases,我下载的是3.3的那个。
1:解压源码:
tar -xvzf linux-digilent-3.3.0-digilent-12.07-zed-beta.tar.gz
如果不编译内核,直接在makefile直接将目录指向这里是要报错的。因为有些.h .o文件需要编译过后才有。
2.配置内核源码
在arch/arm/configs/目录下有这个配置文件 digilent_zed_defconfig
make ARCH=arm digilent_zed_defconfig
3编译Linux内核
make ARCH=arm
编译过程在arch/arm/boot目录下生成Image和zImage文件
4编写helloworld.c和Makefile
helloworld.c
Makefile
可以看到helloworld.c和pc机运行的驱动程序时完全一样的,而Makefile有一点不一样,就是这里的kernel路径就是我们解压后的路径,然后还有ARCH=arm
5make
make通过了,之前就没有通过,这里还有一个疑问待解决,就是上面只是编译了内核,生成了Image和zImage文件,上面时候还需要安装内核模块呢?这里还有待搞清楚。
ls看一下生成的文件
看到生成了helloworld.ko文件,拷贝到U盘里面,拷贝到zedboard自带的迷你linux系统下。
6测试
启动完系统后
插上U盘,挂载到/opt目录下
fdisk -l
mount /dev/sda1 /opt/
cd /opt/
insmod helloworld.ko
测试结果:
运行完毕。