ubuntu安装与配置
虚拟机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
重启后可以看到:
选中高级模式进入
进入系统后,就是新编译的内核了
ARM&Linux环境搭建





