One of the most daunting challenges for people switching from a familiar Windows or MacOS system to Linux is installing and configuring a driver. This is understandable, as Windows and MacOS have mechanisms that make this process user-friendly. For example, when you plug in a new piece of hardware, Windows automatically detects it and shows a pop-up window asking if you want to continue with the driver's installation. You can also download a driver from the internet, then just double-click it to run a wizard or import the driver through Device Manager.
This process isn't as easy on a Linux operating system. For one reason, Linux is an open source operating system, so there are hundreds of Linux distribution variations. This means it's impossible to create one how-to guide that works for all Linux distros. Each Linux operating system handles the driver installation process a different way.
Second, most default Linux drivers are open source and integrated into the system, which makes installing any drivers that are not included quite complicated, even though most hardware devices can be automatically detected. Third, license policies vary among the different Linux distributions. For example, Fedora prohibits including drivers that are proprietary, legally encumbered, or that violate US laws. And Ubuntu asks users to avoid using proprietary or closed hardware.
To learn more about how Linux drivers work, I recommend reading An Introduction to Device Drivers in the book Linux Device Drivers.
Two approaches to finding drivers
1. User interfaces
If you are new to Linux and coming from the Windows or MacOS world, you'll be glad to know that Linux offers ways to see whether a driver is available through wizard-like programs. Ubuntu offers the Additional Drivers option. Other Linux distributions provide helper programs, like Package Manager for GNOME, that you can check for available drivers.
2. Command line
What if you can't find a driver through your nice user interface application? Or you only have access through the shell with no graphic interface whatsoever? Maybe you've even decided to expand your skills by using a console. You have two options:
- Use a repository
This is similar to the homebrew command in MacOS. By using yum, dnf, apt-get, etc., you're basically adding a repository and updating the package cache.
- Download, compile, and build it yourself
This usually involves downloading a package directly from a website or using the wget command and running the configuration file and Makefile to install it. This is beyond the scope of this article, but you should be able to find online guides if you choose to go this route.
Check if a driver is already installed
Before jumping further into installing a driver in Linux, let's look at some commands that will determine whether the driver is already available on your system.
The lspci command shows detailed information about all PCI buses and devices on the system:
$ lscpci
Or with grep:
$ lscpci | grep SOME_DRIVER_KEYWORD
For example, you can type lspci | grep SAMSUNG if you want to know if a Samsung driver is installed.
The dmesg command shows all device drivers recognized by the kernel:
$ dmesg
Or with grep:
$ dmesg | grep SOME_DRIVER_KEYWORD
Any driver that's recognized will show in the results.
If nothing is recognized by the dmesg or lscpi commands, try these two commands to see if the driver is at least loaded on the disk:
$ /sbin/lsmod
and
$ find /lib/modules
Tip: As with lspci or dmesg, append | grep to either command above to filter the results.
If a driver is recognized by those commands but not by lscpi or dmesg, it means the driver is on the disk but not in the kernel. In this case, load the module with the modprobe command:
$ sudo modprobe MODULE_NAME
Run as this command as sudo since this module must be installed as a root user.
Add the repository and install
There are different ways to add the repository through yum, dnf, and apt-get; describing them all is beyond the scope of this article. To make it simple, this example will use apt-get, but the idea is similar for the other options.
1. Delete the existing repository, if it exists.
$ sudo apt-get purge NAME_OF_DRIVER*
where NAME_OF_DRIVER is the probable name of your driver. You can also add pattern match to your regular expression to filter further.
2. Add the repository to the repolist, which should be specified in the driver guide.
$ sudo add-apt-repository REPOLIST_OF_DRIVER
where REPOLIST_OF_DRIVER should be specified from the driver documentation (e.g., epel-list).
3. Update the repository list.
$ sudo apt-get update
4. Install the package.
$ sudo apt-get install NAME_OF_DRIVER
5. Check the installation.
Run the lscpi command (as above) to check that the driver was installed successfully.
For more information
- Linux.die.net: apt-get(8) Linux man page
- Install NVidia Drivers on CentOS
- How To Install NVidia Drivers in Linux
- How to Install NVidia Drivers on Ubuntu
This article was originally published on Opensource.com.
저자 소개
Bryant Jimin Son is a Consultant at Red Hat, a technology company known for its Linux server and opensource contributions. At work, he is working on building the technology for clients leveraging the Red Hat technology stacks like BPM, PAM, Openshift, Ansible, and full stack development using Java, Spring Framework, AngularJS, Material design. Prior to joining Red Hat, Bryant was at Citi Group's Citi Cloud team, building the private Infrastructure as a Service (IaaS) cloud platform serving 8,000+ teams across Citi departments. He also worked at American Airlines, IBM, and Home Depot Austin Technology Center. Bryant graduated with Bachelor of Sciences in Computer Science and Aerospace Engineering with minor concentration in Business at University of Texas at Austin.
He is also the President and Founder of Korean American IT Association group, known as KAITA (www.kaita.org). He is an avid coder spending extra time on building side projects at cafes, and he travels every week on business. He also loves to work out daily and to grow KAITA.
유사한 검색 결과
Behind the scenes of RHEL 10, part 3
Alliander modernises its electricity grid with Red Hat for long-term reliability in balance with rapid innovation
The Overlooked Operating System | Compiler: Stack/Unstuck
Linux, Shadowman, And Open Source Spirit | Compiler
채널별 검색
오토메이션
기술, 팀, 인프라를 위한 IT 자동화 최신 동향
인공지능
고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트
오픈 하이브리드 클라우드
하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요
보안
환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보
엣지 컴퓨팅
엣지에서의 운영을 단순화하는 플랫폼 업데이트
인프라
세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보
애플리케이션
복잡한 애플리케이션에 대한 솔루션 더 보기
가상화
온프레미스와 클라우드 환경에서 워크로드를 유연하게 운영하기 위한 엔터프라이즈 가상화의 미래