Я пытаюсь добавить свою собственную программу в маленький linux, созданный с помощью Buildroot. Что я сделал до сих пор:
-
Я создал новый каталог внутри моего 'buildroot/package/' под названием HelloWorld. Внутри 'buildroot/package/HelloWorld' У меня есть: каталог Config.in, HelloWorld.mk и HelloWorld. Config.in содержит следующее:
config BR2_PACKAGE_HELLOWORLD bool "helloworld" default y help Hello world component.
HelloWorld.mk содержит следующее:
HELLOWORLD_VERSION:= 1.0.0
HELLOWORLD_SITE:= /home/userpc/Downloads/helloworld/
HELLOWORLD_SITE_METHOD:=local
HELLOWORLD_INSTALL_TARGET:=YES
define HELLOWORLD_BUILD_CMDS
$(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
endef
define HELLOWORLD_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/helloworld $(TARGET_DIR)/bin
endef
define HELLOWORLD_PERMISSIONS
/bin/helloworld f 4755 0 0 - - - - -
endef
$(eval $(generic-package))
(источник вдохновения источник) Каталог HelloWorld содержит: main.c и Makefile:
main.c:
#include <stdio.h>
int main()
{
printf("\nMain entry.\n");
return 0;
}
Makefile:
CC=gcc
CFLAGS=-I.
all: *.c
$(CC) -Os -Wall *.c -o helloworld
# $(STRIP) helloworld
clean:
rm -f a.out helloworld
rm -f *.o
Изменить. Я также добавил исходный пакет /HelloWorld/Config.in для пакета /Config.in ' Но когда я монтирую свой раздел rootfs.ext2, я не могу найти исполняемый файл HelloWorld внутри /usr/bin.., я действительно новичок в этом и не имею никаких предварительных знаний, поэтому не могли бы вы объяснить мне, что Я пропустил это, потому что я уверен, что я делаю что-то неправильно.
UPDATE:. Программа строит и устанавливает в нужном месте, но когда я пытаюсь запустить ее так:./helloworld, я получаю: bash:./helloworld: нет такого файла или каталог, у него есть права исполнения.. что с ним связано? (Я пытаюсь запустить его после того, как я установил rootfs.ext2 в каталог ubuntu, целевая арка для buildroot - i368, так что это должно быть нормально, правильно?)
После создания и установки программы HelloWorld и, в конечном счете, ее запуска, я хотел бы добавить в init.d, чтобы он запускался после загрузки, и заменил HelloWorld на Qt-окно, которое не нуждается в X-сервере, например эта вещь здесь.
Основной источник вдохновения здесь.