编译内核lspcu 工具源码 util-linux

embedded/2024/9/24 13:35:57/

1. 获取源码

wget https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.34/util-linux-2.34.tar.xz

2. 解压

tar xvf util-linux-2.34.tar.gz

cd util-linux-2.34

本次实验环境:使用云主机

1.查看Lscpu , dmesg ,lsblk 等版本

我们看到这些指令都是基于Util-linux 2.23.2版本,如何查看这写信息获取方法,如何自己编译这些Tool?

不仅仅是以上几个命令util-linux是Kernel 基本的工具 ,不同版本会增添一些命令。接下来我们会自己编译自己的Tool,一方面Tool和不同Cpu的适配存在问题需要Debug ,一方面有助于我们学习LinuxKernel。

基本介绍:

在 util-linux 工具集中,有一些常用的命令经常被 Linux 系统管理员和用户使用。以下是一些 util-linux 工具中常见的命令及其功能:

1. **fdisk**:用于分区磁盘的命令,常见的操作包括创建、删除、调整磁盘分区。例如:`fdisk /dev/sda`。

2. **mount** 和 **umount**:用于挂载和卸载文件系统的命令。例如:`mount /dev/sdb1 /mnt` 和

`umount /mnt`。

3. **blkid**:用于查看块设备的文件系统类型和属性的命令。例如:`blkid /dev/sda1`。

4. **kill**:用于终止进程的命令,可以通过进程 ID 或名称终止指定的进程。例如:`kill -9 PID`。

5. **more** 和 **less**:用于分页查看文本文件内容的命令。例如:`more file.txt` 和 `less file.txt`。

6. **su** 和 **sudo**:用于切换用户身份或以超级用户权限执行命令的命令。例如:`su username` 和

`sudo command`。

7. **dmesg**:用于查看系统日志的命令,显示内核环缓冲区的内容,用于诊断系统问题。例如:

`dmesg | grep error`。

8. **hwclock**:用于设置和显示系统硬件时钟的命令。例如:`hwclock --show`。

9. **losetup**:用于管理循环设备的命令,允许将文件作为块设备挂载到文件系统中。例如:

`losetup -f file.img`。

10. **rename**:用于批量重命名文件的命令。例如:`rename 's/old/new/' *.txt`。

11.lscpu:该命令用于显示有关 CPU 架构的信息,包括处理器架构、CPU 核心数量、线程数、字节顺序等。运行 lscpu 命令可以查看系统的 CPU 相关信息。

编译方法及报错解决方法

1.执行autogen.sh生成configure

2. 安装依赖包 yum install gettext-devel  // 包含 autopoint

Apt-get install   autopoint 

 Apt-get install    bison 

需要以下依赖包

 需要安装autopoint aclocal autoconf   auto header  auto make libtooliaze 等tool

3.报错line 126: po/update-potfiles: Permission denied

权限报错:直接Chmod 777  -R *,运行成功后生成Configure

4运行 ./configure 出现错误

如果提示configure: error: liblastlog2 selected, but required sqlite3 library not available,禁用liblastlog2

 sudo ./configure --disable-liblastlog2

5. Configure 成功后使用Make Make -j64 使用多核加快编译

报错

在Makefiles找到 CFLAGS  原始没有添加-std=c99  4862行

 CFLAGS = -g -O2 -std=c99

:4862 跳转到 4862行 修改即可

6.make install  //安装到本地  如果不替换本地tool 不需要make install 

Tool 目录下生成各个Tool的原始文件

这个Tool 可以通过./方式运行  例如 ./lscu   ./lsblk 

替换系统下原始的Toll  ,Make install 后: 将自己编译的Tool 替换掉系统下原始的,直接使用lscpu 就是使用刚编译的Tool

整个Tool源码都可以自己适配,编译后可以作为自己的linux Tool,可以自己修改Tool 定制自己的Tool版本 


http://www.ppmy.cn/embedded/116110.html

相关文章

学习使用Docker

学习使用Docker 目录 学习使用Docker安装环境创建镜像创建镜像指令查看镜像指令导出镜像指令 部署portainer阿里云服务器部署docker和Portainer 安装环境 windows下安装docker desktop 创建镜像 特定tomcat版本war包镜像 # FROM openjdk:8-jdk FROM dockerproxy.net/librar…

【深度】为GPT-5而生的「草莓」模型!从快思考—慢思考到Self-play RL的强化学习框架

原创 超 超的闲思世界 2024年09月11日 19:17 北京 9月11日消息,据外媒The Information昨晚报道,OpenAI的新模型「草莓」(Strawberry),将在未来两周内作为ChatGPT服务的一部分发布。 「草莓」项目是OpenAI盛传已久的…

文档矫正算法:DocTr++

文档弯曲矫正(Document Image Rectification)的主要作用是在图像处理领域中,对由于拍摄、扫描或打印过程中产生的弯曲、扭曲文档进行校正,使其恢复为平整、易读的形态。 一. 论文和代码 论文地址:https://arxiv.org/…

[leetcode刷题]面试经典150题之5多数元素元素(简单)【附Boyer-Moore 投票算法(摩尔投票法)】

很有意思的一个题,想了半天没想出来,最后发现两行代码就做出来了。写完后学习到还可以用Boyer-Moore 投票算法,能减小空间复杂度,我把它写在后面,可以进一步学习。 题目 多数元素 给定一个大小为 n 的数组 nums &am…

Golang Beego+Vue打造的高校科研工作管理系统,让信息发布更及时,项目管理更透明

🍊作者:计算机毕设匠心工作室 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目…

TCL25届校招测评笔试TAS人才测评题库:高分攻略真题分析

🌟 职场新人必看:TCL校招测评全解析 🌟 亲爱的小伙伴们,你是否正准备踏入职场,或是对即将到来的校招感到既兴奋又紧张?今天,我将带你深入了解TCL校招中的TAS人才测评,让你在面试前做…

ASP .NET CORE 6 项目实现WebSocket通信实践

一、简介 WebSocket 是一种计算机通信协议,提供了全双工通信通道,特别适用于需要频繁更新数据的应用,如实时聊天、在线游戏和股票行情等。它在 Web 应用中有着广泛的应用,因为它能够在客户端和服务器之间建立持久连接,…

floodfill算法(2)

一:太平洋大西洋水流问题 题目: 存在一个m*n的网格岛屿,岛屿的上面边界和左边边界都为太平洋,然后右边和下边边界都为大西洋,网格中的数值高的单元格中的水可以流进相邻单元格数值小的那个,编写一个程序&…