目录
树莓派Linux源码配置(适合树莓派)
总体概述
配置的三种方式
1.照搬厂家的配置(使用这种方式)
2.参考厂家的配置(感受一下)
3.完全自主配置(需要一定工作经验)
树莓派Linux源码配置(适合树莓派)
总体概述
配置的三种方式
参照博文(一般厂家会给到这样的操作手册,没有就凉凉了,玩不了):http://nicekwell.net/blog/20171108/shu-mei-pai-nei-he-kai-fa-shuo-ming-xia-zai-dai-ma-bian-yi-ti-huan-nei-he.html
前提:交叉编译工具要先安装好,因为内核配置全部在宿主机ubuntu下完成的,必须要有交叉编译工具。
1.照搬厂家的配置(使用这种方式)
在内核源码目录文件下搜索厂家配置文件(此步骤作为了解)
可以找到树莓派3、树莓派4使用的厂家配置文件bcm2709_defconfig
(注意:配置config
linux源码中有很多工程:
树莓派1的工程是bcmrpi_defconfig;
树莓派2、3的工程是bcm2709_defconfig。)
find . -name *_defconfig
执行命令
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig
注意:这个命令要在路径/linux-rpi-4.14.y(存放的源码目录文件)下执行,否则提示 “make: *** 没有规则可制作目标“bcm2709_defconfig”。
执行结果:可以发现 厂家bcm2709_defconfig 变成了 .config
2.参考厂家的配置
基于厂家的config,用make menuconfig一项项配置,通常需要自主增删一些驱动
首先要安装必要的库编译
安装必要的库:
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
执行menuconfig
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make menuconfig
回车 selects submenus 进入子菜单带—>的
[ ]表示略过的,不参与编译
空格键切换状态
驱动的两种加载方式:
[*] built-in:表示编译进了内核,zImage包含了驱动。
[M] modularizes:表示以模块的方式生成驱动文件xxx.ko。系统启动后,通过命令inmosd xxx.ko临时加载(后面的驱动就是这么进行的)
3.完全自主配置(需要一定工作经验)
可以工作2-3年后在涉猎。