记录一次平台更换内核的过程

首先需要了解一些常识

1.开机启动的过程

一:首先进入BIOS
BIOS加电(台湾用语:引导)自检(Power On Self Test – POST)。BIOS执行内存地址为FFFF:0000H处的跳转指令,跳转到固化在ROM中的自检程序处,对系统硬件(包括内存)进行检查。
读取主引导记录(MBR)。当BIOS检查到硬件正常并与CMOS中的设置相符后,按照CMOS中对启动设备的设置顺序检测可用的启动设备。BIOS将相应启动设备的第一个扇区(也就是MBR扇区)读入内存地址为0000:7C00H处。
检查0000:7DFEH-0000:7DFFH(MBR的结束标志位)是否等于55AAH,若不等于则转去尝试其他启动设备,如果没有启动设备满足要求则显示"NO ROM BASIC"然后死机。
当检测到有启动设备满足要求后,BIOS将控制权交给相应启动设备。启动设备的MBR将自己复制到0000:0600H处,然后继续执行。(来自https://zh.wikipedia.org/wiki/%E4%B8%BB%E5%BC%95%E5%AF%BC%E8%AE%B0%E5%BD%95)
根据MBR中的引导代码启动引导程序。
二:EFI
三:BOOT LOADER (GRUB)
根据grub.cfg选择内核启动
console=tty0 console=ttyS0,115200n8 可以打印日志

2.内核编译的参数

.config Kconfig menuconfig 配置
make help 可以了解相关的内容
initd modules - Build all modules 通过mkinifram -o /boot/initrd -d /lib/modules/XXX
dtbs - Build device tree blobs for enabled boards
Image - Uncompressed kernel image (arch/arm64/boot/Image)
每次修改完内核文件后 都需要更新/lib/modules下的驱动文件

3.串口打印日志

1.设备串口和自己的显示器连接或者另外一台设备(需要有串口)
2.kill掉设备上占用ttyS0的进程 /usr/ad/bin/app_dogs/ttyS0_dog.sh 杀掉软狗 防止重复拉起
3.agetty 替换成一个 while :; sleep 1000;done 死循环 防止占用ttyS0
使用minicom -D /dev/ttyS0 -s
3.编辑设置Serial port setup 回车按一下f
会变成这样 F - Hardware Flow Control : No
4. Exit

4.网卡适配

由于使用的dpdk 所以需要了解dpdk对改网卡驱动的支持
dpdk 使用PMD收包模式 而内核使用中断的方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值