● 交叉环境编译模块
1. 在linux-2.6.22.6/arch/arm/configs目录下拷贝对应的配置文件s3c2410_defconfig到内核源码树(是开发板对应的内核版本,不是linux主机使用的内核)的根目录下,重命名为.config
2. 编译内核
切换到root,命令行执行:
export ARCH=arm
export CROSS_COMPILE=arm-linux-
export PATH=$PATH:/home/rao/Softwares/gcc-3.4.5-glibc-2.3.6/bin
安装依赖库:
sudo apt-get install libncurses5-dev
开始编译:
make oldconfig
make
make bzImage
make modules
make modules_install
会看到内核根目录下出现vmlinux文件
3. Makefile文件
ifneq ($(KERNELRELEASE),)
obj-m:= hello.o
else
KDIR := /home/rao/Program/linux-2.6.22.6
PWD := $(shell pwd)
CROSS_COMPILE=arm-linux-
CC =$(CROSS_COMPILE)gcc
default:
make -C $(KDIR) M=$(PWD) modules
endif
clean:
rm -f *.o rm -f *.symvers rm -f *.order rm -f *.ko rm -f *.mod.c4. 在源文件目录下执行make,得到.ko文件,然后.ko文件拷贝到开发板上,执行insmod hello.ko 命令
参考:
http://www.linuxidc.com/Linux/2014-03/97500.htm
● 安装arm gcc
注意,要在32位Linux下安装,否则需要安装32位的库,比较麻烦
修改/etc/profile
export PATH=$PATH:/home/rao/Softwares/gcc-3.4.5-glibc-2.3.6/bin
● 开启nfs
CentOS默认安装了nfs服务
开启服务:
service rpcbind start
service nfs start
chkconfig rpcbind on
chkconfig nfs on
修改配置文件:
vim /etc/exports
/home/rao/work 192.168.1.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)
重新加载nfs
exportfs -r
挂载:
mount -t nfs -o nolock 192.168.1.110:/home/rao/work /mnt/work
参考:
http://www.linuxidc.com/Linux/2015-05/117378.htm
http://www.cnblogs.com/jkko123/p/6361476.html?utm_source=itdadao&utm_medium=referral
● tftp烧写
tftp 30000000 leds.bin #将leds.bin下载到地址30000000(nand flash)
nand erase bootloader #先擦除bootlloader代表的地址
nand write 30000000 bootloader #将地址30000000处的程序烧写到BootLoader处