[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>  https://github.com/CyanogenMod/android_build/blob/cm-11.0/core/Makefile#L830
 [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:54:58] <vasy>  https://lists.ozlabs.org/pipermail/devicetree-discuss/2011-May/005415.html
 [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:31] <zombah_>  https://lists.ozlabs.org/pipermail/devicetree-discuss/2013-April/032306.html
 [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_>  я спать. спокойной ночи )