V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RE1IFE
V2EX  ›  Android

求助安卓内核 Docker/LXC 编译

  •  
  •   RE1IFE · 12 天前 · 1343 次点击

    求助,我想给我的红米 k40pro+( haydn )修补内核提供 docker 支持。拉了最新的 LineageOS 21 的源代码,先是利用官方工具编译了整个系统。然后得到的对应 out 目录下的 kernel .comfig 文件,然后利用.config 通过 make menuconfig 手动把 docker 检测脚本的参数全部打开了。之后替换了 arch/arm64/configs/lahaina-qgki_defconfig 再 mka bootimage 。刷入 boot 后无法启动会开在红米界面和重启。

    真的球球大佬指点一下了😭 已经试了好几天了

    16 条回复    2024-12-16 15:15:13 +08:00
    seers
        1
    seers  
       12 天前 via Android
    你编译完了先不要加 docker 参数能起来吗
    RE1IFE
        2
    RE1IFE  
    OP
       12 天前
    @seers 如果是没有改动配置的情况下,在我自己本地编译的 bootimage 刷入之后是可以正常的启动的。但是改了一些内核参数( docker 容器相关的参数)之后,不管是 Anykernel3 刷入还是编译整个 bootimage 都会卡米然后重启。
    amrnxcdt
        3
    amrnxcdt  
       11 天前
    @RE1IFE #2 只修改了内核参数那就二分法测一下是加哪个参数之后不能启动。可能是内核缺一些功能。
    RE1IFE
        4
    RE1IFE  
    OP
       11 天前
    @amrnxcdt 好的 我再去调整试一试
    s82kd92l
        5
    s82kd92l  
       11 天前
    如果有安装第三方 recovery,重启后进入 recovery,可能可以看到 ramoops/PSTORE 之类的信息。我之前编译内核的时候经常用到
    RE1IFE
        6
    RE1IFE  
    OP
       11 天前
    @s82kd92l 我用 anykernel3 adb sideload 刷入之后,recovery 都进不去了,然后重新刷入 bootimage 之后在 recovery 里 adb 查看的日志主要是:
    [ 57.537987] subsys-pil-tz soc:qcom,ipa_fws: Direct firmware load for ipa_fws.mdt failed with error -2
    [ 57.537996] subsys-pil-tz soc:qcom,ipa_fws: Falling back to sysfs fallback for: ipa_fws.mdt
    [ 57.541366] ueventd: firmware: loading 'ipa_fws.mdt' for '/devices/platform/soc/soc:qcom,ipa_fws/firmware/ipa_fws.mdt'
    [ 57.541758] ueventd: firmware: could not find firmware for ipa_fws.mdt
    [ 57.541771] ueventd: firmware: attempted /etc/firmware/ipa_fws.mdt, open failed: No such file or directory
    [ 57.541783] ueventd: firmware: attempted /odm/firmware/ipa_fws.mdt, open failed: No such file or directory
    [ 57.541794] ueventd: firmware: attempted /vendor/firmware/ipa_fws.mdt, open failed: No such file or directory
    [ 57.541805] ueventd: firmware: attempted /firmware/image/ipa_fws.mdt, open failed: No such file or directory
    [ 57.541856] ueventd: loading /devices/platform/soc/soc:qcom,ipa_fws/firmware/ipa_fws.mdt took 0ms
    [ 57.542015] subsys-pil-tz soc:qcom,ipa_fws: ipa_fws: Failed to locate ipa_fws.mdt(rc:-2)
    [ 57.542022] subsys-pil-tz: subsys_powerup(): pil_boot failed for ipa_fws
    [ 57.542029] ipa ipa3_pil_load_ipa_fws:6875 Unable to PIL load FW for sub_sys=ipa_fws
    s82kd92l
        7
    s82kd92l  
       11 天前 via Android
    @RE1IFE 重刷 pstore 就不准了...
    RE1IFE
        8
    RE1IFE  
    OP
       11 天前
    @s82kd92l 明白明白 但是除了能进 fastboot recovery 也是进不去的。我分别测试了只加 CONFIG_PID_NS=y 、CONFIG_CGROUP_DEVICE=y 都无法进入,但是去除了之后又是可以正常启动的。
    ferstar
        9
    ferstar  
       11 天前 via Android
    RE1IFE
        10
    RE1IFE  
    OP
       11 天前
    @ferstar 我看了一下,但是我这个其中 CONFIG_CGROUP_DEVICE=y 这个配置加上了之后就会重复开机了。还有一些参数也会导致这个问题,但是我没办法一个一个测下来。
    amrnxcdt
        11
    amrnxcdt  
       11 天前
    @RE1IFE #6 如果能看到开机动画,lineageos 用 userdubug 标志构建的系统,在开机动画的时候 adbd 是是会被 init 进程拉起的,参考这篇的附言:/t/1043832 ,可以把早期启动的日志拉出来看看。

    如果没到 adbd 拉起就重启、就没办法了。
    210000ling
        12
    210000ling  
       7 天前 via Android
    同样难受啊,小米官方,lineageos 编译老是报错。换 crdroidos 编译成功了,打开一看,docker 的相关配置一个没动。明明检查的时候都开启了。
    RE1IFE
        13
    RE1IFE  
    OP
       5 天前
    @amrnxcdt adb 启动了,但是未识别的状态

    @210000ling 是的,我现在已经放弃了
    210000ling
        14
    210000ling  
       3 天前 via Android
    @RE1IFE 我使用 crdroid os 的编译成功了,原因是还要改 kernel/Makefile 和 net/netfilter/xt_qtaguid.c 的代码。参考自[Ivon 的部落格]( https://ivonblog.com/posts/run-docker-natively-on-android/)。可以试试 crdroidos ,这个编译一遍过。
    210000ling
        15
    210000ling  
       3 天前 via Android
    RE1IFE
        16
    RE1IFE  
    OP
       2 天前
    @210000ling 感谢感谢 我会再尝试一下的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2854 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 14:55 · PVG 22:55 · LAX 06:55 · JFK 09:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.