system.mk 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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. ifneq ($(TARGET_GENERIC_HOSTNAME),)
  11. define SYSTEM_HOSTNAME
  12. mkdir -p $(TARGET_DIR)/etc
  13. echo "$(TARGET_GENERIC_HOSTNAME)" > $(TARGET_DIR)/etc/hostname
  14. $(SED) '$$a \127.0.1.1\t$(TARGET_GENERIC_HOSTNAME)' \
  15. -e '/^127.0.1.1/d' $(TARGET_DIR)/etc/hosts
  16. endef
  17. TARGET_FINALIZE_HOOKS += SYSTEM_HOSTNAME
  18. endif
  19. ifneq ($(TARGET_GENERIC_ISSUE),)
  20. define SYSTEM_ISSUE
  21. mkdir -p $(TARGET_DIR)/etc
  22. echo "$(TARGET_GENERIC_ISSUE)" > $(TARGET_DIR)/etc/issue
  23. endef
  24. TARGET_FINALIZE_HOOKS += SYSTEM_ISSUE
  25. endif
  26. define SET_NETWORK_LOCALHOST
  27. ( \
  28. echo "# interface file auto-generated by buildroot"; \
  29. echo ; \
  30. echo "auto lo"; \
  31. echo "iface lo inet loopback"; \
  32. ) > $(TARGET_DIR)/etc/network/interfaces
  33. endef
  34. NETWORK_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP))
  35. ifneq ($(NETWORK_DHCP_IFACE),)
  36. define SET_NETWORK_DHCP
  37. ( \
  38. echo ; \
  39. echo "auto $(NETWORK_DHCP_IFACE)"; \
  40. echo "iface $(NETWORK_DHCP_IFACE) inet dhcp"; \
  41. ) >> $(TARGET_DIR)/etc/network/interfaces
  42. endef
  43. endif
  44. define SET_NETWORK
  45. mkdir -p $(TARGET_DIR)/etc/network/
  46. $(SET_NETWORK_LOCALHOST)
  47. $(SET_NETWORK_DHCP)
  48. endef
  49. TARGET_FINALIZE_HOOKS += SET_NETWORK
  50. ifeq ($(BR2_ROOTFS_SKELETON_DEFAULT),y)
  51. ifeq ($(BR2_TARGET_ENABLE_ROOT_LOGIN),y)
  52. ifeq ($(TARGET_GENERIC_ROOT_PASSWD),)
  53. SYSTEM_ROOT_PASSWORD =
  54. else ifneq ($(filter $$1$$% $$5$$% $$6$$%,$(TARGET_GENERIC_ROOT_PASSWD)),)
  55. SYSTEM_ROOT_PASSWORD = $(TARGET_GENERIC_ROOT_PASSWD)
  56. else
  57. PACKAGES += host-mkpasswd
  58. # This variable will only be evaluated in the finalize stage, so we can
  59. # be sure that host-mkpasswd will have already been built by that time.
  60. SYSTEM_ROOT_PASSWORD = $(shell $(MKPASSWD) -m "$(TARGET_GENERIC_PASSWD_METHOD)" "$(TARGET_GENERIC_ROOT_PASSWD)")
  61. endif
  62. else # !BR2_TARGET_ENABLE_ROOT_LOGIN
  63. SYSTEM_ROOT_PASSWORD = *
  64. endif
  65. define SYSTEM_SET_ROOT_PASSWD
  66. $(SED) 's,^root:[^:]*:,root:$(SYSTEM_ROOT_PASSWORD):,' $(TARGET_DIR)/etc/shadow
  67. endef
  68. TARGET_FINALIZE_HOOKS += SYSTEM_SET_ROOT_PASSWD
  69. ifeq ($(BR2_SYSTEM_BIN_SH_NONE),y)
  70. define SYSTEM_BIN_SH
  71. rm -f $(TARGET_DIR)/bin/sh
  72. endef
  73. else
  74. define SYSTEM_BIN_SH
  75. ln -sf $(TARGET_GENERIC_BIN_SH) $(TARGET_DIR)/bin/sh
  76. endef
  77. endif
  78. TARGET_FINALIZE_HOOKS += SYSTEM_BIN_SH
  79. ifeq ($(BR2_TARGET_GENERIC_GETTY),y)
  80. ifeq ($(BR2_INIT_SYSV),y)
  81. # In sysvinit inittab, the "id" must not be longer than 4 bytes, so we
  82. # skip the "tty" part and keep only the remaining.
  83. define SYSTEM_GETTY
  84. $(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) #~' \
  85. $(TARGET_DIR)/etc/inittab
  86. endef
  87. else ifeq ($(BR2_INIT_BUSYBOX),y)
  88. # Add getty to busybox inittab
  89. define SYSTEM_GETTY
  90. $(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) #~' \
  91. $(TARGET_DIR)/etc/inittab
  92. endef
  93. endif
  94. TARGET_FINALIZE_HOOKS += SYSTEM_GETTY
  95. endif
  96. ifeq ($(BR2_INIT_BUSYBOX)$(BR2_INIT_SYSV),y)
  97. ifeq ($(BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW),y)
  98. # Find commented line, if any, and remove leading '#'s
  99. define SYSTEM_REMOUNT_RW
  100. $(SED) '/^#.*-o remount,rw \/$$/s~^#\+~~' $(TARGET_DIR)/etc/inittab
  101. endef
  102. else
  103. # Find uncommented line, if any, and add a leading '#'
  104. define SYSTEM_REMOUNT_RW
  105. $(SED) '/^[^#].*-o remount,rw \/$$/s~^~#~' $(TARGET_DIR)/etc/inittab
  106. endef
  107. endif
  108. TARGET_FINALIZE_HOOKS += SYSTEM_REMOUNT_RW
  109. endif
  110. endif # BR2_ROOTFS_SKELETON_DEFAULT