查看: 227|回复: 2

YY3568编译ubuntu源码详细步骤(新手友好)

[复制链接]

3

主题

5

回帖

245

积分

中级会员

Rank: 3Rank: 3

积分
245
发表于 2024-11-28 14:59:10 | 显示全部楼层 |阅读模式
yy3568官方提供的参考文档有很多问题,大量内容抄自Rockchip RK3588 - Rockchip Linux SDK编译的内容(后来发现这个文章实际上很多内容又copy来自RockChip官方的开发手册),天下文章一大抄,抄没有错,但是抄的时候东放一点、西放一点,导致SDK的使用背景、步骤介绍和模块要点不介绍,一些技术名词在文档中突然出现,让新手根本就不知道这个工具是干什么用的,还要根据代码或命令去猜测,这就是大错误了!,而原文则没有这种情况;再就是官方提供了多种编译ubuntu的方案,比如这处内容ubuntu,还有这处内容编译Ubuntu源码,提供的SDK下载的链接也不同,不知道哪个是对的,而且又都不完整,新手只能一个个试;其次是yy3568官方文档的作者似乎没有真的在对应的ubuntu 22.04环境下编译过,所以一些提前需要安装的package没有出现,比如bsdmainutils,这个不安装编译就会出现mk-recovery.sh - build_hook failed!​错误,但这个package文档没有提到;最后,很多细节参数没有提供,比如整体编译至少需要80G的空间、编译环境需要ubuntu X64而不能是ARM64,我多次因为编译时占满了空间而被迫重装虚拟机。
所以我重写一个新手如何从头编译ubuntu并烧录镜像的文档,希望能降低YY3568的使用门槛。
编译环境
  • 可以使用windows 安装ubuntu 22.04虚拟机作为源码编译环境,注意本方案使用ubuntu 22.04 LTS,其它版本很可能出问题
  • 编译环境必须是x86_64架构,
  • 编译环境用于SDK的挂载空间必须80G以上


1. 编译SDK
  • 下载ubuntu源吗,链接地址。解压源码
    1. # 准备环境
    2. sudo apt-get install -y repo git ssh make gcc libssl-dev liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath \
    3. diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip \
    4. device-tree-compiler python-pip libncurses-dev bsdmainutils python2

    5. root@3568:~/yy3568/sdk#  sudo ln -s /usr/bin/python3.10 /usr/bin/python
    6. root@3568:~/yy3568/sdk# python --version
    7. Python 3.10.12

    8. mkdir yy3568
    9. cd yy3568

    10. root@privatehub:~/yy3568# ll
    11. total 15021264
    12. drwxr-xr-x 4 root     root           4096 Nov 13 15:17 ./
    13. drwx------ 9 root     root           4096 Nov 13 14:55 ../
    14. -rw-r--r-- 1 root     root     4294967296 Nov 12 15:49 yy3568_linux_release_v1.1_20241014_sdk.tar.gz00
    15. -rw-r--r-- 1 root     root     4294967296 Nov 12 15:52 yy3568_linux_release_v1.1_20241014_sdk.tar.gz01
    16. -rw-r--r-- 1 root     root     4294967296 Nov 12 15:53 yy3568_linux_release_v1.1_20241014_sdk.tar.gz02
    17. -rw-r--r-- 1 root     root     2496838384 Nov 12 15:42 yy3568_linux_release_v1.1_20241014_sdk.tar.gz03

    18. cat yy3568_linux_release_v1.1_20241014_sdk.tar.gz0* | tar -xzvf -

    19. # 配置git并下载代码
    20. git config --global --add safe.directory /root/yy3568/sdk/.repo/manifests
    21. # 我这里能成功可能因为我的路由器有透明代理,这个技术就说了,懂的都懂
    22. .repo/repo/repo sync -l
    复制代码



回复

使用道具 举报

3

主题

5

回帖

245

积分

中级会员

Rank: 3Rank: 3

积分
245
 楼主| 发表于 2024-11-28 15:05:29 | 显示全部楼层
compile ubuntu source先选择配置文件
./build.sh lunch
#选择第10个  yy3568-ubuntu_defconfig
10
可以使用help参数查看
root@ubuntu:~/yy3568# ./build.sh help
Log saved at /root/yy3568/output/log/2024-11-27_01-27-04
Usage: build.sh [OPTIONS]
Available options:
chip[:<chip>[:<config>]]                choose chip
defconfig[:<config>]                    choose defconfig
*_defconfig                            switch to specified defconfig
    available defconfigs:
        rockchip_defconfig
        rockchip_rk3566_evb2_lp4x_v10_32bit_defconfig
        rockchip_rk3566_evb2_lp4x_v10_defconfig
        rockchip_rk3568_evb1_ddr4_v10_32bit_defconfig
        rockchip_rk3568_evb1_ddr4_v10_defconfig
        rockchip_rk3568_uvc_evb1_ddr4_v10_defconfig
        yy3568-debian11-docker_defconfig
        yy3568-debian11_defconfig
        yy3568-ubuntu-docker_defconfig
        yy3568-ubuntu_defconfig
