Автор Тема: BFK-3.1 Байкал - невозможно собрать драйвер  (Прочитано 26243 раз)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Чтобы преобразовать - надо полноценную систему, а преобразовать нельзя пока она подключена.
Можно. Надо только "mount -o remount,ro" сделать для ФС.

Оффлайн LinuxFanatic777

  • Участник
  • *
  • Сообщений: 20
Чтобы преобразовать - надо полноценную систему, а преобразовать нельзя пока она подключена.
Можно. Надо только "mount -o remount,ro" сделать для ФС.
Не вышло:mount -o remount,ro /dev/sda1
mount: /: mount point is busy.
mount -o remount,ro /
mount: /: mount point is busy.

Флэшку USB оно не видит принципиально, с нее стартовать не может, u-boot не настолько крут. Что остается попробовать?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Флэшку USB оно не видит принципиально, с нее стартовать не может, u-boot не настолько крут. Что остается попробовать?

А там u-boot? Если действительно u-boot, то нужно:
env edit boot_targets

выставить первым usb0, после чего
boot

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
mount -o remount,ro /
mount: /: mount point is busy.
А где /var ? Если /var в корне, то это беда: надо закрыть все приложения, которые туда пишут. В общем файлов открытых быть не должно на ФС перед "remount,ro". В принципе это выполнимо на самом деле, я /var тоже "апгрейдил" до ext4 по ssh. Только не рисковал потом reboot делать, сразу reboot -f заказывал.

И single mode тоже никто не отменял, если всё с клавиатуры. Только в fstab заранее написать ext4 надо в любом случае. Но, как я раньше уже писал, это всё я с ext3 делал, а работает ли модуль ext4.ko с ext2 я что-то уже не уверен, надо проверить.
« Последнее редактирование: 04.12.2020 20:09:11 от asy »

Оффлайн LinuxFanatic777

  • Участник
  • *
  • Сообщений: 20
А где /var ? Если /var в корне, то это беда: надо закрыть все приложения, которые туда пишут
Не беда:fuser -v -m /Где F в правах - то открыло файлы на запись, затемkillall -9 chronyd gdm-binary crond acpid alteratord rsyslogdВсё что нашел. После этого успешные remount в readonly. Однако:tune2fs -j /dev/sda1
tune2fs 1.44.6 (5-Mar-2019)
Creating journal inode:
tune2fs: Read-only file system
        while trying to create journal file
Приехали...

Update: поступил гениально. Загрузился из встроенной мини проши и... задействовал там chroot со всеми биндами. Журнал успешно добавился, рапорт успеха, reboot -f, ФС должна была стать ext3. Но после загрузки процесс зависает примерно когда initrd передает управления основной ФС. После перезагрузки на встроенную прошу я вижу всё то же: /dev/sda1 on /mnt type ext2

Я упорный, какие еще варианты. Напомню: мне просто надо собрать 1 несчастный модуль ядра. Всё  :'-(
« Последнее редактирование: 05.12.2020 00:02:02 от LinuxFanatic777 »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Хм. Что-то я думал, что tune2fs именно с устройством работает. Вообще, может быть, мне просто не попались ext без журнала. Повезло значит (в смысле мне). А если с -f ? И это, а boot тоже не отдельно что ли?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Журнал успешно добавился, рапорт успеха, reboot -f, ФС должна была стать ext3. Но после загрузки процесс зависает примерно когда initrd передает управления основной ФС
Даже не знаю, что дальше предположить. Пальцем в небо разве что. reboot -f как быстро сделан? Или по другому: sync запускался? С некоторых пор работа с устройством мимо ФС тоже кэшируется. Когда началось, не знаю, но сейчас dd на флешку отрабатывает в момент. А в /etc/fstab изменения внесены?

Оффлайн LinuxFanatic777

  • Участник
  • *
  • Сообщений: 20
