====== 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