1.下载 最新源代码
2. 下载 arm-linux-gcc 4.4.3
解压缩 到 /usr/local/arm/4.4.3 下载 。除去多余目录
3.编辑
sudo vim /etc/bash.bashrc 在后面加入如下代码:
if [ -d /usr/local/arm/2.95.3 ] ; then PATH=/usr/local/arm/2.95.3/bin:"${PATH}"fi
4.使新的环境变量生效
# source /etc/profile
5.修改 内核根目录 Makefile
ARCH = arm
CROSS_COMPILE=arm-linux-
6.make menuconfig //sudo apt-get install Ncurses-dev
load an alternative configure 填入 ./arch/arm/configs/s3c2410_defconfig
7.配置 内核
8.make
9.单独编译驱动
obj-m :=hello.o
KERNELDIR :=/lib/modules/2.6.24-19-generic/build //内核路径
PWD :=$(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
printk没有在console上打印出提示,通过
使用dmesg |tail
lsmod
mknod /dev/key_test c 121 0
这是创建设备到/dev下,使普通程序可以调用了,121是在源代码里定义的它的主设备号,0是次设备号。
cat /dev/key_test 这是相当于open这个设备了,或者写一个程序直接调用open、write等函数。
fd=("/dev/key_test",ORW);
如果看不到用printk打印的信息,可以用dmesg命令看
ifneq ($(KERNELRELEASE),)
obj-m :=step_motor.o
else
KERNELDIR = ../../OMAP35x_EVM/kernel/linux-2.6.29-0xlab //内核路径
PWD := $(shell pwd)
all:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
rm -rf