Различия

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

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

ev-imx287-micro [2013/09/12 13:52]
evodbg [Аппаратные часы реального времени]
ev-imx287-micro [2013/12/11 20:06] (текущий)
evodbg [Микросхема MLC NAND Flash памяти H27UAG8T2A]
Строка 1317: Строка 1317:
 <code> <code>
 root /root # hwclock -w root /root # hwclock -w
-<code>+</code>
 Устанавливаем батарейку в держатель, отключаем питание, подключаем, убеждаемся, что часы идут верно.\\ Устанавливаем батарейку в держатель, отключаем питание, подключаем, убеждаемся, что часы идут верно.\\
  
Строка 1330: Строка 1330:
  
 ===== Собираем OpenWRT ===== ===== Собираем OpenWRT =====
 +Для желающих попробовать OpenWRT. Его можно запустить на той же виртуальной машине, которая доступна для загрузки. Порядок действий: \\
 +1. Загружаем архив openwrt_mx28.tar.bz2\\
 +2. Копируем его, например, в /home/evodbg/Projects/ev-imx287\\
 +3. Разархивируем \\
 +<code>
 +evodbg@evodbg:`/Projects/ev-imx287$ tar xvjf openwrt_mx28.tar.bz2
 +</code>
 +4. Загружаем архив dl.tar.bz2 в папку openwrt (это всякие пакеты, чтобы не при сборке они не тянулись с интернета) \\
 +5. Разархивируем  \\
 +<code>
 +evodbg@evodbg:`/Projects/ev-imx287/openwrt$ tar xjvf dl.tar.bz2
 +</code>
 +6. Находясь в папке openwrt набираем \\
 +<code>
 +evodbg@evodbg:`/Projects/ev-imx287/openwrt$ make
 +</code>
 +
 +Ждем, в зависимости от производительности компьютера сборка может идти долго. Результатом сборки в папке openwrt/bin/mx28 будут следующие файлы:\\
 +openwrt-mx28-uImage - собранное ядро, пригодное для загрузки по сети\\
 +openwrt-imx28-evk.dtb - собранный dts файл платы, тоже пригодится для загрузки по сети\\
 +
 +Запускаем u-boot, задаем ему следующие параметры окружения:\\
 +<code>
 +setenv serverip xxx.xxx.xxx.xxx   адрес сервера, откуда будем загружать
 +setenv ipaddr xxx.xxx.xxx.xxx  назначаем адрес плате
 +setenv ethaddr xx:xx:xx:xx:xx:xx  при первом запуске придется назначить MAC адрес
 +setenv bootargs console=ttyAMA0,115200 root=/dev/mmcblk0p3 rw rootwait ip=dhcp gpmi  - командная строка (в данном случае rootfs на SD карте)
 +setenv bootcmd 'tftp 0x42000000 openwrt-mx28-uImage; tftp 0x41000000 openwrt-imx28-evk.dtb; bootm 0x42000000 - 0x41000000' 
 +saveenv
 +res
 +</code>
 +После перезагрузки платы, u-boot по сети загрузит файлы openwrt-mx28-uImage и openwrt-imx28-evk.dtb и запустит ядро. Разумеется, перед этим, файловую систему (rootfs) надо положить на SD карту.\\
 +<code>
 +Configured for 5v only power source.            Battery powered operation disabled.
 +LLLCJul 17 201314:51:18
 +FRAC 0x92925552
 +memory type is DDR2
 +                   Wait for ddr ready 1power 0x00820710
 +1311 Frac 0x92925552
 +start change cpu freq
 +hbus 0x00000003
 +cpu 0x00010001
 +start test memory accress
 +ddr2 0x40000000
 +finish simple test
 +LLLLLLLFLCLLJUncompressing Linux... done, booting the kernel.
 +[    0.000000] Booting Linux on physical CPU 0x0
 +[    0.000000] Linux version 3.9.11 (rusar@v1310) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #17 Thu Oct 24 16:14:38 EEST 2013
 +[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
 +[    0.000000] CPU: VIVT data cache, VIVT instruction cache
 +[    0.000000] Machine: Freescale i.MX28 (Device Tree), model: Freescale i.MX28 Evaluation Kit
 +[    0.000000] Memory policy: ECC disabled, Data cache writeback
 +[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
 +[    0.000000] Kernel command line: -e setenv bootargs console=ttyAMA0,115200 root=/dev/mmcblk0p3 rw rootwait ip=none gpmi
 +[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
 +[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
 +[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
 +[    0.000000] __ex_table already sorted, skipping sort
 +[    0.000000] Memory: 128MB = 128MB total
 +[    0.000000] Memory: 124152k/124152k available, 6920k reserved, 0K highmem
 +[    0.000000] Virtual kernel memory layout:
 +[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
 +[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
 +[    0.000000]     vmalloc : 0xc8800000 - 0xff000000   ( 872 MB)
 +[    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
 +[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
 +[    0.000000]       .text : 0xc0008000 - 0xc050e7cc   (5146 kB)
 +[    0.000000]       .init : 0xc050f000 - 0xc0532c7c   ( 144 kB)
 +[    0.000000]       .data : 0xc0534000 - 0xc055e480   ( 170 kB)
 +[    0.000000]        .bss : 0xc055e480 - 0xc058fc50   ( 198 kB)
 +[    0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
 +[    0.000000] NR_IRQS:16 nr_irqs:16 16
 +[    0.000000] of_irq_init: children remain, but no parents
 +[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
 +[    0.000000] Console: colour dummy device 80x30
 +[    0.000501] Calibrating delay loop... 226.09 BogoMIPS (lpj=1130496)
 +[    0.080201] pid_max: default: 32768 minimum: 301
 +[    0.080470] Mount-cache hash table entries: 512
 +[    0.081694] CPU: Testing write buffer coherency: ok
 +[    0.082434] Setting up static identity map for 0xc03b9f98 - 0xc03b9ff0
 +[    0.084922] devtmpfs: initialized
 +[    0.086201] pinctrl core: initialized pinctrl subsystem
 +[    0.086858] regulator-dummy: no parameters
 +[    0.087304] NET: Registered protocol family 16
 +[    0.088609] DMA: preallocated 256 KiB pool for atomic coherent allocations
 +[    0.112515] Serial: AMBA PL011 UART driver
 +[    0.112964] 80074000.serial: ttyAMA0 at MMIO 0x80074000 (irq = 230) is a PL011 rev2
 +[    0.357450] console [ttyAMA0] enabled
 +[    0.371342] bio: create slab <bio-0> at 0
 +[    0.379272] mxs-dma 80004000.dma-apbh: initialized
 +[    0.387232] mxs-dma 80024000.dma-apbx: initialized
 +[    0.393052] 3P3V: 3300 mV
 +[    0.396298] usb0_vbus: 5000 mV
 +[    0.399933] usb1_vbus: 5000 mV
 +[    0.404285] SCSI subsystem initialized
 +[    0.408693] usbcore: registered new interface driver usbfs
 +[    0.414451] usbcore: registered new interface driver hub
 +[    0.420149] usbcore: registered new device driver usb
 +[    0.429966] pps_core: LinuxPPS API ver. 1 registered
 +[    0.434955] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
 +[    0.444249] PTP clock support registered
 +[    0.448838] Advanced Linux Sound Architecture Driver Initialized.
 +[    0.456400] Switching to clocksource mxs_timer
 +[    0.486682] NET: Registered protocol family 2
 +[    0.492550] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
 +[    0.499587] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
 +[    0.506080] TCP: Hash tables configured (established 1024 bind 1024)
 +[    0.512806] TCP: reno registered
 +[    0.516088] UDP hash table entries: 256 (order: 0, 4096 bytes)
 +[    0.522051] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
 +[    0.528890] NET: Registered protocol family 1
 +[    0.534076] RPC: Registered named UNIX socket transport module.
 +[    0.540026] RPC: Registered udp transport module.
 +[    0.544832] RPC: Registered tcp transport module.
 +[    0.549554] RPC: Registered tcp NFSv4.1 backchannel transport module.
 +[    0.556480] NetWinder Floating Point Emulator V0.97 (double precision)
 +[    0.590504] NFS: Registering the id_resolver key type
 +[    0.595804] Key type id_resolver registered
 +[    0.600015] Key type id_legacy registered
 +[    0.604199] jffs2: version 2.2. (NAND) б╘ 2001-2006 Red Hat, Inc.
 +[    0.611835] msgmni has been set to 242
 +[    0.618973] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
 +[    0.626498] io scheduler noop registered (default)
 +[    0.654548] Console: switching to colour frame buffer device 100x30
 +[    0.674552] mxsfb 80030000.lcdif: initialized
 +[    0.679737] uart-pl011 80074000.serial: no DMA platform data
 +[    0.686122] 8006a000.serial: ttyAPP0 at MMIO 0x8006a000 (irq = 215) is a 8006a000.serial
 +[    0.694962] mxs-auart 8006a000.serial: Found APPUART 3.1.0
 +[    0.700809] 8006c000.serial: ttyAPP1 at MMIO 0x8006c000 (irq = 218) is a 8006c000.serial
 +[    0.709628] mxs-auart 8006c000.serial: Found APPUART 3.1.0
 +[    0.715602] 8006e000.serial: ttyAPP2 at MMIO 0x8006e000 (irq = 221) is a 8006e000.serial
 +[    0.724509] mxs-auart 8006e000.serial: Found APPUART 3.1.0
 +[    0.730371] 80070000.serial: ttyAPP3 at MMIO 0x80070000 (irq = 224) is a 80070000.serial
 +[    0.739236] mxs-auart 80070000.serial: Found APPUART 3.1.0
 +[    0.745169] 80072000.serial: ttyAPP4 at MMIO 0x80072000 (irq = 227) is a 80072000.serial
 +[    0.754001] mxs-auart 80072000.serial: Found APPUART 3.1.0
 +[    0.760119] at24 0-0050: 128 byte 24c01 EEPROM, writable, 32 bytes/write
 +[    0.770090] ONFI param page 0 valid
 +[    0.773685] ONFI flash detected
 +[    0.776868] NAND device: Manufacturer ID: 0x01, Chip ID: 0xda (AMD/Spansion S34ML02G1), 256MiB, page size: 2048, OOB size: 64
 +[    0.788341] Scanning device for bad blocks
 +[    1.189605] gpmi-nand 8000c000.gpmi-nand: driver registered.
 +[    1.212702] m25p80 spi32766.0: mx25l6405d (8192 Kbytes)
 +[    1.336880] libphy: fec_enet_mii_bus: probed
 +[    1.344739] usbcore: registered new interface driver asix
 +[    1.350316] usbcore: registered new interface driver ax88179_178a
 +[    1.356711] usbcore: registered new interface driver cdc_ether
 +[    1.362849] usbcore: registered new interface driver smsc95xx
 +[    1.368813] usbcore: registered new interface driver net1080
 +[    1.374736] usbcore: registered new interface driver cdc_subset
 +[    1.380810] usbcore: registered new interface driver zaurus
 +[    1.386750] usbcore: registered new interface driver cdc_ncm
 +[    1.392511] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
 +[    1.399055] Initializing USB Mass Storage driver...
 +[    1.404213] usbcore: registered new interface driver usb-storage
 +[    1.410234] USB Mass Storage support registered.
 +[    1.415553] imx_usb 80080000.usb: pinctrl get/select failed, err=-19
 +[    1.423004] ci_hdrc ci_hdrc.0: doesn't support gadget
 +[    1.428114] ci_hdrc ci_hdrc.0: EHCI Host Controller
 +[    1.433318] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
 +[    1.451072] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
 +[    1.458322] hub 1-0:1.0: USB hub found
 +[    1.462249] hub 1-0:1.0: 1 port detected
 +[    1.466954] imx_usb 80090000.usb: pinctrl get/select failed, err=-19
 +[    1.474394] ci_hdrc ci_hdrc.1: doesn't support gadget
 +[    1.479504] ci_hdrc ci_hdrc.1: EHCI Host Controller
 +[    1.484612] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 2
 +[    1.511069] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
 +[    1.518032] hub 2-0:1.0: USB hub found
 +[    1.521974] hub 2-0:1.0: 1 port detected
 +[    1.527212] mousedev: PS/2 mouse device common for all mice
 +[    1.533058] rtc-pcf8563 0-0051: chip found, driver version 0.4.3
 +[    1.540587] rtc-pcf8563 0-0051: low voltage detected, date/time is not reliable.
 +[    1.548098] rtc-pcf8563 0-0051: retrieved date/time is not valid.
 +[    1.554800] rtc-pcf8563 0-0051: rtc core: registered rtc-pcf8563 as rtc0
 +[    1.565680] stmp3xxx-rtc 80056000.rtc: rtc core: registered 80056000.rtc as rtc1
 +[    1.573463] i2c /dev entries driver
 +[    1.611031] mxs-mmc 80010000.ssp: initialized
 +[    1.618294] usbcore: registered new interface driver usbhid
 +[    1.624014] usbhid: USB HID core driver
 +[    1.631870] mxs-lradc 80050000.lradc: Touchscreen not enabled.
 +[    1.649542] sgtl5000 0-000a: Failed to get supply 'VDDD': -517
 +[    1.655905] 0-000a: 1200 mV normal
 +[    1.659883] sgtl5000 0-000a: Using internal LDO instead of VDDD
 +[    1.677787] mmc0: host does not support reading read-only switch. assuming write-enable.
 +[    1.702925] mmc0: new high speed SD card at address b368
 +[    1.721018] mmcblk0: mmc0:b368 00000 954 MiB
 +[    1.728023]  mmcblk0: p1 p2 p3
 +[    5.700965] sgtl5000 0-000a: Device with ID register ffff is not a sgtl5000
 +[    7.721144] sgtl5000 0-000a: ASoC: failed to probe CODEC -19
 +[    7.726908] mxs-sgtl5000 sound.9: ASoC: failed to instantiate card -19
 +[    7.733649] mxs-sgtl5000 sound.9: snd_soc_register_card failed (-19)
 +[    7.740826] TCP: cubic registered
 +[    7.744488] NET: Registered protocol family 17
 +[    7.749220] Key type dns_resolver registered
 +[    7.755141] registered taskstats version 1
 +[    7.763611] rtc-pcf8563 0-0051: low voltage detected, date/time is not reliable.
 +[    7.771136] rtc-pcf8563 0-0051: retrieved date/time is not valid.
 +[    7.777255] rtc-pcf8563 0-0051: hctosys: invalid date/time
 +[    7.786872] ALSA device list:
 +[    7.789870]   No soundcards found.
 +[    7.814206] VFS: Mounted root (ext2 filesystem) on device 179:3.
 +[    7.823779] devtmpfs: mounted
 +[    7.827584] Freeing init memory: 140K
 +init started: BusyBox v1.19.4 (2013-10-14 10:23:03 EEST)
 +Initializing random number generator... done.
 +Starting network...
 +[    9.000263] eth0: Freescale FEC PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=800f0000.etherne:00, irq=-1)
 +udhcpc (v1.19.4) started
 +Sending discover...
 +[   10.991457] libphy: 800f0000.etherne:00 - Link is Up - 100/Full
 +Sending discover...
 +Sending select for 192.168.0.104...
 +Lease of 192.168.0.104 obtained, lease time 7200
 +Starting dropbear sshd: generating rsa key... generating dsa key... OK
 +
 +(none) login: root
 +Jan  1 00:00:21 login[82]: root login on 'ttyAMA0'
 +
 +
 +BusyBox v1.19.4 (2013-10-14 10:23:03 EEST) built-in shell (ash)
 +Enter 'help' for a list of built-in commands.
 +
 +  _______                     ________        __
 + |       |.-----.-----.-----.|  |  |  |.----.|  |_
 + |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 + |_______||   __|_____|__|__||________||__|  |____|
 +          |__| W I R E L E S S   F R E E D O M
 + -----------------------------------------------------
 + ATTITUDE ADJUSTMENT (%C, %R)
 + -----------------------------------------------------
 +  * 1/4 oz Vodka      Pour all ingredients into mixing
 +  * 1/4 oz Gin        tin with ice, strain into glass.
 +  * 1/4 oz Amaretto
 +  * 1/4 oz Triple sec
 +  * 1/4 oz Peach schnapps
 +  * 1/4 oz Sour mix
 +  * 1 splash Cranberry juice
 + -----------------------------------------------------
 +root@(none):~#
 +</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
 +
 +
 +
 +
 ==== Опять про создание *.sb файлов ==== ==== Опять про создание *.sb файлов ====
 Теперь воспользуемся утилитой elftosb. Для создания загрузочного образа ядра создадим папку и скопируем в нее следующие файлы - boot_prep, power_prep, linux_prep, zImage и linux_ivt.bd. Отредактируем файл linux_ivt.bd указав в нем расположение файлов boot_prep, power_prep, linux_prep, zImage. Все вышеперечисленные файлы можно найти в директории ltib или в этом архиве. Запустим утилиту elftosb:\\ Теперь воспользуемся утилитой elftosb. Для создания загрузочного образа ядра создадим папку и скопируем в нее следующие файлы - boot_prep, power_prep, linux_prep, zImage и linux_ivt.bd. Отредактируем файл linux_ivt.bd указав в нем расположение файлов boot_prep, power_prep, linux_prep, zImage. Все вышеперечисленные файлы можно найти в директории ltib или в этом архиве. Запустим утилиту elftosb:\\
ev-imx287-micro.1378983169.txt.gz · Последние изменения: 2013/09/12 13:52 — evodbg
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki