Linux modules install
安装模块的时候出现错误:modprobe: chdir(3.0.35-g6774ed9-dirty): No such file or directory.
内核模块没有安装正确。本文记录解决方法。
参考链接
http://linfengdu.blog.163.com/blog/static/1177107320132710370696/
问题描述
安装模块的时候出现错误。
root@freescale $ modprobe g_mass_storage.ko
modprobe: chdir(3.0.35-g6774ed9-dirty): No such file or directory
查看内核版本uname -r
root@freescale $ uname -r
3.0.35-g6774ed9-dirty
查看/lib/modules目录的模块安装位置:
root@freescale /lib/modules$ ls
3.0.35-2666-gbdde708
对应的目录名称与内核版本不对应。那么这个目录改怎么生成呢?
模块编译
在内核源码根目录进行,模块编译,可以选择编译所有模块或者编译指定目录中的模块。
- 编译所有模块
make modules
- 编译指定目录中的模块
make M=drivers/usb/gadget/ modules
安装模块
将模块安装到指定的路径。
- 默认安装的路径
make modules_install
默认安装在/lib/modules/kernel-version/
kernel-version是所编译的内核的版本
例如我编译的内核源码版本是3.0.35-2666-gbdde708
- 指定安装路径
make modules_install INSTALL_MOD_PATH=~/rootfs
指定到开发板的文件系统中或者打包放到文件系统中。
查看安装结果
指定安装目录之后生成的结果
查看生成的内容如下
Qt@Tony:cd /home/Qt/rootfs/lib/modules/3.0.35-g6774ed9-dirty
Qt@Tony:~/rootfs/lib/modules/3.0.35-g6774ed9-dirty$ ll
total 148
drwxrwxr-x 3 Qt Qt 4096 Dec 14 13:09 ./
drwxrwxr-x 3 Qt Qt 4096 Dec 14 13:09 ../
lrwxrwxrwx 1 Qt Qt 20 Dec 14 13:08 build -> /home/Qt/kernel/
drwxrwxr-x 6 Qt Qt 4096 Dec 14 13:08 kernel/
-rw-rw-r-- 1 Qt Qt 8582 Dec 14 13:08 modules.alias
-rw-rw-r-- 1 Qt Qt 8513 Dec 14 13:08 modules.alias.bin
-rw-rw-r-- 1 Qt Qt 12237 Dec 14 13:08 modules.builtin
-rw-rw-r-- 1 Qt Qt 15275 Dec 14 13:08 modules.builtin.bin
-rw-rw-r-- 1 Qt Qt 69 Dec 14 13:08 modules.ccwmap
-rw-rw-r-- 1 Qt Qt 2812 Dec 14 13:08 modules.dep
-rw-rw-r-- 1 Qt Qt 5438 Dec 14 13:08 modules.dep.bin
-rw-rw-r-- 1 Qt Qt 75 Dec 14 13:08 modules.devname
-rw-rw-r-- 1 Qt Qt 73 Dec 14 13:08 modules.ieee1394map
-rw-rw-r-- 1 Qt Qt 141 Dec 14 13:08 modules.inputmap
-rw-rw-r-- 1 Qt Qt 81 Dec 14 13:08 modules.isapnpmap
-rw-rw-r-- 1 Qt Qt 74 Dec 14 13:08 modules.ofmap
-rw-rw-r-- 1 Qt Qt 2139 Dec 14 13:08 modules.order
-rw-rw-r-- 1 Qt Qt 463 Dec 14 13:08 modules.pcimap
-rw-rw-r-- 1 Qt Qt 43 Dec 14 13:08 modules.seriomap
-rw-rw-r-- 1 Qt Qt 131 Dec 14 13:08 modules.softdep
-rw-rw-r-- 1 Qt Qt 9248 Dec 14 13:08 modules.symbols
-rw-rw-r-- 1 Qt Qt 11607 Dec 14 13:08 modules.symbols.bin
-rw-rw-r-- 1 Qt Qt 6886 Dec 14 13:08 modules.usbmap
lrwxrwxrwx 1 Qt Qt 20 Dec 14 13:08 source -> /home/Qt/kernel/
modules.dep 用于记录模块的依赖关系。
如果没有可以使用depmod命令生成(这一块没有验证)。
模块位于kernel目录
Qt@Tony:~/kernel/module_install/lib/modules/3.0.35-g6774ed9-dirty$ tree kernel/
kernel/
├── crypto
│ └── tcrypt.ko
├── drivers
│ ├── gpu
│ │ └── drm
│ │ ├── drm.ko
│ │ └── vivante
│ │ └── vivante.ko
│ ├── hid
│ │ ├── hid-a4tech.ko
│ │ ├── hid-apple.ko
│ │ ├── hid-belkin.ko
│ │ ├── hid-cherry.ko
│ │ ├── hid-chicony.ko
│ │ ├── hid-cypress.ko
│ │ ├── hid-ezkey.ko
│ │ ├── hid-gyration.ko
│ │ ├── hid-logitech.ko
│ │ ├── hid-microsoft.ko
│ │ ├── hid-monterey.ko
│ │ ├── hid-petalynx.ko
│ │ ├── hid-pl.ko
│ │ ├── hid-samsung.ko
│ │ ├── hid-sony.ko
│ │ └── hid-sunplus.ko
│ ├── i2c
│ │ └── algos
│ │ └── i2c-algo-bit.ko
│ ├── media
│ │ └── video
│ │ ├── gspca
│ │ │ └── gspca_main.ko
│ │ ├── mxc
│ │ │ └── capture
│ │ │ ├── adv7180_tvin.ko
│ │ │ ├── camera_sensor_clock.ko
│ │ │ ├── ipu_bg_overlay_sdc.ko
│ │ │ ├── ipu_csi_enc.ko
│ │ │ ├── ipu_fg_overlay_sdc.ko
│ │ │ ├── ipu_prp_enc.ko
│ │ │ ├── ipu_still.ko
│ │ │ ├── mxc_v4l2_capture.ko
│ │ │ ├── ov3640_camera.ko
│ │ │ ├── ov5640_camera.ko
│ │ │ ├── ov5640_camera_mipi.ko
│ │ │ ├── ov5642_camera.ko
│ │ │ └── ov8820_camera_mipi.ko
│ │ └── uvc
│ │ └── uvcvideo.ko
│ ├── misc
│ │ └── mxs-perfmon.ko
│ ├── mxc
│ │ └── mlb
│ │ └── mxc_mlb150.ko
│ ├── net
│ │ └── wireless
│ │ ├── ath
│ │ │ └── ath6kl
│ │ │ └── ath6kl.ko
│ │ ├── hostap
│ │ │ └── hostap.ko
│ │ ├── rtl8192ce
│ │ │ └── 8192ce.ko
│ │ └── rtl8723bs
│ │ └── 8723bs.ko
│ ├── scsi
│ │ └── scsi_wait_scan.ko
│ └── usb
│ └── gadget
│ ├── g_file_storage.ko
│ └── g_mass_storage.ko
├── fs
│ ├── autofs4
│ │ └── autofs4.ko
│ ├── configfs
│ │ └── configfs.ko
│ └── nls
│ ├── nls_ascii.ko
│ └── nls_utf8.ko
└── net
└── wireless
├── lib80211_crypt_ccmp.ko
├── lib80211_crypt_tkip.ko
└── lib80211_crypt_wep.ko
33 directories, 51 files
Tony Liu
2016-12-14, Shenzhen