system.mk 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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. ifeq ($(BR2_ROOTFS_SKELETON_DEFAULT),y)
  37. define SYSTEM_ROOT_PASSWD
  38. [ -n "$(TARGET_GENERIC_ROOT_PASSWD)" ] && \
  39. TARGET_GENERIC_ROOT_PASSWD_HASH=$$($(MKPASSWD) -m "$(TARGET_GENERIC_PASSWD_METHOD)" "$(TARGET_GENERIC_ROOT_PASSWD)"); \
  40. $(SED) "s,^root:[^:]*:,root:$$TARGET_GENERIC_ROOT_PASSWD_HASH:," $(TARGET_DIR)/etc/shadow
  41. endef
  42. TARGET_FINALIZE_HOOKS += SYSTEM_ROOT_PASSWD
  43. ifeq ($(BR2_SYSTEM_BIN_SH_NONE),y)
  44. define SYSTEM_BIN_SH
  45. rm -f $(TARGET_DIR)/bin/sh
  46. endef
  47. else
  48. define SYSTEM_BIN_SH
  49. ln -sf $(TARGET_GENERIC_BIN_SH) $(TARGET_DIR)/bin/sh
  50. endef
  51. endif
  52. TARGET_FINALIZE_HOOKS += SYSTEM_BIN_SH
  53. ifeq ($(BR2_TARGET_GENERIC_GETTY),y)
  54. ifeq ($(BR2_PACKAGE_SYSVINIT),y)
  55. # In sysvinit inittab, the "id" must not be longer than 4 bytes, so we
  56. # skip the "tty" part and keep only the remaining.
  57. define SYSTEM_GETTY
  58. $(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) #~' \
  59. $(TARGET_DIR)/etc/inittab
  60. endef
  61. else
  62. # Add getty to busybox inittab
  63. define SYSTEM_GETTY
  64. $(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) #~' \
  65. $(TARGET_DIR)/etc/inittab
  66. endef
  67. endif
  68. TARGET_FINALIZE_HOOKS += SYSTEM_GETTY
  69. endif
  70. ifeq ($(BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW),y)
  71. # Find commented line, if any, and remove leading '#'s
  72. define SYSTEM_REMOUNT_RW
  73. $(SED) '/^#.*-o remount,rw \/$$/s~^#\+~~' $(TARGET_DIR)/etc/inittab
  74. endef
  75. else
  76. # Find uncommented line, if any, and add a leading '#'
  77. define SYSTEM_REMOUNT_RW
  78. $(SED) '/^[^#].*-o remount,rw \/$$/s~^~#~' $(TARGET_DIR)/etc/inittab
  79. endef
  80. endif
  81. TARGET_FINALIZE_HOOKS += SYSTEM_REMOUNT_RW
  82. endif # BR2_ROOTFS_SKELETON_DEFAULT