It took me some time to figure how to make it work, so I decided to save it for some poor soul who would need it in future. (I am a Windows guy so this stuff is a bit alien for me).
I bought <$2 WiFi dongle for my new Orange PI PC from here: http://www.aliexpress.com/snapshot/7899695282.html?orderId=76846564349160
I am running latest "ARMBIAN jessie 3.4.112-sun8i". The chip was detected by the OS but didn't work: lsusb gave me this:
Bus 004 Device 002: ID 148f:7601 Ralink Technology, Corp.
I tried several solutions:
installing "firmware-ralink" package,
compiling various sources and getting "loboris kernel"
using code from this git: https://github.com/porjo/mt7601.git
...and many others to no avail.
Here is how to make it work.
Plug your Orange PI PC into LAN. Open terminal (or SSH) with root access.
First, make sure that all packages on your board are up-to-date and install few additional ones (not sure if it is necessary, though, but it won't hurt):
apt-get update && apt-get upgrade && apt-get autoremove
apt-get -y install update-usbids linux-headers-sun8i build-essential fakeroot dpkg-dev
Download the driver to your Orange PI from the official MediaTek site (http://www.mediatek.com/en/downloads1/downloads/) using this command:
wget http://cdn-cw.mediatek.com/Downloads/linux/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
Unpack it with command:
tar -jxvf DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
cd DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/
Some recipes suggest editing the file "os/linux/config.mk" in the source of the driver, but it looks like MediaTek have made the necessary changes already.
Run commands and grab some coffee while it compiles.
make
make install
Then run
modprobe mt7601Usta
Reboot. Make sure that the command:
iwconfig
now displays new network interface:
lo no wireless extensions.
tunl0 no wireless extensions.
ra0 Ralink STA
eth0 no wireless extensions.
and running
lsmod
outputs the mention of "mt7601Usta".
Now you can connect your Orange PI to WiFi network. Run
wpa_passphrase NAME_OF_YOUR_WIFINETWORK YOUR_WIFI_PASSWORD
and save the generated passphrase (long string of numbers and characters that will look like this: "ebb09a6794c2500d74e433b9de4da493c......").
Make sure that neither your WiFi network's name or password contain characters which Linux bash considers "special". My password contained exclamation point, which is, and determining the cause of the problem was quite tricky. I had to "escape" it by prefixing it with backslash, like this:
password! => password\!
Edit file "/etc/network/interfaces":
editor /etc/network/interfaces
Unlike it is said in many manulas, your newly created interface will not be called "wlan0". Its name in your (our) case will be "ra0".
Add these lines on top of "/etc/network/interfaces" file:
auto ra0
allow-hotplug ra0
iface ra0 inet dhcp
wpa-ssid NAME_OF_YOUR_WIFINETWORK
wpa-psk LONG_STRING_OF_CHARS_AND_NUMBERS_YOU_WROTE_DOWN_EARLIER
Save the file by pressing Strl+S followed by "Y" and Ctrl+X.
Activate WiFi by running:
ifup ra0
You wll get something like this as an output:
Internet Systems Consortium DHCP Client 4.3.1
Copyright 2004-2014 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/ra0/00:36:76:22:b1:59
Sending on LPF/ra0/00:36:76:22:b1:59
Sending on Socket/fallback
DHCPDISCOVER on ra0 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on ra0 to 255.255.255.255 port 67 interval 9
DHCPREQUEST on ra0 to 255.255.255.255 port 67
DHCPOFFER from 192.168.100.1
DHCPACK from 192.168.100.1
bound to 192.168.100.209 -- renewal in 11858 seconds.
If you'd run:
ifconfig -a
you will see that both wired and wireless links work simultaneously:
eth0 Link encap:Ethernet HWaddr ba:ab:c9:ac:7e:9a
inet addr:192.168.100.206 Bcast:192.168.100.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1983 errors:0 dropped:0 overruns:0 frame:0
TX packets:1764 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:170565 (166.5 KiB) TX bytes:294641 (287.7 KiB)
Interrupt:114
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 TX bytes:0 (0.0
ra0 Link encap:Ethernet HWaddr 00:36:76:22:b1:59
inet addr:192.168.100.209 Bcast:192.168.100.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3283 errors:0 dropped:0 overruns:0 frame:0
TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:841424 (821.7 KiB) TX bytes:3420 (3.3 KiB)
tunl0 Link encap:IPIP Tunnel HWaddr
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 TX bytes:0 (0.0
Now you can unplug LAN cable and reconnect your SSH to an IP address that belongs to the WiFi link you have just created.
Additionally you can remove all IPv6 functionality if your home network doesn't use it. Edit the file "/etc/sysctl.conf" and add the following lines to the bottom of it:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Once you reboot your Orange PI, you won't see any mentions of IPv6 addresses in the output of "ifconfig -a" command.