External wifi card with omega
-
@Boken-Lin , I'd like to know how to compile that kernel firmware package. I'm interested in attaching an external wifi device/antenna. Thanks.
-
Hi @Enrico-Bermudez, First you will need to setup the cross compile environment, as outline here: https://wiki.onion.io/Tutorials/Cross-Compile. Then you simply need to select the drivers under
Kernel Modules
>Network Devices
that you want to use with the Omega.
-
@Boken-Lin In the tutorial on setting up the cross compile environment, Step 7: Flash Image, you said to execute the following command:
# wget https://downloads.onion.io/openwrt-ar71xx-generic-onion-omega-squashfs-factory.bin
Instead of that command, should I be uploading the .bin file I just created from Step 6 into the omega? Sorry, newbie question.
-
Hi @Enrico-Bermudez, yup, you will be downloading the
.bin
file you created from step 6. Usually, if you have python installed on your computer (that's doing the cross compilation), you can run the following command to start a simple HTTP server to serve the files:python -m SimpleHTTPServer 8080
You can also change the port to whatever you want. This command will serve your current directory to the public web, which will allow you to do
wget
on the Omega to download the firmware image.
-
Took me a while to get it to work.
Since I created my cross compile environment on Ubuntu Linux VM on my MacBook Pro (using VMware Fusion), how the VM is networked can affect how python's SimpleHTTPServer will behave.I kept getting a "Connection refused" when I tried to access the SimpleHTTPServer from the omega.
How I fixed it: Changed the VM's network setup from NAT to Bridged. I did this by going to the VMware Fusion's dropdown menu: Virtual Machine --> Network Adapter --> Bridged (Autodetect)
By putting the VM on a Bridged setup, it picks up a separate IP address from the local wireless router.
Then in my omega, I used that IP address to wget the file I needed from the cross compile environment.
Thanks, @Boken-Lin ! I learned a lot from that.
Now off to flashing my omega!
-
@Boken-Lin , I flashed my omega just fine.
But now, I tried to download the .bin file from your downloads site to restore my omega to the original setup...and I get an error.
$ wget https://downloads.onion.io/openwrt-ar71xx-generic-onion-ome
ga-squashfs-factory.bin
$ bad address 'downloads.onion.io'Need a lifeline!
-
Hi @Enrico-Bermudez, please download the image from the following URL: http://repo.onion.io/omega/images/omega-v0.0.5-b258.bin.
-
@Boken-Lin I'm having a problem downloading because I still need to setup my omega's wifi connection. Tried many online tips, but no luck.
Can you tell me what my /etc/config/wireless should look like?
-
I finally figured it out. So flashing the omega with the .bin file from the cross compile environment led me to a situation where I didn't have any wifi connection. So it was impossible for me to wget the official onion omega image. And doing the factory reset doesn't bring it back either.
So starting from the cross compiled image on the omega, here's how I setup the wifi connection... which is the first step to bring back the onion omega standard image.
First, I edited /etc/config/wireless to look like this:
config wifi-device radio0 option type mac80211 option channel 11 option hwmode 11ng option path 'platform/ar933x_wmac' option htmode HT20 option disabled 0 config wifi-iface option device radio0 option network wwan option mode sta option ssid 'mySSIDHere' option encryption psk2 option key 'myWifiPasswordHere'
Then I added these lines in /etc/config/network to setup the wwan interface:
config interface wwan option proto 'dhcp' option ifname 'wlan0'
The final step is the key. Run this command to get a specific IP address (edited 12/29/2015):
ip addr add 192.168.1.147/24 brd 192.168.1.255 dev wlan0
After going through the steps described above, I was able to ping local devices. Then I was able to wget the .bin file.
wget http://repo.onion.io/omega/images/omega-v0.0.5-b258.bin
Then flashed the omega with the .bin file.
sysupgrade omega-v0.0.5-b258.bin
Now the problem is that there are still missing components such as the wifisetup and the oupgrade commands or scripts that originally came with the omega.
I'm going to start a new forum discussion since this is outside the current thread's subject.
-
Hi @Enrico-Bermudez, that's very strange. If you are flashing on a default factory image, it should contain all the commands such as
wifisetup
andoupgrade
. Are you accessing the terminal using the Console app or through SSH or through the serial terminal?
-
@Boken-Lin I'm accessing omega through serial terminal using screen on Ubuntu 14.04.
-
@Enrico-Bermudez Can you post the output when you try to run
wifisetup
oroupgrade
?
-
@Boken-Lin Here you go:
root@OpenWrt:/# wifisetup /bin/ash: wifisetup: not found root@OpenWrt:/# oupgrade /bin/ash: oupgrade: not found
It seems that when I factory reset the omega, it just goes back to a clean version of the cross-compiled bare bones openwrt OS. Network and wireless are reset, and none of the omega packages installed.
-
@Enrico-Bermudez Can you show me the content of
/etc/sysupgrade.conf
? Files/directories listed in this configration files are not overwritten during the upgrade. That might be the issue?
-
## This file contains files and directories that should ## be preserved during an upgrade. # /etc/example.conf # /etc/openvpn/
-
@Enrico-Bermudez Can you try
sysupgrade
one more time with-n
flag. This will do a full reflash of your Omega. Please backup your data because this will reset all your settings.
-
@Boken-Lin It still didn't work. I reflashed for several times, but the -n didn't seem to matter. All files I had remained in the omega after the reflash attempts.
-
@Enrico-Bermudez Can you try manually downloading the script the following file and save it to
/usr/bin
?oupgrade
is at https://github.com/OnionIoT/oupgrade/blob/master/oupgrade.sh, andwifisetup
is at https://github.com/OnionIoT/wifisetup/blob/master/wifisetup.sh.First try to run the commands to see if the commands work, and then try performing another sysupgrade after to see if they continue working after the upgrade.
Unfortunately I'm not sure what is causing such bizarre behavior...
-
@Boken-Lin -- Even after I was able to assign the ip address, broadcast, and netmask to the omega, it errors out when executing the following wget:
wget https://raw.githubusercontent.com/OnionIoT/wifisetup/master/wifisetup.sh
So I had to download manually through my Ubuntu VM, then transfer the two files via python SimpleHTTPServer.
Here's the result of running wifisetup.sh:
root@OpenWrt:/tmp2# ./wifisetup.sh Onion Omega Wifi Setup Select from the following: 1) Scan for Wifi networks 2) Type network info q) Exit Selection: 1 Scanning for wifi networks... Command failed: Not found Failed to parse message data WARNING: Variable 'results' does not exist or is not an array/object ERROR: no networks detected... try again in a little while root@OpenWrt:/tmp2#
And here's the result of running oupgrade.sh (after running opkg update):
root@OpenWrt:/tmp2# ./oupgrade.sh ./oupgrade.sh: .: line 4: can't open '/usr/lib/onion/lib.sh' root@OpenWrt:/tmp2#
If this issue persists, maybe I can help write up a tutorial on how to manually install the base/factory files into the omega without flashing (if that's even possible). It seems that there are some foundational files and folders/directories missing in the OpenWRT baseline that is in my omega.
Not sure why even the factory reset is not working.
If all else fails, can I send my omega back for replacement?
-
@Enrico-Bermudez That is quite weird. Are you sure you downloaded the firmware from http://repo.onion.io/omega/images/omega-v0.0.5-b258.bin? This firmware should have all the packages pre-installed.