FATAL: kernel too old

Модератор: Модераторы разделов

Ответить
IMB
Сообщения: 2559
ОС: Debian

FATAL: kernel too old

Сообщение IMB »

Доброго дня!
Пробую плавно перейти на новый toolchain, пересобрал всю систему и при запуске вижу

Код:

# ./busybox -? FATAL: kernel too old Segmentation fault

Информация о файле

Код:

# file rootfs/bin/busybox rootfs/bin/busybox: ELF 32-bit LSB executable, Renesas SH, version 1 (SYSV), statically linked, for GNU/Linux 2.6.32, stripped

Сейчас используется linux-2.6.23.17, в состав нового toolchain входит linux-2.6.32.61, мигрировать наверное можно, но это время...
Как можно "обмануть" программы при запуске со старым linux?
Собственно как glibc получает информацию о текущей версии linux?
Если я подменю вывод uname или модифицирую текущий linux на отдачу более старшей версии, этого хватит?
Спасибо.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: FATAL: kernel too old

Сообщение Bizdelnick »

IMB писал(а):
02.12.2016 17:42
Как можно "обмануть" программы при запуске со старым linux?

Обмануть сегфолтящуюся программу? Никак. Надо пересобирать. Воероятно, вместе с тулчейном или как минимум libc (но обновиться, скорее всего, будет проще). Хотя не исключено, что вопрос решается и опциями компилятора/линковщика, не знаю. Конкретно с такой ошибкой я не сталкивался.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
IMB
Сообщения: 2559
ОС: Debian

Re: FATAL: kernel too old

Сообщение IMB »

Насколько я понимаю segfault вызывает libc из-за несоответствия версии linux
(https://gcc.gnu.org/ml/gcc-help/2009-10/msg00401.html) писал(а):You can set the minimum supported kernel when you configure glibc with the --enable-kernel option

Пересобирать glibc как-то тоже не тянет.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: FATAL: kernel too old

Сообщение Bizdelnick »

Тогда остаётся или обновлять ядро, или использовать старый тулчейн.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
IMB
Сообщения: 2559
ОС: Debian

Re: FATAL: kernel too old

Сообщение IMB »

Код:

# /tmp/strace -v /tmp/busybox -? execve("/tmp/busybox", ["/tmp/busybox", "-?"] uname({sysname="Linux", nodename="zzz", release="2.6.23.17", version="#9 PREEMPT Wed Nov 23 21:28:46 UTC 2016", machine="sh4", domainname="(none)"}) = 0 open("/dev/tty", O_RDWR|O_NOCTTY|O_NONBLOCK) = 3 writev(3, [{iov_base="FATAL: kernel too old\n", iov_len=22}], 1FATAL: kernel too old) = 22 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x29557000 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x2967b048} --- +++ killed by SIGSEGV +++ Segmentation fault

надо попробовать "подменить" версию linux в выводе uname
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: FATAL: kernel too old

Сообщение Bizdelnick »

Так Вы добьётесь только того, что Ваши программы будут падать в самый неожиданный момент.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить