lsmod là lệnh dùng để liệt kê các module nhân hiện đang được nạp vào bộ nhớ hệ thống, giúp bạn xem danh sách driver/module kernel đang hoạt động, gồm tên module, dung lượng và số lần đang được sử dụng, phù hợp khi bạn cần kiểm tra hoặc xử lý vấn đề liên quan đến driver. Trong bài viết này, mình sẽ hướng dẫn bạn chi tiết cách sử dụng lsmod để kiểm tra trạng thái các module quan trọng trên hệ thống.
Những điểm chính
Quan điểm của mình: Đối với người dùng mới, lệnh lsmod thường chỉ được xem là một công cụ để liệt kê danh sách các module nhân đang được tải. Tuy nhiên, trong quản trị hệ thống và gỡ lỗi, giá trị thực sự của nó mới được thể hiện. Nó giúp chuyển trọng tâm từ câu hỏi “có những module nào đang chạy?” sang các câu hỏi mang tính chẩn đoán hơn: “Tại sao module này được nạp?”, “Nó đang phục vụ cho thiết bị phần cứng nào?”, và “Các module nào đang phụ thuộc vào nó?”. Vì vậy, lsmod không chỉ là một lệnh liệt kê thông thường, mà là một công cụ chẩn đoán thiết yếu để phân tích sự tương tác giữa phần cứng và nhân hệ điều hành, đặc biệt hữu ích khi xử lý các vấn đề liên quan đến driver. Dưới đây là những điểm chính cần nắm:
- Khái niệm: Biết được lsmod là gì và cơ chế truy xuất dữ liệu từ file hệ thống ảo để liệt kê các module nhân đang hoạt động.
- Ví dụ sử dụng lệnh
lsmod: Biết cách liệt kê các module nhân đang chạy và hiểu mối quan hệ phụ thuộc giữa chúng qua kết quả lệnh. - Vai trò: Nắm rõ giá trị của lsmod trong việc chẩn đoán sự cố phần cứng, quản lý driver và kiểm tra các thành phần bảo mật hệ thống.
- Yêu cầu cài đặt: Biết được gói phần mềm chứa lệnh lsmod và khả năng sẵn có của công cụ này trên các bản phân phối Linux hiện đại.
- Cách sử dụng thực tế: Thành thạo các cú pháp liệt kê module, cách lọc driver cụ thể bằng grep và xem thông tin chi tiết qua lệnh modinfo.
- Xử lý lỗi phổ biến: Biết cách khắc phục các sự cố driver như module nạp sai tham số cấu hình hoặc không hiển thị trong danh sách.
- Lưu ý khi sử dụng: Ghi nhớ các quy tắc về tính an toàn, sự phụ thuộc giữa các module và phân quyền khi quản trị nhân Linux.
- Câu hỏi thường gặp: Giải đáp các thắc mắc phổ biến liên quan đến lsmod.
lsmod là gì?
lsmod (List Modules) là lệnh dùng để hiển thị danh sách tất cả các module nhân đang được nạp và hoạt động trong hệ thống Linux. Về mặt kỹ thuật, lệnh này hoạt động bằng cách truy xuất và định dạng lại nội dung thô từ file hệ thống ảo /proc/modules, giúp quản trị viên dễ dàng theo dõi trạng thái của các trình điều khiển và tính năng mở rộng của Kernel.
Kết quả đầu ra của lsmod được trình bày dưới dạng bảng gồm 3 cột chính, cung cấp thông tin chi tiết về tài nguyên hệ thống:
- Module: Tên định danh của module.
- Size: Dung lượng bộ nhớ mà module đang chiếm dụng trong không gian nhân.
- Used by:
- Số lượng sử dụng: Cho biết có bao nhiêu tiến trình hoặc module khác đang phụ thuộc vào module này.
- Danh sách phụ thuộc: Liệt kê tên các module đang sử dụng.

Ví dụ sử dụng lệnh lsmod
Liệt kê tất cả các module đang được tải
Đây là cách sử dụng cơ bản nhất. Bạn chỉ cần gõ lệnh lsmod vào terminal và nhấn Enter.
lsmodKết quả sẽ là một danh sách, trông tương tự như sau:
Module Size Used by
nouveau 2248704 2
mxm_wmi 16384 1 nouveau
snd_hda_intel 40960 5
snd_hda_codec 135168 1 snd_hda_intel
snd_hda_core 90112 2 snd_hda_intel,snd_hda_codec
snd_hwdep 16384 1 snd_hda_codec
snd_pcm 102400 3 snd_hda_intel,snd_hda_codec,snd_hda_core
iwlwifi 344064 1 iwlmvm
snd_timer 32768 1 snd_pcm
cfg80211 786432 2 iwlmvm,iwlwifi
snd 86016 18 snd_hda_intel,snd_hwdep,snd_hda_codec,snd_timer,snd_pcm
wmi 32768 2 mxm_wmi,nouveau
video 49152 1 nouveauGiải thích kết quả:
Module: Đây là tên của module nhân. Ví dụ:nouveaulà driver mã nguồn mở cho card đồ họa NVIDIA,snd_hda_intellà driver cho âm thanh.Size: Kích thước của module trong bộ nhớ, tính bằng byte.Used by: Cột này rất quan trọng. Nó cho biết có bao nhiêu module khác đang sử dụng module này, và liệt kê tên của chúng.- Ví dụ, ở dòng
cfg80211, cộtUsed bycó giá trị là2 iwlmvm,iwlwifi. Điều này có nghĩa là modulecfg80211(module chung cho cấu hình Wi-Fi) đang được 2 module khác làiwlmvmvàiwlwifisử dụng. Điều này cho thấy sự phụ thuộc giữa các module.
- Ví dụ, ở dòng
Vai trò của lệnh lsmod
Lệnh lsmod đóng vai trò rất quan trọng trong việc xử lý sự cố phần cứng, cấu hình driver hoặc kiểm tra các module bảo mật như firewall Netfilter. Cụ thể như sau:
- Xác định sự cố phần cứng:
lsmodgiúp quản trị viên xác minh nhanh chóng xem trình điều khiển của các thiết bị phần cứng như card mạng, card âm thanh,… đã được nạp thành công vào nhân hệ điều hành hay chưa. - Quản lý và cấu hình driver: Lệnh này cung cấp cái nhìn tổng quan về các module đang hoạt động, từ đó hỗ trợ người dùng quyết định nạp thêm driver còn thiếu hoặc gỡ bỏ các driver không cần thiết để giải phóng tài nguyên.
- Kiểm tra module bảo mật:
lsmodcho phép rà soát trạng thái hoạt động của các thành phần an ninh quan trọng để đảm bảo hệ thống được bảo vệ đúng cách. - Phân tích sự phụ thuộc: Bạn có thể dùng
lsmodđể xác định mối quan hệ giữa các module, từ đó ngăn chặn việc gỡ bỏ nhầm các driver quan trọng gây lỗi hệ thống.