olddefconfig                           resolve any unresolved symbols in .config
savedefconfig                          save current config to defconfig
menuconfig                             interactive curses-based configurator
config                                  modify SDK defconfig
print-parts                             print partitions
mod-parts                               interactive partition table modify
edit-parts                              edit raw partitions
new-parts:<offset>:<name>:<size>...     re-create partitions
insert-part:<idx>:<name>[:<size>]       insert partition
del-part<idx>|<name>)                 delete partition
move-part<idx>|<name>):<idx>          move partition
rename-part<idx>|<name>):<name>       rename partition
resize-part<idx>|<name>):<size>       resize partition
kernel[:cmds]                           build kernel
modules[:cmds]                          build kernel modules
linux-headers[:cmds]                    build linux-headers
kernel-config[:cmds]                    modify kernel defconfig
wifibt[:<dst dir>[:<chip>[:<tty>]]]     build Wifi/BT
buildroot-config[:<config>]             modify buildroot defconfig
buildroot-make[:<arg1>:<arg2>]          run buildroot make
rootfs[:<rootfs type>]                  build default rootfs
buildroot                               build buildroot rootfs
yocto                                   build yocto rootfs
debian                                  build debian rootfs
ubuntu                                  build ubuntu rootfs
recovery                                build recovery
pcba                                    build PCBA
security_check                          check contidions for security boot
createkeys                              build security boot keys
security_ramboot                        build security ramboot
security_uboot                          build uboot with security
security_boot                           build boot with security
security_recovery                       build recovery with security
security_rootfs                         build rootfs with security
loader[:cmds]                           build loader (uboot|spl)
uboot[:cmds]                            build u-boot
spl[:cmds]                              build spl
uefi[:cmds]                             build uefi
firmware                                pack and check firmwares
updateimg                               build update image
otapackage                              build OTA update image
sdpackage                               build SDcard update image
all                                     build all images
save                                    save images and build info
allsave                                 build all images and save them
                              cleanup
post-rootfs <rootfs dir>                trigger post-rootfs hook scripts
shell                                   setup a shell for developing
help                                    usage
Default option is 'allsave'.

回复 支持 反对

使用道具 举报

3

主题

5

回帖

245

积分

中级会员

Rank: 3Rank: 3

积分
245
 楼主| 发表于 2024-11-28 15:06:49 | 显示全部楼层
  1. # 开始编译,默认参数是allsave,进入漫长的等待
  2. ./build.sh

  3. # 最后出现下面的内容说明编译成功完成
  4. ==========================================
  5.           Start packing  update image
  6. ==========================================
  7. Generating package-file for update :
  8. # NAME  PATH
  9. package-file    package-file
  10. parameter       parameter.txt
  11. bootloader      MiniLoaderAll.bin
  12. uboot   uboot.img
  13. misc    misc.img
  14. boot    boot.img
  15. recovery        recovery.img
  16. backup  RESERVED
  17. userdata        userdata.img
  18. oem     oem.img
  19. rootfs  rootfs.img
  20. Packing /root/yy3568/output/firmware/update.img for update...   # 这就是我们下一步要烧录进入开发板的镜像文件
  21. Android Firmware Package Tool v2.2
  22. ------ PACKAGE ------
  23. Add file: ./package-file
  24. package-file,Add file: ./package-file done,offset=0x800,size=0xe1,userspace=0x1
  25. Add file: ./parameter.txt
  26. parameter,Add file: ./parameter.txt done,offset=0x1000,size=0x1f4,userspace=0x1,flash_address=0x00000000
  27. Add file: ./MiniLoaderAll.bin
  28. bootloader,Add file: ./MiniLoaderAll.bin done,offset=0x1800,size=0x719c0,userspace=0xe4
  29. Add file: ./uboot.img
  30. uboot,Add file: ./uboot.img done,offset=0x73800,size=0x400000,userspace=0x800,flash_address=0x00004000
  31. Add file: ./misc.img
  32. misc,Add file: ./misc.img done,offset=0x473800,size=0xc000,userspace=0x18,flash_address=0x00006000
  33. Add file: ./boot.img
  34. boot,Add file: ./boot.img done,offset=0x47f800,size=0x2908600,userspace=0x5211,flash_address=0x00008000
  35. Add file: ./recovery.img
  36. recovery,Add file: ./recovery.img done,offset=0x2d88000,size=0x30ce800,userspace=0x619d,flash_address=0x00028000
  37. Add file: ./userdata.img
  38. userdata,Add file: ./userdata.img done,offset=0x5e56800,size=0x444000,userspace=0x888,flash_address=0x00058000
  39. Add file: ./oem.img
  40. oem,Add file: ./oem.img done,offset=0x629a800,size=0x35fd000,userspace=0x6bfa,flash_address=0x00068000
  41. Add file: ./rootfs.img
  42. rootfs,Add file: ./rootfs.img done,offset=0x9897800,size=0x1f4000000,userspace=0x3e8000,flash_address=0x000a8000
  43. Add CRC...
  44. Make firmware OK!
  45. ------ OK ------
  46. ********rkImageMaker ver 2.23********
  47. Generating new image, please wait...
  48. Writing head info...
  49. Writing boot file...
  50. Writing firmware...
  51. Generating MD5 data...
  52. MD5 data generated successfully!
  53. New image generated successfully!
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|风火轮WIKI|手机版|小黑屋|深圳风火轮团队 ( 粤ICP备17095099号 )

GMT+8, 2024-12-26 20:02 , Processed in 0.063828 second(s), 20 queries .

快速回复 返回顶部 返回列表
 
【客服1】 商务合作 15289193
【客服2】 业务洽谈 13257599
【客服3】 售前咨询 510313198
【邮箱】
smartfire@smartfire.cn