Please enable javascript, or click here to visit my ecommerce web site powered by Shopify.
Jump to: navigation, search

Difference between revisions of "Rock/Linux Mainline"

(Linux Mainline: Update to version 3.18-rc3)
(Linux Kernel 3.18-rc5)
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Linux Kernel 3.18-rc3 =
+
{{rock_header}}
 +
{{Languages | rock/Linux_Mainline}}
 +
 
 +
= Linux Kernel 3.18-rc5 =
  
 
== Status ==
 
== Status ==
Line 13: Line 16:
 
* Ethernet
 
* Ethernet
 
* Wifi
 
* Wifi
 
+
* Bluetooth
  
 
What remains to be done:
 
What remains to be done:
Line 20: Line 23:
 
* TV OUT drivers (RK1000)
 
* TV OUT drivers (RK1000)
 
* NAND flash support
 
* NAND flash support
* Bluetooth support (rtl8723au_bt)
 
  
 
== Requirements ==
 
== Requirements ==
Line 52: Line 54:
  
 
== Create boot image ==
 
== Create boot image ==
 +
 +
Install mkbootimg if you don't have it on your system.
 +
 +
    git clone https://github.com/neo-technologies/rockchip-mkbootimg.git
 +
    cd rockchip-mkbootimg
 +
    make
 +
    sudo make install
 +
    cd ..
  
 
We need to append the device tree blob to zImage (CONFIG_ARM_APPENDED_DTB option) until we can use U-Boot device tree support.
 
We need to append the device tree blob to zImage (CONFIG_ARM_APPENDED_DTB option) until we can use U-Boot device tree support.
  
 
  cat arch/arm/boot/zImage arch/arm/boot/dts/rk3188-radxarock.dtb > zImage-dtb
 
  cat arch/arm/boot/zImage arch/arm/boot/dts/rk3188-radxarock.dtb > zImage-dtb
 +
 +
==get ramdisk==
 +
 +
    git clone https://github.com/radxa/initrd.git
 +
    find . ! -path "./.git*"  | cpio -H newc  -ov > initrd.img
  
 
Create the '''boot.img''' using mkbootimg (Rockchip version).
 
Create the '''boot.img''' using mkbootimg (Rockchip version).
  
  mkbootimg --kernel zImage-dtb --ramdisk /dev/null -o boot.img
+
  mkbootimg --kernel zImage-dtb --ramdisk initrd.img -o boot.img
  
 
== Flash parameter and boot image ==
 
== Flash parameter and boot image ==
Line 87: Line 102:
  
 
or download them from here: http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/rtlwifi
 
or download them from here: http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/rtlwifi
 +
 +
== Bluetooth ==
 +
 +
The '''rtl8723au_bt''' driver is not in the mainline kernel yet, but you can build it this way:
 +
 +
git clone -b new https://github.com/lwfinger/rtl8723au_bt.git
 +
cd rtl8723au_bt/Linux_BT_USB_2.11.20140423_8723BE/
 +
wget http://rockchip.fr/radxa/linux/patches/rtl8723au_bt/0001-Add-hci_recv_fragment-function.patch
 +
git am 0001-Add-hci_recv_fragment-function.patch
 +
make KDIR=../..
 +
 +
Copy the firmware files and '''rtk_btusb.ko''' into your rootfs:
 +
8723A/rtl8723a_fw -> /lib/firmware/rtl8723a_fw
 +
8723B/rtl8723b_fw -> /lib/firmware/rtl8723b_fw

Revision as of 09:22, 17 July 2015

Linux Kernel 3.18-rc5

Status

What currently works in Linux mainline:

  • UART
  • SPI
  • I2C
  • GPIOs / LEDs / IR
  • PWM
  • USB
  • SD/MMC
  • Ethernet
  • Wifi
  • Bluetooth

What remains to be done:

  • DRM Display driver / LCD controller
  • HDMI drivers (ITE66121 / RK616)
  • TV OUT drivers (RK1000)
  • NAND flash support

Requirements

Ubuntu 14.10 / GCC 4.9+ (GCC 4.8 is not supported)

sudo apt-get install git build-essential gcc-arm-linux-gnueabihf lzop libncurses5-dev libssl-dev bc

Get the source code

Get linux-next kernel tree (stable branch), default config and updated device-tree.

git clone -b stable --depth 1 git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
cd linux-next
wget http://rockchip.fr/radxa/linux/rockchip_defconfig -O arch/arm/configs/rockchip_defconfig
wget http://rockchip.fr/radxa/linux/rk3188-radxarock.dts -O arch/arm/boot/dts/rk3188-radxarock.dts

Build kernel

We have to build two files:

  • zImage (the kernel)
  • rk3188-radxarock.dtb (the device tree blob)


export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
make rockchip_defconfig
make -j8 zImage dtbs

Create boot image

Install mkbootimg if you don't have it on your system.

   git clone https://github.com/neo-technologies/rockchip-mkbootimg.git
   cd rockchip-mkbootimg
   make
   sudo make install
   cd ..

We need to append the device tree blob to zImage (CONFIG_ARM_APPENDED_DTB option) until we can use U-Boot device tree support.

cat arch/arm/boot/zImage arch/arm/boot/dts/rk3188-radxarock.dtb > zImage-dtb

get ramdisk

   git clone https://github.com/radxa/initrd.git
   find . ! -path "./.git*"  | cpio -H newc  -ov > initrd.img

Create the boot.img using mkbootimg (Rockchip version).

mkbootimg --kernel zImage-dtb --ramdisk initrd.img -o boot.img

Flash parameter and boot image

Get a parameter file from http://dl.radxa.com/rock/images/parameter

wget http://dl.radxa.com/rock/images/parameter/parameter_linux_sd

Flash parameter and boot.img using rkflashtool

rkflashtool P < parameter_linux_sd
rkflashtool w boot < boot.img
rkflashtool b

Notes

Install Rootfs in first partition of SD card

Your rootfs should be in ext4 format. It will be loaded from /dev/mmcblk0p1 by default.

Wireless

The Realtek wifi chipsets require firmwares to be installed in /lib/firmware/rtlwifi

You can get them by installing the linux-firmware package from your Linux distribution

sudo apt-get install linux-firmware

or download them from here: http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/rtlwifi

Bluetooth

The rtl8723au_bt driver is not in the mainline kernel yet, but you can build it this way:

git clone -b new https://github.com/lwfinger/rtl8723au_bt.git
cd rtl8723au_bt/Linux_BT_USB_2.11.20140423_8723BE/
wget http://rockchip.fr/radxa/linux/patches/rtl8723au_bt/0001-Add-hci_recv_fragment-function.patch
git am 0001-Add-hci_recv_fragment-function.patch
make KDIR=../..

Copy the firmware files and rtk_btusb.ko into your rootfs:

8723A/rtl8723a_fw -> /lib/firmware/rtl8723a_fw
8723B/rtl8723b_fw -> /lib/firmware/rtl8723b_fw