Android ril移植-6410開發(fa)板SIM300模塊
時間:2014-07-10 來源:未知
環境介紹:
1. ubuntu 10.10,作(zuo)為(wei)Android編譯環境同時(shi)作(zuo)為(wei)NFS讓6410開發板掛載作(zuo)為(wei)根文件系統。
2. Android使用的是友善給(gei)的源(yuan)碼,使用./build-android命(ming)令(ling)編譯出(chu)來(lai),使用./genrootfs.sh命(ming)令(ling)在主(zhu)源(yuan)碼主(zhu)目錄下生成rootfs,刪除掉data/app下的安裝包(不刪除也可以)
3. 將rootfs里(li)的文件(jian)系統拷貝(bei)到NFS掛載目錄下(xia),我的NFS目錄是/work/nfs_root,安裝并開啟NFS,通過exportfs命(ming)令測試是否(fou)將NFS共享。
4. 修改uboot中的kernel啟動參(can)數(shu)為(wei):
setenv bootargs noinitrd init=/linuxrc root=/dev/nfs nfsroot=192.168.11.11:/work/nfs_root
ip=192.168.11.13:192.168.11.11:192.168.11.1:255.255.255.0:www.android.com:eth0:off console=ttySAC0,115200
開(kai)發板使用(yong)192.168.11.13地址,NFS主機(ji)使用(yong)192.168.11.11地址。注意(yi):每次開(kai)發板重啟都要重新(xin)設置(zhi)下IP,因為ubuntu會自(zi)動更新(xin)IP地址。
1. 在進行(xing)ril移(yi)植之前建議先了解下RIL的(de)框架(jia),推薦下面的(de)文(wen)章:
//blog.sina.com.cn/s/blog_682793a50100jeo5.html
2. 主要修改的是hardware/ril/reference-ril/reference-ril.c文(wen)件(jian)其它(ta)文(wen)件(jian)基本(ben)上(shang)不用修改,因為gooooogle已經(jing)將框架封裝好(hao)了(le)。
將(jiang)mainLoop函數中的2043行(xing)進行(xing)修改:
if ( fd >= 0 && !memcmp( s_device_path, "/dev/ttyS", 9 ) ) {
/* disable echo on serial ports */
struct termios ios;
tcgetattr( fd, &ios );
ios.c_lflag = 0; /* disable ECHO, ICANON, etc... */
tcsetattr( fd, TCSANOW, &ios );
}
修改之后:
if ( fd >= 0 && !memcmp( s_device_path, "/dev/s3c2410_serial1", 20 ) ) {
/* disable echo on serial ports */
struct termios ios;
bzero(&ios, sizeof(ios));
tcgetattr( fd, &ios );
ios.c_iflag |=
ios.c_cflag |= CLOCAL | CREAD | CS8; // 用于本地連接和接收使能數據位長度
ios.c_iflag |= IGNPAR;
cfsetispeed(&ios, B115200); //設置波特率
cfsetospeed(&ios, B115200);
ios.c_lflag = 0; /* disable ECHO, ICANON, etc... */
tcflush(fd, TCIFLUSH);
tcsetattr( fd, TCSANOW, &ios );
}
3. 修(xiu)改initializeCallback函數(shu)中AT命令(建議參(can)(can)照google提供的命令和SIM300模塊給(gei)的AT命令參(can)(can)考文檔)
修改完之后(hou),重新編(bian)譯(yi)Android源碼,將新生成的libreference-ril.so拷貝到NFS根目錄下,重啟開發板即可(ke)打電話(hua),接(jie)電話(hua)。
擴展(zhan):如(ru)果使(shi)用(yong)的(de)FriendlyArm提供的(de)源碼,那你看(kan)不到狀(zhuang)態欄的(de)電(dian)(dian)話信號圖標和電(dian)(dian)池圖標,這是因為FriendlyArm已經將(jiang)其注釋(shi)掉了,請將(jiang)
frameworks/base/packages/systemui/src/com/android/systemui/statusbar/StatusBarPolicy.java文件(jian)里的注(zhu)釋支持即可。

