I chose to use the Ubuntu 14.04 XFCE distribution on my board because I wanted something solid with long term support. This is what I discovered in my efforts. Perhaps this FAQ will save you some time.
Kernel and DistributionUse kernels provided by loboris described here:
Source code is here:
The kernels and distros provided by Xulong (OrangePI mfg) are not well supported, have no cleanly documented build procedure, etc.
Changing the display resolution in Lubuntu
Testing your monitor's capabilityBoot your OPI+. Now run:
sudo fbset -xres [horizontal resolution] -yres [vertical resolution]
sudo fbset -xres 1920 -yres 1080
(default password is orangepi)
This won't really work. It will resize the screen without resizing the desktop so your desktop will now appear on the upper left area of the screen and a black or repeated desktop will appear on the bottom and the right. But it proves that your hardware is capable of the resolution.
Setting the screen resolution in OrangePI LubuntuYour flash card is separated into two partitions "/" and "BOOT". Guess what, the BOOT partition is NOT mounted at /boot, but a copy of the files in BOOT are there. It is actually located at /media/boot. You can verify this by running "df"
If you put your flash card in a DIFFERENT computer, you should see 2 volumes, one is called "BOOT". Click on that and you will see a bunch of files like:
Rename the resolution you want to "script.bin" and reboot.
Enabling the EthernetIf your wired ethernet is not working (does not initialize and no blinky lights on the jack), you probably forgot to use the OPI+ kernel. As above, put your flash card in a DIFFERENT computer and look at the BOOT partition. Copy the uImage.OPI-PLUS file to "uImage". This is the name of the linux kernel in machines that use u-boot (ARM machines).
You also need the proper kernel to use many of the other OPI hardware features...
Adding GPIO, LED, I2C and SPI accessrun:
sudo modprobe gpio_sunxi
To control the LEDs:RED OFF: /bin/echo 0 > /sys/class/gpio_sw/normal_led/data
RED ON: /bin/echo 1 > /sys/class/gpio_sw/normal_led/data
GREEN OFF: /bin/echo 0 > /sys/class/gpio_sw/standby_led/data
GREEN ON: /bin/echo 1 > /sys/class/gpio_sw/standby_led/data
Add "gpio_sunxi" to /etc/modules to get it to autoload on boot.
Adding IR Remote Controlsrun:
sudo modprobe sunxi_ir_rx
Add "sunxi_ir_rx" to /etc/modules to get it to autoload on boot.
Enabling the analog audio outputsudo alsamixer
hit F6 (select soundcard)
select 0 audiocodec
Move right to "Audio Lineout"
Hit "m" to turn it on (should show 00 in the above box)
Hit ESC to exit
Switching between analog and HDMI audio output
In XFCE choose XFCE Menu -> Sound & Video -> PulseAudio Volume Controls. Go to the configuration tab. Disable the one you don't want and audio will pop to the other.
Adding a SATA Hard DriveThis describes how to add a hard drive as additional data, not how to boot from it (you can boot from the 8GB EMMS). There's nothing special; this is standard linux stuff:
Plug it in using SATA cable. Power up board.
mkfs.ext4 -b 4096 /dev/sda
mount /dev/sda data
(verify by ls /data. You should see lost+found. Also run "df")
/dev/sda /data ext4 defaults 0 0
WIFI Command Line Configurationsudo nmcli -a d wifi connect
(will ask which SSID, etc)
kswapd process using almost 100% of cpu
This is a bug in the kernel. The easiest solution is to make some swap space:
dd if=/dev/zero of=/swap bs=1M count=1024
chmod 600 /swap
You can then tell the system not to use swap unless it absolutely must:
The number is a percentage from 0 to 100 indicating how much Linux should preemptively move RAM into swap.
Don't forget to add the swap to /etc/fstab so swap is enabled on boot:
/swap swap swap defaults 0 0