gpt4 book ai didi

linux - 如何使用嵌入式设备在内核上工作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:35:31 25 4
gpt4 key购买 nike

现在,我正在使用 printk 进行编译,将生成的内核复制到 U 盘,将 U 盘安装到设备上,安装包含内核的分区,复制新的内核从 USB 内存棒到分区,重新启动ing,然后通过将 dmesg 输出捕获到文件来检查跟踪。

在工作站上:

make my-kernel
cp new_kernel /path/to/usb/stick

在嵌入式设备上:

mount /dev/sda1/ /mnt
mount kernelpartition /tmp/kernel
cp /mnt/new_kernel /tmp/kernel
sync
umount /tmp/kernel
umount /dev/sda1
reboot

dmesg > mytrace
less mytrace

开发就这么痛苦吗?我不明白任何有意义的重要内核代码是如何开发出来的。

最佳答案

最佳工作流程将取决于您使用的设备的功能。他们通常会有一个引导加载程序,其中包含从网络或串行端口引导的选项。

我也在做一些嵌入式开发,这是我想出的。我正在使用的设备有一些内置闪存,默认情况下它是从中启动的,但也有一个 USB 端口和一个 SD 卡插槽。它有一个相当原始的引导加载程序。

  • 在 USB 端口上,我连接了一个 wifi dongle。我确保使用所需的模块编译内核,以使 USB 加密狗启动并运行。

  • 我构建了一个最小的内核和根文件系统,并将其闪存到设备上。此内核启用了选项 CONFIG_KEXEC。根文件系统有 kexec 工具。我使用 buildroot 构建系统.

  • 当这个系统启动时,它会尝试挂载 SDCARD 并检查它是否可以在根目录中找到内核。如果可以,则使用 kexec启动第二个内核。这是使用我编写的自定义初始化脚本完成的。

如果您的设备上没有 SD 卡插槽,您可能可以使用 USB 内存棒做类似的事情。

通过此设置,我可以使用 sftp 将新内核镜像传输到 sdcard,然后使用 kexec 启动它。它让我省去了每次更改内核时重新刷新设备的麻烦。

关于linux - 如何使用嵌入式设备在内核上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com