Yêu cầu về môi trường cài đặt
Trên các hệ điều hành Linux hiện đại như Ubuntu 20.04+, CentOS 7+,… lệnh lsmod là một phần của gói phần mềm kmod. Đối với các hệ thống đời cũ, lsmod thuộc gói module-init-tools. Do tầm quan trọng trong việc vận hành phần cứng, gói này luôn được cài đặt sẵn trên hầu hết các bản phân phối Linux tiêu chuẩn. Bạn có thể sử dụng lệnh ngay sau khi cài đặt hệ điều hành mà không cần cấu hình thêm.
Cách sử dụng lệnh lsmod thực tế
- 1. Xem danh sách module Kernel cơ bản
- 2. Lọc thông tin của một module cụ thể
- 3. Xem thông tin chi tiết bằng lệnh modinfo
1. Xem danh sách module Kernel cơ bản
Để hiển thị danh sách tổng quan các module kernel hiện đang được nạp vào bộ nhớ hệ thống, bạn hãy sử dụng lệnh sau:
lsmod
Giải thích các cột thông tin:
- Module: Tên của module kernel, ví dụ như
nfnetlink,btrfs,raid456,… - Size: Kích thước của module tính bằng Byte, là dung lượng bộ nhớ Kernel mà module đang chiếm giữ.
- Used by: Số lượng các module khác hiện đang sử dụng hoặc phụ thuộc vào module này.
- Module Names: Liệt kê tên các module đang phụ thuộc vào module hiện tại, ví dụ như module
raid456đang phụ thuộc vàoraid456_async_recov.
2. Lọc thông tin của một module cụ thể
Để tìm kiếm nhanh một module kernel nhất định nhằm xác nhận driver đó đã được Kernel tải và đang hoạt động hay chưa, bạn hãy sử dụng lệnh kết hợp với grep như sau:
lsmod | grep <Tên Module>
Giải thích ví dụ với driver BTRFS:
- Module chính (btrfs): Module này có kích thước
1564672Bytes, cho thấy đây là một thành phần phức tạp của Kernel. - Used by: Nếu giá trị là
0, modulebtrfskhông phụ thuộc vào module nào khác để hoạt động mà nó tự tải các thành phần cần thiết. - Các dòng liên quan: Các dòng còn lại sẽ hiển thị những module khác đang được sử dụng bởi
btrfsnhưzstd_compresshoặcxor.
3. Xem thông tin chi tiết bằng lệnh modinfo
Sau khi đã xác nhận được module đã được tải thông qua lệnh lsmod, để xem thông tin chi tiết hơn về module đó, bạn hãy thực hiện lệnh:
modinfo <Tên Module>
Cách xử lý lỗi phổ biến khi thực thi lệnh lsmod
- 1. Module được liệt kê nhưng thiết bị không hoạt động
- 2. Module không xuất hiện trong danh sách
1. Module được liệt kê nhưng thiết bị không hoạt động
Tình huống này xảy ra khi bạn nhìn thấy tên module xuất hiện trong danh sách của lệnh lsmod, nhưng thiết bị phần cứng hoặc tính năng tương ứng lại không hoạt động như mong muốn. Nguyên nhân chủ yếu của lỗi này thường do module đã được nạp vào Kernel với các tham số cấu hình không chính xác hoặc đang xảy ra xung đột tài nguyên với một module khác trong hệ thống.
Cách khắc phục:
- Bạn sử dụng lệnh
modinfo <Tên_Module>để tra cứu và kiểm tra các tham số cấu hình hợp lệ tại dòngparm:. - Tiếp theo bạn gỡ bỏ module đang gặp sự cố khỏi nhân bằng lệnh
rmmod <Tên_Module>. - Cuối cùng, bạn nạp lại module với các tham số chính xác bằng lệnh
modprobe <Tên_Module> [tham_số=giá_trị].
2. Module không xuất hiện trong danh sách
Đây là trường hợp bạn biết chắc chắn hệ thống cần một module cụ thể nhưng module này lại không xuất hiện trong kết quả trả về của lsmod. Vấn đề này thường bắt nguồn từ việc driver chưa được biên dịch tương thích với phiên bản Kernel hiện tại, module chưa được cài đặt đúng vị trí hoặc hệ thống chưa cập nhật cơ sở dữ liệu về sự phụ thuộc giữa các module.
Cách khắc phục:
- Bạn chạy lệnh
depmod -ađể hệ thống quét và cập nhật lại toàn bộ danh sách phụ thuộc của các module. - Sau đó bạn hãy thử nạp lại module thủ công bằng lệnh
modprobe <Tên_Module>. - Nếu vẫn không thành công, bạn hãy kiểm tra nhật ký hệ thống bằng lệnh
dmesg | tailđể xem thông báo lỗi chi tiết từ Kernel.

