Содержание
uSomIQ Ubuntu и Debian
На этой странице описано как установить Ubuntu и Debian на модуль uSomIQ.
За основу взяты инструкции от Robert Nelson, доступные здесь:
http://www.eewiki.net/display/linuxonarm/BeagleBone
Основные ссылки
- ARM Cross Compiler
- Bootloader
- Das U-Boot – the Universal Boot Loader [http://www.denx.de/wiki/U-Boot]
- 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 <path to image>/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