First Tests with UDOO Quad

Serial Communication from UDOO to builtin Arduino Due

http://www.udoo.org/forum/viewtopic.php?p=5631#p5631

stty -F /dev/ttymxc3 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

Specs for the UDOO Quad

Source: http://elinux.org/UDOO#UDOO_Quad

Freescale i.MX6Quad, 4 x ARM® Cortex™-A9 core @ 1GHz with ARMv7A instruction set
GPU Vivante GC 2000 for 3D + Vivante GC 355 for 2D (vector graphics) + Vivante GC 320 for 2D (composition)
Atmel SAM3X8E ARM Cortex-M3 CPU (same as Arduino Due)
RAM DDR3 1GB
76 fully available GPIO with Arduino compatible R3 1.0 pinout
HDMI and LVDS + Touch
2 Micro USB (1 OTG)
2 USB 2.0 type A and 1 USB 2.0 internal pin header (requires adapter cable)
Analog Audio and Mic jacks
CSI Camera Connection
on board Micro SD card reader (boot device)
Power Supply (6-15V) and External Battery connector
Ethernet RJ45 (10/100/1000 MBit)
WiFi Module
SATA connector with power header

Component Details inspected using Linux

Installing Linaro Ubuntu 12.04 LTS

http://www.udoo.org/downloads/ and http://www.udoo.org/getting-started/creating-a-bootable-micro-sd-card-from-image/

mkdir ~/Downloads
cd ~/Downloads
wget http://download.udoo.org/files/UDOO_Unico/Quad_img/Ubuntu_img/udoo_quad_ubuntu1204_v2.0.zip
unzip unzip udoo_quad_ubuntu1204_v2.0.zip
# Plug in the micro-SD card and check which device it gets...
dmesg | tail
sudo dd bs=1M if=udoo_quad_ubuntu1204_v2.0.img of=/dev/sdc
sudo sync
# done

Installing Arch Linux ARM

http://archlinuxarm.org/platforms/armv7/freescale/udoo

su
SDCARD=/dev/sdd
umount ${SDCARD}*
dd if=/dev/zero of=$SDCARD bs=1M count=4
parted -s $SDCARD mktable msdos
parted -s $SDCARD mkpart primary 8192s 100%
parted -s $SDCARD unit s print
mkfs.ext4 ${SDCARD}1
mount ${SDCARD}1 /mnt
# Download and extract the root filesystem:
mkdir ~/Downloads
cd ~/Downloads
rm ArchLinuxARM-udoo-latest.tar.gz
wget http://archlinuxarm.org/os/ArchLinuxARM-udoo-latest.tar.gz
tar -xf ArchLinuxARM-udoo-latest.tar.gz -C /mnt
sync
umount /mnt
# Download and install the U-Boot bootloader:
rm u-boot-quad.imx
wget http://archlinuxarm.org/os/imx6/boot/udoo/u-boot-quad.imx
dd if=u-boot-quad.imx of=$SDCARD bs=512 seek=2
sync

Insert the SD card into the UDOO, connect ethernet, and apply 6-12V power.

Use the serial console (CN6 micro USB connector) to watch the boot process or get into the boot loader cmdline (there, you can run ls mmc 0 /boot for a list of file in the /boot dir).

After a successfull boot, use the serial console or connect via SSH (to the IP address given to the board by your router) to get the linux shell. The default root password is 'root'.

screen /dev/ttyUSB0 115200

then:

passwd
pacman -Sy uboot-udoo-quad
pacman -S htop lsof strace
pacman -S vim
pacman -S screen

Audio

pacman -S alsa-utils alsa-firmware alsa-lib alsa-plugins sox

to specify which soundcard to use when playing back via sox, do:

export AUDIODEV=hw:2,0
play file.wav

This will play back with sound card #2 as found by cat /proc/asound/cards.

To record with the built-in mic-jack:

AUDIODEV=plughw:0 rec -r 44100
# record with the built-in mic-jack and play back at the same time:
AUDIODEV=hw:0,0 rec -r 44100 -t wav - | tee file.wav | AUDIODEV=hw:0,0 play -

To record with the built-in mic-jack and play back with an external USB audio card:

AUDIODEV=hw:0,0 rec -r 44100 -t wav - | tee file.wav | AUDIODEV=hw:2,0 play -
# or:
AUDIODEV=plughw:0 rec -r 44100 -t wav - | tee file.wav | AUDIODEV=plughw:2 play -

Setting the profile for a UCA202 with pulseaudio:

pacmd set-card-profile alsa_card.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00-CODEC output:analog-stereo+input:analog-stereo

Record audio with arecord from built-in soundcard:

arecord -D plughw:0 -v --fatal-errors --buffer-size=192000 file.wav

Adding an SATA HDD and Formatting it with BTRFS

https://wiki.archlinux.org/index.php/Btrfs

ls /dev/sd?
ls /dev/sd??
fdisk -l
parted -s /dev/sda mktable gpt
parted -s /dev/sda mkpart primary 2GiB 100%
parted -s /dev/sda unit GiB print
pacman -Sy btrfs-progs
mkfs.btrfs -L udoo-hdd /dev/sda1

btrfs filesystem show /dev/sda1
ls -la /dev/disk/by-uuid/

mount /dev/disk/by-uuid/9162b213-8ce4-4d71-b417-6dcc6b1c700b /mnt

vim /etc/fstab
# enter:
# <file system>                                 <dir>   <type>  <options>           <dump>  <pass>
UUID=9162b213-8ce4-4d71-b417-6dcc6b1c700b       /mnt    btrfs   defaults,autodefrag    0      1

External SATA Disk / Spindown

So what can you do when the noise of the external drive is annoying you? It could spin down and if you don't write a lot to the disk, write changes into a RAM disk. This is what aufs could provided. Every other day you could then let the disk spin up and sync the filesystem with brsync.

Also read Manipulation Safe Linux Account.

Of course, this is only good if you could live with a (possibly big) data loss in case of a power failure.

For the spindown, add the following line to /etc/udev/rules.d/11-sda-spindown.rules and reboot or run sudo udevadm trigger:

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sda", RUN+="/usr/bin/hdparm -S 24 /dev/$kernel"

Also refer to my newer blog post dedicated to HDD spin-down: HDD Spindown on Arch Linux for more information.

mjpg_streamer with Logitech QuickCam Pro 9000 on Arch Linux

install:

pacman -S mjpg_streamer

run:

mjpg_streamer -i "input_uvc.so -d /dev/video1 -y -f 5 -r 1600x1200" -o "output_http.so -p 8081" &

and go to http://udoo-hostname:8081/?action=stream

Also see this and that on my previous posts. Or read this on motion with ALARM.

Installing packages from AUR

https://wiki.archlinux.org/index.php/Arch_User_Repository

pacman -S --needed base-devel
pacman -S pkgfile
su philipp
wget https://aur.archlinux.org/packages/am/amtterm-git/amtterm-git.tar.gz
tar -xf amtterm-git.tar.gz
cd amtterm-git
vim PKGBUILD
# arch=('i686' 'x86_64' 'armv7h')
makepkg -s
exit
pacman -U ~philipp/amtterm-git/amtterm-git-20130222-1-armv7h.pkg.tar.xz

Resources

Documentation:

Comments