Ответ Rmano помог мне на полпути, но настоящее волшебство легче обнаружить, передав параметр Q=
в вашей командной строке make
в исходном каталоге ядра. он позволяет увидеть детали, одна из которых — вызов скрипта:echo "4.4.19$(/bin/sh./scripts/setlocalversion.)"
. выполнение того же фрагмента дает номер версии ядра 4.4.19-00010-ge5dddbf
. если вы посмотрите на скрипт, он определяет номер из системы управления версиями, и запуск его с bash -x
показывает точный процесс:
+++ git rev-parse --verify --short HEAD
++ head=e5dddbf
+++ git describe --exact-match
++ '[' -z '' ']'
++ false
+++ git describe
++ atag=release/A530_os_1.0.0-10-ge5dddbf
++ echo release/A530_os_1.0.0-10-ge5dddbf
++ awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
++ git config --get svn-remote.svn.url
++ git diff-index --name-only HEAD
++ grep -qv '^scripts/package'
++ return
+ res=-00010-ge5dddbf
+ echo -00010-ge5dddbf
-00010-ge5dddbf
Это показывает мне, что если я хочу собрать модуль ядра для работы с моим работающим ядром, я нахожусь на неправильном выпуске с тегами и неправильном коммите. Мне нужно исправить это и собрать по крайней мере DTB (make dtbs
), чтобы создать сгенерированные файлы с правильным номером версии.
оказывается, даже этого было недостаточно. Мне пришлось заменить scripts/setlocalversion
на тот, который просто делает:
#!/bin/sh
echo -0710GC0F-44F-01QA
затем перестройте автоматически сгенерированные файлы:
make Q= ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs
затем я смог собрать образец драйвера Дерека Моллоя и успешно insmod
. по-видимому, предупреждение об отсутствии Module.symvers
не имело значения.все, что Linux использовал, чтобы определить, будет ли модуль работать, было этой строкой localversion.
something like "v-fat"
Это должно быть экстрасенсорное восприятие, о котором я упоминаю ниже! То, как вы это описываете, теперь, после повторного прочтения.
Я думаю, Йохан указывает в правильном направлении.
В меню BIOS вы можете выбрать между «устаревшим биосом» (= MBR )и «UEFI». Вы даже можете активировать оба одновременно. Но одного этого будет недостаточно.
Когда вы «создаете GPT» (просто или нет )у вас также есть варианты --Я использовал эту защитную MBR, на всякий случай.
Как только вы доберетесь до grub, вы можете изменить командную строку и поставить новое ядро, initrd и root. Насколько я понимаю, grub работает с использованием файловых систем, а не списков блокировки (, см. сообщение об ошибке в Q ), поэтому вам просто нужно добавить второй пункт меню и, возможно, сделать его по умолчанию. Я не удивлен, что установщик не приспособился к этой ситуации. А почему у вас получился раздел vfat и btrfs?
После повторного прохождения Q:
Похоже, у вас нет MBR («Эта метка раздела GPT не содержит загрузочного раздела BIOS» ). Но где же тогда ваш системный раздел EFI ? Вот куда должна идти жратва,а не к вновь созданному/dev/nvme0n1p3.
The UEFI configuration thingy seems to view the entire nvme drive as a whole (even though it even splits thumb drives into anywhere between 2 and 5 parts).
Это связано с тем, что флэш-накопители содержат разделы с загрузочными файлами.EFI (, приложениями UEFI :, загрузчиками и другими утилитами ).
Очевидно, ваш UEFI не знает об отсутствии загрузчика на вашем диске. Это сделал бы efibootmgr
, если внутри linux.
У вас есть встроенный загрузчик, хотя :оболочка UEFI. Это должен быть какой-то вариант загрузки в вашем меню UEFI BIOS.
С UEFI, способным запускать загрузку grub (или systemd -, или... )в любом разделе, и с grub, способным загружать образ ядра также из любого раздела, после новой установки вы только нужно добавить новую запись в меню для удобства. Никакого реального шага установки grub не требуется.
(merely checked it wouldn't override my existing ext4 partition)
ДА. Это была хорошая идея! И это многое говорит о качестве этих установщиков.
Я зашел в «Настройки UEFI», а затем «Загрузка» → «Приоритеты BBS жесткого диска UEFI». У него была «Загрузка Windows...» в качестве главного приоритета. Я изменил его на «opensuse -secureboot». Затем я вернулся к общему порядку загрузки и переместил «UEFI Hard Disk :opensuse -secureboot» наверх.
Теперь при загрузке я вижу тематическое меню OpenSuse -, где я могу выбирать между OpenSuse и Kubuntu. Там даже есть запись Windows, которая, как я полагаю, загрузит Windows, если я ее выберу.:)