====== uSomIQ Ubuntu и Debian ====== На этой странице описано как установить Ubuntu и Debian на модуль uSomIQ. За основу взяты инструкции от Robert Nelson, доступные здесь:\\ [[http://www.eewiki.net/display/linuxonarm/BeagleBone]] ===== Основные ссылки ===== * ARM Cross Compiler * Linaro: [https://launchpad.net/linaro-toolchain-binaries] * Bootloader * Das U-Boot -- the Universal Boot Loader [http://www.denx.de/wiki/U-Boot] * Source -- [http://git.denx.de/?p=u-boot.git;a=summary] * Linux Kernel * Linus's Mainline tree: [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=summary] * Linux omap tree: [http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap.git] * Arago Project TI Staging tree: [http://arago-project.org/git/projects/?p=linux-am33x.git;a=shortlog;h=refs/heads/v3.2-staging] * ARM based rootfs * Debian Squeeze: [http://www.debian.org/] ===== GCC Toolchain ===== wget -c https://launchpad.net/linaro-toolchain-binaries/trunk/2013.07/+download/gcc-linaro-arm-linux-gnueabihf-4.8-2013.07-1_linux.tar.xz tar xJf gcc-linaro-arm-linux-gnueabihf-4.8-2013.07-1_linux.tar.xz export CC=`pwd`/gcc-linaro-arm-linux-gnueabihf-4.8-2013.07-1_linux/bin/arm-linux-gnueabihf- Проверьте работает ли компилятор: ${CC}gcc --version Должны появится сообщения, похожие на следующее: arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.8-2013.07-1 - Linaro GCC 2013.07) 4.8.2 20130624 (prerelease) Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ===== Bootloader ===== Das U-Boot -- the Universal Boot Loader [http://www.denx.de/wiki/U-Boot] ==== Загрузить U-Boot ==== Загрузите U-Boot с помощью git: git clone git://git.denx.de/u-boot.git cd u-boot/ git checkout v2013.07 -b tmp ==== U-Boot патчи ==== Добавьте поддержку uSomIQ в u-boot wget http://www.mentorel.com/downloads/usomiq/patches/u-boot-2013.07-usomiq.patch patch -p1 < u-boot-2013.07-usomiq.patch ==== Компиляция U-Boot ==== make ARCH=arm CROSS_COMPILE=${CC} distclean make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_config make ARCH=arm CROSS_COMPILE=${CC} ===== Ядро Linux ===== git clone git://github.com/RobertCNelson/bb-kernel.git cd linux-dev/ git checkout origin/am33x-v3.2 -b tmp Добавьте поддержку uSomIQ в ядре wget http://www.mentorel.ru/downloads/usomiq/patches/add-usomiq-rcn-v3.2.patch patch -p1 < add-usomiq-rcn-v3.2.patch Сборка ядра: ./build_kernel.sh Файл ядра zImage и модули будут в директории "deploy". ===== Пресобранные бинарники ===== Пресобранные бинарники находятся здесь, но лучше собрать самые актуальные вручную [[http://www.mentorel.com/downloads/usomiq/boot/beaglebone-compatible/]] ====== Файловая система ====== ===== Debian 7.0.0 (Wheezy) Root File System ===== Это файловая система достаточно компактная (~75M), чтобы уместится на NAND флеш модуля. Но по-прежнему, это Debian с утилитой apt-get и соответствующим репозиторием в интернет. Идентификация пользователя:\\ login: root\\ Password: root\\ wget -c https://rcn-ee.net/rootfs/eewiki/minfs/debian-7.8-minimal-armhf-2015-01-20.tar.xz Распакуйте архив: tar xJf debian-7.8-minimal-armhf-2015-01-20.tar.xz Теперь у вас есть директория с tar-архивом, где находится файловая система, которую надо распаковать на носитель (SD карта или NAND) ===== Ubuntu 14.04 (Trusty) ===== Default User: ubuntu Password: temppwd wget -c https://rcn-ee.net/rootfs/eewiki/minfs/ubuntu-14.04.1-minimal-armhf-2015-01-20.tar.xz Распакуйте архив: tar xJf ubuntu-14.04.1-minimal-armhf-2015-01-20.tar.xz Теперь у вас есть директория с tar-архивом, где находится файловая система, которую надо распаковать на носитель (SD карта) ===== Файловая система для NAND ===== Размер файловой системы около 64МБ, подходит для установки в NAND флеш **Debian 7 (small flash)** ^ User ^ Password ^ | debian | temppwd | | root | root | Скачайте архив: wget -c https://rcn-ee.net/rootfs/eewiki/barefs/debian-7.8-bare-armhf-2015-01-20.tar.xz Распакуйте архив: tar xJf debian-7.8-bare-armhf-2015-01-20.tar.xz Теперь у вас есть директория с tar-архивом, где находится файловая система, которую надо распаковать на носитель (SD карта или NAND) ====== Установка Ubuntu/Debian ====== ===== На SD карту ===== ==== Подготовка карты microSD ==== Для этих инструкций предположим, что SD карта видна в системе как /dev/sdc. Узнать имя устройства можно командой "sudo fdisk \-l" export DISK=/dev/mmcblk0 Очистим microSD: sudo dd if=/dev/zero of=${DISK} bs=1024 count=1024 sudo parted --script ${DISK} mklabel msdos Установка загрузочного раздела: sudo fdisk ${DISK} << __EOF__ n p 1 +64M t e p w __EOF__ Установим флаг "BOOT" sudo parted --script ${DISK} set 1 boot on Форматируем загрузочный раздел как vfat: sudo mkfs.vfat -F 16 ${DISK}1 -n boot Создадим раздел для файловой системы: sudo fdisk ${DISK} << __EOF__ n p 2 +640M w __EOF__ Отформатируем rootfs как ext4: sudo mkfs.ext4 ${DISK}2 -L rootfs ==== Монтирование карты ==== **На большинстве операционных систем монтирование происходит автоматически** sudo mkdir -p /media/boot/ sudo mkdir -p /media/rootfs/ sudo mount ${DISK}1 /media/boot/ sudo mount ${DISK}2 /media/rootfs/ ==== Запись загрузчика ==== Скопируйте MLO/u-boot.img на загрузочный раздел sudo cp -v ./u-boot/MLO /media/boot/ sudo cp -v ./u-boot/u-boot.img /media/boot/ ==== uEnv.txt based bootscript ==== Requires: u-boot v2013.04 Create "uEnv.txt" boot script: (nano uEnv.txt) #optargs= mmcroot=/dev/mmcblk0p2 ro mmcrootfstype=ext4 rootwait fixrtc #To boot old v3.2.x based kernel enable: (BeagleBone/uSomIQ only) uenvcmd=run loaduimage; run mmc_classic_boot #To boot new v3.8.x based device tree: #uenvcmd=run loaduimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr} Copy uEnv.txt to the boot partition: sudo cp -v ./uEnv.txt /media/boot/ ==== Запись ядра и файловой системы ==== После исполнения скрипта build_kernel.sh появится следующее сообщение: ----------------------------- Script Complete eewiki.net: [user@localhost:~$ export kernel_version=3.X.Y-Z] ----------------------------- Скопируйте в командную строку сообщение "export kernel_version=3.X.Y-Z" "как есть" и выполните: export kernel_version=3.X.Y-Z Скопируйте файл ядра zImage на второй раздел в директорию /boot: sudo cp -v ./linux-dev/deploy/${kernel_version}.zImage /media/rootfs/boot/zImage Запишите файловую систему: sudo tar xfvp ./*-*-minimal-arm*-*/arm*-rootfs-*.tar -C /media/rootfs/ Запишите модули ядра: sudo tar xfv ./linux-dev/deploy/${kernel_version}-modules.tar.gz -C /media/rootfs/ Исправьте /etc/fstab: sudo nano /media/rootfs/etc/fstab добавьте строки: /dev/mmcblk0p2 / auto errors=remount-ro 0 1 /dev/mmcblk0p1 /boot/uboot auto defaults 0 0 === Включение сети === sudo nano /media/rootfs/etc/network/interfaces добавьте строки: auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp === Включение логина по консоли === **Debian:** sudo nano /media/rootfs/etc/inittab добавьте в конец файла: T0:23:respawn:/sbin/getty -L ttyO0 115200 vt102 **Ubuntu:** sudo nano /media/rootfs/etc/init/serial.conf добавьте в конец файла: start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty 115200 ttyO0 Правильно извлеките microSD карту: sync sudo umount /media/boot sudo umount /media/rootfs ===== Установка Debian на NAND ===== Здесь описано как установить Debian на раздел с файловой системой UBIFS. 1) установите Ubuntu или Debian на SD карту, как описано в предыдущем разделе 2) Скачайте файловую систему Debian wget https://rcn-ee.net/deb/barefs/wheezy/debian-7.7-bare-armhf-2014-11-10.tar.xz Распакуйте этот архив и получите директорию с архивом файловой системы и файл с паролем для пользователя. Файл с архивом файловой системы поместите на карту. 3) загрузите плату до u-boot и выполните следующие команды: Запись MLO nand erase.chip mmc rescan load mmc 0 ${loadaddr} MLO nand write ${loadaddr} SPL nand write ${loadaddr} SPL.backup1 Запись файла u-boot.img load mmc 0 ${loadaddr} u-boot.img nand write ${loadaddr} u-boot Запись файла ядра run loaduimage nand write ${loadaddr} kernel 4) Далее загрузите ОС 5) Подготовка раздела UBIFS Подробная информация доступна здесь: [[http://processors.wiki.ti.com/index.php/UBIFS_Support]] Обратите внимание на параметр "235MiB" - он зависит от фактического размера раздела и для NAND 512МБ будет "450MiB" ubiformat /dev/mtd7 -s 2048 -O 2048 ubiattach /dev/ubi_ctrl -m 7 -O 2048 ubimkvol /dev/ubi0 -s 235MiB -N rootfs mount -t ubifs ubi0:rootfs /mnt 6) Запись файловой системы cd /mnt tar xf /debian-7.7-bare-armhf-2014-11-10.tar sync 7) Разрешите доступ через консоль Отредактируйте /mnt/etc/inittab как описано ранее. 8) Включение сети Отредактируйте /mnt/etc/network/interfaces как описано ранее ====== FAQ ====== ===== CircuitCo LCD3 Backlight ===== Turn on Backlight: i2cset -f -y 1 0x24 0x07 0x09 i2cset -f -y 1 0x24 0x08 0x60 ===== CircuitCo LCD3/LCD7 TouchScreen ===== Add to /etc/modules: fbcon ti_tscadc