Jump to content

armbian on pcduino3


Recommended Posts



first of all, a great compliment to the makers of armbian, really good job you're doing!


I installed legacy ubuntu trusty for pcsuino3-nano on my pcduino3 (not nano) and everything works fine.


First i tried the vanilla version, but i could not manage to get UART2 (ttyS1) to work, so i switched back to legacy where everything with UART2 works properly.


Maybe someone knows how to get ttyS1 working with the vanilla kernel on pcduino3 with that image provided. But I'm happy with legacy kernel for now.


Now to the question, what i like better with vanilla is, that there's no preinstalled desktop-environment. I am using the pcduino3 headless as embedded device and there is no need for a desktop environment atm. How can i best remove xfce and xorg from the legacy version the best way? just apt-get remove xfce, xorg and the gnome-themes? will there be packages left "eating" performance from my pcduino? 


Next question, where's the start of xfce managed in that distribution? Could not find anything in .bashrc, rc.local, etc.

So for the first try, if i just want to prevent xfce and x-drivers loading from the startup, how to do that?


Excuse my nooby questions and bad english, am still a linux noob and not an native english speaker ;-)


Greetings and keep on your fantastic work!


Link to comment
Share on other sites

I assume you already had a look at the FAQ? http://www.armbian.com/documentation/


Then regarding your pcDuino3 (not nano): For kernel 3.4 you should exchange the so called .fex file (script.bin) and with mainline kernel the .dts/.dtb stuff should be exchanged: Here you find the links:



http://linux-sunxi.org/LinkSprite_pcDuino3_Nano(Armbian uses not 'the official' fex file from LinkSprite but a better version taking care of some stuff -- mostly copy&paste from other A20 based board's fex stuff)


Regarding removing the desktop stuff have a look what Igor's install_desktop function installs: https://github.com/igorpecovnik/lib/blob/second/desktop.sh


Do an 'sudo apt-get remove' for all those packets followed by

sudo apt-get -y autoremove
sudo apt-get clean

And regarding auto login: http://forum.armbian.com/index.php/topic/208-ubuntu-xfce-auto-login-as-root/

Link to comment
Share on other sites

huh, i'm getting deeper into linux as i ever expected^^


I read all the infos from that thread and some other infos. What i did already, was compiling an complete Image with your script.


Therefore I cloned https://github.com/igorpecovnik/liband just ran compile.sh to compile Armbian for my pcduino testwise.


In lib/patch/devices there are the dts-files i have to alter before compiling again? Is that right?


Or is it possible to just decompile the dtb (with dtc) on the device itself in the folder /boot/dtb, alter them, compile again with dtc and just copy that compiled file back to /boot/dtb? That won't work i guess?


Thanks for your patience

Link to comment
Share on other sites

Think I got it after some more reading and understanding what I read ;-)


I just have to add the following to lib/patch/devices/sun7i-a20-pcduino3-nano.dts from the cloned repository  https://github.com/igorpecovnik/lib :

&uart2 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart2_pins_a>;
	status = "okay";

and compile a complete image or just kernel with compile.sh.


Correct me if i'm not right, pls.


Best regards and thanks for your help.


Link to comment
Share on other sites

Using dtc will be totally sufficient ('apt-get install device-tree-compiler' if it's not installed by default). And unless you also tinker around with u-boot you have to take care that the .dtb file is named absolutely identical afterwards since otherwise it won't be loaded.


But since the official .dts contains includes you have to decompile the .dtb currently in use and carefully apply all relevant changes between those two files:





EDIT: Posted too late ;-)

Link to comment
Share on other sites

Yes, just checked, something like this should work

Make backup of you existing /boot/dtb/sun7i-a20-pcduino3-nano.dtb


dtc -I dtb -O dts /boot/dtb/sun7i-a20-pcduino3-nano.dtb -o /tmp/temp.dts

Edit /tmp/temp.dts:

Add uart2_pins_a label

			uart2_pins_a:	uart2@0 {
				allwinner,pins = "PI16", "PI17", "PI18", "PI19";
				allwinner,function = "uart2";
				allwinner,drive = <0x0>;
				allwinner,pull = <0x0>;

Change serial section:

		serial@01c28800 {
			compatible = "snps,dw-apb-uart";
			reg = <0x1c28800 0x400>;
			interrupts = <0x0 0x3 0x4>;
			reg-shift = <0x2>;
			reg-io-width = <0x4>;
			clocks = <0x2a 0x12>;
			status = "okay";
			pinctrl-names = "default";
			pinctrl-0 = <&uart2_pins_a>;

Compile it back (assuming you are using non-root user):

sudo dtc -I dts -O dtb /tmp/temp.dts -o /boot/dtb/sun7i-a20-pcduino3-nano.dtb
Link to comment
Share on other sites

zador.blood.stained, that is working like a charm.... i thank you so much, really!!


And of course a big thank you to all of you investigating to the thread and to igor for his great work on armbian.


Donation to Armbian is going out now! The original linksprite images aren't that satisfactory.



Link to comment
Share on other sites

This topic is now closed to further replies.
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines