首页 > 其他分享 >openwrt内核模块怎样解决哈希依赖问题

openwrt内核模块怎样解决哈希依赖问题

时间:2023-01-31 09:24:18浏览次数:57  
标签:make 编译 内核 哈希 软件包 固件 openwrt 内核模块

openwrt内核模块怎样解决哈希依赖问题 

来源 https://forum.gl-inet.cn/forum.php?mod=viewthread&tid=1032&extra=page%3D1

参考 https://forum.gl-inet.cn/forum.php?mod=forumdisplay&fid=46&page=1

 

openwrt为了确保在安装内核模块时出现符号表丢失等情况,对于内核软件包都需要做哈希校验,软件包编译环境的内核哈希与当前固件的内核哈希一致才可以安装,否则会出现类似下面的错误提示。

很多情况下,用户需要安装自己编译的kmod就无法安装,下面教大家怎样处理这种情况。
在使用之前,请确保你要安装的内核包一定可用,否则可能出现内核崩溃,设备成砖的情况

1. 获取当前固件的内核哈希值
执行以下命令

opkg info  kernel

返回结果的红框部分即为当前的内核哈希


2. 使用获取到的HASH值编译需要的软件包(软件包路径请自己根据实际情况替换)

make V=s LINUX_VERMAGIC:=86cd10224392f0f1f47de97edd009387 ./package/kernel/linux/{clean,compile}

3. 找到编译好的ipk文件,导入到固件安装即可
4. 如果重新编译固件,但是想要引用之前的软件仓库(注意这种方法仅在内核配置和版本不变的情况下使用)

  1. make -j17 target/linux/{clean,compile} V=s LINUX_VERMAGIC:=86cd10224392f0f1f47de97edd009387
  2. make V=s LINUX_VERMAGIC:=86cd10224392f0f1f47de97edd009387 ./package/kernel/linux/{clean,compile}
  3. make -j17 LINUX_VERMAGIC:=86cd10224392f0f1f47de97edd009387

 

编译openwrt固件时,遇到一点问题就要重新编译,效率非常低

1. 仅编译单个软件包(以编译opkg为例)

make package/opkg/compile

2. 仅编译软件包需要的主机工具(以编译opkg需要的主机工具为例)

make package/opkg/host/compile

3. 可选软件包出错时不阻塞编译

make IGNORE_ERRORS=m

4. 必选软件包出错时不阻塞编译

make IGNORE_ERRORS=y

5. 使用n个线程同时编译(一般CPU核心数+1效率最高,我这里是16核的)

make -j17

6. 只编译内核

make target/linux/install

7. 仅打包固件而不编译软件包(前置条件是需要的软件包之前已经编译通过)

make target/install

8. 将当前配置做差异化备份并保存成文件

./scripts/diffconfig.sh >diff.conf

9. 将差异化备份文件应用到编译配置

  1. cp diff.conf .config
  2. make defconfig
  ================= End    

 

标签:make,编译,内核,哈希,软件包,固件,openwrt,内核模块
From: https://www.cnblogs.com/lsgxeva/p/17077781.html

相关文章

  • 【LeetCode哈希表#3】快乐数(set)
    快乐数力扣题目链接(opensnewwindow)编写一个算法来判断一个数n是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后......
  • openwrt开发使用-制作patch补丁
    前言今天分享的内容是openwrt里面使用patch文件进行自己定制化开发。作者:良知犹存转载授权以及围观:欢迎关注微信公众号:羽林君或者添加作者个人微信:become_me安装quil......
  • openwrt_imagebuilder_修改缺省配置_network_firewall_root密码
    openwrt_imagebuilder_修改缺省配置_network_firewall_root密码转载注明来源:本文链接来自osnosn的博客,写于2023-01-29.参考和方法【官方文档:使用ImageBuilder】......
  • 哈希表
    概述什么的等我有空再补。用的时候直接开一个myhasha,然后像普通的unordered_map一样a[x]就可以了(&[]重定义的功劳)。structmyhash{ structdata{ ullk......
  • Python中得可变哈希不可变哈希
    类型与哈希哈希(散列计算),可以将任意长度的输出,通过散列算法变为固定长度输出,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。​​1.可哈希......
  • MySQL 哈希索引、空间数据索引、全文索引
    1.哈希索引哈希索引基于哈希表实现,仅支持精确匹配索引所有列的查询。对于每行数据,存储引擎都会对所有的索引列计算出一个哈希码。哈希索引将所有的哈希码存储在索引中,同时保......
  • openwrt搭建WEB服务器(LNMP)
    opkgupdate-------------------------------------------------------------------准备:  安装USB/挂载/分区工具--------------------------------------------------......
  • 关于AC自动机的一些理解 || Luogu3121 & 4824 Censoring - 哈希 - AC自动机
    题目链接:https://www.luogu.com.cn/problem/P3121(4824)题解:4824是CensoringS,只需要对单模式串进行操作,3121需要对多模式串4824开一个前缀hash数组,每次扫到当前点......
  • 常用哈希质数
    61,83,113,151,211,281,379,509683,911/一千以下1217,1627,2179,2909,3881,......
  • 【LeetCode哈希表#2】两个数组的交集(Set+数组)
    两个数组的交集力扣题目链接(opensnewwindow)题意:给定两个数组,编写一个函数来计算它们的交集。说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的......