树莓派linux源码配置
驱动代码的编写
驱动代码编译需要一个提前编译好的内核
编译内核就必须要配置
配置的最终目标生成.config文件,该文件指导Makefile把有用的东西组织成内核
厂家配linux内核源码,比如树莓派,树莓派linux内核源码
第一种方式:
cp 厂家.config .config
进入~/SYSTEM/linux-rpi-4.14.y
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig
此命令功能是获取bcm2709_defconfig的配置到 .config里。
第二种方式:
make menuconfig 一项一项进行配置,通常是基于厂家的config来配置
安装nucrse和其他用到的库和工具
sudo apt-get install bc
sudo apt-get install libncurses5-dev libncursesw5-dev
sudo apt-get install zlib1g:i386
sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make menuconfig
修改后进行配置
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make -j4 zImage modules dtbs
j4:指定多少电脑资源进行编译
zImage:生成内核镜像
modules:生成驱动模块
dtbs:生成配置文件
第一次编译时间会比较长
第三种方式:
完全自己来配置
在arch/arm/boot文件夹下有zImage
打包下来
./scripts/mkknlimg arch/arm/boot/zImage ./kernel_new.img
挂载sd卡
插入ubuntu
sudo mount /dev/sdb1 /home/xie/data1
sudo mount /dev/sdb2 /home/xie/data2
安装modules
sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=/home/xie/data2 modules_install
安装更新kernel.img
备份
xie@ubuntu:~/data1$ cp kernel7.img kernel7Old.img
把新生成 的靠背板到data1,起名字kernel7.img