Guide To…Direct Network Connection

Raspberry Pi Remote Connections – Without A Network!

No keyboard or screen available for your Raspberry Pi, but you have a laptop?

There are often times when a HDMI monitor is not available to use with your Raspberry Pi.  In those circumstances it can be very useful to remote connect using a nearby network and a laptop (see the Guide to…Remote Connections).  However, sometimes there isn’t a network available either!

So how can we make use of a laptop screen and keyboard when there is no network?

As discussed previously (in the Guide to…Remote Connections), there is the option of using a (console) TTL-serial cable, however this only provides rather slow access.  The serial connection won’t support X11 (which as we have seen, allows us to run graphical programs too), and you won’t be able use VNC or shared folders if you have them setup.

The answer is a simple network cable!

Connect and use your Raspberry Pi with just a Network Cable, SDCard and Power!

Connect and use your Raspberry Pi with just a Network Cable, a standard Imaged SD Card and Power!

It is advisable to set this up before you need it so you can be sure that it is configured and working correctly.  As long as you have an SD-Card reader available, you can switch between the configurations using a laptop (or directly on the Raspberry Pi if you have a screen/keyboard at the time).

Remember if you need the wired network for your computer (i.e. to get internet) then you shall have to make a choice about which one you wish to use (or get an extra network port by adding a USB network dongle).  If you use wireless connections, then you can still have both!

Any standard network cable should be suitable (needs to have a male RJ45 connector on each end), most cables available will be fine for our needs.

Note: You can use a normal network cable since the Raspberry Pi LAN chip is smart enough to reconfigure itself for direct network connections (in the past older computers would have needed a special “cross-over” cable).

Note: These instructions are only applicable to manually installed installations (i.e. those which are imaged directly using SDimager rather than using NOOBS. Unfortunately, if you use NOOBS the OS boot partition is moved and is no longer directly accessible from windows. You will need to either image your card manually or use a linux computer/LiveCD/Virtual Machine to access the OS boot partition and edit the cmdline.txt file directly.

You can also use the Pi-Kitchen, see Recipe 001-Direct Network for more details.

I’ve also created a cut-down version of the instructions for more advanced users who won’t need all the details:
In A Nut Shell…Direct Network Connection

How to use a direct network cable

What are we trying to achieve?

A good way to remotely control a Raspberry Pi is to connect it to a network and use one of the methods discussed in the Guide to…Remote Connections.  This will provide access to the terminal, by usig SSH, even the ability to view the desktop using VNC, or the ability to run graphical programs as if they were running directly on the laptop itself (see below for X11 Forwarding).  We just need to make the network link work directly without requring a full network setup (with Router etc).

Making a network connection work

Normally, if you take a Raspberry Pi and directly connect it to a network, it will attempt to automatically find an IP address (see bottom of the page for information about IP Addresses and what they are) by requesting one from your Router or other device running a DHCP server (a protocol which automatically deals out addresses to computers as they attach to a network).

However, if you connect the Raspberry Pi directly to another computer, not a lot will happen.  The Raspberry Pi won’t get an IP Address since there isn’t a DHCP server to talk to (it can’t talk to anything other than the laptop).

Other computers will often give themselves a default address (in the address range – but the Raspberry Pi doesn’t do this (yet).  Besides even if the Raspberry Pi did, we would still need to know what address it had picked to be able to connect to it!

To get around this, we have to give the Raspberry Pi a fixed IP address (i.e. we tell it what it’s IP Address should be so it doesn’t have to wait for one).

There is just one complication to this, and that is if your laptop is configured to a fixed IP too.  At first this may not seem like a problem, since if both IPs are fixed then we will know the address of both computers every time.

However for them to be able to talk to each other directly, they need to have similar addresses (at minimum the first number should match, but we shall match at least the first 2 in this case to work with default network settings).  For more information on this, see the section at the bottom of the page about SUBNETs.

Step 1 – Find the Laptop’s Network Settings

Before we power up our Raspberry Pi, we can have a look at the network settings of the computer we are planning on connecting to and determine if the address is automatically allocated or fixed.

Windows Instructions:

  1. From the Start Menu, run the “Control Panel”.

(Windows 7/Vista) Open “Network and Sharing Center” and click on “Change adapter settings” on the left side.

(Windows XP) Open “Network Connections”

  1. Find the item which relates to your Wired network adaptor (by default this is usually called “Local Area Connection”).
Locate the Wired Network Adaptor "Local Area Connection"

Locate the Wired Network Adaptor “Local Area Connection”

  1. Right-click on it and open “Properties”.
Network Properties Window, find the TCP/IP Entry

Network Properties Window, find the TCP/IP Entry

  1. Select the item which is called “Internet Protocol (TCP/IP)” or “Internet Protocol Version 4 (TCP/IPv4)” if there are two (the other is Version 6), and open the “Properties”.
Wired Network Adaptor is configured as Automatic

Wired Network Adaptor is configured as Automatic

Hopefully, the IP Address will be set to “Obtain an IP address automatically”.  If not don’t worry, just take a note of the IP address and Subnet Mask set here (you may find the rest of the information useful to keep, but we won’t need it this time).  If you know what you are doing, you can change this setting to automatic, or you can leave it alone (we shouldn’t need to adjust it as long as we know the IP Address).

Mac and Linux:

You will need to locate the settings for your wired adaptor and check to see if the IP Address is configured automatically, or fixed to a specific value.

To get to network settings on Mac OS X:
1) Load System Preferences.
2) Click Networks.

