你是否是常常會缺某個驅動,可是又以爲所有編譯太費時間了?試試單個模塊編譯吧。
若是過程當中提示 xxx Not found的話,那麼你缺什麼就apt-get來裝什麼(我是linaro+debian源,debian源能夠參照此貼配置)。
廢話少說,進入正題:
1.首先你要有所有源碼,這是必須的,從github下載源碼(很漫長。。)
git clone git://github.com/linux-sunxi/linux-sunxi.git
或者下載zip打包的(依然漫長..) 注意選你的內核版本對應的版本,個人是3.0.**
好比我下載到目錄 /home/lany/workspace/linux-sunxi
若是是交叉編譯,請先執行:
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
2. 進入這個目錄,建立配置文件,cubieboard可使用 sun4i_defconfig 這個配置
cd /home/lany/workspace/linux-sunxi
make sun4i_defconfig
生成了默認配置的.config以後,你再去.config裏把你要的驅動的配置項給開啓(能夠vi直接編輯.config或者使用make menuconfig圖像界面來配置),我這裏以sun4i_gpio這個驅動作列子:
vi ./.config
/GPIO #按/鍵 輸入GPIO 回車 (即搜索GPIO這個詞語)
將你找到的GPIO配置那一行改成CONFIG_SUN4I_GPIO_UGLY=m
而後保存退出
#注意,若是你是編譯其餘稍微複雜一點的驅動,好比gpu裏的幾個驅動,他們存在依賴關係,建議使用make menuconfig來配置
3.保存以後,讓他準備一下:
make prepare
make scripts
4.如今咱們進入要編譯的驅動的源碼目錄,好比sun4i-gpio.c在 drivers/misc 目錄下:
cd /home/lany/workspace/linux-sunxi/drivers/misc/
make -C /home/lany/workspace/linux-sunxi/ M=`pwd` modules
#-C後面是你下載的內核源碼的目錄 M=`pwd` 表示指定要編譯的模塊目錄爲當前目錄
先看看編譯出來的驅動的版本是否和你係統相同,若是不相同是沒法使用的:
modinfo /home/lany/workspace/linux-sunxi/drivers/misc/sun4i-gpio.ko
輸出:
filename: /home/lany/workspace/linux-sunxi/drivers/misc/sun4i-gpio.ko
license: GPL
author: Tom Cubie
description: a simple sun4i_gpio driver
depends:
vermagic: 3.0.57+ mod_unload modversions ARMv7
能夠看到版本是3.0.57+ mod_unload modversions ARMv7,個人系統版本就是3.0.57+,若是不是,你須要將源碼checkout到你對應的版本的分支再編譯,或者直接完整編譯,把系統內核uImage換成新的(不過這樣你的其餘驅動都得換)
若是3.0.57+和mod_unload之間還有其餘字符,你就要看看你係統里正在使用的其餘驅動是否是也有這個字符,若是對不上是沒法使用的。
5.若是沒問題,那麼直接將sun4i-gpio.ko複製到/lib/modules/(你的內核版本)/kernel/drivers/misc/ 下 (即該驅動應該在的位置,而不是全部驅動都往這裏放哦)
而後insmod /lib/modules/(你的內核版本)/kernel/drivers/misc/sun4i-gpio.ko
若是沒有報錯,那麼恭喜你,已經加載成功,可使用命令:lsmod 查看。若是有報錯,輸入命令:dmesg|tail 查看詳細的報錯信息。而後再去google(通常都很差解決,遇到這種狀況,仍是把內核和全部驅動都換了吧)
若是是報這個錯:php
<3>sun4i_gpio_init script_parser_fetch "gpio_para" "gpio_used" error
linux
[ 607.040000] sun4i_gpio_init script_parser_fetch "gpio_para" "gpio_used" error
git
insmod: error inserting 'sun4i-gpio.ko': -1 Interrupted system callgithub
複製代碼測試
那是你沒有設置script.bin裏的gpio_para配置,設置後再insmod就OK
6.若是加載好驅動測試可以正常使用,而你每次啓動系統都須要他,那麼你能夠把它加入到開機自加載模塊裏:
depmod -a
vi /etc/modules
保存退出,注意:對於某些有依賴的驅動,須要注意前後順序哦
教程完畢。祝你們折騰愉快~fetch
原文做者:WindLand
原文連接:http://forum.cubietech.com/forum ... st%3D1%26digest%3D1google