ARM&Linux环境搭建
+ -

ubuntu安装与配置

2026-06-28 36 0

虚拟机VMware15

https://www.jb51.net/softs/638376.html
一、 激活密钥
YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8
UG5J2-0ME12-M89WY-NPWXX-WQH88
UA5DR-2ZD4H-089FY-6YQ5T-YPRX6
GA590-86Y05-4806Y-X4PEE-ZV8E0
ZF582-0NW5N-H8D2P-0XZEE-Z22VA
YA18K-0WY8P-H85DY-L4NZG-X7RAD

ubuntu镜像

24.04.4
https://mirrors.pku.edu.cn/ubuntu-releases/24.04.4/ubuntu-24.04.4-desktop-amd64.iso

安装ubuntu可能出现的问题

在安装ubuntu时,可能会有一列问题。
第一种情况就是加载镜像,选接安装后,进入了ubuntu的桌面,但桌面空空如也,但是右上角的时钟等又都正常。
这时按下键盘上的 Ctrl + Alt + T 打开终端,输入以下命令并回车

sudo killall ubiquity

这样等待ubiquity重启后,就正常了。

编译前准备

编译需要至少40g,我的都满了

usbzh@usbzh-virtual-machine:/lib/modules/5.15.200usbzh$ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           792M  2.0M  790M   1% /run
/dev/sda3        39G   36G  1.3G  97% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
/dev/sda2       512M  5.3M  507M   2% /boot/efi
tmpfs           792M   76K  792M   1% /run/user/127
tmpfs           792M   68K  792M   1% /run/user/1000

SSH

sudo apt update
sudo apt install openssh-server
sudo systemctl enable --now ssh

你也可以分步操作:先用

sudo systemctl enable ssh

设置开机自启,再用

sudo systemctl start ssh

立即启动。

软件准备

sudo apt update
sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev git
sudo apt install libdw-dev
sudo apt install pahole #生成 BTF(BPF Type Format)信息,用于调试 CONFIG_DEBUG_INFO_BTF

如果安装有包版本冲突,使用aptitude替代 apt install

 sudo aptitude install pahole

获取源码

# 获取当前内核版本的源码
apt-get source linux-image-unsigned-$(uname -r)

apt-get source linux-image-unsigned-6.6

如果获取不到,在https://www.kernel.org/ 找到对应版本

cd ~
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.xx.tar.xz
tar -xf linux-6.6.152.tar.xz
cd linux-6.6.xx

获取代码与编译脚本

cd linux-<version>
cp /boot/config-$(uname -r) .config  #把前系统(6.8 HWE 内核)的配置作为 6.6 内核编译的起点

修改脚本具有执行权限

chmod +x scripts/*.sh
chmod +x scripts/kconfig/*.sh

配置编译模块

make menuconfig

编译为y即编译进内核的驱动,如要调试,得先将改成M,再得新编译kernel,然后替换kernel,再重新来弄

版本修改

# 在内核源码根目录修改 Makefile 中的 EXTRAVERSION
cd ~/linux-5.15.0
vim Makefile

找到

EXTRAVERSION = .185

改为

EXTRAVERSION = .185-custom

这样编译出来的内核版本号会是 5.15.0-185-custom,与系统已有的 5.15.0-185-generic 不同,安装时不会覆盖,而是并行共存。

禁用签名

cd ~/linux-6.17

# 方法A:使用 scripts/config 工具直接关闭签名选项
./scripts/config --disable SYSTEM_TRUSTED_KEYS
./scripts/config --disable SYSTEM_REVOCATION_KEYS
./scripts/config --undefine SYSTEM_TRUSTED_KEYS
./scripts/config --undefine SYSTEM_REVOCATION_KEYS
./scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
./scripts/config --set-str SYSTEM_REVOCATION_KEYS ""

# 重新生成配置
make olddefconfig

# 重新编译
make -j$(nproc)

编译与安装

安装前

usbzh@usbzh-virtual-machine:~/linux-5.15.0$ uname -a
Linux usbzh-virtual-machine 5.15.0-25-generic #25-Ubuntu SMP Wed Mar 30 15:54:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

安装会因为签名问题,得重新编译再安装

cd ~/linux-5.15.0

# 1. 先安装 pahole(如果之前还没装)
sudo apt install pahole

# 2. 禁用 BTF(如果之前遇到 BTF 错误)
scripts/config --disable DEBUG_INFO_BTF

# 3. 禁用模块签名
scripts/config --disable MODULE_SIG
scripts/config --disable MODULE_SIG_ALL

# 4. 重新编译
make -j$(nproc)

# 5. 安装模块(跳过签名)
sudo make modules_install INSTALL_MOD_STRIP=1

# 6. 安装内核镜像
sudo make install

# 7. 更新 GRUB
sudo update-grub

# 8. 重启
sudo reboot

编译完成

每一次完成后没有任何显示,所以就再运行一下

usbzh@usbzh-virtual-machine:~/linux-5.15.0$ make
  CALL    scripts/checksyscalls.sh
  CALL    scripts/atomic/check-atomics.sh
  DESCEND objtool
  DESCEND bpf/resolve_btfids
  CHK     include/generated/compile.h
  CHK     kernel/kheaders_data.tar.xz
Kernel: arch/x86/boot/bzImage is ready  (#2)

在重启前,需要修改grub的读秒

sudo vim /etc/default/grub
# 将超时时间改为 5 秒(或你想要的秒数)
GRUB_TIMEOUT=5

# 确保这行被注释掉(如果有的话)
# GRUB_HIDDEN_TIMEOUT=0

GRUB_TIMEOUT_STYLE=hidden 改为 menu:

# 确保菜单会显示
GRUB_TIMEOUT_STYLE=menu

重启后可以看到:
214445428454
选中高级模式进入
214512599468
进入系统后,就是新编译的内核了
214657178011

0 篇笔记 写笔记

关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!