SD卡系統(tǒng)
系統(tǒng)源碼和編譯方法,[參見連接] (https://community.nxp.com/docs/DOC-334274)其中dtb文件針對(duì)LCD或HDMI修改的內(nèi)容對(duì)iSpeaker無影響名斟,不用去修改。我們會(huì)使用另外的dtb文件孝鹊。
燒寫SD方式也不采用這個(gè)文檔中的方法操骡,直接在linux命令行下如下操作:
-
分區(qū)
$(echo n; echo p; echo 1; echo 8192; echo 24575; echo t; echo c;
echo n; echo p; echo 2; echo 24576; echo;
echo p; echo w) | fdisk -u /dev/mmcblk0
$ sync -
格式化分區(qū)
$ mkfs.vfat /dev/mmcblk0p1 -n kernel
$ mkfs.ext4 /dev/mmcblk0p2 -L rootfs
$ sync -
寫入uboot
dd if=SPL.mmc of=/dev/mmcblk0 bs=1K seek=1; sync
dd if=u-boot.img.mmc of=/dev/mmcblk0 bs=1K seek=69; sync - **拷貝kernel和dtb文件到第一個(gè)分區(qū)一睁,即mmcblk0p1下面需要有2個(gè)文件:
zImage 和 imx.dtb -
解壓文件系統(tǒng)到mmcblk0p2(假設(shè)掛載在/mnt)即可宗苍。如上面文檔中用到的debian系統(tǒng): tar xvzf linaro-jessie-alip-20160428-22.tar.gz -C /mnt --strip-components 1
在這個(gè)debian系統(tǒng)中l(wèi)inphone的編譯和運(yùn)行都沒有問題稼稿,但是文件系統(tǒng)太大了。另外浓若,可以考慮的根文件系統(tǒng)如下:
linaro-trusty-nano-2014024-684.tar.gz 這個(gè)系統(tǒng)最精簡渺杉,不帶編譯環(huán)境蛇数。
linaro-trusty-developer-2014024-684.tar.gz 這個(gè)系統(tǒng)帶開發(fā)環(huán)境挪钓,稍大。
注意:啟動(dòng)階段設(shè)置uboot 環(huán)境變量耳舅,指定fdt_file為imx.dtb
Nandflash系統(tǒng)
Nandflash使用zImage碌上,dtb文件和SD卡中使用的完全一致。Uboot文件SD中使用的不能用于Nandflash浦徊,源碼另見馏予。
燒寫Nandflash需要用SD卡系統(tǒng)盤啟動(dòng),SD卡系統(tǒng)中需要已安裝mtd-utils工具盔性。系統(tǒng)啟動(dòng)后能正诚忌ィ看到mtd0~mtd4分區(qū)。按照下面步驟操作:
$ flash_erase /dev/mtd0 0 0
$ flash_erase /dev/mtd1 0 0
$ flash_erase /dev/mtd2 0 0
$ kobs-ng init -x u-boot.imx --search_exponent=1 -v
$ flash_erase /dev/mtd3 0 0
$ nandwrite -p /dev/mtd3 zImage
$ nandwrite -p /dev/mtd3 -s 0x7e0000 imx.dtb
$ ubiformat /dev/mtd4 -f ubi.img
其中使用ubi.img文件冕香,在linux主機(jī)下制作方法如下:
使用的根文件系統(tǒng)和SD卡中的根文件系統(tǒng)一樣蛹尝,假設(shè)SD卡已插入linux主機(jī)usb接口,并將第二個(gè)分區(qū)掛載與/mnt下悉尾,首先在linux主機(jī)工作目錄下建立文本文件ubifs.cfg突那,內(nèi)容如下:
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
然后執(zhí)行如下命令:
$ mkfs.ubifs -x zlib -m 2048 -e 124KiB -c 3965 -r /mnt ubifs.img
$ ubinize -o ubi.img -m 2048 -p 128KiB -s 2048 -O 2048 ubifs.cfg
uboot 環(huán)境需要配置的參數(shù)
- setenv fdt_file imx6ull-14x14-evk.dtb 直接指定dtb文件
- setenv ethaddr xx:xx:xx:xx:xx:xx
setenv eth1addr xx:xx:xx:xx:xx:xx 指定兩個(gè)網(wǎng)口的MAC地址 - bootargs 中增加bootargs=sync把ubi文件系統(tǒng)改為sync模式
nandargs=setenv bootargs console=${consol},${baudrate} ubi.mtd=4 root=ubi0:rootfs
rootflags=sync rootfstype=ubifs rw ${cma_size}
linphone 的簡單使用
- linphone使用前需要配置好聲卡的部分參數(shù),amixer命令可以調(diào)節(jié)构眯。
- linphone可以啟動(dòng)到linphone控制臺(tái)下愕难,通過控制臺(tái)能夠查看命令的使用試用方法。
- linphone最終使用方式
- 啟動(dòng)linphone: linphonecsh init -a -c ~/.linphonerc
指定~/.linphonerc為配置文件,有關(guān)linphone的所有參數(shù)都可以修改配置文件完成猫缭,目錄和文件名可以更改葱弟。-a啟動(dòng)時(shí)為自動(dòng)應(yīng)答模式。 - linphonecsh啟動(dòng)后猜丹,可以采用linphonecsh generic "command" 的方式發(fā)送指令給linphone翘悉,用于執(zhí)行需要的操作,如下為常用命令:
linphonecsh generic "status hook"
linphonecsh generic "status register"
以下?lián)芴?hào)方式都可以:
linphonecsh generic "call 800"
linphonecsh generic "call 800@192.168.1.100"
linphonecsh exit 退出linphone
linphonecsh generic "playbackgain 10"
調(diào)節(jié)音量居触,數(shù)字范圍0~20妖混,立即生效
linphonecsh register --host xxx --username xx --password xxx
注冊(cè)賬號(hào)到一個(gè)服務(wù)器,通常不使用該方式轮洋,linphonecsh啟動(dòng)時(shí)帶入的配置文件中已經(jīng)包含注冊(cè)信息
- 啟動(dòng)linphone: linphonecsh init -a -c ~/.linphonerc
GPIO定義
GPIO使用系統(tǒng)原生的操作方式制市,例如GPIO22作為led的控制使用,方式如下:
echo 22 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio22/direction
echo 0 > /sys/class/gpio/gpio22/value 置低
echo 1 > /sys/class/gpio/gpio22/value 置高-
目前speaker主板的GPIO定義如下:
復(fù)位按鍵 -----> GPIO2
音量按鍵+ -----> GPIO5
音量按鍵- -----> GPIO8Din1 -----> GPIO25
Din2 -----> GPIO24
Din3 -----> GPIO27
Din4 -----> GPIO26SD_CTRL -----> GPIO23 ##控制功放的mute功能
ALARM_out -----> GPIO4
Alarm_in -----> GPIO0音頻聲道選擇 -----> GPIO1 ## 1=headset 0=speaker