马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
主动安装依靠包
添加条件使能
#ex: filetype=sh
bash_ls 辨认

到达预期,多个硬件情况


等候文件文件体系挂在完成
大概创建 /sys/class/ 属性文件灌入设置操纵
AI 提供的 netlink 调试方法,也是现在主流调用方法,socket yyds- #include <linux/module.h>
- #include <linux/netlink.h>
- #include <linux/skbuff.h>
- #include <net/sock.h>
- #define NETLINK_USER 31
- #define NETLINK_CMD_DEBUG_INFO 100 // 调试命令
- struct sock *nl_sock = NULL;
- static void send_debug_info(struct sk_buff *skb, struct nlmsghdr *nlh) {
- struct sk_buff *skb_out;
- struct nlmsghdr *nlh_out;
- char *debug_info = "Kernel Debug Info: Module is working correctly.";
- int debug_info_len = strlen(debug_info);
- int pid;
- int res;
- pid = nlh->nlmsg_pid; // 用户进程的 PID
- // 创建响应消息
- skb_out = nlmsg_new(debug_info_len, GFP_KERNEL);
- if (!skb_out) {
- pr_err("Failed to allocate new skb\n");
- return;
- }
- nlh_out = nlmsg_put(skb_out, 0, 0, NLMSG_DONE, debug_info_len, 0);
- strncpy(nlmsg_data(nlh_out), debug_info, debug_info_len);
- // 发送消息
- res = nlmsg_unicast(nl_sock, skb_out, pid);
- if (res < 0) {
- pr_err("Failed to send debug info to user-space\n");
- }
- }
- static void netlink_receive_msg(struct sk_buff *skb) {
- struct nlmsghdr *nlh;
- nlh = (struct nlmsghdr *)skb->data;
- pr_info("Received Netlink message: %s\n", (char *)nlmsg_data(nlh));
- // 根据命令类型处理消息
- switch (nlh->nlmsg_type) {
- case NETLINK_CMD_DEBUG_INFO:
- send_debug_info(skb, nlh);
- break;
- default:
- pr_warn("Unknown Netlink command: %d\n", nlh->nlmsg_type);
- break;
- }
- }
- static int __init netlink_debug_init(void) {
- struct netlink_kernel_cfg cfg = {
- .input = netlink_receive_msg, // 接收消息的回调函数
- };
- nl_sock = netlink_kernel_create(&init_net, NETLINK_USER, &cfg);
- if (!nl_sock) {
- pr_err("Failed to create Netlink socket\n");
- return -ENOMEM;
- }
- pr_info("Netlink Debug Module initialized\n");
- return 0;
- }
- static void __exit netlink_debug_exit(void) {
- netlink_kernel_release(nl_sock);
- pr_info("Netlink Debug Module exited\n");
- }
- module_init(netlink_debug_init);
- module_exit(netlink_debug_exit);
- MODULE_LICENSE("GPL");
- MODULE_AUTHOR("Your Name");
- MODULE_DESCRIPTION("Netlink Debug Interface Example");
复制代码 最方便的是直接访问内核,有bug 的时间非常轻易内核瓦解
开辟一些自界说的驱动还是很快乐的,使用netlink 接口完成热加载设置
简朴的装备场景就完全可以设置举行,用户和多内核就在sysfs中设置使用
neovim + clangd 使用神器

使用yocto 来做qemu 会很方便
curl https://pyenv.run | bash #设置pyenv 切换python 情况
sudo apt install libssl-dev liblzma-dev
这就是为啥不想用 yocto 的缘故起因


风扇转不绝
毁灭吧
还是buildroot 舒服 香 ,完事儿

buildroot 中主动编译 autoconf 的地方
|