Wired Network Adaptor is configured as Automatic

(MAC) Wired Network Adaptor is configured as Automatic


Step 2 – Setting the Raspberry Pi’s IP address

Option 1: Quick Setup / Setting up when you don’t have a monitor

This quick method skips all of the testing which can be performed if we have a Raspberry Pi running with a monitor and keyboard attached.  If you run into problems, then follow the steps in Option 2, to test the network settings.

1. Ensure the Raspberry Pi is powered off, and remove the SD-Card.

  1. Insert the SD-Card into a card reader and plug it into your laptop.

  2. Find the drive and you should find several files on the Card (note it a lot smaller than you’d expect since it is only the boot section of the Card (the rest is hidden)).

  3. Make a copy of cmdline.txt and rename it cmdline.normal

  4. Edit cmdline.txt and add the IP address at the end (be sure you don’t add any extra lines).

For network settings where the IP address is obtained automatically, use an address in the range 169.254.X.X ( –


For network settings where the IP address is fixed, use an address which matches the laptop/computers address except the last digit.


Ensure you take note of this IP address (you will need it every time you want to directly connect to the Raspberry Pi).

  1. Make new copy of cmdline.txt and rename it

  2. To swap between configurations, just replace cmdline.txt with either cmdline.normal or (or use the commands in Option 2 to do it directly on the Raspberry Pi – the change will take effect next time you power up)

  3. Return the card to the Raspberry Pi.   Attach the network cable attached to both the computer and Raspberry Pi and power up.


  1. You will need to wait for your computer to finish detecting the network settings (you may see a small networking icon flashing in your system tray while it does, or open up the network settings to see when it has finished and has an IP address) – it can take around 1/2 minute.  Your computer may report the connection as  “limited or no connection” when connected to the Raspberry Pi in this way, this is normal as indicates it is a direct computer to computer connection rather than a standard network.

  2. If you forget or decide not to plug in the network cable, the Raspberry Pi will wait 2 minutes (or until you connect the cable) before completing it’s start-up (so if you only have a keyboard and monitor attached, you need to wait!).

  3. If you are using multiple wired network adaptors (i.e. Using an extra USB-LAN dongle) on your computer you may find you have to unplug the other network cable and reattach afterwards (my Windows XP machine needed this before it would connect through the direct link).

Option 2: Set-up using a monitor and keyboard (i.e. before you really need it):

You will now see that having a keyboard and monitor available at this stage is helpful for when we set this up, as we can test each step.

  1. Boot up the Raspberry Pi and plug in the network cable to both machines.

  2. When the Raspberry Pi has booted ensure you log in and open the terminal if not already open.

Type the following:

hostname -I

You will probably find that nothing is shown, as this is trying to show you the current IP address (which is not allocated yet).  If it does show something, then you may have already have a fixed IP address (if you do take note of it in case you need to put it back later).

  1. Now set the new address as follows:

For network settings where the IP address is obtained automatically, use an address in the range 169.254.X.X ( –

sudo ifconfig eth0

For network settings where the IP address is fixed, use an address which matches the laptop/computers address except the last number.

sudo ifconfig eth0
  1. We can check this has worked by rechecking the IP address:
hostname -I

You will see we now have the IP address set.

We should now be able to “ping” the laptop.

  1. Find the laptop address (if it wasn’t a fixed address) by returning to the list of Network Adaptors in windows and double clicking on the icon to see it’s “Status” (don’t worry about the warning of “limited or no connection”).

Then select the “Support” tab and then “Details”.  You should see the laptop’s IP address.


We should get lots of responses (the laptop is responding the Raspberry Pi through the network cable)!  Ctrl+C to stop that.  (If you didn’t then double check your connections and the IP addresses you are using).

As mentioned before, the new IP address will be lost when we reboot, so we need to ensure it is set every time we boot (or at least every time we want it to be when we boot).

To do that we can edit the “cmdline.txt” file which is located on the boot partition of the SD Card.

  1. Make a copy of the file, with the following command:
sudo cp /boot/cmdline.txt /boot/cmdline.normal
  1. Next edit the original file using nano:
sudo nano /boot/cmdline.txt

At the end of the long line, add the following (you will need to add a space between the last item and “ip”:


Ctrl+x and y to save and exit.

  1. Make a copy of this file too:
sudo cp /boot/cmdline.txt /boot/
  1. You can now reboot the Raspberry Pi (sudo reboot), and next time the IP address will be automatically set.

  2. To change between configurations, simply use the following commands (just remember to edit  /boot/ if you need to change the IP address in future).

sudo cp /boot/cmdline.normal /boot/cmdline.txt
sudo cp /boot/ /boot/cmdline.txt


Now you should be able to do most of the things you would normally do when connected to a network.  It is even possible to use this direct network link to share your laptop/computer’s internet connection (if it is connected via Wifi for example), although I’ve not needed to do this yet.

One VERY useful thing to do is to set up “Putty” and “Xming” to allow you to control the terminal and graphical programs directly from your laptop/computer.

Scratch running nicely inside a window!

Scratch running nicely inside a window using X-11!

See the main Guide to…Remote Connections for links for how to set-up VNC and shared folders, and X-11 on other computers.

Step 3 (recommended) – Install Putty and Xming Server (for SSH and X11)

I am assuming you are using the latest version of Raspbian which has SSH and X11 Forwarding enabled by default (if not see the bottom of this post to enable them if things don’t work).

1. Install and run a X-Windows server on your computer

Download and run from the Xming site.

Follow the installation, including installing “Putty” if you don’t have it already.  You can also download “Putty” separately from

An alternative X-Windows server is available called mobaxterm, this provides a little more control, keeps your X-Windows together and handles your sessions etc.  You can get it from  (Thanks to Mike for this tip).

2. Ensure your SSH program (Putty) has X-11 enabled.

In the PuTTY configuration, find “Connection”, “SSH”, “X11” and tick the check-box for “X11 forwarding”.  If you leave the X display location blank, it will assume the default “Server 0:0” (you can confirm the server number by hovering your mouse over the Xming icon in the system tray when it is running).  You can save your set-up within Putty so you will won’t have to do this each time.

Putty Configuration for X11 Forwarding

Putty Configuration for X11 Forwarding

3. Enter the Raspberry Pi’s IP Address

Putty Configuration for IP

Putty Configuration for given IP

Enter the IP Address of the Raspberry Pi in the Session settings above (you may also find that you can use the Raspberry Pi’s hostname here instead (default: raspberrypi)).

Save the setting using a suitable name (RaspberryPiDirect) and press “open” to connect to your Raspberry Pi.  You will likely get a warning pop-up stating you haven’t connected to the computer before (allows you to check you have everything right before continuing).

All being well, you should be greeted with a prompt for your username and password (remember the defaults are pi and raspberry).

4. Using X11 and Xming

Ensure you have Xming running, by starting the Xming program from your computers start menu and then in the terminal window, type a program which normally runs within the Raspberry Pi desktop (such as “leafpad” or “scratch”).  Wait a little while and the program should appear on your computers desktop (if you get an error you have probably forgotten to start “Xming”, so run it and try again).

  1. If you want to run an X program, but still be able to use the same terminal console for other stuff, you can run the command in the background with &:

i.e. leafpad &

Just remember that the more programs you run, the slower everything will get.  You can switch to the background program by typing “fg”, check for background jobs with “bg”.

  1. You can even run a full desktop session through X-11, although it isn’t particularly user-friendly and VNC will produce better results.  To do this you have to use “lxsession” instead of “startx”.

  2. If you get the following error (or similar) when running PyGame or Tkinter scripts:

_tkinter.TclError: couldn't connect to display "localhost:10.0"

Use the fix below:

cd ~
sudo cp .Xauthority ~root/

More details and links are in the main Guide to…Remote Connections.

Additional Information / Troubleshooting

  1. To switch on (or off) SSH you can access raspi config (just type “sudo raspi-config” from the terminal) and select SSH in the menu (it seems like SSH is already enabled by default for some distros).
Enable/Disable SSH via Raspi-config
Enable/Disable SSH via Raspi-config
  1. Ensure X-11 forwarding is enabled on the Raspberry Pi (again, a lot of distros now have this enabled by default).

Use nano with the following command:

sudo nano /etc/ssh/sshd_config

Look for a line in the /etc/ssh/sshd_config file which controls X11Forwarding and ensure it says (with no # before it):

X11Forwarding yes

Save if required (ctrl+x,Y, enter), and reboot:

sudo reboot

Using cmdline.txt for Other Network Settings

The ip= command-line option allows us to specify the network settings when the “kernel” is loaded (the core of the linux system), it’s full options are in the following format (allows us to set every aspect of the network if required):


More details of what each part means and other kernel options is detailed in section 2 of this kernel documentation.

Easy Changing with a Simple Script:

The following script will prompt to allow you to change your settings (just type ./ to run).

To create the file, you can use nano:


Just press ctrl+x and y, to save and exit when you are done.


#Function to swap to Direct IP Address
direct () { sudo cp /boot/ /boot/cmdline.txt;}

#Function to swap to Normal Automatic IP Address
normal () { sudo cp /boot/cmdline.normal /boot/cmdline.txt;}

# Menu using case-esac
echo "Select IP Address? Use Direct or Auto or Keep (d/a/-)?"
read answer
case $answer in
 d|D) echo Use Direct IP;direct;;
 a|A) echo Use Auto IP;normal;;
 *) echo Keep - No Change;;

echo cmdline.txt
echo ____________
cat /boot/cmdline.txt

You could even extend this to allow you to setup fixed IP addresses for different networks, so you can always be sure you can find your IP and connect correctly.

What is an IP Address / Hostnames / Pinging / Subnets?

An IP Address is like your phone number or post code, it simply allows other computers to find that particular computer in the network and ensure any messages it sends goes to that one in particular.

Often, IP Address’s can be replaced with hostname’s so that we can ask for a specific computer without knowing all the numbers (like the contacts list on your phone, the computer looks up the name and uses the number for you).  For instance,, is a hostname, where it’s IP address is (probably depending on where you are).  We can “ping” the address using the following command, which simply sends some short messages to see if there is another computer on the other side to respond to them.





Networks use subnets to help handle the fact that there could be a HUGE number of computers on a network (like the internet) and it would be impossible for a computer to listen to and respond to any computer in the address range to

To handle this, networks will use a subnet mask, this ensures that a computer only needs to respond to computers with are within the same SUBSET, which is defined by the SUBNET MASK setting.

The mask is a series of flags which defines which range of addresses the computer will respond to (by filtering out any which are not within the allowed range):

Means it will respond to computers which have IP addressing matching at least the 3 first numbers.  So a computer with an address of and subnet mask of will only talk to other computers with addresses in the range (except 90 of course!).  Large networks often use SUBNETs to split up larger networks into sections so that they run more efficiently.

Note: You will not be able to set the SUBNET MASK to wider than  The Raspberry Pi defaults to a subnet mask of, which is perfect for most situations.



Steps to check:
1. Check the IP address which get set on both machines (both should be in range 169.254.x.x).

On RPI use one of the following commands:

hostname -I

On PC use the following (or look it up from the Network & Sharing Center and look at the adaptor properties):

  • If this fails, check the cmdline.txt file is right/cable connected etc.  You can use the following to force the IP address on the RPI (for testing the rest – but this won’t be set next time you reboot):
sudo ifconfig eth0
  1. Check you can ping each of the addresses from the other computer (where should match the computer you want to talk to).  Test both directions.
  • If this fails, check PC’s firewall and disable wifi (sometimes the ping command will try using the PC’s wifi instead)
  1. Check you can connect via SSH (using putty)

– This should work if you can already ping the other machine (it is unlikely to work if you can’t ping it).



Thanks to fellow MagPi – Colin Deady for testing out on Mac for me.

Thanks to the following sites for providing various parts of the puzzle (in no specific order): – kernel documention

  1. Dumont says:

    nice tutorial man!
    It worked for me until i reflashed sd card with same disto as before, latest version of raspbian and now i can’t get it to work, unfortunately i have no hdmi capable screen so that option is off
    my os is windows 7 64bit and pi is model 2, hope you can help

    • I’ve not tried direct network with latest, but it “should” work. Shall give it a go and see what happens!
      If you have a normal network, then you can use a wired connection to your router. I use a USB wifi dongle and connect remotely to that.

      • Al B says:

        I followed your instructions and I was able to connect my mac to the Pi perfectly fine so thank you. However, my USB wifi dongle doesn’t work anymore. Only work if I revert back to the original cmdline.txt file. Is a possible to have both connected to the Pi? In other words, the ethernet connection uses and USB wifi dongle uses to connect to my wifi router.

      • Al B says:

        Can the Pi be connected to a computer via the Ethernet (eth0) cable as you explain here and at the same time have USB WiFi dongle (wlan0) connected to a WiFi router?

  2. Jan Krizka says:

    Dear friends, I wrote script to change ip address but after tzping command ./, I get answer permission denied. What am I doing wrong?

  3. birkan says:

    Thanks worked for me. (I did not do direct or normal things. I simply added ip thing to the cmdline.txt)

    • birkan says:

      By the way if you want to use internet over your laptop for raspberry pi replace “ip=” with “ip=raspberrypiip::laptopip” (also google “how to share internet with raspberry pi” to see proper settings for network on your laptop)

  4. Skandalakis says:

    I’m only presented with a recover.cmdline file instead of cmdline.txt when I open the sd card folder.
    What do I do in this case?

    • See in the text:
      Note: These instructions are only applicable to manually installed installations (i.e. those which are imaged directly using SDimager rather than using NOOBS. Unfortunately, if you use NOOBS the OS boot partition is moved and is no longer directly accessible from windows. You will need to either image your card manually or use a linux computer/LiveCD/Virtual Machine to access the OS boot partition and edit the cmdline.txt file directly.

      Unfortunately NOOBS makes this method more complicated than it needs to be, as the cmdline.txt is not visible from windows.

      • Chadi says:

        And how does one do that if you don’t mind me asking😛 ??
        I’m a noob using NOOBS and a laptop. Had the same issue as Skandalakis…

      • Unfortunately NOOBS made this trick more difficult.
        If you have a wired network available then the PiKitchen has options for enabling automatic installs using NOOBS.

      • I have the same issue. Just bought my first Raspberry with erased SD card. I have no monitor with HDMI. How to move on from that point to step 1 in the tutorial? I presume installing NOOBS is not a good idea, but I think the tutorial assumes some OS is installed. How do I get to that point?

      • The tutorial assumes you directly write an img file to the SDCard (see

        However…PiKitchen is how I do things now…since you can build a full setup on your sd-card and have it install automatically. The PiKitchen uses NOOBS, but customises the card after it has installed the OS, so you get the best of both.
        For a basic setup, you can use NOOBS to perform an automated install and connect to your network via a cable. PiKitchen is able to configure WiFi adaptors etc but you will have to test if your adaptor is supported by Raspbian first.

  5. Deepak says:

    Hi In the sd card i received i dont see cmdline.txt file but it has recovery.cmdline I tried modifying this file with ip=…. but it says network connection error connection refused when i open putty. Please suggest the fix.

    • NOOBS uses the first partition of the SDCard, previously this would have been the BOOT partition which contained the cmdline.txt discussed in the article.
      You can access this partition if you use linux to read the card.

  6. luison says:


    i did all the steps, but once i open my Xming server the desktop for the raspberry Pi show up but it looks like it does not fit on my Laptop Screen how can I adjust that?


  7. Gavin says:

    So after i set up all this? I feel like i did everything right but im still just staring at my laptop screen… what did i miss?

  8. Hi says:

    How do I find the Linux network settings? It looks like you are about to tell us, but you just tell us how to access network settings on Mac.

  9. Chadi says:

    Hello again!

    So, I removed NOOBS (via SD format) and reinstalled the images the old way to get this method to work. (Used option 1 in step 2)

    I reached step 3 and installed the X server (it said with PuTTY but I could not find anything on my laptop proving that it had indeed been installed, so I downloaded and installed it separately.)
    I set the PuTTY with X11 and wrote the IP address. Clicked Open and it opens a black terminal-like window showing nothing. I can’t type in it or anything. (I first tried it with the recommended Host name “raspberrypi”. It gave me an error prompt stating this host doesn’t exist.)
    After about 10 seconds an error prompt appears saying “Connection timed out” and the terminal window thing dissapears after i press ok.

    I’ve hit a road block once more… What did I do wrong?

    • Carolyn says:

      I have the same problem too! When I used an HDMI cable and connected to a separate monitor I found that the raspberry pi changes its ip address every time I reboot it. However, I followed the steps above that was supposed to keep the Pi’s ip address the same and it didn’t work; the ip address still changed even with the files….

      • Carolyn says:

        Please disregard the above reply… I got it by typing in sudo cp /boot/ /boot/cmdline.txt
        before rebooting the Raspberry Pi. I don’t know if this will work for everyone but perhaps it may help…

  10. catherine says:

    BTW – tried many many tutorials and this is the only one that worked!
    Question – any tips on how I might then share my mac’s wifi with my directly connected rpi?

  11. Ron says:

    I’m confused. When you are downloading Ximg and putty are you putting it on the raspberry pi, or the notebook computer or both? Also how do I get to the Putty configuration? Thanks

    • You will need to load Putty and Ximg on the computer you wish to control the Raspberry Pi from.
      The Putty configuration is on the left side of the Putty window (the tree of options).

  12. Carlos says:


    I can not find a “cmdline.txt” file to edit after i copied the information onto my SD card following one of the tutorials. Anyone else have this issue

  13. Al B says:

    Can the Pi be connected to a computer via the Ethernet (eth0) cable as you explain here and at the same time have USB WiFi dongle (wlan0) connected to a WiFi router?

  14. Ben says:

    This might be useful for other people – I edited the cmdline.txt using notepad and kept getting the black terminal and time out when I tried to connect using putty. It turns out there is an end of line/ end of file character which notepad doesn’t display – you need to put the ip address BEFORE this character but with no extra space(so the line ends …rootwait ip=

  15. Caesar says:

    To begin with I wanted to tell you this is an incredible tutorial. I didn’t know if I would be able to find such a good tutorial about a rare problem like this one. It clearly stated how to follow most steps and also cleared a lot of concepts I didn’t completely understand, not like most tutorials of this kind that just expect you to follow instructions without really understanding what you are doing.

    Now here is my doubt. I have a Mac and was able to follow every step until Step 3, which I didn’t do assuming the ssh command in the OS X terminal would be enough to connect to the Raspberry Pi. However, now I have the Raspberry Pi powered on and with the SD card in, connected through the ethernet cable to my Mac, but I’m not able to ping or connect through ssh to the IP I gave it (my Mac IP is automatically configured) . Apparently, there are always response timeouts when I ping, or a message saying that the Mac couldn’t find a route to the host. I’ve already tried to connect to other networks in my Mac or changed the IP of the RPi. Any idea of what can be going on or how could I solve this?

    Thank you,

    • Thank you for your kind words, I love trying to share as much knowledge as I can, after all it is how I learnt.

      Make sure both IPs on Mac and Pi are on similar IP addresses I.e and (or is it 169??).

      I don’t do much with Macs so it may be something else I’m not aware of being a problem.

  16. Judy says:

    Hi all, thanks for the informative post. However, am still unable to connect my laptop to the pi. I want to connect the pi without Internet access but after editing the cmd line.text file in my windows 7 laptop am still getting a fatal error when I try to power up the raspberry pi. I have raspbian Jessie OS pre-installed and I followed all the instructions . Please help

    • Does your SDCard have cmdline.txt on your first partition? You may have a NOOBS install which works differently.
      I’ve not tested this setup with Jessie, as I now use Pi-Kitchen to configure my wifi and just connect via my network (or hotspot on my phone).

  17. franko says:

    Is this method working with an OS built using buildroot default configuration for raspberry pi : raspberrypi_defconfig because i tested and it not working ?

    • I’ve not tried buildroot so I can’t confirm this works. The OS will need to support setting of the IP address via the cmdline.txt file in the /boot/ partition. However, you could always set the IP address directly within the OS itself if you wanted.

  18. Seriously man Thanks a lot:) Btw you might want to add a note that step 2 option 1 wont work if you have installed noobs, cause i dint find cmdline.txt in the root folder.

    • This is mentioned at the start under a note for NOOBS users. Unfortunately NOOBS made this method less useful.
      However…these steps may not be required if you install Apple Bonjour / iTunes (allowing you to connect using raspberrypi.local).

  19. DanielB says:

    Hi. Great tutorial, thanks. I need help on one aspect, though.

    I followed these steps to connect my brand new RPi2 (I’m new to RPi) to my Win7 laptop, without having a monitor to set everything up even for the first time, with the latest Raspbian (i.e. not using NOOBS) on the card. For IP address I used your suggested ip= I was able to connect and communicate with the RPi. Success!

    However, since I used a brand new RPi and card, the OS image was smaller than the whole card, using raspi-config, I selected ‘Expand root partition to fill SD card’ . After that, RPi offered to reboot, I agreed. However, after that, I couldn’t connect to the RPi. I was playing with modifying network properties in Control panel on my laptop, also trying to connect to ‘raspberrypi’ using PuTTy, trying to ping the IP address, but to no avail. I couldn’t rewrite the cmdline.txt, since I couldn’t connect to my RPi. I had to pull the plug without proper poweroff. After that I rewrote the OS image to the card again and now can connect again (but without expanding the root partition).

    I don’t see a reason why expanding the root partition should have caused the problem with the connectivity. Do you have any idea what could be the problem and how could I solve it? Any help would be appreciated! Thanks a lot.

    • Not sure why this would cause this, I’ve not had it happen for me.
      It seems the later versions of Raspbian will allow connection using hostname “raspberrypi.local” but you will need to ensure you have Apple Bonjour installed. I’ll update the guide when I’ve had chance to write it up.

  20. Karhick says:

    I tried to connect raspberry pi with laptop, when I gave the lxsession command, it shows only one lxsession should be executed at a time,.. What I have to do now?

  21. nigratruo says:

    Wow, super complicated. This can be done easier:
    If you are using a Linux System as Laptop, you can use the package avahi-autoipd to automatically negotiate an IP for each system. Make sure that package plus general avahi (that gives you hostname.local access automatically, it is called mDNS) is installed on both systems (raspberry pi and your laptop)
    In my case both Systems run Debian, Rasbian on the Pi and Debian Wheezy on the Laptop.
    Then you can use the following bash script on the laptop:

    (this is assuming that you are using network-manager, which most Linux systems do)
    echo “removing any previously running avahi-autoipd instances…”
    avahi-autoipd -k eth0

    echo “stopping network manager”
    service network-manager stop

    echo “running avahi-autoipd in deamon mode, find logs in /var/log/daemon”
    avahi-autoipd -w -D eth0

    read -n1 -r -p “Press any key to terminate autoipd and restart network-manager…”

    echo “terminating avahi-autoipd”
    avahi-autoipd -k eth0

    echo “starting network manager again”
    service network-manager start

    The read statement in then middle pauses so that you can push any key to restore the old config with network-manager.
    Unfortunately, Network-Manager and avahi-autoipd don’t play nice together and one needs to be off for the other one to work.

    But avahi-autoipd does work well, it talks with the same daemon on the PI and negotiates an IP address automatically for both systems.
    If you setup avahi (which is the name for zero config on Linux), the systems will also know each other via a dns name, usually it will be [HOSTNAME].local, so you won’t have to fiddle around with IP addresses at all.

    To make sure avahi does that properly, use avahi-discover to list systems in your network.

    • It is easier than that, I’ve just not had time to update. The original method worked without installing anything on the Pi, but NOOBS broke that.
      Latest install you only need Bonjour on the laptop and you can use the Raspberry Pi hostname to connect.

  22. nigratruo says:

    I did not want to criticize you, thanks for doing all the work writing it down. I just loved the one I found, as I just tried it out and it worked so great. I have been setting IPs manual for as long back as 1998 and I have every time I did it thought: There must be a better way to do this!
    And so I was very happy to have found it and wanted to share it.

  23. YaddyVirus says:

    Hi there! I recently got my RPi 3 and installed Raspbian using NOOBS, which came preloaded on the SD card. I then was able to access the cmdline.txt file throught Kali nad I edited it as said. However I get a Destination host unreachable error while trying to ssh into my Pi (from Kali).
    Can you please help me?

  24. frtgbnh says:

    Is there a way to apply this to Orange Pi PC? I followed your steps upto Step 2, because I only had two files on the SD card installed, namely:
    uImage (Type: File)
    script.bin (Type: BIN File)

    instead of the cmdline.txt file.

    The SD card has the “Raspbian_For_OrangePi_PC_v0_8_0.img” written on it (directly from the Orange Pi download website.

  25. Michael says:

    I am having a difficulty with Xming. Once I have the pi open in Xming it crashes. Any thoughts?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s