Jan. 16th, 2014

zepete: (Default)

В скрипте запускаемом из Makefile нельзя использовать команду opkg install xxx, ибо opkg не допускает рекурсивного вызова.
Поэтому, написанный мной Makefile для установки пакетов для поддержки звука или установки дополнительных программ работать не будут. Я их из тех постов удаляю.

Можно обойти рекурсивный запуск opkg простым путем: все устанавливаемые пакеты перечислить, через пробел и дополнив вначале "+", в переменной DEPENDS (DEPENDS:=+pack1 +pack2.....).

Но это не позволяет устанавливать пакеты с пересекающимся множеством файлов, что иногда бывает необходимо, если надо установить пакет с расширенной версией команд. Для реализации такой возможности, надо создать скрипт в Makefile, который будет запускаться в фоне с подачей сигнала opkg об завершении.

Если скрипт запускать при помощи "&", то скрипт завершиться вместе с opkg. Для предотвращения этого, его надо запускать командой "nohup ash batch.sh &> /dev/tty &" или "ash batch < /dev/tty &> /dev/tty &".

К сожалению, в обоих вариантах запуска скрипта в фоне, ввод с клавиатуры будет невозможен: фоновый процесс в linux не имеет ввода и из программы bash команда "fg" (команда перевода процесса на передний) план не работает.

Для того, что бы это все реализовать, я использовал Makefile из предыдущего поста практически без переделок, но значительно изменил shell программу подготовки скрипта. Теперь скрипт подготовки исходного скрипта стал принимать 2 параметра: имя файла с исходным скриптом и имя файла запускаемого в фоне при установке из временной папки, которая в openwrt располагается в ОЗУ и перезагрузке удаляется.


#!/bin/sh
#***********************************************************************
#*скрипт заменяющий перевод строки на !!!separator!!!, а сами строки   *
#*на команды echo с выводом в файл указанный в последующей строке      *
#*!!!ВНИМАНИЕ!!! ВВОД С КЛАВИАТУРЫ НЕВОЗМОЖЕН!!!                       *
#*14 января 2014 года, zepete.livejournal.com                          *
#***********************************************************************
cat $1 | sed s~\'~\'\\\\\'\'~g | awk 'BEGIN{ORS="!!!separator!!!" ; OFS="" ;\
 sq="\x27" ; print "#!/bin/ash"; \
print "echo "sq"***********************************************************"sq;\
print "echo "sq"*Script starting installing script from opkg.             *"sq;\
print "echo "sq"*Please, wait 5 seconds for terminate opkg and            *"sq;\
print "echo "sq"*autostarting installing script                           *"sq;\
print "echo "sq"*15.01.2014 zepete                                        *"sq;\
print "echo "sq"***********************************************************"sq;\
print "(";\
print "echo "sq"#!/bin/ash"sq;\
print "echo "sq"noTimeOut=5"sq;\
print "echo "sq"until opkg update"sq;\
print "echo "sq"do"sq;\
print "echo "sq" let " sq "\\" sq sq "noTimeOut-=1"sq"\\"sq;\
print "echo "sq" if [ $noTimeOut -eq 0 ]"sq;\
print "echo "sq" then"sq;\
print "echo ", sq, "  echo ", sq, "\\", sq, sq,\
"***********************************************************"sq"\\"sq;\
print "echo ", sq, "  echo ", sq, "\\", sq, sq,\
"*ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERR*"sq"\\"sq;\
print "echo "sq"  echo ", sq, "\\", sq, sq,\
"*Can not wait for the completion of opkg                  *"sq"\\"sq;\
print "echo ", sq, "  echo ", sq, "\\", sq, sq,\
"***********************************************************"sq"\\"sq;\
print "echo ", sq, "  exit 1", sq;\
print "echo ", sq, " fi", sq;\
print "echo ", sq, " sleep 1", sq;\
print "echo ", sq, "done", sq;\
print "echo ", sq, "clear", sq\
}\
{if($1~/#!\/bin\//){next}}\
{print "echo ", sq, $0, sq}\
END{print " "; print " "; print ") > ", output;\
print "nohup ash ", output, " &> tty&";\
print "exit 1";\
print " ";\
print " "}' output="$2"


Переделанный Makefile из предыдущего поста для создания пакета установки приложений для звука.
Read more... )


Makefile для установки дополнительных программ.
Read more... )

Profile

zepete: (Default)
zepete

January 2026

S M T W T F S
    1 23
4 56 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 14th, 2026 11:31 pm
Powered by Dreamwidth Studios