Ports/loongarch64/Старый и новый мир
На данный момент (осень 2024 года) у LoongArch есть две несовместимые программные системы, которые принято называть new world (nw, "новый мир") и old world (ow, "старый мир").
New world и old world не совместимы друг с другом по
- ABI загрузчика (EFI)
- набору системных вызовов ядра Линукс
- версиям символов системных библиотек (в основном частей GLIBC)
- ...
В результате, ПО, собранное для одного мира, нельзя запустить в другом.
Немного истории
Появление двух миров связано с тем, что компания Loongson решила тайно разработать и внезапного запуска LoongArch, анонсировав новую архитектуру уже с готовой экосистемой коммерческих дистрибутивов Linux и стороннего, в том числе пропиретарного, ПО. Однако в процессе работы с сообществом оказалось, что нужно сделать некоторые несовместимые изменения. Так появились две несовместимых экосистемы ПО под loongarch64:
- old world -- китайские коммерческие дистрибутивы (Kirin, Loongnix, UOS), и совместимое с ними ПО, включая:
- Tencent's QQ for Linux
- Kingsoft's WPS Office for Linux
- Loongson Browser (основан на Chromium)
- new world -- всё свободное ПО и развиваемые на его основе дистрибутивы, включая, естественно, порт Сизифа.
В каком же Вы мире
Большая часть существующего ПО -- new world. Всё ПО, собранное в порт Сизифа -- new world.
Запуск пропиретарного ПО
Большая часть китайского пропиретарного ПО по прежнему существует исключительно под old world. Наиболее развитое решение для запуска такого ПО на new-world системах -- libLoL.
Настройка загрузчика
Чтобы убедиться, что new world поддерживается и используется, достаточно зайти в настройки EFI (обычно озаглавленные Loongson Bios Setup Utility), выбраять язык (Standard English), и убедиться, что параметр Advanced -> Legacy Boot Mode -> Mode Control Select
имеет значение Disable
(что соответствует physical address mode).
Если такого параметра нет, значит система способна работать только в одном из миров. Имеющиеся у нас платы XC-LS3A6M, например, всегда в new world. В 2023-м году мы получали на Loongson 3A5000, которые были всегда в old world, и нам приходилось обновлять прошивки.