Lưu ý khi sử dụng lệnh lsmod
Để sử dụng lệnh lsmod một cách hiệu quả và tránh những nhầm lẫn trong quá trình quản trị hệ thống, bạn cần lưu ý một số điểm quan trọng sau đây:
- Tính chất an toàn của lệnh: Lệnh
lsmodchỉ có chức năng liệt kê và hiển thị trạng thái hiện tại của các module trong bộ nhớ, lệnh này không thực hiện bất kỳ thay đổi nào đối với hệ thống, nên bạn có thể hoàn toàn yên tâm khi sử dụng để kiểm tra. - Phân biệt module nạp ngoài và tính năng tích hợp: Danh sách trả về chỉ bao gồm các Loadable Kernel Modules (LKM), những tính năng hoặc driver đã được biên dịch trực tiếp vào nhân hệ điều hành sẽ không xuất hiện trong kết quả của lệnh
lsmod. - Kiểm tra sự phụ thuộc: Trước khi có ý định gỡ bỏ bất kỳ module nào, bạn phải kiểm tra kỹ cột “Used by”. Nếu giá trị tại cột này lớn hơn 0, điều đó có nghĩa là đang có các tiến trình hoặc module khác phụ thuộc nên việc gỡ bỏ có thể gây ra lỗi hệ thống nghiêm trọng.
- Quyền hạn thực thi: Người dùng thông thường có thể thực hiện lệnh
lsmodđể xem danh sách module. Tuy nhiên, các thao tác quản lý liên quan như nạp module mới hoặc xóa module hiện có bắt buộc phải có quyền quản trị root hoặc sudo. - Thông tin mang tính thời điểm: Kết quả hiển thị từ l
smodlà snapshot dữ liệu tại đúng thời điểm bạn gõ lệnh. Nếu một module được nạp vào hoặc gỡ bỏ ngay sau đó, bạn cần chạy lại lệnh để cập nhật thông tin mới nhất.

Câu hỏi thường gặp
Lệnh lsmod lấy dữ liệu từ đâu để hiển thị?
Lệnh lsmod thực chất không trực tiếp quét phần cứng hệ thống. Thay vào đó, lệnh này đọc và định dạng lại nội dung từ file ảo /proc/modules. Đây là file được Kernel cập nhật liên tục để phản ánh trạng thái các module đang hoạt động.
Làm thế nào để kiểm tra kết quả thành công khi thực hiện lệnh lsmod?
Kết quả được coi là thành công khi bạn thực hiện lệnh lsmod và thấy tên module mong muốn, ví dụ như vboxdrv cho VirtualBox, nouveau hoặc nvidia cho card đồ họa xuất hiện trong danh sách với số lần sử dụng hợp lý.
Tại sao tôi không thấy driver của một thiết bị trong danh sách lsmod dù thiết bị vẫn hoạt động bình thường?
Nguyên nhân phổ biến nhất là do driver đó đã được biên dịch tích hợp trực tiếp vào nhân hệ điều hành ngay từ đầu thay vì được xây dựng dưới dạng module tải ngoài trong khi lệnh lsmod chỉ có khả năng liệt kê các module tải ngoài.
Lệnh lsmod có vai trò quan trọng trọng việc xác định và quản lý các chức năng cấp thấp của hệ điều hành Linux. Do đó, việc nắm vững cách hiển thị trạng thái của các module Kernel sẽ giúp bạn kiểm soát các trình điều khiển phần cứng và các thành phần cốt lõi của hệ thống một cách hiệu quả và an toàn. Cảm ơn bạn đã theo dõi bài viết, mời bạn tham khảo các lệnh Linux phổ biến và hữu ích bên dưới:




