记录:斐讯 N1 Phicomm-N1 编译内核

2023-09-27  本文已影响0人  Liang_JC

前言

由于更换了x86 all in boom,所以N1就闲置了,这次使用物理机斐讯N1进行内核编译,记录一下过程,第一次编译用时将近10小时。

准备材料

1、安装依赖

apt install -y gcc make libncurses5-dev build-essential pkg-config libc6-dev bison flex libelf-dev xz-utils \
bc libssl-dev git llvm-15 lld-15 clang-15 gcc-aarch64-linux-gnu screen rsync u-boot-tools initramfs-tools 
# 如果安装过程出错就执行下面命令修复安装
apt --fix-broken install

2、下载源码

mount /dev/sda1 /mnt/ssd1
cd /mnt/ssd1
git clone --depth 1 https://github.com/unifreq/linux-5.15.y

3、编译内核

cd linux-5.15.y/
scp -P 22 root@192.168.3.2:/boot/config-* .config
CC=/usr/bin/clang-15
LD=/usr/bin/ld.lld-15
make -j$(nproc) CC=$CC menuconfig
make -j$(nproc) CC=$CC

4、制作uinitrd

make modules_install
make headers_install
mkdir -p ../output/{boot,dtb,modules}
cp .config /boot/config-5.15.133-liangjc-01+
mkinitramfs -c xz -o ../output/boot/initrd.img-5.15.133-liangjc-01+ 5.15.133-liangjc-01+
mkimage -A arm64 -O linux -T ramdisk -C none -a 0 -e 0 -n uInitrd -d ../output/boot/initrd.img-5.15.133-liangjc-01+ ../output/boot/uInitrd-5.15.133-liangjc-01+

5、打包内核

# 复制相关文件
cp -r /lib/modules/5.15.133-liangjc-01+ ../output/modules/
cp arch/arm64/boot/Image ../output/boot/vmlinuz-5.15.133-liangjc-01+
cp .config ../output/boot/config-5.15.133-liangjc-01+
cp System.map ../output/boot/System.map-5.15.133-liangjc-01+
cp arch/arm64/boot/dts/amlogic/* ../output/dtb
#headers
mkdir -p ../output/headers/arch/arm64/kvm
cp -r arch/arm64/include ../output/headers/arch/arm64/
cp -r arch/arm64/kvm/hyp ../output/headers/arch/arm64/kvm/
cp arch/arm64/Makefile ../output/headers/arch/arm64
cp -r include ../output/headers/
cp -r scripts ../output/headers/
cp {Makefile,Module.symvers} ../output/headers/
# 压缩打包
cd ../output/boot
tar -zcf ../boot-5.15.133-liangjc-01+.tar.gz *
cd ../modules
tar -zcf ../modules-5.15.133-liangjc-01+.tar.gz *
cd ../headers
tar -zcf ../headers-5.15.133-liangjc-01+.tar.gz *
cd ../dtb/
tar -zcf ../dtb-amlogic-5.15.133-liangjc-01+.tar.gz *

6、本地更新

# 把boot-*.tar.gz,dtb-*.tar.gz,modules-*.tar.gz,headers-*.tar.gz上传到N1后执行以下命令

# 方法1: 使用ophub的armbian-update命令更新
# 4个文件放在同一个目录执行:
armbian-update 

# 方法2: 手动更新方法
tar -xf boot-5.15.133-liangjc-01+.tar.gz -C /boot
tar -xf dtb-amlogic-5.15.133-liangjc-01+.tar.gz -C /boot/dtb/amlogic
tar -xf modules-5.15.133-liangjc-01+.tar.gz -C /lib/modules
cd /boot
cp -a uInitrd-5.15.133-liangjc-01+ uInitrd
cp -a vmlinuz-5.15.133-liangjc-01+ zImage
cd /lib/modules/5.15.133-liangjc-01+ 
find kernel/ -name "*.ko" -exec ln -s {} \;
reboot

附录:使用ophub大的一键编译脚本进行内核编译

# 安装更新编译环境及依赖
armbian-kernel -u
# 一键编译内核
armbian-kernel -k 5.15.131 -n "-liangjc-04" -t clang
-k  指定内核版本    #指定旧版也是直接编译最新版,原因未知
-n  自定义签名  默认ophub
-t  指定编译工具  gcc / clang  默认gcc,经测试gcc比clang编译速度要快。

# 内核文件保存在 /opt/kernel/compile-kernel/output 目录里
上一篇下一篇

猜你喜欢

热点阅读