Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docs:techref:image.makefile [2019/08/05 16:20] – [base-files] someothertimedocs:techref:image.makefile [2020/02/26 22:16] (current) – [image/Makefile] mwarning
Line 1: Line 1:
 ====== image/Makefile Details ====== ====== image/Makefile Details ======
-FIXME +{{page>meta:infobox:wip&noheader&nofooter&noeditbtn}}
-This section is new and deliberately not linked too by other pages yet. once a person of some experience has a chance to look over this they may then choose to add it. +
- +
-I think its(this page) needed to clarify the intent, preferred style and function of the image/Makefile. +
- +
-I believe it should be placed here: +
-  * Adding a new platform (new buildroot howto section?)\\ OR +
-  * OpenWrt Buildroot - new platform (new page/how-to on adding platform support to the buildroot system) +
- +
- +
-===== config-4.x ===== +
- +
-Kernel options required by the platform + kernel version. +
- +
-  CONFIG_QCOM_PM=y +
-  CONFIG_QCOM_QFPROM=y +
-  CONFIG_QCOM_RPMCC=y +
- +
-===== files-4.x ===== +
- +
-Kernel specific device source. Primarily the location of device DTS files. You will need to add a new device dts here and reference in image/Makefile under DEVICE_DTS. +
- +
-===== patches-4.x ===== +
- +
-Kernel source additions. No changes for basic device additions. +
- +
-===== Makefile ===== +
- +
-Platform wide device definition and common package set. Generally does not require modification when adding additional platform devices. +
- +
-  include $(TOPDIR)/rules.mk +
-   +
-  ARCH:=arm +
-  BOARD:=ipq806x +
-  BOARDNAME:=Qualcomm Atheros IPQ806X +
-  FEATURES:=squashfs nand fpu ramdisk +
-  CPU_TYPE:=cortex-a15 +
-  CPU_SUBTYPE:=neon-vfpv4 +
-  MAINTAINER:=John Crispin <john@phrozen.org> +
-   +
-  KERNEL_PATCHVER:=4.14 +
-   +
-  KERNELNAME:=zImage Image dtbs +
-     +
-  include $(INCLUDE_DIR)/target.mk +
-  DEFAULT_PACKAGES += \ +
-  kmod-leds-gpio kmod-gpio-button-hotplug swconfig \ +
-  kmod-ata-core kmod-ata-ahci kmod-ata-ahci-platform \ +
-  kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \ +
-  kmod-usb3 kmod-usb-dwc3-of-simple kmod-usb-phy-qcom-dwc3 \ +
-  kmod-ath10k-ct wpad-basic \ +
-  uboot-envtools +
-   +
-  $(eval $(call BuildTarget)) +
- +
-===== image/Makefile ===== +
- +
-Device specific image creation parameters and image generation functions. +
- +
-  define Device/zyxel_nbg6817 +
-  DEVICE_DTS := qcom-ipq8065-nbg6817 +
-  KERNEL_SIZE := 4096k +
-  BLOCKSIZE := 64k +
-  BOARD_NAME := nbg6817 +
-  RAS_BOARD := NBG6817 +
-  RAS_ROOTFS_SIZE := 20934k +
-  RAS_VERSION := "V1.99(OWRT.9999)C0" +
-  SUPPORTED_DEVICES += nbg6817 +
-  DEVICE_TITLE := ZyXEL NBG6817 +
-  DEVICE_PACKAGES := ath10k-firmware-qca9984-ct e2fsprogs kmod-fs-ext4 losetup +
-  $(call Device/ZyXELImage) +
-  endef +
-  TARGET_DEVICES += zyxel_nbg6817 +
- +
-===== base-files ===== +
- +
-Initialization scripts. Instantiation of LED, wifi and upgrade/install routines. etc. Many changes needed to add new device. +
- +
- +
-===== profiles/00-default.mk ===== +
- +
-Board core firmware.+
  
 +  * I think its(this page) needed to clarify the intent, preferred style and function of the image/Makefile.
 +  * I believe one of the following should be placed here:
 +    * Adding a new platform (new buildroot howto section?)
 +    * OpenWrt Buildroot - new platform (new page/how-to on adding platform support to the buildroot system)
  
 ===== image/Makefile from scratch or modify ===== ===== image/Makefile from scratch or modify =====
Line 88: Line 11:
  
 ===== Basic Function ===== ===== Basic Function =====
-see example.+See example. 
 ==== Image/Prepare ==== ==== Image/Prepare ====
-can be used to append data to image but often used simply to move to another directory such as $(KDIR)+Can be used to append data to image but often used simply to move to another directory such as $(KDIR)
  
