使用 Ubuntu22.04 编译 aosp 的问题,求助大佬 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JustPisces
V2EX    Android

使用 Ubuntu22.04 编译 aosp 的问题,求助大佬

  •  
  •   JustPisces 2022-06-29 09:13:32 +08:00 13444 次点击
    这是一个创建于 1203 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在运行. build/envsetup.sh && lunchaosp_hotdog-userdebug && mka bacon 后得到如下错误

    FAILED: ninja: 'Android.bp', needed by 'out/soong/.bootstrap/build.ninja', missing and no known rule to make it

    谷歌之后发现并没有我这类似的错误

    sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 sudo apt-get install git-core gnupg flex bison gperf build-essential sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib sudo apt-get install libc6-dev-i386 sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4 sudo apt-get install lib32z-dev ccache sudo apt-get install libssl-dev sudo apt-get install libncurses5

    环境依赖装了如上,jkd8 也装了,实在找不到问题所在了 求助大佬们

    第 1 条附言    2022-06-30 20:17:11 +08:00
    破案了 不是内存问题, 是因为我对 build_soong 进行了克制化,但是在拉取的时候没发现 manifests 中需要添加 linkfile ,之前一直没出问题是因为我并没有 make clean ,需要的那个 build.ninja 并没有重新编译,所以不报错,这次重装系统后需要 clean 的重新编译才出的问题,感谢各位大佬的回复
    17 条回复    2022-07-01 18:16:31 +08:00
    WebKit
        1
    WebKit  
       2022-06-29 09:20:32 +08:00
    现在也不需要安装 jdk 了,你的内存能够吗
    JustPisces
        2
    JustPisces  
    OP
       2022-06-29 09:22:37 +08:00
    @WebKit 内存是 16G swap 也分了 16G 之前使用 ubuntu18.04 可以正常编译,被我搞炸了系统后装了 22.04 ,然后就出这问题了
    kaycloud
        3
    kaycloud  
       2022-06-29 09:48:24 +08:00
    看是不是内存问题。我开发机 16G 内存,swap 也分配了 16G ,cpu 是 8 核的,但是如果用 make -j8 甚至-j6 都会挂,大概-j4 才能正常编译
    JustPisces
        4
    JustPisces  
    OP
       2022-06-29 10:09:53 +08:00
    @kaycloud 我没有加 -j 的参数,,不过我刚搜了一下 ubuntu 22.04 有一个低内存优化的功能,会将占用大量内存的进程给 kill 掉,我估计是那个原因,,晚上回家关掉试试看
    https://answers.launchpad.net/ubuntu/+question/701605
    这种东西是真坑
    encro
        5
    encro  
       2022-06-29 10:10:25 +08:00
    经验告诉我们,发行版要低一个 lts 才可靠,比如现在出 22.04 了,用 20.04 就会兼容比较好。
    JustPisces
        6
    JustPisces  
    OP
       2022-06-29 10:15:11 +08:00
    @encro 我本来也想用 20.04 的 不过一看 22.04 界面好看,动画酷炫,就忍不住了 哈哈 如果搞不定 就降到 20.04 去了
    encro
        7
    encro  
       2022-06-29 11:02:25 +08:00
    @JustPisces

    是的,最近几年 gnome 还是挺给力的,不能用新版本是比较大的损失。
    pagxir
        8
    pagxir  
       2022-06-29 11:38:47 +08:00 via Android
    其实你可以把编译环境套在非特权容器里 docker/lxc/lxd 里都可以。这样不影响图形界面也不影响编译。最近,我就最外层用了 alpine ,然后特权容器 archlinux 跑图像界面,然后再跑 kvm 的虚拟机,非特权容器跑编译。图像界面怎么搞,机器也不会启动不起来(外层有一个基本 alpine ,不带图形界面),也不影响编译环境。不过目前问题是,kvm 的 gvt-g 在 8250U 下好像有问题,导致里面的 win10guest 无法正常显卡加速。反而在 10700 能正常工作。
    Buges
        9
    Buges  
       2022-06-29 11:58:59 +08:00
    这种事情最好用 docker 、nix 等 deterministic 的环境,再要么就用官方文档完全一致的版本,以避免各种环境问题。
    JustPisces
        10
    JustPisces  
    OP
       2022-06-29 12:01:11 +08:00
    @pagxir 看起来好复杂 哈哈 好多东西涉及盲区了 我主要还是编译 rom 给自己用,linux 系统这块不太懂,不然也不会把系统搞炸了
    654656413245
        11
    654656413245  
       2022-06-29 13:33:43 +08:00
    要看 lunch aosp_hotdog-userdebug 有没有执行成功

    另外尝试 make 的时候不要指定 target ,直接 make
    JustPisces
        12
    JustPisces  
    OP
       2022-06-29 14:14:37 +08:00
    @654656413245 前两步都成功了 死在最后一步上的 make 的时候也没有指定-j 但是根据上面的回复 问题应该是处在 22.04 上新增的低内存优化功能上
    changnet
        13
    changnet  
       2022-06-29 14:40:50 +08:00
    Linux 内存不够 kill 进程我记得一直是有的,CentOS 6.5 就有了。如果是这个问题 dmesg 可以看到 kill 的信息
    myki
        14
    myki  
       2022-06-29 18:52:26 +08:00
    sudo systemctl disable --now systemd-oomd
    myki
        15
    myki  
       2022-06-29 19:03:57 +08:00
    把 oomd 关了之后在编译应该就可以了
    FranzKafka95
        16
    FranzKafka95  
       2022-06-29 23:31:08 +08:00 via Android
    首先要确保 repo sync 是完整拉取了整点源,可以通过 repo status 或者 repo info 进行检查,其次编译时第一次尽量全编译(直接 make),不要 m 或者 mmm 等,第三,编译时使用-j 参数,但不要超过你的系统核心限制,如果还不行, make clean 后再进行尝试
    xiiix
        17
    xiiix  
       2022-07-01 18:16:31 +08:00
    内存不够的话 可以启用 swap 并保证物理内存加上虚拟内存超过 32G
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1258 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 17:26 PVG 01:26 LAX 10:26 JFK 13:26
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86