Turning off the UART functioning as a serial console

UPDATE – You can now disable serial via the GUI so the below will be redundant for many users

(This is based on Clayton Smiths nifty guide).

Backup the /boot/cmdline.txt file before you edit it just in case of screw-ups:

sudo cp /boot/cmdline.txt /boot/cmdline_backup.txt

Edit the file:

sudo nano /boot/cmdline.txt

Running "2014-09-09-wheezy-raspbian.img" the file contained the following:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Delete any parameters involving the serial port "ttyAMA0" or "serial0", which in this example is:


Which gives:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Press CTRL+X to exit and save .

You also need to edit this file <<This is no longer present with Raspbian Jessie:

sudo nano /etc/inittab

Search for the serial port usage by using CTRL+W and typing:


This should find the line of the file specifying the serial port (if there is one).  Use "#" at the start of the line to comment it out.  Then press CTRL+X to save and exit.

Enter "sudo reboot" to restart the pi and now the UART will be available for another process to use it, or the pins can simply be used as general IO.

We benefit hugely from resources on the web so we decided we should try and give back some of our knowledge and resources to the community by opening up many of our company’s internal notes and libraries through mini sites like this. We hope you find the site helpful.

Please feel free to comment if you can add help to this page or point out issues and solutions you have found, but please note that we do not provide support on this site. If you need help with a problem please use one of the many online forums.

  • Thomas

    I tried this before and I had to reinstall the OS, is there another way?

  • anon

    NEVER DO THIS!!! I HAD to reinstall the raspbian 3 times!!! Never do this sh*t.

  • cem

    I could not connect to my pi over ssh after doing this, why is this happenning ?

  • Tixif

    You’ve done it wrong, try again.

  • Cerem Cem Aslan

    Please edit your HOWTO to point that “You SHOULD change 2 settings: one in /etc/inittab and one in /boot/cmdline.txt”. Because the “inittab” part can easily go unnoticed. Thanks by the way.

  • Not sure I understand, both are there as separate steps?

  • Cerem Cem Aslan

    I didn’t notice the part about /etc/inittab changes in the first place, it’s not attention grabbing. That’s why I debugged for hours because if you pass the second step, the errors look like it is caused from elsewhere (it opens the port but there ore some random error messages like ‘input/output error’) OK, it’s my fault, I know, I should RTFM. Anyway, I suggest changing the layout of this howto in order to get a clearer look of the two separate steps. Everything is on the same indentation, no step counts, no abstract at the beginning.

  • Ahh well yes, RTFM and if in doubt read it again! Will leave your comment here in case anyone has the same problem, but trying to make every page on here perfectly idiot proofed (pardon the expression :-) ) would be too big a task, plus we much prefer to keep these notes short and sweet where possible without any waffle!

  • Cerem Cem Aslan

    no excuses, I know, I know :)

  • Shameel Mohamed

    I did all this but still I am getting error like

    /home/pi/uart/uartconf.cpp:6:11: error: expected initializer before ‘open’

    I used the function open for opening the uart filestream like this

    uart0_filestream = open(“/dev/ttyAMA0”, O_RDWR | O_NOCTTY | O_NDELAY);

    Does anyone have any suggestions?

  • Tobi

    Works! Thanks!
    But up to date its “console=serial0,115200” instead of “console=ttyAMA0,115200”

  • Ilker

    I wrote to script to automate this, available on GitHub: https://github.com/itemir/raspberry_pi_utils

    May help those who are struggling on the command line.