Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

ev-imx287-micro [2013/10/24 19:39]
evodbg [Собираем OpenWRT]
ev-imx287-micro [2013/12/11 20:06] (текущий)
evodbg [Микросхема MLC NAND Flash памяти H27UAG8T2A]
Строка 1331: Строка 1331:
 ===== Собираем OpenWRT ===== ===== Собираем OpenWRT =====
 Для желающих попробовать OpenWRT. Его можно запустить на той же виртуальной машине, которая доступна для загрузки. Порядок действий: \\ Для желающих попробовать OpenWRT. Его можно запустить на той же виртуальной машине, которая доступна для загрузки. Порядок действий: \\
-1. Загружаем архив openwrt_mx28.tar.bz2 +1. Загружаем архив openwrt_mx28.tar.bz2\\ 
-2. Копируем его, например, в /home/evodbg/Projects/ev-imx287 +2. Копируем его, например, в /home/evodbg/Projects/ev-imx287\\ 
-3. Разархивируем +3. Разархивируем \\
 <code> <code>
 evodbg@evodbg:`/Projects/ev-imx287$ tar xvjf openwrt_mx28.tar.bz2 evodbg@evodbg:`/Projects/ev-imx287$ tar xvjf openwrt_mx28.tar.bz2
 </code> </code>
 4. Загружаем архив dl.tar.bz2 в папку openwrt (это всякие пакеты, чтобы не при сборке они не тянулись с интернета) \\ 4. Загружаем архив dl.tar.bz2 в папку openwrt (это всякие пакеты, чтобы не при сборке они не тянулись с интернета) \\
-5. Разархивируем  +5. Разархивируем  \\
 <code> <code>
 evodbg@evodbg:`/Projects/ev-imx287/openwrt$ tar xjvf dl.tar.bz2 evodbg@evodbg:`/Projects/ev-imx287/openwrt$ tar xjvf dl.tar.bz2
Строка 1348: Строка 1348:
  
 Ждем, в зависимости от производительности компьютера сборка может идти долго. Результатом сборки в папке openwrt/bin/mx28 будут следующие файлы:\\ Ждем, в зависимости от производительности компьютера сборка может идти долго. Результатом сборки в папке openwrt/bin/mx28 будут следующие файлы:\\
-openwrt-mx28-uImage - собранное ядро, пригодное для загрузки по сети +openwrt-mx28-uImage - собранное ядро, пригодное для загрузки по сети\\ 
-openwrt-imx28-evk.dtb - собранный dts файл платы, тоже пригодится для загрузки по сети+openwrt-imx28-evk.dtb - собранный dts файл платы, тоже пригодится для загрузки по сети\\
  
-Запускаем u-boot, задаем ему следующие параметры окружения:+Запускаем u-boot, задаем ему следующие параметры окружения:\\
 <code> <code>
 setenv serverip xxx.xxx.xxx.xxx   адрес сервера, откуда будем загружать setenv serverip xxx.xxx.xxx.xxx   адрес сервера, откуда будем загружать
Строка 1361: Строка 1361:
 res res
 </code> </code>
-После перезагрузки платы, u-boot по сети загрузит файлы openwrt-mx28-uImage и openwrt-imx28-evk.dtb и запустит ядро. Разумеется, перед этим, файловую систему (rootfs) надо положить на SD карту.+После перезагрузки платы, u-boot по сети загрузит файлы openwrt-mx28-uImage и openwrt-imx28-evk.dtb и запустит ядро. Разумеется, перед этим, файловую систему (rootfs) надо положить на SD карту.\\
 <code> <code>
 Configured for 5v only power source.            Battery powered operation disabled. Configured for 5v only power source.            Battery powered operation disabled.
