system.mk 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. TARGET_GENERIC_HOSTNAME = $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME))
  2. TARGET_GENERIC_ISSUE = $(call qstrip,$(BR2_TARGET_GENERIC_ISSUE))
  3. TARGET_GENERIC_ROOT_PASSWD = $(call qstrip,$(BR2_TARGET_GENERIC_ROOT_PASSWD))
  4. TARGET_GENERIC_PASSWD_METHOD = $(call qstrip,$(BR2_TARGET_GENERIC_PASSWD_METHOD))
  5. TARGET_GENERIC_BIN_SH = $(call qstrip,$(BR2_SYSTEM_BIN_SH))
  6. TARGET_GENERIC_GETTY_PORT = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT))
  7. TARGET_GENERIC_GETTY_BAUDRATE = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE))
  8. TARGET_GENERIC_GETTY_TERM = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_TERM))
  9. TARGET_GENERIC_GETTY_OPTIONS = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_OPTIONS))
  10. ifeq ($(BR2_TARGET_GENERIC_GETTY),y)
  11. define SYSTEM_SECURETTY
  12. grep -q '^$(TARGET_GENERIC_GETTY_PORT)$$' $(TARGET_DIR)/etc/securetty || \
  13. echo '$(TARGET_GENERIC_GETTY_PORT)' >> $(TARGET_DIR)/etc/securetty
  14. endef
  15. TARGET_FINALIZE_HOOKS += SYSTEM_SECURETTY
  16. endif
  17. ifneq ($(TARGET_GENERIC_HOSTNAME),)
  18. define SYSTEM_HOSTNAME
  19. mkdir -p $(TARGET_DIR)/etc
  20. echo "$(TARGET_GENERIC_HOSTNAME)" > $(TARGET_DIR)/etc/hostname
  21. $(SED) '$$a \127.0.1.1\t$(TARGET_GENERIC_HOSTNAME)' \
  22. -e '/^127.0.1.1/d' $(TARGET_DIR)/etc/hosts
  23. endef
  24. TARGET_FINALIZE_HOOKS += SYSTEM_HOSTNAME
  25. endif
  26. ifneq ($(TARGET_GENERIC_ISSUE),)
  27. define SYSTEM_ISSUE
  28. mkdir -p $(TARGET_DIR)/etc
  29. echo "$(TARGET_GENERIC_ISSUE)" > $(TARGET_DIR)/etc/issue
  30. endef
  31. TARGET_FINALIZE_HOOKS += SYSTEM_ISSUE
  32. endif
  33. ifneq ($(TARGET_GENERIC_ROOT_PASSWD),)
  34. TARGETS += host-mkpasswd
  35. endif
  36. define SET_NETWORK_LOCALHOST
  37. ( \
  38. echo "# interface file auto-generated by buildroot"; \
  39. echo ; \
  40. echo "auto lo"; \
  41. echo "iface lo inet loopback"; \
  42. ) > $(TARGET_DIR)/etc/network/interfaces
  43. endef
  44. NETWORK_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP))
  45. ifneq ($(NETWORK_DHCP_IFACE),)
  46. define SET_NETWORK_DHCP
  47. ( \
  48. echo ; \
  49. echo "auto $(NETWORK_DHCP_IFACE)"; \
  50. echo "iface $(NETWORK_DHCP_IFACE) inet dhcp"; \
  51. ) >> $(TARGET_DIR)/etc/network/interfaces
  52. endef
  53. endif
  54. define SET_NETWORK
  55. mkdir -p $(TARGET_DIR)/etc/network/
  56. $(SET_NETWORK_LOCALHOST)
  57. $(SET_NETWORK_DHCP)
  58. endef
  59. TARGET_FINALIZE_HOOKS += SET_NETWORK
  60. ifeq ($(BR2_ROOTFS_SKELETON_DEFAULT),y)
  61. define SYSTEM_ROOT_PASSWD
  62. [ -n "$(TARGET_GENERIC_ROOT_PASSWD)" ] && \
  63. TARGET_GENERIC_ROOT_PASSWD_HASH=$$($(MKPASSWD) -m "$(TARGET_GENERIC_PASSWD_METHOD)" "$(TARGET_GENERIC_ROOT_PASSWD)"); \
  64. $(SED) "s,^root:[^:]*:,root:$$TARGET_GENERIC_ROOT_PASSWD_HASH:," $(TARGET_DIR)/etc/shadow
  65. endef
  66. TARGET_FINALIZE_HOOKS += SYSTEM_ROOT_PASSWD
  67. ifeq ($(BR2_SYSTEM_BIN_SH_NONE),y)
  68. define SYSTEM_BIN_SH
  69. rm -f $(TARGET_DIR)/bin/sh
  70. endef
  71. else
  72. define SYSTEM_BIN_SH
  73. ln -sf $(TARGET_GENERIC_BIN_SH) $(TARGET_DIR)/bin/sh
  74. endef
  75. endif
  76. TARGET_FINALIZE_HOOKS += SYSTEM_BIN_SH
  77. ifeq ($(BR2_TARGET_GENERIC_GETTY),y)
  78. ifeq ($(BR2_PACKAGE_SYSVINIT),y)
  79. # In sysvinit inittab, the "id" must not be longer than 4 bytes, so we
  80. # skip the "tty" part and keep only the remaining.
  81. define SYSTEM_GETTY
  82. $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(shell echo $(TARGET_GENERIC_GETTY_PORT) | tail -c+4)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY_OPTIONS) $(TARGET_GENERIC_GETTY_PORT) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \
  83. $(TARGET_DIR)/etc/inittab
  84. endef
  85. else
  86. # Add getty to busybox inittab
  87. define SYSTEM_GETTY
  88. $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(TARGET_GENERIC_GETTY_PORT)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY_OPTIONS) $(TARGET_GENERIC_GETTY_PORT) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \
  89. $(TARGET_DIR)/etc/inittab
  90. endef
  91. endif
  92. TARGET_FINALIZE_HOOKS += SYSTEM_GETTY
  93. endif
  94. ifeq ($(BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW),y)
  95. # Find commented line, if any, and remove leading '#'s
  96. define SYSTEM_REMOUNT_RW
  97. $(SED) '/^#.*-o remount,rw \/$$/s~^#\+~~' $(TARGET_DIR)/etc/inittab
  98. endef
  99. else
  100. # Find uncommented line, if any, and add a leading '#'
  101. define SYSTEM_REMOUNT_RW
  102. $(SED) '/^[^#].*-o remount,rw \/$$/s~^~#~' $(TARGET_DIR)/etc/inittab
  103. endef
  104. endif
  105. TARGET_FINALIZE_HOOKS += SYSTEM_REMOUNT_RW
  106. endif # BR2_ROOTFS_SKELETON_DEFAULT