美文网首页
记录:斐讯 N1 Phicomm-N1 编译内核

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

作者: Liang_JC | 来源:发表于2023-09-27 14:21 被阅读0次

    前言

    由于更换了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 目录里
    

    相关文章

      网友评论

          本文标题:记录:斐讯 N1 Phicomm-N1 编译内核

          本文链接:https://www.haomeiwen.com/subject/lalhbdtx.html