А в /etc/fstab изменения внесены?
Там ничего нет, всё через опции u-boot, оно передает ядру просто /dev/sda1 в качестве рут. Вот и всё.

Идея! У меня большой тестовый жесткий диск. Я работаю с разделом 15 гигабайт. Сейчас появилась мысль. Создам второй раздел, из под тестовой проши сделаю копию основного, затем переформатирую его в ext4, затем заменю основной тоже при помощи dd! Это дичайшее бдсм, но должно сработать.

Всё усложняет факт невозможности вот так просто взять и запуститься с некоего liveusb и так далее. Но спасает наличие встроенной в SPI прошивки.

update: это сработало, успешно сделал ext4 и показывает что ext4. Но не стартует, похоже fstab ни при чем.
« Последнее редактирование: 05.12.2020 01:49:13 от LinuxFanatic777 »

Оффлайн LinuxFanatic777

  • Участник
  • *
  • Сообщений: 20
Хочу снова попробовать со своим ядром (оно у меня почти взлетело на bfk-3.1, тоже альтовское кстати). Я уже пробовал запускать Alt Linux i586 с самосборным ядром, указав свой образ и параметры к нему в GRUB, убрав при этом упоминание initrd, т.е. я знаю что Alt Linux умеет работать без initrd на x86.

Заметил что в корне alt linux mips нет ссылки на init-скрипт. Как мне адаптировать mips rootrs у альта, чтобы просто загрузка ядра с указанием root=/dev/sda1 приводила к успеху?

При этом я понимаю, что переменные окружения u-boot я должен модифицировать так, чтобы они не ссылались на initrd. Даже уже пробовал это делать, но кажется отсутствие ссылки на init нарушало дальнейший процесс.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Я уже пробовал запускать Alt Linux i586 с самосборным ядром, указав свой образ и параметры к нему в GRUB, убрав при этом упоминание initrd, т.е. я знаю что Alt Linux умеет работать без initrd на x86.
ALT тут не при чём, это ядро умеет. :-) Основная цель initrd - обеспечить загрузку основной ОС, а в случае обычного копа это значит загрузить модули контролеров и ФС, непобходимые для достпа с корню с etc и к /usr. Если это всё в ядре, initrd не нужен.

Оффлайн LinuxFanatic777

  • Участник
  • *
  • Сообщений: 20
ALT тут не при чём, это ядро умеет
Но в mips версии в корне нет ссылки на init, хотя в параметрах ядра вроде как можно указать не только /init. Вопрос: где в mips-порте лежит init? Он есть в initramfs, однако на /dev/sda1 после установки его не наблюдается.

А может есть стабильная версия порта mips с поддержкой Байкал-Т1? Вдруг я сейчас страдаю с нестабильной версии, у меня же Сизиф.

Оффлайн LinuxFanatic777

  • Участник
  • *
  • Сообщений: 20
Обновление, для тех кто наткнется на тему через поисковые системы. Стал я собирать драйвер через Байкал SDK 5.4 - ядро падало при старте, видимо дело не в моих руках кривых.

Попробовал старую версию SDK 4.18 - ядро прекарсно взлезело. Но это ядро при загрузке хочет initramfs, которое тоже собрается в SDK. Когда оно загружается - оно дальше себя не пускает, просто демо образ.

Далее, как я натравил это ядро на Alt Linux. Добавил в корне символьную ссылку /init -> /sbin/init. Далее, оставил символьную ссылку initramfs.gz указывающей на несуществующий файл.

Всё, в итоге имею самосборное ядро при помощи SDK, которое запускается без помощи initrd, способное запустить Alt Linux. А драйвер я уже наверное допинаю в SDK как надо.

P.S.
Это стоило мне очень много времени сил и нервов. Товарищи Alt Linux, пощадите, не ломайте дистрибутивы, мне просто не хватило одного несчастного пакета на старом ядре чтобы просто забыть о проблеме и радоваться. Но нет.