- Gcc error unrecognized argument in option mabi aapcs linux
- Error «unrecognized command line option» occurs in generating root file system #166
- Comments
- yieux commented Jul 18, 2017
- vchong commented Jul 18, 2017
- yieux commented Jul 19, 2017 •
- vchong commented Jul 19, 2017
- yieux commented Jul 19, 2017
- jbech-optee-adm commented Oct 21, 2017
- Build a new Kernel #20
- Comments
- asad-lesani commented Jul 6, 2016
- tkisky commented Jul 6, 2016
- asad-lesani commented Jul 6, 2016
- iancoolidge89 commented Jul 6, 2016
- asad-lesani commented Jul 6, 2016
- telelaci commented Jul 6, 2016
- asad-lesani commented Jul 6, 2016
- telelaci commented Jul 6, 2016
- titusece commented Jul 19, 2016
Gcc error unrecognized argument in option mabi aapcs linux
Все ответы на андроидные ядерные вопросы: как устроено ядро Linux вообще и для Андроида в частности, механизмы взаимодействия внутри ядра, программирование ядра, обсуждение различных ошибок, возникающих при сборке ядра и при его функционировании, общие правила конфигурации ядра и прочие системные вопросы.
Здесь обсуждается ядро на уровне исходных текстов. В силу этого к своему вопросу рекомендуется приложить ссылку на репозиторий с исходными текстами ядра, протоколы (dmesg) в текстовом виде.
Вопросы сборки образов ядра и упаковки этих образов в формат конкретного загрузчика для конкретного аппарата лучше задать в специализированной теме раздела. Например, Самостоятельная компиляция ядра из исходников, Сборка ядра Android 4.4.x (KitKat) / 5.x.x(Lollipop) / 6.x.x (Marshmallow)/ 7.х.х (Nougat) для процессоров MTK, Помощь в разработке и портировании Android OS на устройствах МТК, Разработка ядра и прошивки Android 6.0 для Asus Zenfone Go, Разработка и портирование для устройств на платформе Spreadtrum SC7731, Разработка ядер и прошивок Redmi 4 (prada), RockChip rk3188 и новее,сборка ядра и другое и т.д.
Тема выросла отсюда: Скрипты на shell под Android. В родительской теме обсуждаются системные вопросы функционирование Андроида в пользовательском пространстве (userspace): начальный старт, низкоуровневое взаимодействие с системными компонентами Андроида.
Нормативные материалы по ядру Linux:
— Основополагающий документ по внутреннему устройству Андроида, Android Architecture, содержит раздел Kernel, в котором изложены базовые требования к ядру со стороны Андроида, освещены вопросы конфигурирования ядра, оптимизации отдельных компонент ядра и т.п.
В теме нет куратора. Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку в теме Хочу стать Куратором (предварительно изучив шапку темы и все материалы для кураторов).
До назначения куратора, по вопросам наполнения шапки, обращайтесь к модераторам раздела через кнопку под сообщениями, на которые необходимо добавить ссылки.
Сообщение отредактировал derak1129 — 22.06.20, 23:06
vitaly51370,
В рамдиск лежит начальная конфигурация с инструкциями подготовки оборудования, монтирования разделов и запуска процесов, отвечающих за жизнь андройда. Kernel — ядро, не декомпилируется. Компилмруется с исходников из-под линукса. Да и вообще рекомендую работать с андройдом только из-под linuxа (ubuntu, linux mint — рекомендую их)
Сообщение отредактировал FiveGFox — 21.11.14, 00:29
У меня вопрос. Про управление частотами процессора.
Ну вот из конфига я узнал драйвер который управляет частой, а где хранится таблица или что-то в этом роде где записаны частоты для говернора?
процессор интел
драйвер
vitaly51370, 1. Это не пустой файл, это специальный файл — устройство. Слабо представляю, во что он превратится на windows, и как все будет работать после перепаковки. 2. Судя по /dev/console, Вы наблюдаете свой корень — rootfs. Все остальное либо монтируется к нему, либо rootfs сразу же переключают через pivot_root. 3. Вы можете иметь сколько угодно «рамдисков». Изначально Вам доступен initrd и rootfs (опция root=), далее можете делать pivot_root до бесконечности. 4. Помимо рамдисков можно пользовать initfs, что имеет свои плюсы.
OLEG4120, arch/x86/kernel/cpu/cpufreq, посмотрите, например, на acpi-cpufreq.c. За ведение таблицы отвечает drivers/cpufreq/freq_table.c
Сообщение отредактировал username11 — 16.04.20, 15:39
/ # # тут 0 — 1-й проц, 1 — 2-ой проц, а 0-1 оба сразу(работают/спят/присутствуют/доступны).
/sys/devices/system/cpu # ls -FxSr
power/ cpufreq/ cpu1/ cpu0/
uevent present possible online
offline kernel_max
/sys/devices/system/cpu # cat online offline present possible
0
1
0-1
0-1
/sys/devices/system/cpu # cat online offline present possible
0-1
0-1
0-1
/ # # ——————
/ # # тут 0 — спит, 1 — работает.
/ # cat /sys/devices/system/cpu/cpu1/online
0
/ # cat /sys/devices/system/cpu/cpu1/online
1
/ # # ——————
/ # # статистика по частотам, по сну не нашёл.
/sys/devices/system/cpu # ls -Fx ./cpu0/cpufreq/stats
trans_table total_trans time_in_state
/sys/devices/system/cpu/cpu0/cpufreq/stats # cat trans_table
From : To
: 1300000 1209000 1001000 806000 598000
1300000: 0 432 294 254 950
1209000: 50 0 164 93 125
1001000: 1281 0 0 22136 15357
806000: 10 0 12177 0 10296
598000: 589 0 26138 0 0
/sys/devices/system/cpu/cpu0/cpufreq/stats # cat total_trans
90420
/sys/devices/system/cpu/cpu0/cpufreq/stats # cat time_in_state
1300000 139299
1209000 17918
1001000 3652376
806000 322914
598000 925570
/ # # ——————
/ # dmesg | grep CPU
.
[57346.900942] (0)[12379:kworker/0:0][WDK]:Stop CPU:1
[57347.929911] (0)[12379:kworker/0:0]dbs_check_cpu: turn on CPU
[57347.974142] (0)[12379:kworker/0:0]Boot slave CPU
[57347.975258] (1)[0:swapper/1]CPU1: Booted secondary processor
[57350.949876] (0)[12379:kworker/0:0]dbs_check_cpu: turn off CPU
[57350.971178] (0)[12379:kworker/0:0]CPU1: shutdown
[57350.971809] (0)[12379:kworker/0:0][WDK]:Stop CPU:1
/ # # ——————
/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_available_governors
ondemand userspace powersave hotplug performance
/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_governor
hotplug
/ # # ——————
/ # echo `uname -m` `cat /proc/version`
armv7l Linux version 3.4.5 ([email protected]) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Nov 27 09:21:32 CST 2013
(log=/data/cpulog$$
while :;do s=`cat /sys/devices/system/cpu/cpu1/online`;
if [ «$s» != «$os» ]; then
echo «`date +%H:%M:%S` $s `cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq`» >>$log
os=$s;
if [ -f /data/cpulogkill ];then rm $log;break;fi;
fi;
usleep 200000;
done;
) /dev/null 2>&1 &
Сообщение отредактировал Visitor7 — 07.12.14, 05:01
_adm, username11, Пока можно только сравнить среднее энергопотребление при 8-ми работающих и при 7-ми отключенных ядрах. Потому что проблема как таковая не выявлена. adm_ сравнивал работу читалки на двух разных аппаратах с различными устройствами, системами и набором работающих программ при полном отсутствии знаний об их характеристиках. Это все равно что я сравню читалку на своём аппарате и навороченном самсунге. На самсунге ram больше в 4 раза и жрет, соответственно, больше. Экран потребляет раз в 10 больше, т.к. разрешение намного выше и матрица ips. Более новый и жручий андроид. Аккумулятор намного меньшей ёмкости. Больше устройств. Разные радиомодули. Потребление процессоров впринципе разное. И т.д. и т.п. И тут я такой: «Мля, так быстро садится аккумулятор. чета говернер бракованный, как его переписать?» Где связь?
Тем более саму читалки, если проблема подтвердится, можно попробоавть избавить от использования доп. ядер, увеличив период запуска доп. ядер до 3-5 секунд. За это время можно не одну страничку перелистнуть. У hotplug ведь настроек дофига.
Сообщение отредактировал Visitor7 — 08.12.14, 17:21
скажите, пожалуйста, как — с большим интересом попробую.
т.е. на самом деле было б осмысленно/интересно сделать таскером перевод процессора на одноядерный режим в момент включения читалки.
чтобы перетаскивать неотвеченные вопросы оттуда сюда нужны административные права.
м.б. можно/уместно попросить Вас пролистать последние 1.5 страницы темы там и ответить здесь? 😉
. готов, конечно, забыть про оккама и сдублировать сам, хоть это и крайне неэстетично. 😉
Сообщение отредактировал adm_ — 08.12.14, 16:23
adm_, На ваш первый вопрос уже отвечено. А пункта «удалить» в своих сообщениях вы ещё не заслужили или просто игнорируете его существование?
Сообщение отредактировал Visitor7 — 08.12.14, 17:47
/maps. 3. Про Андроид и многоядерность я вроде бы уже упоминал. Могу поговорить про это подробнее, но хотелось бы услышать от Вас не абстрактные примеры, а конкретные. Скажем, я представляю, зачем многоядерность современному браузеру, но абсолютно не понимаю, зачем она нужна погодному виджету. Проблема в том, что браузер работает, минуя Андроид.
username11, Андроид я уже почистил, оставшимся приложениям 90% событий поотрезал, а вот про auto sync почитать надо.
Под 3д-стрелялкой второй проц запустился и больше не выключался пока я игру не убил. А на навигаторе запускается надолго только во время рендеринга, когда карта перемещается или масштаб меняю.
У меня почему-то значения load average всегда крутятся возле 6-ти, все три. Если верить инструкциям, то для двухядерника это повод для тревоги. Но телефон работает в своём обычном тормозном режиме, простой(idle) у процессора высокий. Что это может значить? Причем, число активных процессов/нитей порой достигает 6-ти, на двух-то ядрах. Супер гипер мега трейдинг?
Я вроде могу себе представить любую программу действительно многоядерной. Можно обрабатывать несколько параллельных потоков данных одновременно на разных ядрах. Можно обрабатывать один поток данных организовав межядерный конвейер, если данные можно разделить хотябы на две части.
Под межядерным конвеером(просто не знаю как это назвать) имею ввиду чета типа того. Направляю, например, звуковой поток в буфер, буфер заполняется и передаётся на обработку звуковому эффекту 1 в первое ядро, оттуда он поступает на обработку звуковому эффекту 2 во второе ядро. Все, конвейер заполнен, пока эффект 2 обрабатывает полученные от первого данные, эффект 1 получает из буфера и обрабатывает уже следующюю часть потока.
То же самое с программами. Задача делится на подзадачи. Паралельные подзадачи раскидываются по разным свободным ядрам, последовательные задачи выполняемые более раза подряд организуются в межядерные конвейеры. Вот и готово. Проблемы заключается в синхронизации всего этого хозяйства, наличаи действительно свободных ядер под каждую подзадачу и соответствующей скорости и бесперебойности ввода/вывода данных. Когда все эти проблемы удастся обойти или разрешить, должна получится шустрая программа. Так что ждем появления 10000-ядерных процессоров, там можно будет развернуться)))
Сообщение отредактировал Visitor7 — 10.12.14, 04:57
Источник
Error «unrecognized command line option» occurs in generating root file system #166
Comments
yieux commented Jul 18, 2017
The issue occurs in the step 7.6 «Flash the device».
$ make flash
When busybox is used to generate file system. I get some error from aarch64-linux-gnu-gcc for building applets.o.
1)The line 79 of generate-cpio-rootfs.sh
It looks like that the options such as mthumb is supported by only arm(aarch32) not arm64(aarch64).
, how can I do this job for different processor, or what I did wrong?
If someone could help me with this issue I would be very thankful.
The text was updated successfully, but these errors were encountered:
vchong commented Jul 18, 2017
Which platform are you building for? It’s not supposed to go to case vexpress in generate-cpio-rootfs.sh for arm64(aarch64). Did you make any changes to the makefiles?
yieux commented Jul 19, 2017 •
Since target flash is not included in /build/Makefile, i add one line to qemu.mk
-include mediatek.mk
Then I get the above errors for make flash or make busybox .
As @vchong said, I remove the additional line and execute make busybox .
For system type, I select
And only the options:
ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait) (ARCH_MULTI_V7) ——— suggest to accept
ARM Ltd. Versatile Express family (ARCH_VEXPRESS) —————————— automatically accept
is selected as CPU Core family.
Now, busybox looks normal.
After that, I execute
make flash -f mediatek.mk
and select platform ARMv8 software model (Versatile Express) (ARCH_VEXPRESS)
However, I get the same errors with previous contents.
vchong commented Jul 19, 2017
You either use qemu.mk only, in which case there’s no need to make flash , or use mediatek.mk only, and can then make flash to the board. Why are you trying to mix 2 different makefiles for 2 different platforms at the same time? You specify the one platform you want to use during step 7.3, i.e.
repo init -u https://github.com/OP-TEE/manifest.git -m default.xml -> for qemu
or
repo init -u https://github.com/OP-TEE/manifest.git -m mt8173-evb.xml -> for mediatek
yieux commented Jul 19, 2017
OK, I get it.
Thanks for your help.
jbech-optee-adm commented Oct 21, 2017
We are closing this issue/question, why?
- We believe the question has been answered.
- Quite often when we have answered the questions, the issuer forget to close the issue which results in many open issues for us which makes it hard to keep track of the ones actually waiting for an answer.
- In some cases we ask follow-up questions, but do not hear back from the one creating the issue.
If you however feel that you have additional questions or still thinks this is an issue, then please feel free to re-open the issue again. When closing issues we will only show this entire message once.
Источник
Build a new Kernel #20
Comments
asad-lesani commented Jul 6, 2016
I’m going to build a new Kernel for Ubuntu. I followd these steps:
I have downloaded the Kernel source file from https://github.com/boundarydevices/linux-imx6.git
Then coppied the nitrogen6x_defconfig to the main root of the source code as .config .
Then I run make .
After a while I get this error:
Can anyone help me to solve that and build my own image?
The text was updated successfully, but these errors were encountered:
tkisky commented Jul 6, 2016
On 7/6/2016 5:56 AM, asad-lesani wrote:
I’m going to build a new Kernel for Ubuntu. I followd these steps:
I have downloaded the Kernel source file from |https://github.com/boundarydevices/linux-imx6.git|
Then coppied the |nitrogen6x_defconfig| to the main root of the source code as |.config|.
Try «make nitrogen6x_defconfig» instead. The defconfig files are much smaller than the corresponding
.config
Then I run |make|.
After a while I get this error:
|CC lib/percpu_ida.o make[1]: stat: lib/hash.c: File name too long make[1]: *** No rule to make
target lib/hash.c’, needed by lib/hash.o’. Stop. make: *** [lib] Error 2 |
Can anyone help me to solve that and build my own image?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#20, or mute the thread
https://github.com/notifications/unsubscribe/ABoNv7TDlGAh9n2BcInhG3vRre8OsfPsks5qS6X_gaJpZM4JGDPg.
asad-lesani commented Jul 6, 2016
When I want to run make nitrogen6x_defconfig I get this error:
can’t find default configuration «arch/x86/configs/nitrogen6x_defconfig»
Should i copy nitrogen6x_defconfig in this directory: arch/x86/configs/nitrogen6x_defconfig
iancoolidge89 commented Jul 6, 2016
On Wed, Jul 6, 2016 at 1:42 PM, asad-lesani notifications@github.com
wrote:
When I want to run make nitrogen6x_defconfig I get this error:
can’t find default configuration «arch/x86/configs/nitrogen6x_defconfig»
Should i copy nitrogen6x_defconfig in this directory:
arch/x86/configs/nitrogen6x_defconfig
asad-lesani commented Jul 6, 2016
Not I could run the make, but I get this error:
SVE15123CDW:
/Desktop/linux-imx6-boundary-imx_3.14.28_1.0.0_ga# make scripts/kconfig/conf —silentoldconfig Kconfig CHK include/config/kernel.release CHK include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h make[1]: include/generated/mach-types.h’ is up to date.
CC kernel/bounds.s
gcc: error: unrecognized argument in option ‘-mabi=aapcs-linux’
gcc: note: valid arguments to ‘-mabi=’ are: ms sysv
gcc: error: unrecognized command line option ‘-mlittle-endian’
gcc: error: unrecognized command line option ‘-mapcs’
gcc: error: unrecognized command line option ‘-mno-sched-prolog’
gcc: error: unrecognized command line option ‘-mno-thumb-interwork’
gcc: error: unrecognized command line option ‘-mfpu=vfp’
make[1]: *** [kernel/bounds.s] Error 1
make: *** [prepare0] Error 2
`
telelaci commented Jul 6, 2016
On Wed, Jul 6, 2016 at 1:42 PM, asad-lesani notifications@github.com
wrote:
When I want to run make nitrogen6x_defconfig I get this error:
can’t find default configuration «arch/x86/configs/nitrogen6x_defconfig»
Should i copy nitrogen6x_defconfig in this directory:
arch/x86/configs/nitrogen6x_defconfig
asad-lesani commented Jul 6, 2016
I tried to follow them, this is what I get after making:
drivers/media/v4l2-core/videobuf-dma-contig.o
make[3]: *** No rule to make target drivers/media/v4l2-core/videobuf2-memops.c’, needed by drivers/media/v4l2-core/videobuf2-memops.o’. Stop.
make[3]: *** Waiting for unfinished jobs.
CC drivers/media/v4l2-core/videobuf2-core.o
make[2]: *** [drivers/media/v4l2-core] Error 2
make[1]: *** [drivers/media] Error 2
make: *** [drivers] Error 2
telelaci commented Jul 6, 2016
Hi Asad,
Please tell me exactly what have you done.
You can send it directly to me :
laci@boundarydevices.com
Regards,
Laci
On Wed, Jul 6, 2016 at 2:12 PM, asad-lesani notifications@github.com
wrote:
I tried to follow them, this is what I get after making:
drivers/media/v4l2-core/videobuf-dma-contig.o
make[3]: *** No rule to make target drivers/media/v4l2-core/videobuf2-memops.c’,
needed bydrivers/media/v4l2-core/videobuf2-memops.o’. Stop.
make[3]: *** Waiting for unfinished jobs.
CC drivers/media/v4l2-core/videobuf2-core.o
make[2]: *** [drivers/media/v4l2-core] Error 2
make[1]: *** [drivers/media] Error 2
make: *** [drivers] Error 2
titusece commented Jul 19, 2016
Asad,
You can clean your kernel and build again.
make distclean ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
make nitrogen6x_defconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
make uImage modules -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
Источник