寻找繁星 yetist 不可能。因为第一个新世界系统肯定不是用新世界系统做的。我主要是想摸索出一个适合普通用户(旧固件旧世界内核)升级到新世界用户态的方法。gentoo我不会用。您提供的ArchLinux好像只支持新固件?而根据白老师的说法,升级新固件的前提条件是要有一个新世界操作系统。孙老师的CLFS过于硬核了,好像是没有包管理器的?孙老师的ArchLinux(我现在尝试安装的)现在又启动不了。其实我现在怀疑启动不了的原因可能不是没有initrd,因为我看孙老师的旧版本CLFS(用旧固件的版本)里也是直接用的acpi-initrd。因此之后如果有空的话我想直接把旧版本CLFS给装上,看看能不能启动。
yetist 寻找繁星 我主要是想摸索出一个适合普通用户(旧固件旧世界内核)升级到新世界用户态的方法。 旧固件旧世界 -> 新固件新世界,参考这里:https://bbs.loongarch.org/d/88-archlinux
xen0n 寻找繁星 因为第一个新世界系统肯定不是用新世界系统做的。 这也没错,因为第一个新世界系统是在别的架构上交叉编译出来的。。。CLFS、Gentoo 都是。 目前确实没有在旧世界内核上制作新世界系统的办法,因为系统调用 ABI 真的不兼容。Blame Loongson for that
寻找繁星 yetist 这个不是需要新固件吗?我其实不清楚怎么不用编程器之类的设备升级固件。我在BIOS里也没看到升级固件的选项。这里说昆仑固件在“安全”选项下能找到:https://github.com/loongson/Firmware/blob/main/README_CN.md 可是我真没找到。。。 而且之前白老师有说升级到新固件需要先升级到旧固件新世界内核。
xen0n 淡炒番茄 为啥不能在旧世界用新世界的工具链编译新世界? 这个应该可以,在旧世界做一个 target 新世界的工具链,然后以此工具链做系统。只要不执行产生的可执行文件就没问题,也不能 chroot 旧世界不也是“其他架构”吗? 可以这么认为,但我怕有些软件看 build == host 就认为是同一个架构,可以执行它的程序
yetist 如果把新旧世界当成两个不同架构,完全采用交叉编译来做的话,倒是有可能做出来。 只是之前做新世界时,host是x86_64,现在的host是旧世界loongarch,target是新世界loongarch,不过确实可能存在程序被执行的风险,从而导致失败。
xen0n 寻找繁星 不过倒是没有考虑到被编译的文件也可能被自动执行 别的不清楚,至少 gcc 如果看到前后 target tuple 一样(新旧世界 target tuple 一样的)会自动开启 bootstrap,这就会执行编译产物了,所以 gcc 一定要 --disable-bootstrap。 如果有兴趣沿着这条路研究,我个人倒是不反对,但因为其他的软件包也可能出现类似情况,可能还不一定好修,所以也不特别支持