三、技術(shù)實(shí)現(xiàn)
1、解壓內(nèi)核源碼
將 EPC-280_283_287 V1.04.iso 光盤(pán)中的linux-2.6.35..3-fec60fa.tar.bz2 源碼包復(fù)制到ubuntu 系統(tǒng)的“~/”目錄下,將其解壓后可得到linux-2.6.35.3 目錄,參考命令如下:
vmuser@Linux-host:~$ tar -jxvf linux-2.6.35..3-fec60fa.tar.bz2
2、修改配置文件
在內(nèi)核源碼目錄“drivers/gpio/”下的Kconfig 文件中有設(shè)定了CONFIG_GPIO_M28X 宏的默認(rèn)配置,用vim編輯器打開(kāi)這個(gè)Kconfig 文件,搜索“GPIO_M28X”,找到其配置設(shè)定,將其修改為可獨(dú)立配置的選項(xiàng),修改后的配置如下所示(紅色標(biāo)識(shí)的為修改部分):
config GPIO_M28X
tristate “GPIO support for MiniPCI-E slot control”
#depends on IoT_3960 || IoT_3962
help
Say yes here to enable the IoT_396x board gpio driver.
3、修改內(nèi)核編譯腳本
Linux 源碼目錄下的build-kernel 腳本文件主要用于切換內(nèi)核默認(rèn)配置,但因光盤(pán)中的該腳本文件設(shè)置不夠靈活,建議直接將build-kernel文本內(nèi)容整體替換為如圖 3所示的代碼:
圖3 build-kernel 文件內(nèi)容
4、配置內(nèi)核源碼
進(jìn)入解壓后的 Linux 源碼根目錄,使用IoT-3960L 的默認(rèn)內(nèi)核配置,參考命令如下:
vmuser@Linux_host:~/ linux-2.6.35.3$ 。/build-kernel
然后輸入6 選擇Iot3960,如果是其他工控板或開(kāi)發(fā)套件,則選擇對(duì)應(yīng)的選項(xiàng)即可,如果對(duì)應(yīng)的Linux 源碼根目錄下沒(méi)有.config 文件,運(yùn)行該步驟操作后會(huì)提示cp 命令執(zhí)行錯(cuò)誤,直接忽略此錯(cuò)誤即可。
工控板或開(kāi)發(fā)套件使用 USB 接口來(lái)與龍尚4G 模塊通信,需要配置內(nèi)核以支持USB轉(zhuǎn)串口功能。參考命令如下:
vmuser@Linux-host:~/ linux-2.6.35.3 $ make menuconfig
進(jìn)入配置界面后,按回車(chē)鍵進(jìn)入“Device Drivers ---》”選項(xiàng),配置完內(nèi)核后,保存并退出內(nèi)核配置操作。
5、 修改&編譯內(nèi)核源碼
對(duì)龍尚4G模塊,我們需要在linux-2.6.35.3 目錄下對(duì)三個(gè)數(shù)組中的內(nèi)容進(jìn)行修改:
l 使用vi 或者vim 命令打開(kāi)drivers/gpio/gpio_m28x.c 文件,在all_gpios_info[ ]數(shù)組作中作修改;
l 使用vi 或者vim 命令打開(kāi)arch/arm/mach-mx28/mx28evk_pins.c 文件,在mx28evk_fixed_pins []數(shù)組中作修改;
l 使用vi或者vim命令打開(kāi)drivers/usb/serial/option.c 文件,在option_ids[]數(shù)組中作修改。
按上述操作修改完成之后,就可以編譯內(nèi)核了,內(nèi)核編譯參考命令如下:
vmuser@Linux-host:~/ linux-2.6.35.3 $ make uImage
待內(nèi)核編譯完成后,將生成的uImage 文件(可在arch/arm/boot 目錄下找到)燒寫(xiě)到工控板或開(kāi)發(fā)套件上,燒寫(xiě)方法請(qǐng)參考《IoT-3960 用戶手冊(cè).pdf》第6 章的內(nèi)容。
評(píng)論