LINUX.ORG.RU

Потестите моё поделие на bash-скриптах

 , , , ,


1

2

Сабж. Решил взять и за вечер написать маленькую линуксособиралку.
Штуковина качает crosstool-ng, ядро и toybox. Кросстулом собирается компилятор, которым собирается ядро, затем им же собирается toybox, который затем пакуется в initramfs, а полученное чудо скармливается QEMU. Потом запилю сборку для десятка разных архитектур, ведь всё используемое (linux, toybox, ct-ng, qemu) собирается для всех популярных архитектур.
Потестировать так:

git clone git@github.com:CYB3Rhuman/simplinux.git
cd simplinux/
./build.sh > /dev/null
Из-за кросстула требует кучу всего, но на системе, где собирают софт, вероятно всё нужное уже есть. Работать будет долго (т.к. собирает тулчейн и ядро), точное время зависит от мощности и loadavg компьютера.
Применений подобной импровизированной билд-системы массы. Например, обогрев помещений (ночью ещё холодно, а отопление уже отключают).

Однострочников на перле и подобного не содержит.

★★★★★
Ответ на: комментарий от gwinn

У меня уже тулчейн собрался, собирается ядро. Дальше ничего уже обрушиться не должно.

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

Собралось, запустилось, работает. На сборку ушло примерно 75 минут на моём железе.

CYB3R ★★★★★
() автор топика
: compiling
scripts/make.sh
Make generated/config.h from .config.
Extract configuration information from toys/*.c files...
scripts/genconfig.sh: line 73: ./a.out: No such file or directory
Generate headers from toys/*/*.c...
generated/newtoys.h
generated/flags.h
scripts/make.sh: line 91: /tmp/simplinux/src/tools/x86_64-cyb3r-linux-gnu/bin/x86_64-cyb3r-linux-gnu-cc: Нет такого файла или каталога
scripts/make.sh: line 91: /tmp/simplinux/src/tools/x86_64-cyb3r-linux-gnu/bin/x86_64-cyb3r-linux-gnu-cc: Нет такого файла или каталога
generated/globals.h
generated/help.h
Extract help text from Config.in.
Library probe...
Compile toybox...
scripts/make.sh: line 172: /tmp/simplinux/src/tools/x86_64-cyb3r-linux-gnu/bin/x86_64-cyb3r-linux-gnu-cc: Нет такого файла или каталога
make: *** [toybox] Ошибка 1
scripts/install.sh --long --symlink --force
Compile instlist...
Install commands...
cp: не удалось выполнить stat для «toybox»: Нет такого файла или каталога
make: *** [install] Ошибка 1
: done
:: building rootfs
: cleaning
: copying
: packing
2 блоков
: done
:: executing
qemu: could not load kernel '/tmp/simplinux/out/linux-3.12.17': No such file or directory
dron@gnu:/tmp/simplinux$ 
Dron ★★★★★
()
Ответ на: комментарий от Dron

Или это неполный вывод или скрипт по непонятной причине выполняется с середины.
Компилятор у тебя не собрался.

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

Пускай разработчик ct-ng сам это делает. Своих зависимостей у моих скриптов не много: wget, tar, make, и build-essential.

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

Ой-ой, нашёл страшную ошибку, которую сразу пофиксил, а закоммитить забыл: ct-ng не читает локальнье переменные и вместо ${SRC}/tarball он видит /tarball. Сделай git pull и попробуй ещё раз.

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