Ubuntu 22.04 源码下载、编译
Kernel/BuildYourOwnKernel - Ubuntu Wiki
https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
一、查询当前系统内核版本
root@ubuntu22:~# uname -r
5.15.0-118-generic
二、查询本地软件包数据库中的内核源码信息
root@ubuntu22:~# apt search linux-source
Sorting... Done
Full Text Search... Done
linux-source/jammy-updates,jammy-security,now 5.15.0.119.119 all [installed]Linux kernel source with Ubuntu patcheslinux-source-5.15.0/jammy-updates,jammy-security,now 5.15.0-119.129 all [installed,automatic]Linux kernel source for version 5.15.0 with Ubuntu patcheslinux-source-5.19.0/jammy-updates,jammy-security 5.19.0-50.50 allLinux kernel source for version 5.19.0 with Ubuntu patcheslinux-source-6.2.0/jammy-updates,jammy-security 6.2.0-39.40~22.04.1 allLinux kernel source for version 6.2.0 with Ubuntu patcheslinux-source-6.5.0/jammy-updates 6.5.0-45.45~22.04.1 allLinux kernel source for version 6.5.0 with Ubuntu patches
三、源码下载
1、apt source
将内核源码下载到当前目录并自动解压,提供了更完整的源代码包,包括 Ubuntu 特定的修改。
(1)apt source linux
安装仓库中最新可用的内核源代码版本。
linux总是可用的,指向最新通用版本。
(2)apt source linux-image-$(uname -r)
获取与当前运行的内核版本完全匹配的源代码,通常只包含必要的文件。
并非所有版本在仓库中都有完全匹配的源代码。
(3)apt source linux-image-unsigned-$(uname -r) (适用于开发)
获取未签名的内核包,适合开发和测试。并非所有版本在仓库中都有完全匹配的源代码。
2、apt install
将内核源码下载到/usr/src目录,安装的是一个"原始"的源代码包,可能需要额外的步骤来应用 Ubuntu 特定的补丁。
(1)apt install linux-source
安装仓库中最新可用的内核源代码版本
linux-source 包总是可用的,指向最新版本
(2)apt install linux-source-<version>
安装指定版本的内核源代码
并非所有版本都有对应的 linux-source-<version> 包
5.15.0-118-generic,version=5.15.0,将下载 5.15 系列的通用源码。
如要精确匹配 5.15.0-118-generic 版本,需要额外下载 Ubuntu 特定的补丁。
3、apt下载源码
(1)apt source linux
root@ubuntu22:~# apt source linux
Reading package lists... Done
NOTICE: 'linux' packaging is maintained in the 'Git' version control system at:
git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
Please use:
git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
to retrieve the latest (possibly unreleased) updates to the package.
eed to get 206 MB of source archives.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (dsc) [7,799 B]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (tar) [195 MB]
Get:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (diff) [10.5 MB]
Fetched 206 MB in 49s (4,168 kB/s)
dpkg-source: info: extracting linux in linux-5.15.0
dpkg-source: info: unpacking linux_5.15.0.orig.tar.gz
dpkg-source: info: applying linux_5.15.0-121.131.diff.gzroot@ubuntu22:~# ll
total 200708
drwxr-xr-x 3 root root 4096 Sep 13 06:32 ./
drwx------ 6 root root 4096 Sep 13 06:23 ../
drwxr-xr-x 28 root root 4096 Sep 13 06:32 linux-5.15.0/
-rw-r--r-- 1 root root 10533549 Aug 12 13:17 linux_5.15.0-121.131.diff.gz
-rw-r--r-- 1 root root 7799 Aug 12 13:17 linux_5.15.0-121.131.dsc
-rw-r--r-- 1 root root 194969557 Nov 18 2021 linux_5.15.0.orig.tar.gzroot@ubuntu22:~# cat linux-5.15.0/Makefile
...
VERSION = 5
PATCHLEVEL = 15
SUBLEVEL = 163
EXTRAVERSION =
NAME = Trick or Treat
...
(2)apt source linux-image-$(uname -r)
root@ubuntu22:~# apt source linux-image-$(uname -r)
Reading package lists... Done
Picking 'linux-signed' as source package instead of 'linux-image-5.15.0-118-generic'
Need to get 26.4 kB of source archives.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux-signed 5.15.0-121.131 (dsc) [2,370 B]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux-signed 5.15.0-121.131 (tar) [24.1 kB]
Fetched 26.4 kB in 1s (51.3 kB/s)
dpkg-source: info: extracting linux-signed in linux-signed-5.15.0
dpkg-source: info: unpacking linux-signed_5.15.0-121.131.tar.xzroot@ubuntu22:~# ll
total 40
drwxr-xr-x 3 root root 4096 Sep 13 06:49 ./
drwx------ 6 root root 4096 Sep 13 06:44 ../
drwxr-xr-x 3 root root 4096 May 27 13:50 linux-signed-5.15.0/
-rw-r--r-- 1 root root 2370 Aug 12 13:17 linux-signed_5.15.0-121.131.dsc
-rw-r--r-- 1 root root 24076 Aug 12 13:17 linux-signed_5.15.0-121.131.tar.xzroot@ubuntu22:~# ll linux-signed-5.15.0/
total 24
drwxr-xr-x 3 root root 4096 May 27 13:50 ./
drwxr-xr-x 3 root root 4096 Sep 13 06:49 ../
drwxr-xr-x 6 root root 4096 Aug 9 08:16 debian/
-rwxr-xr-x 1 root root 6988 May 23 15:13 download-signed*
-rwxr-xr-x 1 root root 450 May 23 15:13 download-unsigned*root@ubuntu22:~# ll linux-signed-5.15.0/debian/
total 180
drwxr-xr-x 6 root root 4096 Aug 9 08:16 ./
drwxr-xr-x 3 root root 4096 May 27 13:50 ../
drwxr-xr-x 3 root root 4096 Aug 1 13:01 ancillary/
-rw-r--r-- 1 root root 121300 Aug 9 08:16 changelog
-rw-r--r-- 1 root root 2 Apr 25 14:35 compat
-rw-r--r-- 1 root root 1949 Aug 9 08:16 control
-rw-r--r-- 1 root root 277 Aug 6 13:11 control.stub
-rw-r--r-- 1 root root 1456 Nov 14 2023 copyright
-rw-r--r-- 1 root root 163 Aug 6 13:11 package.config
-rwxr-xr-x 1 root root 5693 Aug 6 13:11 rules*
drwxr-xr-x 3 root root 4096 Aug 6 13:11 scripts/
-rw-r--r-- 1 root root 12 Aug 6 13:11 signed-version
drwxr-xr-x 2 root root 4096 Nov 14 2023 source/
drwxr-xr-x 2 root root 4096 Aug 6 13:11 templates/
-rw-r--r-- 1 root root 21 Aug 9 07:41 tracking-bug
(3)apt source linux-image-unsigned-$(uname -r)
root@ubuntu22:~# apt source linux-image-unsigned-$(uname -r)
Reading package lists... Done
Picking 'linux' as source package instead of 'linux-image-unsigned-5.15.0-118-generic'
NOTICE: 'linux' packaging is maintained in the 'Git' version control system at:
git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
Please use:
git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
to retrieve the latest (possibly unreleased) updates to the package.
Need to get 206 MB of source archives.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (dsc) [7,799 B]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (tar) [195 MB]
Get:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main linux 5.15.0-121.131 (diff) [10.5 MB]
Fetched 206 MB in 2min 21s (1,455 kB/s)
dpkg-source: info: extracting linux in linux-5.15.0
dpkg-source: info: unpacking linux_5.15.0.orig.tar.gz
dpkg-source: info: applying linux_5.15.0-121.131.diff.gz
(4)apt install linux-source
# cd /usr/src# ll
total 16
drwxr-xr-x 4 root root 4096 Aug 20 08:12 ./
drwxr-xr-x 14 root root 4096 Aug 9 2022 ../
drwxr-xr-x 25 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118/
drwxr-xr-x 7 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118-generic/# apt install linux-source
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:linux-source-5.15.0
Suggested packages:libncurses-dev | ncurses-dev kernel-package libqt3-dev
The following NEW packages will be installed:linux-source linux-source-5.15.0
0 upgraded, 2 newly installed, 0 to remove and 112 not upgraded.
Need to get 153 MB of archives.
After this operation, 161 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 linux-source-5.15.0 all 5.15.0-121.131 [153 MB]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 linux-source all 5.15.0.121.121 [2,310 B]
Fetched 153 MB in 1min 23s (1,834 kB/s)# ll
total 20
drwxr-xr-x 5 root root 4096 Sep 13 03:45 ./
drwxr-xr-x 14 root root 4096 Aug 9 2022 ../
drwxr-xr-x 25 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118/
drwxr-xr-x 7 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118-generic/
drwxr-xr-x 4 root root 4096 Sep 13 03:45 linux-source-5.15.0/
lrwxrwxrwx 1 root root 47 Aug 9 08:15 linux-source-5.15.0.tar.bz2 -> linux-source-5.15.0/linux-source-5.15.0.tar.bz2# ll linux-source-5.15.0
total 149944
drwxr-xr-x 4 root root 4096 Sep 13 03:45 ./
drwxr-xr-x 5 root root 4096 Sep 13 03:45 ../
drwxr-xr-x 15 root root 4096 Sep 13 03:45 debian/
drwxr-xr-x 7 root root 4096 Sep 13 03:45 debian.master/
-rw-r--r-- 1 root root 153523863 Aug 9 08:15 linux-source-5.15.0.tar.bz2
(5)apt install linux-source-5.15.0
# apt install linux-source-5.15.0
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:libncurses-dev | ncurses-dev kernel-package libqt3-dev
The following NEW packages will be installed:linux-source-5.15.0
0 upgraded, 1 newly installed, 0 to remove and 112 not upgraded.
Need to get 153 MB of archives.
After this operation, 161 MB of additional disk space will be used.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 linux-source-5.15.0 all 5.15.0-121.131 [153 MB]
Fetched 153 MB in 1min 4s (2,401 kB/s) # ll
total 20
drwxr-xr-x 5 root root 4096 Sep 13 07:29 ./
drwxr-xr-x 14 root root 4096 Aug 9 2022 ../
drwxr-xr-x 25 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118/
drwxr-xr-x 7 root root 4096 Aug 20 08:12 linux-headers-5.15.0-118-generic/
drwxr-xr-x 4 root root 4096 Sep 13 07:29 linux-source-5.15.0/
lrwxrwxrwx 1 root root 47 Aug 9 08:15 linux-source-5.15.0.tar.bz2 -> linux-source-5.15.0/linux-source-5.15.0.tar.bz2c# ll linux-source-5.15.0
total 149944
drwxr-xr-x 4 root root 4096 Sep 13 07:29 ./
drwxr-xr-x 5 root root 4096 Sep 13 07:29 ../
drwxr-xr-x 15 root root 4096 Sep 13 07:29 debian/
drwxr-xr-x 7 root root 4096 Sep 13 07:29 debian.master/
-rw-r--r-- 1 root root 153523863 Aug 9 08:15 linux-source-5.15.0.tar.bz2
4、launchpad下载源码 (适用于开发)
Ubuntu 官方使用的代码托管和协作平台,可以浏览下载 Ubuntu 内核源码
https://code.launchpad.net/ubuntu/+source/linux
ubuntu22.04
git clone https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
git tag
最接近5.15.0-118-generic的版本为 Ubuntu-5.15.0-118.128
git checkout Ubuntu-5.15.0-118.128
只clone指定标签的最新代码(无其它标签)(有没有single-branch参数结果都一样)
git clone --branch Ubuntu-5.15.0-118.128 --depth 1 --single-branch https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy
5、Ubuntu内核官方git库
https://kernel.ubuntu.com/git/
实际下载地址 code.launchpad.net
四、编译
1、构建环境
安装一些软件包。
$ sudo apt build-dep linux linux-image-unsigned-$(uname -r)
可能还需要以下附加包,依赖于具体的系统版本。
sudo apt install libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf llvm
2、下载源码
本文使用 apt source linux-image-unsigned-$(uname -r) 下载源码
$ apt source linux-image-unsigned-$(uname -r)$ ll
total 200712
drwxrwxr-x 3 zhang zhang 4096 Sep 21 05:55 ./
drwxr-x--- 8 zhang zhang 4096 Sep 21 05:52 ../
drwxr-xr-x 28 root root 4096 Sep 21 05:55 linux-5.15.0/
-rw-r--r-- 1 root root 10538925 Sep 16 20:13 linux_5.15.0-122.132.diff.gz
-rw-r--r-- 1 root root 7799 Sep 16 20:13 linux_5.15.0-122.132.dsc
-rw-r--r-- 1 root root 194969557 Nov 18 2021 linux_5.15.0.orig.tar.gz$ head -n 5 linux-5.15.0/Makefile
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 15
SUBLEVEL = 163
EXTRAVERSION =
3、修改配置
$ chmod a+x debian/rules
$ chmod a+x debian/scripts/*
$ chmod a+x debian/scripts/misc/*
$ fakeroot debian/rules clean
$ # you need to go through each (Y, Exit, Y, Exit..) or get a complaint about config later
$ fakeroot debian/rules editconfigs
问题: fakeroot debian/rules editconfigs 报错: FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmp.f7cP7kt5Xl/arm64-config.flavour.generic' 解决: TODO(不执行editconfigs命令,直接下一步构建内核,也能构建成功)
4、构建内核
$ fakeroot debian/rules clean$ # quicker build:
$ fakeroot debian/rules binary-headers binary-generic binary-perarch$ # if you need linux-tools or lowlatency kernel, run instead:
$ fakeroot debian/rules binary
5、安装内核
$ sudo dpkg -i linux*5.15.0-122.132*.deb
$ sudo reboot
6、构建包含调式符号的内核
$ sudo apt install pkg-config-dbgsym
$ fakeroot debian/rules clean
$ fakeroot debian/rules binary-headers binary-generic binary-perarch skipdbg=false
相关文章:
Ubuntu 22.04 源码下载、编译
Kernel/BuildYourOwnKernel - Ubuntu Wikihttps://wiki.ubuntu.com/Kernel/BuildYourOwnKernel 一、查询当前系统内核版本 rootubuntu22:~# uname -r 5.15.0-118-generic 二、查询本地软件包数据库中的内核源码信息 rootubuntu22:~# apt search linux-source Sorting... Do…...
【深度学习实战—11】:基于Pytorch实现谷歌QuickDraw数据集的下载、解析、格式转换、DDP分布式训练、测试
✨博客主页:王乐予🎈 ✨年轻人要:Living for the moment(活在当下)!💪 🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】 目录 😺〇、仓库…...
基于SpringBoot+WebSocket实现地图上绘制车辆实时运动轨迹图
实现基于北斗卫星的车辆定位和轨迹图的Maven工程(使用模拟数据),我们将使用以下技术: Spring Boot:作为后端框架,用来提供数据接口。Thymeleaf:作为前端模板引擎,呈现网页。Leaflet…...
嵌入式入门小工程
此代码基于s3c2440 1.点灯 //led.c void init_led(void) {unsigned int t;t GPBCON;t & ~((3 << 10) | (3 << 12) | (3 << 14) | (3 << 16));t | (1 << 10) | (1 << 12) | (1 << 14) | (1 << 16);GPBCON t; }void le…...
hackmyvm靶场--zon
环境 攻击机kali 靶机 未知 主机探测 因为在同一个局域网内使用ARP协议探测存活主机 靶机为192.168.56.128 端口探测 常见的80和22端口 那么一定是寻找web漏洞拿shell了 后台扫描 后台扫描常用dirsearch和gobuster,有时候小字典可能不太行,可以尝试换个大点…...
atcoder abc372 启发式合并, dp
A delete 代码: #include <bits.stdc.h>using namespace std;int main() {string s;cin >> s;for(auto t: s) if(t ! .) cout << t; } B 3 ^ A 思路:三进制转换,可以参考二进制,先把当前可以加入的最大的3的…...
CentOS Stream 9部署MariaDB
1、更新系统软件包 sudo dnf update 2、安装MariaDB软件包(替代mysql) sudo dnf install mariadb-server 3、安装MariaDB服务 sudo systemctl enable --now mariadb 4、检查MariaDB服务状态 sudo systemctl status mariadb 5、配置MariaDB安全性 sudo my…...
【Leetcode:997. 找到小镇的法官 + 入度出度】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
大数据Flink(一百二十三):五分钟上手Flink MySQL连接器
文章目录 五分钟上手Flink MySQL连接器 一、创建数据库表 二、创建session集群 三、源表查询 四、窗口计算 五、结果数据写回数据库 五分钟上手Flink MySQL连接器 MySQL Connector可以将本地或远程的MySQL数据库连接到Flink中&#x…...
SYN Flood攻击原理,SYN Cookie算法
SYN Flood是一种非常危险而常见的Dos攻击方式。到目前为止,能够有效防范SYN Flood攻击的手段并不多,SYN Cookie就是其中最著名的一种。 1. SYN Flood攻击原理 SYN Flood攻击是一种典型的拒绝服务(Denial of Service)攻击。所谓的拒绝服务攻击就是通过进…...
计组(蒋)期末速成笔记1
蒋本珊计组期末不挂科复习笔记 第1章 概论 第2章 数据的机器层次表示 第3章 指令系统 第4章 数值的机器运算 第5章 存储系统和结构 第6章 中央处理器 第7章 总线 第1章 概论 蒋本珊计组期末不挂科复习笔记知道你快考试了,莫慌! 第1章 概论1.1 冯诺依曼计…...
mysql学习教程,从入门到精通,SQL 更新数据(UPDATE 语句)(17)
1、SQL 更新数据(UPDATE 语句) SQL UPDATE 需要指定要更新的表、要修改的列以及新值,并且通常会通过WHERE子句来指定哪些行需要被更新。下面是一个简单的示例,说明如何使用UPDATE语句。 假设我们有一个名为employees的表…...
【吊打面试官系列-MySQL面试题】MyISAM 表格将在哪里存储,并且还提供其存储格式?
大家好,我是锋哥。今天分享关于【MyISAM 表格将在哪里存储,并且还提供其存储格式?】面试题,希望对大家有帮助; MyISAM 表格将在哪里存储,并且还提供其存储格式? 每个 MyISAM 表格以三种格式存储…...
常用的图像增强的算法之间的联系和区别
Unsharp Mask (USM)、拉普拉斯算子、直方图均衡化和伽马增强是图像处理中常见的技术,但它们在原理、作用和应用场景上有显著不同。以下是对这些方法的详细比较: 1. Unsharp Mask (USM) 原理:USM 是通过对图像进行模糊处理(如高斯…...
SpringBoot+Vue考试系统免费分享
源码说明: 这是一个开源的SpringBoot与Vue开发的在线考试系统。经过站长测试,系统稳定可用,允许重复考试。 环境: 需要安装的环境包括Node.js v14.21.3、JDK8、Maven以及MySQL 5.7。 前端部署教程: 执行 npm inst…...
音视频入门基础:FLV专题(1)——FLV官方文档下载
一、FLV简介 Flash Video(简称FLV),是一种网络视频格式,用作流媒体格式,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上有效使用等缺点。 一般FLV文件包在SW…...
使用c#制作一个小型桌面程序
封装dll 首先使用visual stdio 创建Dll新项目,然后属性管理器导入自己的工程属性表(如果没有可以参考visual stdio 如何配置opencv等其他环境) 创建完成后 系统会自动生成一些文件,其中 pch.cpp 先不要修改,pch.h中先导入自己需…...
Clip studio paint百度云下载:附安装包+教程
首先补一个介绍,Clip Studio Paint(即CSP):这是一款专业的绘画和漫画创作软件,拥有丰富的绘画工具,适合漫画创作者使用。其界面友好,工具齐全,能够满足漫画创作中的各种需求。 用过…...
从Yargs源码学习中间件的设计
yargs中间件介绍 yargs 是一个用于解析命令行参数的流行库,它能帮助开发者轻松地定义 CLI(命令行接口),并提供参数处理、命令组织、help文本自动生成等功能。今天我们来学习一下它对中间件的支持。 中间件的API详细信息࿰…...
高级I/O知识分享【epoll || Reactor ET,LT模式】
博客主页:花果山~程序猿-CSDN博客 文章分栏:Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 一,接口 epo…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
