20250514给NanoPi NEO core开发板的Ubuntu core20.04系统重新编译内核boot.img【修正官方给的编译脚本】

rootroot@rootroot-X99-Turbo:~$ 
rootroot@rootroot-X99-Turbo:~$ git clone https://github.com/friendlyarm/sd-fuse_h3 -b master --single-branch sd-fuse_h3
rootroot@rootroot-X99-Turbo:~$ cd sd-fuse_h3/
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ 
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ ll
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ ll *.sh
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ tar zxvf friendlycore-jammy-images.tgz
【可选编译uboot,确认/熟悉 友善之臂的编译指令】
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ git clone https://github.com/friendlyarm/u-boot -b sunxi-v2017.x --depth 1 uboot
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ UBOOT_SRC=uboot ./build-uboot.sh friendlycore-jammy
【编译生成Z:\sd-fuse_h3\friendlycore-jammy\u-boot-sunxi-with-spl.bin】
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ ll
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ git clone https://github.com/friendlyarm/linux -b sunxi-4.14.y --depth 1 kernel
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ 
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ ll
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ cd kernel
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ 
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ ll
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ touch .scmversion
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ 
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ ll
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ make ARCH=arm CROSS_COMPILE=arm-linux- savedefconfig
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ cp defconfig ./arch/arm/configs/my_defconfig
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ 
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ git add ./arch/arm/configs/my_defconfig
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ 
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ git status
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3/kernel$ cd -
/home/rootroot/sd-fuse_h3
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ 
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ KERNEL_SRC=kernel KCFG=my_defconfig ./build-kernel.sh friendlycore-jammy
【编译异常了,找不到kernel。必须使用绝对路径。】
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ KERNEL_SRC=/home/rootroot/sd-fuse_h3/kernel KCFG=my_defconfig ./build-kernel.sh friendlycore-jammy


20250514给NanoPi NEO core开发板的Ubuntu core20.04系统重新编译内核boot.img【修正官方给的编译脚本】
2025/5/14 18:24


【使用 友善之臂开发板,享受 背时人生!^_欢迎您入坑】
【如果我不是一位 资深/10年+工作经验的工程师,用你们的板子做项目,一定会非常酸爽!^_】

用你们开发板做一次项目 。STEP-BY-STEP的步骤我都可以 写30篇了。[笑哭]
WIKI和 github肯定不是为 初学者 准备的。
感觉 友善之臂 的态度:我们 只针对 高手/玩家。搞不定的  就不要用了![笑哭]
kernel要使用绝对路径!


编译内核的问题。貌似解决了。
kernel要使用绝对路径!
你们家的WIKI和github什么都写了。
但是 又感觉 总 差那么点意思。

昨天 晚上 洗澡的时候/睡觉之前。看见/回想起/梦中惊忆起  kenel的报错?
可能就是 路径的问题。今天 早上已测试OK了。[笑哭]


你们家的 东西卖了这么多年。
这些年 你们的客户是则呢么过来的?
我 同情它们一把[笑哭]

[笑哭]目前没有客户反馈过这些问题哦
h3是我们目前出货最多的,也是问题最少的


缘起:一般认为是脚本:./build-kernel.sh的问题。
因为:编译uboot的脚本./build-uboot.sh都可以识别相对路径的。
比如:通过pwd获取当前路径,然后字符串组合既可获取绝对路径。

rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ UBOOT_SRC=uboot ./build-uboot.sh friendlycore-jammy


附件中:
build-kernel.sh             修改调试的脚本
build-kernel - 副本.sh    原始的脚本

【在build-kernel.sh的每一个代码块都加入了打印,】
Z:\sd-fuse_h3\build-kernel.sh

TOPPATH=$PWD


echo "2025/5/13 19:51p"
# wireguard
(cd ${OUT} && {
    if [ ! -d wireguard ]; then
        git clone https://git.zx2c4.com/wireguard-linux-compat -b master wireguard
        # old version# git clone https://git.zx2c4.com/wireguard-monolithic-historical -b master wireguard
    fi
    (cd wireguard/src && {
        #make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=${KERNEL_SRC}
        #make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=$PWD/${KERNEL_SRC}
        make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=${TOPPATH}/${KERNEL_SRC}
        #make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=/home/rootroot/sd-fuse_h3/kernel
        cp wireguard.ko ${KMODULES_OUTDIR}/lib/modules/${KERNEL_VER} -afv
    })
})


编译boot.img的脚本/命令:KERNEL_SRC=kernel KCFG=my_defconfig ./build-kernel.sh friendlycore-jammy
那就是build-kernel.sh写的有问题/不严谨!

最简单粗暴的方法,在代码块/脚本里面根据感觉加入打印信息/示踪代码:echo "2025/5/13 19:51p"
看脚本死在哪里了/哪里出错了!


echo "2025/5/13 19:51p"
# wireguard
(cd ${OUT} && {
    if [ ! -d wireguard ]; then
        git clone https://git.zx2c4.com/wireguard-linux-compat -b master wireguard
        # old version# git clone https://git.zx2c4.com/wireguard-monolithic-historical -b master wireguard
    fi
    (cd wireguard/src && {
        #make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=${KERNEL_SRC}
        make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=/home/rootroot/sd-fuse_h3/kernel
        cp wireguard.ko ${KMODULES_OUTDIR}/lib/modules/${KERNEL_VER} -afv
    })
})


修改KERNELDIR=${KERNEL_SRC}为绝对路径:KERNELDIR=/home/rootroot/sd-fuse_h3/kernel
正常了。


