19

So when I install the Windows, I need to install all the drivers that are respective to my laptop.

Why don't I do the same with Ubuntu installation?

Does the installation somehow detects my hardware and install proper drivers on its own?

Thanks

Eliah Kagan
  • 117,780
Kraken
  • 409

3 Answers3

18

For the most part, you don't need to install additional drivers. Almost all available drivers are included.

Ubuntu comes with many drivers out-of-the-box. You may need to install drivers only if some of your hardware is not working properly or not being detected. Some drivers for graphic cards and wireless adapters can be downloaded.

The easy way to find out if any drivers are needed is to choose to Try Ubuntu from the installation screen first to see if you need any drivers and to see if Ubuntu is working with your hardware.

Mitch
  • 107,631
  • To expand upon the original question some more... all devices require a driver of some type to communicate with an OS (regardless of whether that's Mac OS X, Windows, Linux, etc.) and be able to understand how that device works. While you may need to install drivers for your system's devices, I, on the other hand, don't have to install any drivers at all (for either Windows OR Ubuntu) if I reinstall an OS. That doesn't mean that they're not there, it's just that the 'out of the box' drivers provided by the OS devs work fine. ;) – gravity Jun 11 '13 at 20:57
  • Does the installation program install different drivers to each computer? Or is it all in the kernel, meaning that the program installs all the same kernel with the same drivers to all computers? – Fiksdal May 11 '16 at 08:26
  • 1
    @Fiksdal No, the installer always installs the same drivers (kernel and modules), no matter what hardware it's running on. The kernel then determines what it needs when booting, and loads only the modules that are needed for the hardware it's running on. That's also why you can take a hard drive from one computer and put it in a different one, and it will work. You can't do that so easily with Windows AFAIK – Jonas Czech Jan 30 '17 at 08:13
  • @JonasCz Thanks for that information! With Windows it's possible through a third party tool called WinToUSB. It automatically takes care of the drivers as you switch between various computers I use it myself, it's very easy and user friendly. – Fiksdal Jan 30 '17 at 08:54
1

Ubuntu is an open source operating system, and in an open source operating system it is possible to provide users with additional protection against problems caused by installing the wrong driver and additional help recovering the system after installing the wrong proprietary graphics driver. I'm referring here to the built-in open source graphics drivers like nouveau and the amdgpu packages and proprietary graphics drivers like the NVIDIA drivers from the official NVIDIA website and the AMDGPU-Pro driver1 from the official AMD website.

The built-in open source drivers in Ubuntu provide the user with an additional layer of protection against having to reinstall the operating system due to a problem that was caused by installing a proprietary driver. The reason why some drivers do not need to be installed in Ubuntu is that some open source drivers are already built-in in the default Ubuntu installation. Installing a proprietary driver can sometimes make your system unbootable, were it not for the open source drivers that are still installed that enable the system to boot again after the proprietary driver that was causing the problem is uninstalled.

karel
  • 114,770
  • The reason why open source drivers are built-in is not any kind of "protection" against anything. It is the concept of Linux kernel. It just has them. If in some cases it does not have support of some hardware, proprietary drivers may be needed. – Pilot6 Jan 28 '17 at 15:06
  • I'm referring here to open source drivers like nouveau and the amdgpu packages. – karel Jan 28 '17 at 15:08
  • These drivers are not supposed to be a "protection", or a temporary solution. They are supposed to handle the hardware well enough to be used permanently. But this is not always the case for different reasons. As simple as that. – Pilot6 Jan 28 '17 at 15:13
  • I didn't say what the open source graphics drivers are "supposed" to do. I said that these drivers are a protection layer for the user. It's obvious that the built-in drivers are supposed to function adequately too, otherwise they would not have been vetted for inclusion in the default Ubuntu repositories. – karel Jan 28 '17 at 15:16
  • They are not a protection layer. They are just the drivers we have. – Pilot6 Jan 28 '17 at 15:19
0

Linux (and some other open source unix) systems treat drivers very differently from how Windows OSes do.

In Windows systems (especially pre-Windows 10), the OS kernel provides a stable binary software interface against which a driver can be written, and that interface is (with exceptions) guaranteed to be unchanging across the support cycle of a given Windows version. This favours drivers being written and supplied by third parties, they will usually work for at least one version of Windows across that support cycle. The downsides are that this driver interface is hard to improve or fix within that lifecycle, and favours binary distribution of drivers which (all politics aside!) often limits consistent multi-platform support.

Linux kernels do have a changing driver interface that is only strictly specified at the source code level, and biased towards improvability and multi-platform consistency. This means that, unless an additional "translator" driver offering a specific, stable binary interface is used, a driver binary is specific to an exact kernel build. One could "fudge" a driver binary to maybe be compatible with a couple dozen exact kernel versions on one platform, but the effort to maintain it (as a binary offering) would be uneconomical. This bias is also politically wanted in the linux kernel community, since they pretend a closed source binary driver could do much worse than malicious firmware on a busmastering-capable peripheral consider closed source code as both too untrusted and too distasteful to have it running with kernel privileges. Thus, open source device drivers for all major hardware are supplied within the kernel package itself, with the second option of there being a relatively easy to use method of distributing an outside driver as a source tarball, to be compiled against the installed kernel.

Some other linux drivers (eg classic X11 graphics drivers, scanner drivers, printer drivers) are not handled as pieces of the kernel, but as parts of some userspace software that is providing the functionality as a system wide service (XOrg, Sane, Ghostscript...) - these, too, tend to be specific to and mostly distributed with a given version of the relevant userspace software.