内核移植与网卡移植
内核移植的思想不难,但是必须要动手做才能体验
选配置主要是选cpu 和 board,一般都是基于官方的评估板来,很少自己做这方面
这部分内容主要是找各种信息和资料
内核配置编译
大致流程
1 下载内核源码
2 Linux系统中解压 注意不能在window的共享目录下解压和编译
3 修改Makefile指定交叉编译工具链
可以通过make ARCH=arm CROSS_COMPILE=交叉编译工具链名字这样指定平台为arm和交叉编译工具链,也可以在makefile里写死
4 导入配置 例如make exynos_defconfig(配置列表见arch/arm/configs/ 找最类似的)
5 配置内核make menuconfig(这个图形化配置选项十分复杂有时间详细研究)
此处哪怕不修改配置选项也需要运行该命令来激活一下配置
6 编译内核 make uImage
6 编译设备树 make dtbs
网卡移植
1 配置内核支持网络
make menuconfig
配置网络协议支持tcp/ip
[*]Networking support ->//注意要先输入y,选择该菜单,再按enter键才能看到下面的选项
2 配置支持网络文件系统NFS
File systems->[*]Network File Systems 再看下级菜单
3 配置支持dm9000网卡驱动
只是用这个网卡型号举个例子
Device Drivers->
[*]Network device support ->
[*]Ethernet driver support ->
<*>DM9000 support
如果型号是其他的就需要根据自己的来
4 网卡设备描述 设备树
按照1-3步进行移植,大概率还是不能用,因为芯片和网卡芯片的引脚连接可能
和默认的驱动不一样,这时候需要改设备树。也就是需要更改dtb文件对应的dts文件
主要目的是实现NFS挂载
你的内核首先要支持TCP/IP协议
这个menuconfig配置还支持配置各种硬件 比如 SPI IIC 串口几 等
首要原则是如果搞不清这个配置选项需不需要保留,那就先留着,后续慢慢裁剪内核,能多选别漏选
有时候只修改对应设备的设备树文件还是不能正常移植,这个时候可能还得改一些底层的内核文件比如/driver/clk/clk.c 需要自己多搜集信息多啃文档了