-for example:+Example:
   cat $(LINUX_DIR)/arch/arm/boot/zImage >> $(KDIR)/$(call zimage_name,$(1))   cat $(LINUX_DIR)/arch/arm/boot/zImage >> $(KDIR)/$(call zimage_name,$(1))
 +
 ==== Image/Build/Initramfs ==== ==== Image/Build/Initramfs ====
 This section allows automated modification of the elf file before loading onto the device. This section allows automated modification of the elf file before loading onto the device.
Line 111: Line 36:
 to call a define for each use: to call a define for each use:
   $(call Image/Build/$(1),$(1))   $(call Image/Build/$(1),$(1))
- 
  
 ===== Example ===== ===== Example =====
- 
 Example of: **trunk/target/linux///platform///image/Makefile** Example of: **trunk/target/linux///platform///image/Makefile**
  
Line 132: Line 55:
  
 define Image/Build/Initramfs define Image/Build/Initramfs
-  
  $(BIN_DIR)/$(IMG_PREFIX)-vmlinux.elf  $(BIN_DIR)/$(IMG_PREFIX)-vmlinux.elf
-  
 endef endef
  
Line 151: Line 72:
 define Image/Build/squashfs define Image/Build/squashfs
  $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)  $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
- 
 endef endef
  
Line 162: Line 82:
 have a look at your copy of **trunk/include/image.mk** have a look at your copy of **trunk/include/image.mk**
  
-{{tag>wip}} --- //david_ausengineer 2012/05/15 03:10//+====== Platform/Device configuration files ====== 
 +===== config-4.x ===== 
 +Kernel options required by the platform + kernel version. 
 + 
 +<code make> 
 +CONFIG_QCOM_PM=y 
 +CONFIG_QCOM_QFPROM=y 
 +CONFIG_QCOM_RPMCC=y 
 +</code> 
 + 
 +===== files-4.x ===== 
 +Kernel specific device source. Primarily the location of device DTS files. You will need to add a new device dts here and reference in image/Makefile under DEVICE_DTS. 
 + 
 +===== patches-4.x ===== 
 +Kernel source additions. No changes for basic device additions. 
 + 
 +===== Makefile ===== 
 +Platform wide device definition and common package set. Generally does not require modification when adding additional platform devices. 
 + 
 +<code make> 
 +include $(TOPDIR)/rules.mk 
 + 
 +ARCH:=arm 
 +BOARD:=ipq806x 
 +BOARDNAME:=Qualcomm Atheros IPQ806X 
 +FEATURES:=squashfs nand fpu ramdisk 
 +CPU_TYPE:=cortex-a15 
 +CPU_SUBTYPE:=neon-vfpv4 
 +MAINTAINER:=John Crispin <john@phrozen.org> 
 + 
 +KERNEL_PATCHVER:=4.14 
 + 
 +KERNELNAME:=zImage Image dtbs 
 + 
 +include $(INCLUDE_DIR)/target.mk 
 +DEFAULT_PACKAGES += \ 
 + kmod-leds-gpio kmod-gpio-button-hotplug swconfig \ 
 + kmod-ata-core kmod-ata-ahci kmod-ata-ahci-platform \ 
 + kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \ 
 + kmod-usb3 kmod-usb-dwc3-of-simple kmod-usb-phy-qcom-dwc3 \ 
 + kmod-ath10k-ct wpad-basic \ 
 + uboot-envtools 
 + 
 +$(eval $(call BuildTarget)) 
 +</code> 
 + 
 +===== image/Makefile ===== 
 +Device specific image creation parameters and image generation functions. 
 + 
 +<code make> 
 +define Device/zyxel_nbg6817 
 + DEVICE_DTS := qcom-ipq8065-nbg6817 
 + KERNEL_SIZE := 4096k 
 + BLOCKSIZE := 64k 
 + BOARD_NAME := nbg6817 
 + RAS_BOARD := NBG6817 
 + RAS_ROOTFS_SIZE := 20934k 
 + RAS_VERSION := "V1.99(OWRT.9999)C0" 
 + SUPPORTED_DEVICES += nbg6817 
 + DEVICE_VENDOR := ZyXEL 
 + DEVICE_MODEL := NBG6817 
 + DEVICE_PACKAGES := ath10k-firmware-qca9984-ct e2fsprogs kmod-fs-ext4 losetup 
 + $(call Device/ZyXELImage) 
 +endef 
 +TARGET_DEVICES += zyxel_nbg6817 
 +</code> 
 + 
 +===== base-files ===== 
 +Initialization scripts. Instantiation of LED, wifi and upgrade/install routines. etc. Many changes needed to add new device. 
 + 
 +===== profiles/00-default.mk ===== 
 +Board core firmware. 
  • Last modified: 2019/08/05 16:20
  • by someothertime