Setting up CHIP as a headless server with minimal tools


I for one like both. I’m glad @NinjaKun went verbose on his post, and I’m glad @tgwaste shrunk it for future reference.

This is WAY WAY WAY overkill for something like this, but code suffers from the same thing. It’s nice to have long, detailed explanations during your first read, but it just gets in the way once you’re familiar.

Take a look at and scroll the left side down until you see some code, and click on a line number. You should see detailed doc on the left, and pure code on the right. Now you can either read through the left side if you want deep explanation, or you can read on the right and click a line number only when you need to see extra explanation.

Not sure it’s worth the effort for 90% of code, but I think it’s promising for examples and instruction.


I thought your guide was awesome. Easy to read, you explained just the right amount, and it was entertaining.

@tgwaste did just what he said: A TLDR. Both have their place, but the TLDR would have been lost on me without the verbose guide beforehand.

Carry on everyone :slightly_smiling:


Hmm, I had the CHIP running all last weekend off my Mac, but had to take it off for a few days. I plugged it back in tonight and it is no longer booting. Sigh.

I don’t yet have either a TV that accepts composite input or a composite->VGA adapter, so won’t be able to debug it until I do.

Oh well. The CHIP did work well for a while.


This is a great thread everybody should read, thanks for both the detailed writeup and the TLDR. Here’s more details I found useful on the key “dmesg” command:


Plugged both chips into my Ubuntu laptop (all ports USB3, Ubuntu 15.10 x86_64)

Plugged both chips into my Ubuntu desktop (USB2 ports, Ubuntu 15.10 x86_64)

Never registers in dmesg as a new USB device…

Once I’ve got them on wifi I’ll be fine with just SSH - but it’s getting to that step…

Don’t have access to a Mac or a Windows machine right now…


Okay tried about 4 different USB cables on both CHIPs on three computers running Linux, 2 x Ubuntu 64 bit, and 1 x Kali Linux 32 bit…

Ubuntu 15.10 x86_64 i7 laptop
Ubuntu 15.10 x86_64 AMD Phenom
Kali Linux 2, i386 Intel Atom


Awesome way to get started. Thanks.


Dumb question, but which port on the CHIP are you using? You should be using the smaller USB port because that also gives it power.

If you are already doing that, I’m sorry I have no idea.


I had the same problem and eventually succeeded by using nmcli - more info about how to use it is here:


To get nmtui working, try using

TERM=ansi nmtui


export TERM=ansi


What if nmtui or nmcli are not found? I reflashed the stock build (stable/73/build73) and now the video output is corrupted, but I still have ssh access.

Frustrated trying to edit the /etc/network/interfaces by hand for wi-fi, not sure if it’s correct (just a simple WEP connection) and there is no dhclient apparently to force a dhcp lease.

Any ideas? without wi-fi and network, it’s not much fun.

EDIT: I tried using this debian network setup

but it says wireless-tools package must be installed to use WEP, no idea if the build includes that, but I can’t seem to get it to work. It seems like the build is missing some key components for a hard start like this.


The non gui debian build (43) was a good flash today, and nmtui was available in that build, so I’ve got functional chip now.


Extremely useful post! I can confirm PuTTy works well on Windows.

On a Windows machine, plug the micro USB cable into a USB port on your Windows machine. Use Device Manager to determine which COM port CHIP is on.

Open PuTTy and select Serial. Enter the COM port (i.e. COM4) and set BAUD rate to 115200. Click OPEN. You might have to press Enter to get the login prompt.

Enter ‘root’ as the user and ‘chip’ as the password.

You should have terminal now.

Edit: Actually, it doesn’t matter what you set the BAUD to.


Ahhh… The difference a ‘s’ makes. Thank you sir!


Thanks for all the info here. I could not get connected to a hidden network (a.k.a network not broadcasting the SSID) with the examples of nmcli and nmtui here. I could not find an option in the nmtui interface to set the “hidden” flag and the version of nmcli on CHIP ( does not have the “–hidden” option (

This is what I did to connect to a hidden SSID network via the command line using nmcli.

– I connected to the command line using the USB on-the-go serial port connection from Windows using putty from the docs (

– Create the connection without auto connecting on boot
root@chip:~# nmcli con add con-name your_connection_name ifname wlan0 type wifi autoconnect no save yes ssid your_hidden_ssid

– Tell NetworkManager that the SSID is hidden, set security type and set the password
root@chip:~# nmcli con modify your_connection_name wifi.hidden true wifi-sec.key-mgmt wpa-psk wifi-sec.psk your_passwd

– Activate the connection
root@chip:~# nmcli con up your_connection_name

– Test the connection
root@chip:~# ping

– Deactivate/Disconnect
root@chip:~# nmcli con down your_connection_name

– Use the below command to see all of the options that can be set for connection
root@chip:~# nmcli connection show id your_connection_name

– Note: I used the network SSID as the connection name (your_connection_name = your_hidden_ssid).

Hope this helps someone.


Hi all,
in the same idea, I think another good and sometime mandatory command is
sudo dpkg-reconfigure tzdata (to set local timezone, which is usefull for crawling logs)
// Have fun with chip !


On a Mac, sudo dmesg | tail doesn’t seem to get you what you need to find out what the connection name is, possibly because it’s detected as a modem, and not a straight serial console. If you do want to do more searching of the Mac’s console messages, there’s an app named Console in OSX that gives access to the dmesg log without needing sudo access, and has built-in search features that may make it easier.

However, if you’re on Ubuntu or another Linux flavor, dmesg | grep tty may be more useful as a command, as that will search the dmesg output for the string “tty”, which may help you find the relevant information faster.


Keyboards and Mice:

I am surprised to not see more suggestions to get a ‘normal’ wireless desktop set, eg from Logitech or similar for the price of a lunch or two.

i.e. One USB wireless receiver, receives from both keyboard and mouse. I think they are generally driver-less supporting ‘HID’ standards.

By far the easiest way to get going with the one port on CHIP, I have found…


Now I am feeling so guilty of being such a cheapskate. After the initial setup of Wifi on the chip using a composite video input to my TV and manually switching between the USB keyboard and mouse that I temporarily commissioned off my desktop, I decided not to spoil the low entry price of US$9 by adding more accessories. I might invest in a two-pin JST-PH (preferably a free one savaged from my toys) connector so I can solder my old phone’s batteries (not really urgent except as an UPS). The beauty of CHIP is it really doesn’t need much of anything to run as a headless server. I can use my desktop or my notebook, or even my phone to interact with it, anywhere in the world.


This is an impulse that I also fight … and I get the impression that many here suffer from it as well. It just seems … wrong … to spend more than $9 on a peripheral or accessory, which is why so many CHIP users started out with terrible power supplies salvaged from the junk drawer.

It was @JKW who changed my thinking. We were discussing Queso’s price point, and he said that most people were willing to pay for value. Is Queso worth double the cost of the computer? Wrong question to ask. Is Queso worth $18? YES!