Инструменты пользователя

Инструменты сайта


wiki:usomiq-ubuntu
no way to compare when less than two revisions

Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
Следующая версия
wiki:usomiq-ubuntu [2018/06/07 10:53] – [GCC Toolchain] maxx
Строка 1: Строка 1:
 +====== 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 =====
 +
 +<code>
 +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-
 +</code>
 +Проверьте работает ли компилятор:
 +<code>
 +${CC}gcc --version
 +</code>
 +Должны появится сообщения, похожие на следующее:
 +<code>
 +arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.8-2013.07 - Linaro GCC 4.8-2013.07) 4.8.2 20130704 (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.
 +</code>
 +===== Bootloader =====
 +
 +Das U-Boot -- the Universal Boot Loader [http://www.denx.de/wiki/U-Boot]
 +
 +==== Загрузить U-Boot ====
 +
 +Загрузите U-Boot с помощью git:
 +<code>
 +git clone git://git.denx.de/u-boot.git
 +cd u-boot/
 +git checkout v2013.07 -b tmp
 +</code>
 +
 +==== U-Boot патчи ====
 +Добавьте поддержку uSomIQ в u-boot
 +<code>
 +wget http://www.mentorel.com/downloads/usomiq/patches/u-boot-2013.07-usomiq.patch
 +patch -p1 < u-boot-2013.07-usomiq.patch
 +</code>
 +
 +==== Компиляция U-Boot ====
 +
 +<code>
 +make ARCH=arm CROSS_COMPILE=${CC} distclean
 +make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_config
 +make ARCH=arm CROSS_COMPILE=${CC}
 +</code>
 +
 +===== Ядро Linux =====
 +
 +<code>
 +git clone git://github.com/RobertCNelson/bb-kernel.git
 +cd linux-dev/
 +git checkout origin/am33x-v3.2 -b tmp
 +</code>
 +
 +Добавьте поддержку uSomIQ в ядре
 +<code>
 +wget http://www.mentorel.ru/downloads/usomiq/patches/add-usomiq-rcn-v3.2.patch
 +patch -p1 < add-usomiq-rcn-v3.2.patch
 +</code>
 +
 +Сборка ядра:
 +<code>
 +./build_kernel.sh
 +</code>
 +
 +Файл ядра 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\\
 +
 +<code>
 +wget -c https://rcn-ee.net/rootfs/eewiki/minfs/debian-7.8-minimal-armhf-2015-01-20.tar.xz
 +</code>
 +Распакуйте архив:
 +<code>
 +tar xJf debian-7.8-minimal-armhf-2015-01-20.tar.xz
 +</code>
 +Теперь у вас есть директория с tar-архивом, где находится файловая система, которую надо распаковать на носитель (SD карта или NAND)
 +===== Ubuntu 14.04 (Trusty) =====
 +
 +Default User: ubuntu
 +Password: temppwd
 +
 +<code>
 +wget -c https://rcn-ee.net/rootfs/eewiki/minfs/ubuntu-14.04.1-minimal-armhf-2015-01-20.tar.xz
 +</code>
 +Распакуйте архив:
 +<code>
 +tar xJf ubuntu-14.04.1-minimal-armhf-2015-01-20.tar.xz
 +</code>
 +Теперь у вас есть директория с tar-архивом, где находится файловая система, которую надо распаковать на носитель (SD карта) 
 +
 +===== Файловая система для NAND =====
 +Размер файловой системы около 64МБ, подходит для установки в NAND флеш
 +
 +**Debian 7 (small flash)**
 +^ User ^ Password ^
 +| debian | temppwd |
 +| root | root |
 +
 +Скачайте архив: 
 +<code>
 +wget -c https://rcn-ee.net/rootfs/eewiki/barefs/debian-7.8-bare-armhf-2015-01-20.tar.xz
 +</code>
 +
 +Распакуйте архив:
 +<code>
 +tar xJf debian-7.8-bare-armhf-2015-01-20.tar.xz
 +</code>
 +Теперь у вас есть директория с tar-архивом, где находится файловая система, которую надо распаковать на носитель (SD карта или NAND) 
 +====== Установка Ubuntu/Debian ======
 +===== На SD карту =====
 +
 +==== Подготовка карты microSD ====
 +
 +Для этих инструкций предположим, что SD карта видна в системе как /dev/sdc. Узнать имя устройства можно командой "sudo fdisk \-l"
 +<code>
 +export DISK=/dev/mmcblk0
 +</code>
 +
 +Очистим microSD:
 +<code>
 +sudo dd if=/dev/zero of=${DISK} bs=1024 count=1024
 +sudo parted --script ${DISK} mklabel msdos
 +</code>
 +
 +Установка загрузочного раздела:
 +<code>
 +sudo fdisk ${DISK} << __EOF__
 +n
 +p
 +1
 +
 ++64M
 +t
 +e
 +p
 +w
 +__EOF__
 +</code>
 +
 +Установим флаг "BOOT"
 +<code>
 +sudo parted --script ${DISK} set 1 boot on
 +</code>
 +
 +Форматируем загрузочный раздел как vfat:
 +<code>
 +sudo mkfs.vfat -F 16 ${DISK}1 -n boot
 +</code>
 +
 +Создадим раздел для файловой системы:
 +<code>
 +sudo fdisk ${DISK} << __EOF__
 +n
 +p
 +2
 +
 +
 +w
 +__EOF__
 +</code>
 +
 +Отформатируем rootfs как ext4:
 +<code>
 +sudo mkfs.ext4 ${DISK}2 -L rootfs
 +</code>
 +
 +==== Монтирование карты ====
 +
 +**На большинстве операционных систем монтирование происходит автоматически**
 +
 +<code>
 +sudo mkdir -p /media/boot/
 +sudo mkdir -p /media/rootfs/
 +
 +sudo mount ${DISK}1 /media/boot/
 +sudo mount ${DISK}2 /media/rootfs/
 +</code>
 +
 +==== Запись загрузчика ====
 +
 +Скопируйте MLO/u-boot.img на загрузочный раздел
 +<code>
 +sudo cp -v ./u-boot/MLO /media/boot/
 +sudo cp -v ./u-boot/u-boot.img /media/boot/
 +</code>
 +
 +==== uEnv.txt based bootscript ====
 +
 +Requires: u-boot v2013.04
 +
 +Create "uEnv.txt" boot script: (nano uEnv.txt)
 +<code>
 +#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}
 +</code>
 +
 +Copy uEnv.txt to the boot partition:
 +<code>
 +sudo cp -v ./uEnv.txt /media/boot/
 +</code>
 +
 +==== Запись ядра и файловой системы ====
 +После исполнения скрипта build_kernel.sh появится следующее сообщение:
 +<code>
 +-----------------------------
 +Script Complete
 +eewiki.net: [user@localhost:~$ export kernel_version=3.X.Y-Z]
 +-----------------------------
 +</code>
 +
 +Скопируйте в командную строку сообщение "export kernel_version=3.X.Y-Z" "как есть" и выполните:
 +<code>
 +export kernel_version=3.X.Y-Z
 +</code>
 +
 +Скопируйте файл ядра zImage на второй раздел в директорию /boot:
 +<code>
 +sudo cp -v ./linux-dev/deploy/${kernel_version}.zImage /media/rootfs/boot/zImage
 +</code>
 +
 +Запишите файловую систему:
 +<code>
 +sudo tar xfvp ./*-*-minimal-arm*-*/arm*-rootfs-*.tar -C /media/rootfs/
 +</code>
 +
 +Запишите  модули ядра:
 +<code>
 +sudo tar xfv ./linux-dev/deploy/${kernel_version}-modules.tar.gz -C /media/rootfs/
 +</code>
 +
 +Исправьте /etc/fstab:
 +<code>
 +sudo nano /media/rootfs/etc/fstab
 +</code>
 +добавьте строки:
 +<code>
 +/dev/mmcblk0p2   /           auto   errors=remount-ro     1
 +/dev/mmcblk0p1   /boot/uboot auto   defaults            0   0
 +</code>
 +
 +=== Включение сети ===
 +
 +<code>
 +sudo nano /media/rootfs/etc/network/interfaces
 +</code>
 +добавьте строки:
 +<code>
 +
 +auto lo
 +iface lo inet loopback
 +
 +auto eth0
 +iface eth0 inet dhcp
 +</code>
 +
 +=== Включение логина по консоли ===
 +
 +**Debian:**
 +<code>
 +sudo nano /media/rootfs/etc/inittab
 +</code>
 +добавьте в конец файла:
 +<code>
 +T0:23:respawn:/sbin/getty -L ttyO0 115200 vt102
 +</code>
 +
 +**Ubuntu:**
 +<code>
 +sudo nano /media/rootfs/etc/init/serial.conf
 +</code>
 +добавьте в конец файла:
 +<code>
 +start on stopped rc RUNLEVEL=[2345]
 +stop on runlevel [!2345]
 +
 +respawn
 +exec /sbin/getty 115200 ttyO0
 +</code>
 +
 +Правильно извлеките microSD карту:
 +<code>
 +sync
 +sudo umount /media/boot
 +sudo umount /media/rootfs
 +</code>
 +
 +===== Установка Debian на NAND =====
 +
 +Здесь описано как установить Debian на раздел с файловой системой UBIFS.
 +
 +1) установите Ubuntu или Debian на SD карту, как описано в предыдущем разделе
 +
 +2) Скачайте файловую систему Debian
 +<code>
 +wget https://rcn-ee.net/deb/barefs/wheezy/debian-7.7-bare-armhf-2014-11-10.tar.xz
 +</code>
 +Распакуйте этот архив и получите директорию с архивом файловой системы и файл с паролем для пользователя. Файл с архивом файловой системы поместите на карту.
 +
 +3) загрузите плату до u-boot и выполните следующие команды:
 +
 +Запись MLO
 +<code>
 +nand erase.chip
 +mmc rescan
 +load mmc 0 ${loadaddr} MLO
 +nand write ${loadaddr} SPL
 +nand write ${loadaddr} SPL.backup1
 +</code>
 +
 +Запись файла u-boot.img
 +<code>
 +load mmc 0 ${loadaddr} u-boot.img
 +nand write ${loadaddr} u-boot
 +</code>
 +
 +Запись файла ядра
 +<code>
 +run loaduimage
 +nand write ${loadaddr} kernel
 +</code>
 +
 +4) Далее загрузите ОС
 +
 +5) Подготовка раздела UBIFS
 +
 +Подробная информация доступна здесь: [[http://processors.wiki.ti.com/index.php/UBIFS_Support]]
 +
 +Обратите внимание на параметр "235MiB" - он зависит от фактического размера раздела и для NAND 512МБ будет "450MiB"
 +<code>
 +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
 +</code>
 +
 +6) Запись файловой системы
 +<code>
 +cd /mnt
 +tar xf <path to image>/debian-7.7-bare-armhf-2014-11-10.tar
 +sync
 +</code>
 +
 +7) Разрешите доступ через консоль
 +
 +Отредактируйте /mnt/etc/inittab как описано ранее.
 +
 +8) Включение сети
 +
 +Отредактируйте /mnt/etc/network/interfaces как описано ранее
 +====== FAQ ======
 +
 +===== CircuitCo LCD3 Backlight =====
 +
 +Turn on Backlight:
 +<code>
 +i2cset -f -y 1 0x24 0x07 0x09
 +i2cset -f -y 1 0x24 0x08 0x60
 +</code>
 +
 +===== CircuitCo LCD3/LCD7 TouchScreen =====
 +
 +Add to /etc/modules:
 +<code>
 +fbcon
 +ti_tscadc
 +</code>
wiki/usomiq-ubuntu.txt · Последнее изменение: 2020/04/16 19:07 — maxx