奇葩问题都有解
收集各種奇葩問題,以便日后查閱
- 在開始編譯內核模塊之前,先編譯一遍源碼,(.config)架構與目標板一致
- 在linux內核編譯中在arch/arm/config中找到配置文件,復制到根的.config之后再make,不然是無法編譯的
- 不要試圖用gcc -o *.ko 編譯內核文件,moudle是源碼的一個make選項(請使用Makefile)
- 記住修改根路徑下的arch,與cross_conpile這兩個選項
- 內核模塊版本不對時,無法安裝模塊改./include/linux/vermagic.h /usr/src/include/generated/utsrelease.h下對應的版本號即可(幻數的修改)
- 用modinfo可查看模塊信息
- modprobe 提示FATAL: Module xxx not found. 這個問題很常見。在modprobe前,需要使用depmod xxx.ko
modprob的參數 –force-vermagic可以忽略幻數的版本檢測
交叉編譯出的應用程序明明是存在的可是說是no such file or device 這個問題是由于交叉編譯工具工具不對導致的。
https://www.embbnux.com/2014/04/09/cross_compile_no_such_file_or_directory/
總結
- 上一篇: linux下不同arm 编译器的异同
- 下一篇: Git/小白从零开始篇