[12:53:12] <zombah_> добрый день всем
[12:53:26] <zombah_> vasy: привет, ты чтот писал вчера?
[12:53:52] <zombah_> я просто в отпуске еще по ночам только вылезаю когда семья задрыхнет
[13:02:59] <vasy> zombah_: Привет!
[13:03:27] <vasy> zombah_: что-то хотел спросить, но уже забыл... :)
[13:03:35] <zombah_> vasy: 8))
[13:04:22] <zombah_> vasy: ты не помнишь синтаксис андроидных мейкфайлов? хотел custom bootimage.mk поправить только не пойму чет что там писать
[13:04:41] <vasy> ну так, слабо
[13:05:05] <zombah_> типа вот как здесь https://github.com/CyanogenMod/android_device_sony_huashan/blob/cm-12.1/custombootimg.mk
[13:05:45] <zombah_> часть которая выполняется начинается с переменной $(xxx): а после двоеточия еще переменные но по какому принципу не пойму
[13:06:06] <zombah_> часть которая выполняется ниже идет, а тут то что после двоеточия этого загадка
[13:06:37] <vasy> := это вроде просто переменные
[13:06:37] <vasy> а xxx: это цель
[13:06:56] <vasy> цель где-то еще должна вызваться
[13:08:48] <vasy> цель: зависимости
[13:08:49] <vasy> [tab] команда
[13:08:59] <zombah_> ну вот покакому принципу эти переменные туда совать, хочу свою цель собрать а она даже не запускается пока переменные правильные не засунешь
[13:09:06] <zombah_> зависимости? эт как
[13:09:35] <vasy> это когда цель зависит от других целей, то есть их надо выполнить до этого
[13:09:50] <zombah_> хм
[13:10:30] <vasy> а вот переменный в адройдных мэйках, это "тайное знание" :)
[13:11:03] <zombah_> просто вот тут два пути засовываются в переменные
[13:11:04] <zombah_> MKELF := device/sony/huashan/tools/mkelf.py
[13:11:04] <zombah_> INITSH := device/sony/huashan/combinedroot/init.sh
[13:11:25] <zombah_> INITSH обьявляется после : а MKELF нет
[13:11:41] <zombah_> хотя оба дальше используются
[13:11:41] <vasy> $(hide)
[13:11:41] <vasy> python $(MKELF) -o $@ $(PRODUCT_OUT)/kernel@0x80208000 $(PRODUCT_OUT)/combinedroot.fs@0x81900000,ramdisk vendor/sony/huashan/proprietary/boot/RPM.bin@0x00020000,rpm device/sony/huashan/rootdir/cmdline.txt@cmdline
[13:12:15] <zombah_> $(hide) cp $(INITSH) $(PRODUCT_OUT)/combinedroot/sbin/init.sh
[13:12:21] <zombah_> в чем разница?
[13:12:41] <vasy> INITSH в зависимостях есть (монитор маленький :)
[13:12:57] <zombah_> есть да, а MKELF нет 8)
[13:13:03] <vasy> то есть device/sony/huashan/combinedroot/init.sh должен быть
[13:13:49] <zombah_> ну содержимое MKELF то тоже должно быть
[13:14:09] <zombah_> там внутри путь на заранее готовый скрипт
[13:14:51] <vasy> И цели, и зависимости – это файлы. Наличие правила означает, что если какая-то из зависимостей оказалась свежее, чем цель (определяется по дате модификации файла), то цель нужно обновить с помощью указанных действий. Последние представляют собой пр
[13:15:41] <vasy> Цели и зависимости не обязаны быть файлами
[13:15:43] <vasy> В подобных случаях make понимает, что он имеет дело с целью, которая не является файлом, и считает ее “пустышкой” (phony). Такая цель всегда считается “изменившейся” – до тех пор, пока правило цели не будет выполнено
[13:16:12] <zombah_> давай я тебе свою цель покажу
[13:16:22] <zombah_> DTC := $(KERNEL_OUT)/scripts/dtc/dtc
[13:16:22] <zombah_> PAZ00_DTS := $(TARGET_KERNEL_SOURCE)/arch/arm/boot/dts/tegra20-paz00.dts
[13:16:23] <zombah_> INSTALLED_DTB_TARGET := $(PRODUCT_OUT)/tegra20-paz00.dtb
[13:16:23] <zombah_> INSTALLED_DTB_ARGS := -p 1024 -O dtb -o $(INSTALLED_DTB_TARGET) $(PAZ00_DTS)
[13:16:26] <zombah_> 4 переменные
[13:16:35] <zombah_> $(INSTALLED_DTB_TARGET): $(DTC) $(PAZ00_DTS)
[13:16:35] <zombah_> @echo -e ${CL_CYN}"----- Start DTB file ------"${CL_RST}
[13:16:35] <zombah_> $(DTC) $(INSTALLED_DTB_ARGS)
[13:16:35] <zombah_> @echo -e ${CL_CYN}"----- Made DTB file ------"${CL_RST}
[13:16:39] <zombah_> вот такая цель
[13:16:55] <zombah_> мейк ее даже не запускает, видимо до echo ему чтот не нравится
[13:17:25] <vasy> а потому что он нее видимо никто не зависит
[13:17:37] <zombah_> аааа
[13:17:39] <zombah_> во!
[13:17:53] <zombah_> теперь я тебя понял, надо чтот от нее зависили
[13:18:00] <zombah_> счас попробую
[13:19:59] <zombah_> так счас затестю
[13:20:00] <vasy> https://github.com/cm-nokia-x2/android_device_nokia_ara/blob/cm-11.0-wip/mkbootimg.mk#L47
[13:20:00] <vasy> тут есть INSTALLED_RECOVERYIMAGE_TARGET которая зависит от INSTALLED_DTIMAGE_TARGET
[13:20:10] <zombah_> блин надо записать на память а то забуду опять
[13:20:47] <zombah_> раз в год берусь за этот мейкфайл и вечно заного вспоминаю
[13:22:33] <vasy> а тут от INSTALLED_RECOVERYIMAGE_TARGET зависит RECOVERY_RESOURCE_ZIP
[13:22:33] <vasy> а тут https://github.com/CyanogenMod/android_build/blob/cm-11.0/core/Makefile#L875
[13:22:33] <vasy> INTERNAL_SYSTEMIMAGE_FILES включает в себя RECOVERY_RESOURCE_ZIP , а от него еще что-то зависит и тд и тп
[13:23:10] <vasy> поэтому при сборке андроид make и думает минут 15, пока это все разрулит...
[13:25:37] <zombah_> make[1]: Entering directory `/home/android/jellybean/kernel/toshiba/ac100'
[13:25:37] <zombah_> Error: kernel/toshiba/ac100/arch/arm/boot/dts/tegra20-paz00.dts:13.1-9 syntax error
[13:25:37] <zombah_> FATAL ERROR: Unable to parse input tree
[13:25:37] <zombah_> make: *** [/home/android/jellybean/out/target/product/ac100/tegra20-paz00.dtb] Error 1
[13:25:51] <zombah_> стал собирать но теперь ему dts не мил 8)
[13:25:55] <vasy> а это сам dts какой-то неправильный
[13:26:25] <zombah_> видимо надо коммандой другой чтоли его собирать
[13:26:59] <vasy> да врооде dtc стандартный
[13:27:22] <vasy> а хотя нет...
[13:27:34] <vasy> есть какой-то dtbToolCM
[13:27:56] <vasy> хотя поять не, это для dt.img уже
[13:28:05] <vasy> а сам dtc стандартный
[13:28:34] <vasy> я им разбирал dtb от андройдов, тока заголовок обрезать
[13:28:55] <zombah_> неа dtbtool чтобвнутрь засовывать
[13:29:02] <zombah_> имиджа
[13:29:45] <vasy> dtc в любую сторону умеет
[13:29:45] <vasy> Input formats are:
[13:29:45] <vasy> dts - device tree source text
[13:29:45] <vasy> dtb - device tree blob
[13:29:45] <vasy> fs - /proc/device-tree style directory
[13:29:46] <vasy> Output formats are:
[13:29:46] <vasy> dts - device tree source text
[13:29:47] <vasy> dtb - device tree blob
[13:29:47] <vasy> asm - assembler source
[13:30:07] <zombah_> ага да
[13:30:28] <vasy> вот gcc бы так input format elf output format C++ :D
[13:31:20] <zombah_> так тут простая заковыка должна быть, видимо он dtsi не находит
[13:31:38] <zombah_> который в той же папке
[13:32:12] <zombah_> хм DTB_FILE = $(addprefix $(KERNEL_OUT)/arch/arm/boot/,$(patsubst %.dts,%.dtb,$(call MSM8610_DTS_FILE,$(1))))
[13:32:37] <zombah_> чет не пойму как нокиевский это дело обходит
[13:33:29] <vasy> он берет $(TARGET_KERNEL_SOURCE)/arch/arm/boot/dts/msm8610-ara.dts)
[13:33:37] <vasy> а дальше уже по инклюдам
[13:34:07] <zombah_> неа ara.dts в MSM8610_DTS_FILES переменной, а тут ее нет
[13:35:04] <vasy> MSM8610_DTS_FILE = $(lastword $(subst /, ,$(1)))
[13:36:00] <vasy> а, это не то
[13:37:07] <vasy> это он все dtb собирает , которые в $(KERNEL_OUT)/arch/arm/boot/
[13:39:07] <zombah_> так счас я к себе весь это дефайн перетащу
[13:39:11] <vasy> попробуй просто для начала
[13:39:11] <vasy> dtc -I dts -O dtb -o paz00.dtb kernel/toshiba/ac100/arch/arm/boot/dts/tegra20-paz00.dts
[13:39:20] <vasy> что скажет?
[13:39:54] <zombah_> syntax error там где include dtsi
[13:40:11] <zombah_> вернее дальше где переменные из dtsi идут
[13:40:28] <zombah_> dtsi ведь внутри указан как просто tegra20.dtsi
[13:40:39] <zombah_> без пути
[13:40:45] <zombah_> он не знает где его искать
[13:41:07] <zombah_> надо видимо сначала cd внутрь папки сделать чтоли
[13:42:39] <vasy> DTC: dts->dtb on file "arch/arm/boot/dts/msm8610-ara.dts"
[13:42:39] <vasy> Error: arch/arm/boot/dts/batterydata-BV5S-1800mAh.dtsi:23.31-32 syntax error
[13:42:39] <vasy> FATAL ERROR: Unable to parse input tree
[13:42:41] <zombah_> нет внутри папки тоже
[13:42:41] <vasy> хм
[13:42:53] <vasy> как-то оно сложнее чем я думал...
[13:43:04] <vasy> или всетаки от версии dtc зависит
[13:43:04] <zombah_> ага
[13:43:24] <zombah_> неа, не зависит если ядру make dtbs сказать то он им собирает норм
[13:45:14] <vasy> завсист
[13:45:17] <vasy> зависит
[13:45:24] <vasy> ~/android/cm12.1/out/target/product/ara/obj/KERNEL_OBJ/scripts/dtc/dtc -O dtb -o ara.dtb arch/arm/boot/dts/msm8610-ara.dts
[13:45:34] <vasy> собрало без ошибок
[13:45:53] <zombah_> ну я собираю с dtc который с этим ядром идет
[13:46:39] <vasy> а что там в строке 13?
[13:47:14] <zombah_> \ }
[13:47:37] <vasy> хм, а раньше ? :)
[13:48:39] <zombah_> #include "tegra20.dtsi"
[13:48:57] <zombah_> вернее \ {
[13:51:03] <zombah_> а нет вру 13 строка это #include <dt-bindings/input/input.h>
[13:51:41] <vasy> https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/tegra20-paz00.dts#L3
[13:51:45] <vasy> а тут третья...
[13:51:52] <zombah_> dtsi уже в 14ой
[13:52:13] <zombah_> ну у меня там конструкция еще есть
[13:52:22] <zombah_> https://github.com/ac100-ru/picasso-kernel/blob/3.18-paz00/arch/arm/boot/dts/tegra20-paz00.dts#L13
[13:54:22] <vasy> вроде нормально все, может всетаки версия dtc ...
[13:54:51] <zombah_> хм счас поищу как ядро само собирает может там видно будет что нужно
[13:56:06] <zombah_> ну у меня то верно мемрезерв раньше всех идет
[13:56:41] <vasy> да, но dtc толи include не нравится, толи то что в нем...
[13:57:42] <zombah_> мда загадочно
[13:59:26] <vasy> в caf ядре arch/arm/mach-msm/Makefile.boot dts компилит, а тут не видно где...
[14:01:04] <vasy> нашел
[14:01:04] <vasy> https://github.com/ac100-ru/picasso-kernel/blob/3.18-paz00/arch/arm/boot/Makefile#L31
[14:06:02] <vasy> но всеравно непонятно как...
[14:06:49] <zombah_> мда
[14:07:54] <zombah_> чтож мне ядром dts внутрь пихать тогда
[14:07:58] <zombah_> не прикольно
[14:09:52] <zombah_> раз тут input.h это уже не dtc а cpp 8)
[14:11:08] <vasy> https://github.com/ac100-ru/picasso-kernel/blob/3.18-paz00/include/dt-bindings/input/input.h
[14:11:14] <vasy> вообще да, как-то странно
[14:11:53] <vasy> а убери его совсем
[14:14:55] <zombah_> хм теперь на dtsi ругается
[14:15:39] <zombah_> на второй include
[14:16:07] <vasy> а попробуй dtc от нокии :)
[14:38:48] <zombah_> 8)
[14:39:53] <zombah_> не тоже самое
[14:39:54] <zombah_> Error: tegra20-paz00.dts:13.1-9 syntax error
[14:39:54] <zombah_> FATAL ERROR: Unable to parse input tree
[14:41:42] <zombah_> дело думаю в этом input.h пока он не всосется dtc дальше распарсить не может
[14:42:33] <zombah_> блин и главное все кто на новых ядрах с андроидом все dtb внутрь закалачивают не у кого подсмотреть
[14:43:30] <zombah_> надо наверно и мне пока так сделать, потом может вкурю как его собирать вытащу наружу
[14:48:58] <zombah_> хотя все конфиги уже на загрузку dtb переправил 8)
[14:50:40] <vasy> :)
[14:50:44] <zombah_> а во -i попробовать чтоли
[14:59:30] <zombah_> о как dtc_cpp_flags = -Wp,-MD,$(depfile).pre -nostdinc -P \
[15:00:58] <zombah_> пишут что dtc который в ядре идет должен парсить cpp синтаксис 8(
[15:04:53] <vasy> :)
[15:07:37] <zombah_> неа чтот и -i не помогает
[15:07:46] <zombah_> намудрили
[15:08:53] <stuw> у тебя это ядро отдельно собирается или тоже ошибка?
[15:09:13] <stuw> zombah_, ^^^
[15:09:46] <zombah_> stuw: ядерный мейк все норм собирает и ядро и dtb. я хочу dtb отдельно собрать 8)
[15:10:03] <zombah_> stuw: с помощью dtc
[15:10:05] <stuw> zombah_, посмотри как ядро dtb собирает
[15:10:37] <zombah_> stuw: чет я не могу понять как оно это делает 8))
[15:10:40] <stuw> dtc из ядра нужен, иначе косяки могут быть
[15:10:50] <stuw> в мейкфайле должно быть
[15:12:20] <zombah_> stuw: dtc из ядра пробую
[15:12:56] <zombah_> stuw: а в котором, тот что arch/arm/boot/dts не тот там список только, а где увидеть саму комманду не пойму
[15:14:27] <stuw> ./arch/arm/Makefile
[15:15:23] <stuw> хотя не, там тухляк
[15:16:34] <zombah_> можно конечно скрипт андроида поправить который ядро собирает
[15:16:46] <zombah_> но так не очень кошерно
[15:16:58] <zombah_> я хотел сам отдельным скриптом собрать и норм
[15:18:05] <zombah_> с нокией это так просто было, а у нас тут засада прям
[15:29:07] <zombah_> ладно вечером еще покумекаю
[15:29:13] <zombah_> всем пока
[15:35:41] <stuw> mkdir -p arch/arm/boot/dts/ ; arm-none-linux-gnueabi-gcc -E -Wp,-MD,arch/arm/boot/dts/.tegra20-paz00.dtb.d.pre.tmp -nostdinc -I./arch/arm/boot/dts -I./arch/arm/boot/dts/include -I./drivers/of/testcase-data -undef -D__DTS__ -x assembler-with-cpp -o arch/arm/boot/dts/.tegra20-paz00.dtb.dts.tmp arch/arm/boot/dts/tegra20-paz00.dts ; ./scripts/dtc/dtc -O dtb -o arch/arm/boot/dts/tegra20-paz00.dtb -b 0 -i arch/arm/boot/dts/ -d arch/arm/boot/dts/.tegr
[15:35:41] <stuw> a20-paz00.dtb.d.dtc.tmp arch/arm/boot/dts/.tegra20-paz00.dtb.dts.tmp ; cat arch/arm/boot/dts/.tegra20-paz00.dtb.d.pre.tmp arch/arm/boot/dts/.tegra20-paz00.dtb.d.dtc.tmp > arch/arm/boot/dts/.tegra20-paz00.dtb.d
[23:27:01] <zombah_> stuw_: о нифига себе ты комманду запостил..это ядро так его собирает? офигеть
[23:28:54] <zombah_> ужос %0
[23:43:50] <stuw_> да, ядро
[23:43:58] <stuw_> make V=1 ...
[23:44:16] <stuw_> я спать. спокойной ночи )