<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://opensource.rock-chips.com/index.php?action=history&amp;feed=atom&amp;title=User%3AAdmin</id>
		<title>User:Admin - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://opensource.rock-chips.com/index.php?action=history&amp;feed=atom&amp;title=User%3AAdmin"/>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=User:Admin&amp;action=history"/>
		<updated>2026-04-29T20:25:58Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://opensource.rock-chips.com/index.php?title=User:Admin&amp;diff=1699&amp;oldid=prev</id>
		<title>Admin: Created page with &quot; &lt;br/&gt; &amp;nbsp;  = Overall =  This guide provides information which will help you get started with rockchip opensource linux. If you have any questions, please report to us on g...&quot;</title>
		<link rel="alternate" type="text/html" href="http://opensource.rock-chips.com/index.php?title=User:Admin&amp;diff=1699&amp;oldid=prev"/>
				<updated>2017-12-08T02:25:33Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot; &amp;lt;br/&amp;gt;    = Overall =  This guide provides information which will help you get started with rockchip opensource linux. If you have any questions, please report to us on g...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Overall =&lt;br /&gt;
&lt;br /&gt;
This guide provides information which will help you get started with rockchip opensource linux. If you have any questions, please report to us on github project issue page.&lt;br /&gt;
&lt;br /&gt;
We are providing 3 ways to build rootfs including prebuilt Debian, Yocto, Buildroot.&amp;amp;nbsp;&amp;lt;del&amp;gt;You can choose the way you prefer&amp;lt;/del&amp;gt;.&amp;lt;small&amp;gt;&amp;amp;nbsp;'''(Please check the&amp;amp;nbsp;[[Status_Matrix|Software Status]]&amp;amp;nbsp;because different chips have a different support)'''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will need below firmware/image for a full Linux OS and flash them to different locations:&lt;br /&gt;
&lt;br /&gt;
*U-Boot SPL/Rockchip miniloader&amp;amp;nbsp;&amp;lt;br/&amp;gt; *U-Boot&amp;amp;nbsp;&amp;lt;br/&amp;gt; *boot(including kernel, dtb and config file)&amp;amp;nbsp;&amp;lt;br/&amp;gt; *rootfs(Debian, Ubuntu, etc.)&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Before starting to develop, please refer to '''[[Board_Config|board config]]&amp;amp;nbsp;'''and''&amp;amp;nbsp;'''''[http://opensource.rock-chips.com/wiki_FAQ#How_to_select_board_config how-to]''' to choose a&amp;amp;nbsp;most matching config&amp;amp;nbsp;as the&amp;amp;nbsp;foundation.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Environment =&lt;br /&gt;
&lt;br /&gt;
Note that our development environment is Ubuntu, you can use 16.04 or later version&amp;lt;small&amp;gt;(with downgraded arm gcc)&amp;lt;/small&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Debian-9&amp;amp;nbsp; and [https://github.com/rockchip-linux/docker-rockchip Docker-Rockchip]&amp;amp;nbsp;are also available.&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu 14.04 is ''deprecated, we don't guarantee that Linux SDK can work on it.'''''&lt;br /&gt;
&lt;br /&gt;
Here are some necessary packages for building the project.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo apt-get install git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev libssl-dev pv e2fsprogs build-essential fakeroot devscripts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you insist on developing on your own environment, please make sure the version of&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size: 13px;&amp;quot;&amp;gt;gcc-arm-linux-gnueabihf and gcc-aarch64-linux-gnu is&amp;amp;nbsp;less than 6.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting the Sources =&lt;br /&gt;
&lt;br /&gt;
The rockchip linux SDK source tree is located in multi Git repository hosted by Github. The SDK uses repo to sync down source code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Create an empty directory to hold your working files.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir rk-linux&amp;lt;br/&amp;gt; cd rk-linux&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To initialize Linux SDK source tree, you need to get repo first&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install repo&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basic Linux SDK&amp;lt;small&amp;gt;(standalone kernel/u-boot/rootfs)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;repo init --repo-url=https://github.com/rockchip-linux/repo -u https://github.com/rockchip-linux/manifests -b master&amp;lt;br/&amp;gt; repo sync&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Yocto&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;repo init --repo-url=https://github.com/rockchip-linux/repo -u https://github.com/rockchip-linux/manifests -b yocto&amp;lt;br/&amp;gt; repo sync&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Buildroot&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;repo init --repo-url=https://github.com/rockchip-linux/repo -u https://github.com/rockchip-linux/manifests -b buildroot&amp;lt;br/&amp;gt; repo sync&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Below guides are based on basic Linux SDK, guides for yocto/buildroot could be found in the separate page.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Quick start =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;'''ref&amp;amp;nbsp;:&amp;amp;nbsp;[[Partitions|partition]], [[Rockusb|rockusb]], [[Boot_option|boot]]'''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have provide&amp;amp;nbsp;[https://github.com/rockchip-linux/build build scripts]&amp;amp;nbsp;which essentially wraps the commands, so you can quickly start your development by them.&lt;br /&gt;
&lt;br /&gt;
Please note that those scripts are assumed your directory structure is same with the one created by manifest. We use rk3288-firefly as example. You can change&amp;amp;nbsp;rk3288-firefly to any other board supported(ie. rk3399-firefly)&lt;br /&gt;
&lt;br /&gt;
'''compile kernel'''&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;build/mk-kernel.sh rk3288-firefly&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''compile uboot'''&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;build/mk-uboot.sh rk3288-firefly&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
'''Pack all parts to a complete image'''&lt;br /&gt;
&lt;br /&gt;
`s` is size in Mbyte, `r` is your rootfs image &amp;lt;small&amp;gt;([http://opensource.rock-chips.com/wiki_Debian prebuilt debian image])&amp;lt;/small&amp;gt; location. Here we use rk3288 as example. You can change it to any other supported chips(ie. rk3399, rk3328).&lt;br /&gt;
&amp;lt;pre&amp;gt;build/mk-image.sh -c rk3288 -t system -r rk-debian-build/linaro-rootfs.img&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''flash image'''&lt;br /&gt;
&lt;br /&gt;
eMMC &amp;lt;small&amp;gt;(Ensure the board is in&amp;amp;nbsp;maskrom mode. [http://opensource.rock-chips.com/wiki_Rockusb#Maskrom_mode maskrom],&amp;amp;nbsp;Not [http://opensource.rock-chips.com/wiki_Rockusb#Miniloader_Rockusb.C2.A0mode rockusb]! )&amp;lt;/small&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;build/flash_tool.sh -c rk3288 -p system -i out/system.img&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SD Card:&amp;lt;br/&amp;gt; `d` is your target device&lt;br /&gt;
&amp;lt;pre&amp;gt;build/flash_tool.sh -c rk3288 -p loader -i out/u-boot/idbloader.img -d /dev/sdb&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''bringup(burn kernel, uboot, gpt)'''&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;build/mk-kernel.sh rk3288-firefly&amp;lt;br/&amp;gt; build/mk-uboot.sh rk3288-firefly&amp;lt;br/&amp;gt; build/mk-image.sh -c rk3288 -t system -r rk-debian-build/linaro-rootfs.img&amp;lt;br/&amp;gt; build/flash_tool.sh -p system -i out/system.img&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''update kernel'''&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;build/mk-kernel.sh rk3288-firefly&amp;lt;br/&amp;gt; build/flash_tool.sh -p boot -i out/boot.img&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''update uboot (armv7)'''&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;build/mk-uboot.sh rk3288-firefly&amp;lt;br/&amp;gt; build/flash_tool.sh -p loader1 -i out/u-boot/idbloader.img&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''update uboot(armv8 with miniloader)'''&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;build/mk-uboot.sh rk3399-excavator&amp;lt;br/&amp;gt; build/flash_tool.sh -p loader1 -i out/u-boot/idbloader.img&amp;lt;br/&amp;gt; build/flash_tool.sh -p loader2 -i out/u-boot/uboot.img&amp;lt;br/&amp;gt; build/flash_tool.sh -p atf -i out/u-boot/trust.img&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Before asking questions, please, read&amp;amp;nbsp;references and follow&amp;amp;nbsp;the setp by setp guide to boot your device.&lt;br /&gt;
&lt;br /&gt;
It's better if you can study those build scripts.&lt;br /&gt;
&lt;br /&gt;
Please refer to [https://github.com/rockchip-linux/rkbin/tree/master/tools/AndroidTool_Release_v2.39 AndroidFlashTool]&amp;lt;small&amp;gt;(TODO: wiki)&amp;amp;nbsp;&amp;lt;/small&amp;gt;for flashing image on Windows.&amp;amp;nbsp;&amp;lt;small&amp;gt;(For the first time, it's recommended to use a linux host, to save the time.）&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Step By Step =&lt;br /&gt;
&lt;br /&gt;
== Building the sources ==&lt;br /&gt;
&lt;br /&gt;
=== Building uboot ===&lt;br /&gt;
&lt;br /&gt;
Installing the build tools and download source&lt;br /&gt;
&lt;br /&gt;
Compile the Uboot&lt;br /&gt;
&amp;lt;pre&amp;gt;CROSS_COMPILE=arm-linux-gnueabihf- make evb-rk3288_defconfig all&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can get spl/u-boot-spl.bin(if there is) and u-boot.bin when build complete, we will use these files to generate idb.img or uboot.img&lt;br /&gt;
&lt;br /&gt;
See [[U-Boot|U-Boot]] page for more detail.&lt;br /&gt;
&lt;br /&gt;
There are two feasible ways to boot to U-Boot.&amp;lt;br/&amp;gt; 1. RK SPL bin(DDR.bin, miniloader)&amp;lt;br/&amp;gt; 2. U-Boot SPL&lt;br /&gt;
&lt;br /&gt;
See [[Boot_option|boot option]] page for more detail.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Building kernel ===&lt;br /&gt;
&lt;br /&gt;
Compile the kernel:&lt;br /&gt;
&lt;br /&gt;
For ARM v7&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- rockchip_linux_defconfig&amp;lt;br/&amp;gt; make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For ARM V8&lt;br /&gt;
&amp;lt;pre&amp;gt;make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- rockchip_linux_defconfig&amp;lt;br/&amp;gt; make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can get zImage/Image and dtbs when build complete， we will use these files to generate boot.img for boot partition.&lt;br /&gt;
&lt;br /&gt;
See [[Rockchip_Kernel|Rockchip kernel]] for more detail.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Building rootfs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;It's recommend to download&amp;amp;nbsp;[http://opensource.rock-chips.com/wiki_Debian prebuilt debian image]&amp;amp;nbsp;for bringup.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Debian ====&lt;br /&gt;
&lt;br /&gt;
See&amp;amp;nbsp;[[Debian|debian-guide]]&amp;amp;nbsp;for detail.&lt;br /&gt;
&lt;br /&gt;
You should get xxx-rootfs.img.&lt;br /&gt;
&lt;br /&gt;
==== Yocto ====&lt;br /&gt;
&lt;br /&gt;
See&amp;amp;nbsp;[[Yocto|yocto-user-guide]]&amp;amp;nbsp;for detail.&lt;br /&gt;
&lt;br /&gt;
You should get xxx.ext4&amp;amp;nbsp;rootfs image.&lt;br /&gt;
&lt;br /&gt;
==== Buildroot ====&lt;br /&gt;
&lt;br /&gt;
See&amp;amp;nbsp;[[Buildroot|buildroot-user-guide]]&amp;amp;nbsp;for detail.&lt;br /&gt;
&lt;br /&gt;
You should get rootfs.img in this step for the Linux OS.&lt;br /&gt;
&lt;br /&gt;
== Booting the Board ==&lt;br /&gt;
&lt;br /&gt;
Then you can chose a suitable way for you to boot the board with flash all the image to media device.&lt;br /&gt;
&lt;br /&gt;
*[[Boot_option#Boot_from_eMMC|''Booting from emmc'']]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[Boot_option#Boot_from_SD.2FTF_Card|''Booting from sdcard'']]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[Boot_option#Boot_from_USB-Disk|''Booting from udisk'']]&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
[[U-Boot|U-Boot guide]]&lt;br /&gt;
&lt;br /&gt;
[[Rockchip_Kernel|Rockchip kernel guide]]&lt;br /&gt;
&lt;br /&gt;
[[Yocto|Yocto guide]]&lt;br /&gt;
&lt;br /&gt;
[[Buildroot|Buildroot guide]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
&lt;br /&gt;
Display:&lt;br /&gt;
&lt;br /&gt;
*[[EDP|eDP]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[MIPI-DSI|MIPI-DSI]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[LVDS|LVDS]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[HDMI|HDMI]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[HDCP|HDCP]]&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Graphic:&lt;br /&gt;
&lt;br /&gt;
*[[Rga|RGA]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[GPU|GPU]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[VOP|VOP]]&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
USB:&lt;br /&gt;
&lt;br /&gt;
*[[USB_OTG|D]][[DWC2|WC2]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[USB_HOST|D]][[DWC3|WC3]]&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Storage:&lt;br /&gt;
&lt;br /&gt;
*[[EMMC|eMMC]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[SD-Card|SD-Card]]&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Audio:&lt;br /&gt;
&lt;br /&gt;
*[[HDMI-Audio|HDMI-Audio]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[I2S|I2S]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[SPDIF|SPDIF]]&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Connectivity:&lt;br /&gt;
&lt;br /&gt;
*[[Wireless|Wireless]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[Ethernet|Ethernet]]&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Others:&lt;br /&gt;
&lt;br /&gt;
*[[PWM|PWM]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[I2C|I2C]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[SPI|SPI]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[UART|UART]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[Thermal|Thermal]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[Clock|Clock]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[DVFS|DVFS]]&amp;amp;nbsp;&amp;lt;br/&amp;gt; *[[Suspend/Resume|Suspend/Resume]]&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Customization ==&lt;br /&gt;
&lt;br /&gt;
[[Boot_Time|Boot_Time]]&lt;br /&gt;
&lt;br /&gt;
[[Boot_Logo|Boot_Logo]]&lt;br /&gt;
&lt;br /&gt;
[[Image_Size|Image_Size]]&lt;br /&gt;
&lt;br /&gt;
[[Firmware_Upgrade|Firmware_Upgrade]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>