Отладочная плата EV-iMX287
Внимание! В платах EV-iMX287 eFuse процессора не запрограммированы. При необходимости вы можете запрограммировать их сами с помощью утилиты.Пока eFuse не запрограммированы, используйте в процессе работы, загрузки в плату sb файлы с индексом ivt (imx28_ivt_linux.sb, imx28_ivt_uboot.sb)
Заходим в папку ltib, запускаем
./ltib -c
./ltib -p boot_stream.spec -f
сборка boot stream image
После сборки в папке ev-imx287/src/ltib/rootfs/boot/ будут созданы файлы imx28_ivt_linux.sb, imx28_ivt_uboot.sb В папке ev-imx287/src/ltib/ будет создан файл файловой системы rootfs.ext2.gz
Для создания updater.sb и updater_ivt.sb
./ltib --selectype -- Choose the platform type Selection (imx28) ---> -- Choose the packages profile Selection (mfg firmware profile) --->
После завершения сборки будут созданы файлы updater.sb и updater_ivt.sb (ev-imx287/src/ltib/)
Выбор типа генерируемой файловой системы ./ltib -c → Target Image Generation → Options → Target Image → ext2.gz ramdisk
Задается в
./ltib -c Package list --->
Файловая система на SD карте
noinitrd console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait ip=none gpmi
Файловая система в NAND Flash
noinitrd console=ttyAM0,115200 ubi.mtd=1 root=ubi0:rootfs0 rootfstype=ubifs rw gpmi
Файловая система NFS
noinitrd console=ttyAM0,115200 fec_mac=00:08:02:6B:A3:1A root=/dev/nfs nfsroot=10.193.100.213:/data/rootfs_home/rootfs_mx28 rw ip=dhcp rootwait gpmi
Файловая система RAMFS
noinitrd console=ttyAM0,115200 root=/dev/ram0 rdinit=/sbin/init fec_mac=00:08:02:6B:A3:1A gpmi
Копируем файлы imx28_ivt_linux.sb и cfimager.exe в папку cfimager. Туда же распаковываем файл rootfs.ext2.gz.Запускаем программу:
cfimager.exe -a -f imx28_ivt_linux.sb -e rootfs.ext2 -dual_boot -d h (Где параметр h - имя диска картридера, в который установлена карта)
Запись u-boot на SD карту (Windows) Копируем файлы imx28_ivt_uboot.sb и cfimager.exe в папку cfimager.Запускаем программу: cfimager -a -f imx28_ivt_uboot.sb -d h (Где параметр h - имя диска картридера, в который установлена карта)
Для загрузки файлов imx28_ivt_uboot.sb или imx28_ivt_linux в DDR2 платы используем утилиту sb_loader (Windows). Подключаем кабель USB A-A к разъему USB (OTG) платы и компьютеру, кабель к COM порту, запускаем терминальную программу (например PuTTY) и подключаем к плате питание.Запускаем утилиту sb_loader -f imx28_ivt_uboot.sb для загрузки u-boot или sb_loader -f imx28_ivt_linux.sb для загрузки ядра
1. На флешку записываем 2 файла - imx28_ivt_linux.sb и rootfs.jffs2
2. Загружаемся с SD карты.
3. Вставляем флешку в USB порт платы и монтируем
mount /dev/sda1 /mnt
4. Стираем NAND Flash
flash_eraseall /dev/mtd0
5. Пишем ядро
kobs-ng init /mnt/imx28_ivt_linux.sb
6. Пишем файловую систему
flash_eraseall /dev/mtd1 nandwrite /dev/mtd1 /mnt/rootfs.jffs2
Отключаем питание платы. Устанавливаем DIP SWITCH переключатель в режим загрузки с NAND Flash (0010). Подаем питание, плата должна загрузится.
1.
./ltib -c
Package List → Package Selection → Выбираем нужные пакеты файловой системы
Здесь же указываем командную строку
noinitrd console=ttyAM0,115200 ubi.mtd=1 root=ubi0:rootfs0 rootfstype=ubifs rw gpmi
Target Image Generation → Options –> Target Image: ext2.gz ramdisk
Два раза Exit, сохраняем конфигурацию, ждем пока соберется ядро и файловая система.
2.
./ltib -p boot_stream.spec -f
создаем boot stream image.
3. Запускаем скрипт build_rfs.sh, который создаст архив rootfs.tar.bz2 в папке ltib.
4. Копируем файлы rootfs.tar.bz2 и rootfs/boot/imx28_ivt_linux.sb в папку \Mfgtools-Rel-1.6.2.0322\Profiles\MX28 Linux Update\OS Firmware\files\
файл imx28_ivt_linux.sb переименовываем в linux.sb
5. Снимаем джампер с разъема USBID (X11)
6. Подключаем кабель USB в верхней разъем X10 (USB OTG)
7. Устанавливаем Dip Switch (S2) в положение 0000 (загрузка с USB)
8. Подаем на плату питание.
9. Запускаем утилиту MfgTool.exe, нажимаем Start и ждем. (если подключить кабель к COM порту, можно в терминальной программе наблюдать процесс программирования)
10. После успешной записи NAND Flash, нажимаем Stop, отключаем USB кабель и питание, переводим DIP SWITCH в положение 0010 и подаем питание на плату.Начнется процесс загрузки из NAND Flash.
Используется u-boot-imx, не входящий в LTIB.
Создаем карту с u-boot.sb, загружаемся с SD карты (Boot DIP SWITCH =1001)
Запись в SPI Flash
sf probe 2 sf erase 0x0 0x800000 tftp 0x42000000 u-boot.sb sf write 0x42000000 0x0 0x42000
Переменные окружения хранятся в SPI Flash, адрес 0x60000.
Загрузка с USB
Устанавливаем USB Flash Drive в нижний разъем USB
usb reset fatload usb 0:1 0x42000000 uImage bootm 0x42000000
root@freescale ~$mount /dev/sda1 /mnt
root@freescale ~$gplay /mnt/prometheus_trailer.mp4
root@freescale ~$screen -m /dev/ttySP0 115200
Если при попытке включить minicom в rootfs при сборке возникает ошибка
window.h:154: error: conflicting types for 'wprintf'
то правим файл
dist/lfs-5.1/minicom/minicom.spec
меняем в нем номер версии 2.2 на 2.6.1
Загружаем minicom версии 2.6.1http://ftp.debian.org/debian/pool/main/m/minicom/minicom_2.6.1.orig.tar.gz
и копируем его в /opt/freescale/pkgs
пересобираем
./ltib -c
Запуск minicom
minicom -s
Устанавливаем порт ttySP0
root@freescale~$minicom -s
Устанавливаем порт ttySP0
Информация о операторе из SIM карты:
AT+CSPN?
Информация о качестве сигнала:
AT+CSQ
Набрать номер:
ATD0443622502;
Захват с WEB-камеры и вывод на дисплей
gst-launch v4l2src device=/dev/video1 ! ffmpegcolorspace ! fbdevsink
Захват с WEB-камеры и трансляция потокового видео в сеть
gst-launch v4l2src device=/dev/video1 ! ffmpegcolorspace ! ffenc_h263 ! tcpclientsink protocol=gdp host=192.168.0.103
можно использовать и другие кодеки
ffenc_mjpeg ffenc_mpeg4 ffenc_flv ffenc_wmv1 ffenc_h263p ffenc_mpeg2video
Воспроизведение на компьютере с Линукс
gst-launch -v tcpserversrc host=0.0.0.0 protocol=gdp ! decodebin ! autovideosink
sudo apt-get -y install gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse
mknod /dev/input/tslib0 c 13 65 export TSLIB_TSDEVICE=/dev/input/tslib0 rm -f /etc/pointercal ts_calibrate
Настройка портов
echo 126 > /sys/class/gpio/export echo 57 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio126/direction echo out > /sys/class/gpio/gpio57/direction
Включить
echo 1 > /sys/class/gpio/gpio57/value echo 1 > /sys/class/gpio/gpio126/value
Выключить
echo 0 > /sys/class/gpio/gpio126/value echo 0 > /sys/class/gpio/gpio57/value
LED0 Настройка порта
echo 68 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio68/direction
Включить
echo 0 > /sys/class/gpio/gpio68/value
Выключить
echo 1 > /sys/class/gpio/gpio68/value
LED1 Настройка порта
echo 71 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio71/direction
Включить
echo 0 > /sys/class/gpio/gpio71/value
Выключить
echo 1 > /sys/class/gpio/gpio71/value
Устанавливаем джампер W3 или W4. Соединяем между собой интерфейсы CAN0 и CAN1.В тесте CAN0 будет принимать сообщения, CAN1 - передавать
Запускаем два SSH соединения, в первом набираем:
cantest can0
во втором набираем:
cantest can1 500#1E.10.10.51.22.77.45
В результате в первом должно появиться:
read 16 bytes 500 [8] 1E 10 10 51 22 77 45
Собираем rootfs с включенным inetutils
Устанавливаем на плате пароль командой passwd (например root)
root@freescale ~$ftp ftp>open (to) Вводим IP адрес платы EV-iMX287 (например 192.168.0.107) Connected to 192.168.0.107. 220 freescale FTP server (GNU inetutils 1.4.2) ready. Name (192.168.0.107:root):root 331 Password required for root. Password:root 230 User root logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp>
Теперь можно зайти на плату с удаленного компьютера (192/168/0/107, логин root, пароль root)
С помощью cfimager записываем на sd карту файл imx28_ivt_ipl.sb
В проводнике записываем файл QNX-IFS на карту.
Вставляем sd карту в плату и подаем питание (boot swith = sdcard).
После приглашения нажимаем M
Welcome to QNX Neutrino Initial Program Loader for Freescale iMX28 Board Command: Press 'M' for SDMMC download, file QNX-IFS assumed.
Старт драйвера дисплея
io-display –dvid=0,did=0
Photon
io-graphics
Старт драйвера тачскрина
devi-43wvfig pro1 dev1
Старт сети
io-pkt-v4 -dmcimx28 ioport=0x800F0000,irq=101,unit=0 –dmcimx28 ioport=0x800F4000,irq=102,unit=1
ifconfig en0 192.168.0.187 up
где 192.168.0.187 - адрес назначаемый плате.
USB Wi-Fi модуль на чипсете RTL8192.
Загружаем драйвер. Распаковываем в любом месте и правим файл Makefile
Указываем PLATFORM_ARM_PXA2XX = y
Ниже меняем пути и версию ядра
ifeq ($(CONFIG_PLATFORM_ARM_PXA2XX), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := /opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-none-linux-gnueabi-
KVER := 2.6.35
KSRC ?= /home/evodbg/Projects/ev-imx287/ltib/rpm/BUILD/linux-2.6.35.3
endif
Собираем
make
Получаем файл 8192cu.ko
Пересобираем файловую систему включив пакет Wireless tools
Пересобираем ядро, включив
<*> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
[*] Support downloading firmware images with Host AP driver
[*] Support for non-volatile firmware download
Создаем microSD карту с новой файловой системой и ядром
Включаем плату, ждем загрузки ядра, копируем файл 8192cu.ko
Подключаем USB Wi-Fi модуль, набираем
insmod 8192cu.ko
Настраиваем соединение для сети без защиты
ifconfig wlan0 192.168.0.177 up iwconfig wlan0 essid "Имя вашей сети"
Проверяем
ping 192.168.0.1
Для сети с WEP
iwconfig wlan0 essid "Имя вашей сети" key s:Ваш ASCII пароль
Проверяем
ping 192.168.0.1
Для сетей с WPA/WPA2 необходим wpa_supplicant
В папке LTIB выполняем
./ltib -m prep -p wpa_supplicant ./ltib -m scbuild -p wpa_supplicant ./ltib -m scinstall -p wpa_supplicant ./ltib -m scdeploy -p wpa_supplicant
Обновленную файловую систему записываем на карту и опять загружаем систему.
Продолжение вскоре