LINUX.ORG.RU

Скомпилировать ядро 1.0

 ,


0

1

Пытаюсь скомпилировать ядро версии 1.0 Мало весит проще в изучении быстро компилируется.

Но.


git clone https://github.com/kalamangga-net/linux-1.0.git

cd linux-1.0

make config 

make 

...

gcc -D__KERNEL__ -E -M *.c > .depend
kmalloc.c:10:10: fatal error: linux/mm.h: Нет такого файла или каталога
   10 | #include <linux/mm.h>
      |          ^~~~~~~~~~~~
compilation terminated.
memory.c:31:10: fatal error: asm/system.h: Нет такого файла или каталога
   31 | #include <asm/system.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.
mmap.c:9:10: fatal error: linux/mm.h: Нет такого файла или каталога
    9 | #include <linux/mm.h>
      |          ^~~~~~~~~~~~
compilation terminated.
swap.c:12:10: fatal error: linux/mm.h: Нет такого файла или каталога
   12 | #include <linux/mm.h>
      |          ^~~~~~~~~~~~
compilation terminated.
vmalloc.c:7:10: fatal error: asm/system.h: Нет такого файла или каталога
    7 | #include <asm/system.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.

...

★★

Там же написано на странице сразу
"- make sure your /usr/include/linux and /usr/include/asm directories
are just symlinks to the kernel sources:

cd /usr/include
rm -rf linux
rm -rf asm
ln -s /usr/src/linux/include/linux .
ln -s /usr/src/linux/include/asm .
"

Ты это делал?

xmikex ★★★★
()
Последнее исправление: xmikex (всего исправлений: 1)
Ответ на: комментарий от xmikex

А почему сами директории linux и asm которые есть в этих исходниках не подходят? Сделал как написали. Теперь


In file included from /usr/include/x86_64-linux-gnu/asm/socket.h:1,
                 from /usr/include/x86_64-linux-gnu/bits/socket.h:354,
                 from /usr/include/x86_64-linux-gnu/sys/socket.h:33,
                 from /usr/include/netinet/in.h:23,
                 from d_link.c:74:
/usr/include/asm-generic/socket.h:5:10: fatal error: linux/posix_types.h: Нет такого файла или каталога
    5 | #include <linux/posix_types.h>
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from /usr/include/x86_64-linux-gnu/asm/socket.h:1,
                 from /usr/include/x86_64-linux-gnu/bits/socket.h:354,
                 from /usr/include/x86_64-linux-gnu/sys/socket.h:33,
                 from /usr/include/netinet/in.h:23,
                 from plip.c:87:
/usr/include/asm-generic/socket.h:5:10: fatal error: linux/posix_types.h: Нет такого файла или каталога
    5 | #include <linux/posix_types.h>
      |          ^~~~~~~~~~~~~~~~~~~~~


tyamur ★★
() автор топика
Ответ на: комментарий от xmikex

и еще asm директории нету у меня. Установил gcc-4.8 исход такой же.

tyamur ★★
() автор топика
Последнее исправление: tyamur (всего исправлений: 1)
Ответ на: комментарий от tyamur

Не знаю.

надо проверить окружение, скорее всего дефолтные пути друг друга перекрывают и он у тебя из разных мест инклюдит и выводит такую вот бяку.

SprainBrains
()
Ответ на: комментарий от tyamur

Но оно проще я думаю

Но скомпилировать его далеко не проще, как ты уже выяснил. А, главное, для чего? Ну скомпилируешь, что ты с полученным файлом делать будешь?

gremlin_the_red ★★★★★
()

Дядь, я бы конечно тебе помог, но ты что-то как мне кажется неверной дорогой идёшь.

EXL ★★★★★
()

Качаешь ISO первого slackware. Там как раз вроде ядро 0.9 или 1.0. Запускаешь в Virtualbox. И компилируешь внутри. Нужный компилятор там в комплекте.

tlx ★★★★★
()

нафига? там всё устаревшее, и одновременно есть альтернативы более простые в изучении. тот же minix

anonymous
()
Ответ на: комментарий от anonymous

Архитектура та же самая что и была (ну почти, по крайней мере концептуально). Изучить путём тыкания палочкой самое то.

anonymous
()
Ответ на: комментарий от gremlin_the_red

Нет компиляция это не мое походу.

Скачал последнее ядро с github

Уже на make menuconfig или make oldconfig

In file included from /usr/include/x86_64-linux-gnu/bits/local_lim.h:38,
                 from /usr/include/x86_64-linux-gnu/bits/posix1_lim.h:161,
                 from /usr/include/limits.h:183,
                 from /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h:194,
                 from /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h:7,
                 from /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h:34,
                 from scripts/kconfig/conf.c:7:
/usr/include/linux/limits.h:5:10: fatal error: uapi/linux/limits.h: Нет такого файла или каталога
    5 | #include <uapi/linux/limits.h>
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.


~/linux-5.13-rc5$ find | grep uapi/linux/limits.h
./include/uapi/linux/limits.h

Да как так то..

tyamur ★★
() автор топика
Последнее исправление: tyamur (всего исправлений: 1)
Ответ на: комментарий от gremlin_the_red

А почему эти файлы зависят от текущих заголовочных файлов? Как тогда вернуть обратно?

apt search linux-headers-$(uname -r)

пусто

tyamur ★★
() автор топика
Ответ на: комментарий от gremlin_the_red

Решил так. Обновление ПО -> Разработка -> focal-proposed apt update && apt upgrade

Правда много чего ненужного установилось но зато вот эти header обновились. Теперь компилируется.

tyamur ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.