Как да компилирам Busybox?

(Телефоните i9100 и i9100p имат Exynos 4210 SoC, който включва Cortex A9 двуядрен 1,2 Ghz процесор, който поддържа NEON.)

Ще компилирам най-новата налична моментна снимка на източника на busybox и ще я кача за всички безплатно в интернет и може би дори ще направя своя собствена безплатна BusyboxInstaller.apk (вече изтеглих днешната моментна снимка от 14 март от официалния уебсайт) защото толкова много инсталатори на busybox са много остарели версии и искам да се възползвам от възможните оптимизации за процесора Cortex A9.

(Технологията NEON е 128-битово разширение на архитектурата SIMD (единична инструкция, множество данни).

Може да ускори мултимедийни алгоритми и алгоритми за обработка на сигнали като кодиране/декодиране на видео, 2D/3D графики, игри, обработка на аудио и реч, обработка на изображения, телефония и синтез на звук.)

1 като означава ли, че ще бъде от полза и за моя busybox?

2 Какви други инструкции/нещо друго мога да използвам за оптимизиране за i9100 устройства?

3 Мога ли да компилирам на телефона си вместо на компютър само с 1x2Ghz and 2GB RAM? Мисля, че трябва да е много по-бързо, защото има 2x1.5GHz and 1GB RAM (овърклоквам само малко) срещу 1x2GHz, прав ли съм?

4 Как да компилирам busybox?

За какво са тези опции?

Force NOMMU build
Additional CFLAGS
Additional LDFLAGS
Additional LDLIBS
all in general configuration and Busybox Library Tuning and debug (I googled for each for a few hours but nothing satisfactory)

Какъв тип връзки към аплети да инсталирате?

(./_install) Инсталационен префикс на BusyBox

**Имам eeror, когато следвам инструкциите на vinayhunachyai.

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- install
/home/euphoria/Sourcery/busybox/scripts/gcc-version.sh: line 11: arm-none-linux-gnueabi-gcc: command not found
  CC      applets/applets.o
/bin/sh: 1: arm-none-linux-gnueabi-gcc: not found
scripts/Makefile.build:197: recipe for target 'applets/applets.o' failed
make[1]: *** [applets/applets.o] Error 127
Makefile:372: recipe for target 'applets_dir' failed
make: *** [applets_dir] Error 2

person user42276    schedule 14.03.2014    source източник
comment
какви аплети мога безопасно да деактивирам?   -  person user42276    schedule 24.03.2014


Отговори (2)


Как да компилирам busybox?

Първо изтегляне на инструментална верига. Можете да се обърнете към това: Съвет относно инсталирането на ARM инструментална верига на Ubuntu VM (64 бита)

  1. разархивирайте нов изходен код

  2. създайте конфигурация по подразбиране

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- defconfig

Създава се конфигурационен файл по подразбиране.

  1. актуализирайте конфигурацията, за да я промените според нашите нужди:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig

Опцията за компилиране на Busybox като статичен изпълним файл, така че да не се налага да копираме динамичните библиотеки в основната файлова система. Настройката може да бъде намерена в „Busybox Settings --› Build Options“. Освен това изберете какви помощни програми искате да бъдат вградени в Busybox.

  1. След това следната команда изгражда Busybox и създава директория, наречена _install, съдържаща коренното дърво на файловата система:

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- install.

Компилирайте статично. Ако компилирате динамично, тогава трябва да копирате библиотеки към целта.

За повече подробности вижте тази връзка: http://balau82.wordpress.com/2010/03/27/busybox-for-arm-on-qemu/

person vinay hunachyal    schedule 18.03.2014
comment
@vinayhunchyai Съжалявам, че не видях това по-рано. Когато стартирам команда 1) получавам arm-none-linux-gnueabi-gcc not found. Трябва ли да се притеснявам? Също така проверявам всяка опция в конфигурацията на busybox и не можах да намеря задоволителна информация за какво служат: моля, вижте редактирания ми въпрос - person user42276; 23.03.2014
comment
@vinayhunachyai, ​​моля, помогнете с опциите за busybox. (Бих гласувал за вас, но изисква 15 репутация) - person user42276; 23.03.2014
comment
@vinayhunachyai получавам грешка при стъпка 3: make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- install /home/euphoria/Sourcery/busybox/scripts/gcc-version.sh: ред 11: arm-none-linux- gnueabi-gcc: командата не е открита CC applets/applets.o /bin/sh: 1: arm-none-linux-gnueabi-gcc: не е намерена скриптове/Makefile.build:197: рецепта за цел 'applets/applets.o' неуспешно изработване[1]: *** [applets/applets.o] Грешка 127 Makefile:372: рецепта за цел 'applets_dir' неуспешно изработване: *** [applets_dir] Грешка 2 - person user42276; 24.03.2014
comment
имате ли кръстосана верига от инструменти? ако не го изтеглите sourcery.mentor.com/GNUToolchain Първо, грешката се дължи на липса на инструментална верига gcc - person vinay hunachyal; 24.03.2014
comment
@vinayhunachyai Не изтеглих това, защото изисква регистрация и е комерсиално, така че изтеглих gnu toolchain на части (компилирах bison и всички останали успешно) и получавам същата грешка, както преди. Трябва ли да е gnu toolchain от предоставения от вас уебсайт? - person user42276; 25.03.2014
comment
не знам коя инструментална верига използвате, така че моето предложение е да изтеглите олекотена версия с вашия акаунт в gmail, тя е безплатна, само трябва да дадете имейла си, те ще изпратят връзка към gmail - person vinay hunachyal; 25.03.2014
comment
@vinayhunachyai Искам да разбера това по-добре. Отидох на en.wikipedia.org/wiki/GNU_toolchain и има например изброен bison, така че потърсих всеки инструмент, посочен там (като bison) от официално изтегляне на gnu (като ftp.gnu.org/gnu/bison) и го компилирах. Направих това с всеки инструмент, изброен там, с изключение на такива, които вече имах (като Make) и проверих в терминала дали работят (като напиша например bison). Така че сега всеки инструмент, изброен там, работи. Искам да избегна инсталирането на повече, ако е възможно, защото дисковото ми пространство свършва. И така, какво не е наред с това, което описах по-горе??? - person user42276; 25.03.2014
comment
интензивен ли си да компилираш busybox за ARM rite?? - person vinay hunachyal; 25.03.2014
comment
@vinayhunachyai да, моето намерение е да копирам за ръка, специално за Galaxy S2 - person user42276; 25.03.2014
comment
След това, моля, следвайте горното, както казах, за да постигнете целта си. След като компилира, вземете busybox exe. копирайте в цел и го изпълнете. - person vinay hunachyal; 26.03.2014
comment
@vinayhunachyai Но мога ли да компилирам busybox след това, което направих вчера? (вижте коментара по-горе) - person user42276; 27.03.2014
comment
Получих грешка include/platform.h:152:23: fatal error: byteswap.h: No such file or directory # include <byteswap.h> моля за всяка помощ - person mikmik; 25.05.2015
comment
След всичко това, къде трябва да поставим двоичния файл на busybox в изходния код на Android, за да го имаме на output.zip? - person Dr.jacky; 22.02.2016

За Android можете да използвате config android_defconfig и да компилирате с examples/android-build.

Използвах успешно busybox, коригиран от sherpya: неговата конфигурация sherpya_android_defconfig и леко модифициран скрипт за компилация examples/android-build.

person pevik    schedule 31.08.2016