echo "2025/5/13 19:51p"
# wireguard
(cd ${OUT} && {
    if [ ! -d wireguard ]; then
        git clone https://git.zx2c4.com/wireguard-linux-compat -b master wireguard
        # old version# git clone https://git.zx2c4.com/wireguard-monolithic-historical -b master wireguard
    fi
    (cd wireguard/src && {
        #make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=${KERNEL_SRC}
        make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=$PWD/${KERNEL_SRC}
        #make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=/home/rootroot/sd-fuse_h3/kernel
        cp wireguard.ko ${KMODULES_OUTDIR}/lib/modules/${KERNEL_VER} -afv
    })
})

  INSTALL sound/usb/hiface/snd-usb-hiface.ko
  INSTALL sound/usb/line6/snd-usb-line6.ko
  INSTALL sound/usb/line6/snd-usb-pod.ko
  INSTALL sound/usb/line6/snd-usb-podhd.ko
  INSTALL sound/usb/line6/snd-usb-toneport.ko
  INSTALL sound/usb/line6/snd-usb-variax.ko
  INSTALL sound/usb/misc/snd-ua101.ko
  INSTALL sound/usb/snd-usb-audio.ko
  INSTALL sound/usb/snd-usbmidi-lib.ko
  DEPMOD  4.14.111
2025/5/13 19:51o
2025/5/13 19:51p
make[1]: *** /home/rootroot/sd-fuse_h3/out/wireguard/src/kernel: No such file or directory.  Stop.
make: *** [Makefile:26: module] Error 2

rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ 
rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ 


那就是:$PWD 当前目录是:/home/rootroot/sd-fuse_h3/out/wireguard/src/


很容易/根据经验/艰难得知:TOPPATH=$PWD 为目录:/home/rootroot/sd-fuse_h3

最终版本:
echo "2025/5/13 19:51p"
# wireguard
(cd ${OUT} && {
    if [ ! -d wireguard ]; then
        git clone https://git.zx2c4.com/wireguard-linux-compat -b master wireguard
        # old version# git clone https://git.zx2c4.com/wireguard-monolithic-historical -b master wireguard
    fi
    (cd wireguard/src && {
        #make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=${KERNEL_SRC}
        #make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=$PWD/${KERNEL_SRC}
        make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=${TOPPATH}/${KERNEL_SRC}
        #make CROSS_COMPILE=${CROSS_COMPILE} ARCH=${ARCH} KERNELDIR=/home/rootroot/sd-fuse_h3/kernel
        cp wireguard.ko ${KMODULES_OUTDIR}/lib/modules/${KERNEL_VER} -afv
    })
})


编译LOG:
  INSTALL sound/usb/line6/snd-usb-line6.ko
  INSTALL sound/usb/line6/snd-usb-pod.ko
  INSTALL sound/usb/line6/snd-usb-podhd.ko
  INSTALL sound/usb/line6/snd-usb-toneport.ko
  INSTALL sound/usb/line6/snd-usb-variax.ko
  INSTALL sound/usb/misc/snd-ua101.ko
  INSTALL sound/usb/snd-usb-audio.ko
  INSTALL sound/usb/snd-usbmidi-lib.ko
  DEPMOD  4.14.111
2025/5/13 19:51o
2025/5/13 19:51p
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/main.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/noise.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/device.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/peer.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/timers.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/queueing.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/send.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/receive.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/socket.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/peerlookup.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/allowedips.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/ratelimiter.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/cookie.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/netlink.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/crypto/zinc/chacha20/chacha20.o
  AS [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/crypto/zinc/chacha20/chacha20-arm.o
  AS [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/crypto/zinc/chacha20/chacha20-unrolled-arm.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/crypto/zinc/poly1305/poly1305.o
  AS [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/crypto/zinc/poly1305/poly1305-arm.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/crypto/zinc/chacha20poly1305.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/crypto/zinc/blake2s/blake2s.o
  CC [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/crypto/zinc/curve25519/curve25519.o
  AS [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/crypto/zinc/curve25519/curve25519-arm.o
  LD [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/wireguard.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/rootroot/sd-fuse_h3/out/wireguard/src/wireguard.mod.o
  LD [M]  /home/rootroot/sd-fuse_h3/out/wireguard/src/wireguard.ko
'wireguard.ko' -> '/home/rootroot/sd-fuse_h3/out/output_h3_kmodules/lib/modules/4.14.111/wireguard.ko'
2025/5/13 19:51q
skip exfat-nofuse
2025/5/13 19:51r
2025/5/13 19:51
2025/5/13 19:51s
2025/5/13 19:51t
building kernel ok.
2025/5/13 19:51u
Re-running script under sudo...
[sudo] password for rootroot: 
copying kernel to boot.img ...
copying kernel module and firmware to rootfs ...
mke2fs 1.45.4 (23-Sep-2019)
Creating regular file friendlycore-jammy/rootfs.img
Creating filesystem with 376832 4k blocks and 47424 inodes
Filesystem UUID: f3e5b24d-b7b5-4c92-baf2-928ebdc352a4
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Copying files into the device: done
Writing superblocks and filesystem accounting information: done 

'/home/rootroot/sd-fuse_h3/prebuilt/partmap.template' -> 'friendlycore-jammy/partmap.txt'
generating friendlycore-jammy/partmap.txt done.
0
2025/5/13 19:51v
updating kernel ok.

rootroot@rootroot-X99-Turbo:~/sd-fuse_h3$ ll


BUG/修改方法已经 友善之臂 官方了。

看见回的邮件了
刚才电话还是想 抱怨一下 [笑哭]
你们家的脚本自带的bug会害死人[笑哭][疑问]


好的, 我让负责全志平台的同事测试并完善一下wiki
我们验证后会回复您
抱歉我们人少事多,有些没办法及时测试回复
要安排时间


做FAQ吧。支持过的问题 留 service。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值