When is Service Master Key Exactly generated? As it is created automatically, on Microsoft official source it says during setup. 

but in the 70-764 official exam prep book page 18, also there is another non official blog which say


  Any time SQL Server has to protect one of those entities(DMK or Linked Server Login), it
  automatically creates a new service master key, if none already
  exists.


So I see a contradiction here. If it is created during a setup then it should not wait for some objects to be created, and if it is created after the setup, then it is not right to mention about setup generation. Should we correct the information in the blog?
... but there is another non official blog which says ...


I'd go with the official unless for some reason it's been clearly proven otherwise.


  Should we correct the information in the blog?


It'd be nice, but I'm not sure what the chances would be of that happening. Worth a shot.


  If it is created during a setup then it should not wait for some objects to be created ...


You can look in sys.symmetric_keys and see the service master key (in master) which has a create date and modified date. If you do a fresh install of SQL Server, these will be the same and should be roughly around the time of the first startup as part of the install which would make the official documentation correct.