Строка 1571: Строка 1571:
 root@(none):~# root@(none):~#
 </code> </code>
 +
 +Можно расположить ядро и файловую систему на SD карте и загружать ядро с карты.\\
 +Загружаем архив elf2sb.tar.bz2. Распаковываем его в /openwrt/tools\\
 +В корень openwrt копируем два скрипта make_sb_file.sh и make_sd_card.sh. В папку /openwrt/staging_dir/target-arm_v5te_uClibc-0.9.33.2_eabi/ копируем скрипты mk_hdr.sh и mk_mx28_sd.\\
 +Делаем скрипты исполняемыми:\\
 +<code>
 +chmod +x make_sb_file.sh
 +chmod +x make_sd_card.sh
 +</code>
 +После того, как make удачно завершился, запускаем скрипт make_sb_file.sh. Он выполняет следующее - "склеивает" файлы openwrt-mx28-zImage и openwrt-imx28-evk.dtb. Затем с помощью утилиты elftosb добавляет к ним инициализацую памяти, питания и командную строку и на выходе выдает файл imx28_ivt_linux.sb. 
 +Скрипт make_sd_card.sh выполняет следующие действия - создает папку /boot в собранной файловой системе ( /openwrt/staging_dir/target-arm_v5te_uClibc-0.9.33.2_eabi/root-mx28), копирует в эту папку файл ядра imx28_ivt_linux.sb и записывает на ядро и файловую систему на SD карту с помощью скрипта mk_mx28_sd.
 +Перед запуском make_sd_card.sh убедитесь, что ваша SD карта имеет имя **sdb**. Иначе поправьте имя в скрипте make_sd_card.sh на ваше.\\  
 +<code>
 +dmesg
 +[190556.968190] usb 2-1: new high speed USB device using ehci_hcd and address 6
 +[190557.116232] usb 2-1: configuration #1 chosen from 1 choice
 +[190557.118077] scsi8 : SCSI emulation for USB Mass Storage devices
 +[190557.118340] usb-storage: device found at 6
 +[190557.118346] usb-storage: waiting for device to settle before scanning
 +[190562.116662] usb-storage: device scan complete
 +[190562.123248] scsi 8:0:0:0: Direct-Access     Generic- Multi-Card       1.00 PQ: 0 ANSI: 0 CCS
 +[190562.124947] sd 8:0:0:0: Attached scsi generic sg1 type 0
 +[190562.713188] sd 8:0:0:0: [sdb] 1953792 512-byte logical blocks: (1.00 GB/954 MiB)
 +[190562.714037] sd 8:0:0:0: [sdb] Write Protect is off
 +[190562.714044] sd 8:0:0:0: [sdb] Mode Sense: 03 00 00 00
 +[190562.714051] sd 8:0:0:0: [sdb] Assuming drive cache: write through
 +[190562.718144] sd 8:0:0:0: [sdb] Assuming drive cache: write through
 +[190562.718154]  **sdb: sdb1 sdb2 sdb3**
 +</code>
 +отмонтируйте карту
 +<code>
 +umount /dev/sdb1
 +umount /dev/sdb2
 +umount /dev/sdb3
 +</code>
 +Запустите скрипт make_sd_card.sh. Ответьте yes на вопрос о записи. После записи, вставьте карту в плату, установите режим загрузки дип переключателями 1001 и подайте питание. Система должна загрузиться и смонтироваться. 
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +==== Микросхема MLC NAND  Flash памяти H27UAG8T2A ====
 +На некоторых платах EV-iMX287-Mini может быть установлена микросхема NAND Flash Hynix H27UAG8T2A объемом 2 Гбайта.
 +С данной памятью мы использовали ядро 3 версии. Для записи в нее ядра и файловой системы можно использовать следующую методику:
 +1. Создаем загрузочную SD карту с ядром 3 версии и файловой системой.
 +2. Записываем на нее файлы ядра и архив файловой системы, которую желаем расположить в NAND Flash
 +3. Загружаемся с SD карты.
 +Выполняем:
 +<code>
 +flash_eraseall /dev/mtd0 стираем партицию mtd0
 +kobs-ng init /home/imx28_ivt_linux.sb записываем туда ядро
 +flash_eraseall /dev/mtd1  стираем партицию mtd1 
 +ubiattach /dev/ubi_ctrl -d 0 -m 1
 +ubimkvol /dev/ubi0 -N rootfs0 -m
 +mkdir -p /mnt/ubi0
 +mount -t ubifs ubi0_0 /mnt/ubi0
 +tar xvf /home/rootfs.tar -C /mnt/ubi0 распаковываем туда файловую систему
 +sync
 +sync
 +umount /mnt/ubi0 отмонтируем
 +</code>
 +Устанавливаем дип переключатели в режим загрузки с NAND Flash (0010) и подаем питание. Теперь система должна стартовать из NAND Flash.
 +Подсказка: в 3 ядре используется командная строка console=ttyAMA0 вместо ttyAM0 как во 2.
 +
 +
 +
 +
 +==== Использование планировщика cron ====
 +Для запуска программ, скриптов и т.п. удобно использовать cron
 +Для этого на плате выполняем: \\
 +<code>
 +mkdir /var/spool/cron/
 +mkdir /var/spool/cron/crontabs/
 +crontab -e
 +</code>
 +После выполнения последней команды запуститься редактор vi \\
 +Впишем задание - запускать скрипт script.sh, который лежит в /home \\
 +<code>
 +*/5 * * * * /home/script.sh
 +</code>
 +Чтобы сохранить изменения и выйти из редактора нажимаем Esc, затем : (двоеточие), w,q, кнопку Enter \\
 +Теперь каждые 5 минут будет запускаться на выполнение script.sh
  
  
ev-imx287-micro.1382632752.txt.gz · Последние изменения: 2013/10/24 19:39 — evodbg
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki