Announcement

Collapse
No announcement yet.

Announcement

Collapse
No announcement yet.

"Dual- / Multiboot" Android & Linux

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    "Dual- / Multiboot" Android & Linux

    <under construction>

    Beforehand a really BIG BIG THX to
    aloksinha2001, linuxium, mmm123

    I) Foreword
    II) Dualboot Android & Linux
    III) First steps at Linux
    IV) Backup
    V) Android & Multiboot Linux
    VI) Different devices / kernels
    RK3288 Devices
    - Overview BOX (LINK !)
    - Overview STICK (Dongle) (LINK !)

    MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
    UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
    Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
    Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

    RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
    Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

    #2
    I) Foreword

    This HowTo generally works for every device, but needs different kernel witch fits to the device.

    I use a K-R42 "old revisoin" to witch the kernel from mmm123 fits for LAN und WiFi.
    lsusb
    Bus 002 Device 003: ID 0bda:0179 Realtek Semiconductor Corp.
    Bus 002 Device 003: ID 0bda:8179 Realtek Semiconductor Corp.

    There are two different way to make your device "Dual- / Multi- bootable":
    1.) recovery-partition for the Linux-kernel (including Linux-boot-partition) and untouched rest of the system (mmm123-way).
    => Boots to Android and "reboot recovery" via Reboot.app or via 'adb reboot recovery' boots to Linux
    2.) recovery-partition for the android-kernel (including android-boot-partition) and a boot- and kernel-partition for Linux and untouched rest of the system (linuxium-way)
    => Boots to Linux and "reboot recovery" boots to Android

    Generally I prefer the first way and use it at this HowTo, because every mod is usable because of minimum touched "basis"-system and concrete because of working kernel for my device (with partitions at the microSD).
    AND don't worry about a mistake at the Linux, your Android works, and you only have to start at II) or IV)

    For Linux RFS I use Linuxium Ubuntu 12.04.

    If you primarily want to user the device as a Linux-Server, because of the restart to Linux the second way would be the better solution...

    SD/USB
    Use a fast device (the faster the better)!
    SD Class 10
    USB 3.0 (because of the use of faster chips inside, it will be faster at USB2.0 too)
    Last edited by no_spam_for_me; 08 March 2014, 16:11.
    RK3288 Devices
    - Overview BOX (LINK !)
    - Overview STICK (Dongle) (LINK !)

    MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
    UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
    Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
    Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

    RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
    Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

    Comment


      #3
      II) Dualboot Android &amp; Linux

      IIa) Tools that you need:

      Generally
      - recovery-partition (at "Running linux from SD card or USB device") (kernel config)
      - RSF (Root File System) by linuxium or PicUntu 4.5 by aloksinha2001(system.img (but you have to label it 'linuxroot' instead of 'picuntu'))

      1.) At windows
      - Perhaps RKAndroidTool by Legitsu or from geekbuying (depends on andorid-image typ)
      - Perhaps RK3xxx Firmware Tools by SergioPoverony (depends on andorid-image typ)
      - Win32 Disk Imager
      - 2 USB and or microSD
      - Linux Live CD or
      - Ext2 installable kernel mode file system driver or Ext2Fsd AND CreateMini 1.4 by mickey12 (see attachment) (BTW: I user Ext2Fsd because I can start the service manually)

      2.) At linux
      {For those who use linux: I think you know how to do it but you are welcome to pm me a HowTo}

      IIb) buid up system at windows
      1.) parameter (recovery-partition-address)
      First you have to know at witch address the recovery-partition is.

      a.) If you have a firmware package (mod or stock ROM) witch is flashable by RKAndroidTool (separate partitions) you will find a parameter file...

      b.) If you have a firmware package (mod or stock ROM) witch is flashable by RKBatchTool (hole NAND) you have first to extract the img with the RK3xxx Firmware Tools by SergioPoverony. Extract the RK3xxx Firmware Tools at the root directory (because it has problems with long pathnames and blanks inside it and the filename) and copy the img into the RK3xxx Firmware Tools directory. Start the RK3xxx Firmware Tools (START.exe) with administrator privileges and press [Select Img...] and after that press [Extract] and wait until the massage "Extract Complete!"... Now you find in the subdirectory "temp\Android" the parameter file...

      c.) If you don't have a firmware package (ROM) you can use the way descript by finless by using RKAndroidTool v2.1 Backing up your RK device (ROM) with the new RK 2.1 tool to extract the parameter file AND the original recovery-partition-img too.

      To catch the fitting recovery-partition-address open the parameter file with an editor an have a look at the last line starting with "CMDLINE" behind the "mtdparts=rk29xxnand". There you will find "(recovery)" and something like ",0x00008000@0x00014000" in front of it. In this example the "@0x00014000" tell us, that the recovery-partition-address is at 0x00014000 and this value will be use at RKAndroidTool at Address column for recovery row.

      2.) flashing the recovery-partition (linux&boot)
      a.) Now you need the RKAndroidTool, start it (with administrator privileges)
      b.) uncheck each row
      c.) copy /extract "dx05_sd_linux_1.1.1_recovery.img" from the recovery-partition (at "Running linux from SD card or USB device") to the directory of the RKAndroidTool*
      d.) change at the "recovery" row by double click the "Address" and the "Name" column
      e.) only check the "recovery row"
      f.) be sure your device is in "bootloadermode", connect and recognize by RKAndroidTool...
      g.) [Run] or [Flash ROM] (depends on witch version you use)
      *(Attention: for those who use 1b.) & 1c.): you have to copy the extractet parameter file too)
      BTW: with these steps you are able to reflash the original recovery-partition (mod or stock ROM)

      3.) prepare USB / SD for data
      Because of that the kernel do not have the need KernelObjects (ko) for WiFi, NTFS, FAT... inside, we need one USB / SD for the RFS and one for the KernelObjects (ko) in EXT-Format.

      To format the USB / SD in EXT use the Linux Live CD and copy the "dx05_sd_linux_1.1.0_modules.tgz" from the recovery-partition (at "Running linux from SD card or USB device") to it.
      (BTW: If you use Ext2 installable kernel mode file system driver or Ext2Fsd you do not need a second USB / SD because you can copy these files to \home\linuxium ...)

      If you want to do it at windows:
      3a.) CreateMini 1.4 by mickey12 (see attachment) (start CreateMini.exe with administrator privilege)
      3aa.) [Settings...] -> "1" Partition & "ext2" -> [OK]
      3ab.) Select USB Stick: {your USB / SD that you want to format}
      3ac.) [Format]
      3ad.) wait... [Exit]

      3b) Ext2 installable kernel mode file system driver or Ext2Fsd
      If you use Ext2Fsd start the "Ext2 Volume Manager" with administrator privilege and at
      Tools -> Service Management (F7) -> Set "Server startup mode" to SERVICE_DEMAND_START -> [Apply]
      With this configuration the Service is only start up if you press [Start] ("manually mode")...
      (BTW: but no possibility to stop the Service then reboot, it seems so that RAW work without startup Service)
      If the Service is start and you have check the "Mount all volumes in read-only mode" at the Tools -> Service Management (F7) at the "Ext2 Volume Manager" you can change it for the volume with double click at the volume at the "Ext2 Volume Manager" ...

      3c.) Now copy the "dx05_sd_linux_1.1.0_modules.tgz" and what ever else you should need to the USB / SD with the ext2 volume (because I'm a friend of copy and past so I've a txt with the most wanted commands too )
      Safely remove the devices from your computer...


      4.) Prepare the USB / SD for RFS
      4a.) Start Win32 Disk Imager (Win32DiskImager.exe) with administrator privilege
      4aa.) Image File (I use "linuxium-ubuntu1204-desktop-rfs.img")
      4ab.) Select correct Drive
      4ac.) [Write] ... wait ...
      (BTW: If you use Ext2 installable kernel mode file system driver or Ext2Fsd you are now able to work at the RFS)
      Attached Files
      Last edited by no_spam_for_me; 03 March 2014, 16:08.
      RK3288 Devices
      - Overview BOX (LINK !)
      - Overview STICK (Dongle) (LINK !)

      MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
      UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
      Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
      Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

      RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
      Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

      Comment


        #4
        III) First steps at Linux

        The password for 'linuxium' is 'p'.
        At first go to "Dash home" at the left top corner and search for 'terminat' and start it.
        Set a new password for 'root':
        Code:
        sudo passwd root [I]<enter>[/I]
        Set a new password for 'linuxium':
        Code:
        sudo passwd linuxium [I]<enter>[/I]
        With 'ls' you can see the documents from II 3./4.) if you use Ext2 installable kernel mode file system driver or Ext2Fsd and copying them to \home\linuxium.
        1.) Network
        1a) LAN
        I use LAN and because of no static MAC-address first I have to edit the '/etc/network/interfaces' with the text editor nano:
        Code:
        sudo nano /etc/network/interfaces [I]<enter>[/I]
        and add something like this:
        Code:
        pre-up ifconfig eth0 hw ether [I]e2:38:61:79:76:74[/I]
        To exit the nano you have to press <ctrl> + <x> and to save to answer with <y> and than <enter>...

        The actual random MAC-address can copy from
        Networkmanager (at the right top corner) -> Edit Connections... -> Wired connection 1 -> [Edit] ->
        If you use this random MAC-address you can configure the Wired connection 1 (for static IP), otherwise you first have to restart the system to get this MAC-address and then you can configure the Wired connection (for static IP) and restart the system twice...

        1b.) WiFi
        For WiFi first you have to install the drivers (ko):
        Code:
         cd /lib/modules
        Code:
         sudo tar -xzf /home/linuxium/dx05_sd_linux_1.1.0_modules.tgz
        or if you use a USB-stick for the dx05_sd_linux_1.1.0_modules.tgz first connect it and find out with
        Code:
         ls /dev/sd*
        witch it is, the linux-stick is without sdxyz1, sdxyz2,... it is only sdxyz (should be sda), and use the sdxyz1 (should be sdb1) instead of the '/home/linuxium'...
        (If you use SD for the Linux RFS it will be sda1)
        First you have to mount it:
        Code:
         sudo mkdir /mnt/usb-stick
        Code:
         sudo mount -t ext2 /dev/sdb1 /mnt/usb-stick
        and to check if it work correct use
        Code:
         ls /mnt/usb-stick
        so you have to use
        Code:
         sudo tar -xzf /mnt/usb-stick/dx05_sd_linux_1.1.0_modules.tgz
        (For SD it is mmcblk0 & mmcblk0p1)

        If you use this, you see the file-system drivers exist too
        Code:
         ls -al /lib/modules/3.0.36+/kernel/fs
        If not, the tar does not work or be sure you are at /lib/modules

        To ""submit"" the KernelObjekts at least you have to do
        Code:
         sudo depmod -a
        1ba.)
        restart the system OR
        1bb.)
        Code:
        sudo insmod /lib/modules/3.0.36+/kernel/drivers/net/wireless/rtl8188eu/8188eu.ko
        Now you are able to configure the WiFi...

        1c.) Test
        To check your configuration you can do at terminal:
        Code:
        ping -c 5 {another ip at your network}
        To check the DNS
        Code:
        nslookup www.google.com
        Both together
        Code:
        ping -c 5 www.google.com
        2.) KernelObjects (ko)
        If you done the steps at 1b.) because of WiFi, you can skip, otherwise you have to do the steps at 1b.)

        3.) ssh
        At terminal
        Code:
        sudo apt-get install openssh-server
        Now you are able to use e.g. putty at your PC to connect to your rk3188 via ssh...

        4.) FTP
        Code:
        sudo apt-get install vsftpd
        To login with 'linuxium' and copy file to /home/linuxium you have to do three changes at the vsftpd.conf
        Code:
        cd /etc
        Code:
        sudo nano vsftpd.conf
        change:
        anonymous_enable=YES
        to
        anonymous_enable=NO
        delete the leading # at:
        #local_enable=YES
        #write_enable=YES
        Code:
        sudo restart vsftpd
        Now you are able to use e.g. FileZilla at your PC to connect to your rk3188 via FTP...

        5.) VNC
        I use the tightvncserver.
        Code:
        sudo apt-get install tightvncserver
        Only for testing it
        Code:
        vncserver
        1. you will be ask to generate a password (this is need to connect)
        2. you gat an information like 'New 'X' desktop is LINUXIUMONE:1' (we need dit after the test to kill the process
        3. with
        Code:
        cat /home/linuxium/.vnc/LINUXIUMONE:1.log
        you can verify the port number on witch the vncserver is listening...
        Now you are able to use e.g. TightVNC at your PC to connect to your rk3188 via VNC.
        {ip-address}::5901
        If everything fine you can kill the vncserver
        Code:
        vncserver -kill :1
        Now you have to implement, that the server automatically starts up:
        Code:
        sudo nano /etc/init.d/vncserver
        insert
        Code:
        #!/bin/sh -e
        ### BEGIN INIT INFO
        # Provides:          vncserver
        # Required-Start:    networking
        # Default-Start:     S
        # Default-Stop:      0 6
        ### END INIT INFO
         
        # the user for whom the VNC-Server starts
        export USER="linuxium"
        # the Display-Nummer
        DISPLAY="1"
        # the color depth (8, 16 or 24)
        DEPTH="16"
        # the desired resolution
        GEOMETRY="1024x768"
        # the name of the VNC-Desktop
        NAME="linuxium-VNC"
         
        OPTIONS="-name ${NAME} -depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
        . /lib/lsb/init-functions
         
        case "$1" in
        start)
          log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
          su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
          ;;
        stop)
          log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
          su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
          ;;
        restart)
          $0 stop
          $0 start
          ;;
        esac
        exit 0
        make the script executable
        Code:
        sudo chmod a+x /etc/init.d/vncserver
        Code:
        sudo update-rc.d vncserver defaults
        manuell start or stop
        Code:
        /etc/init.d/vncserver start
        Code:
        /etc/init.d/vncserver stop
        RK3288 Devices
        - Overview BOX (LINK !)
        - Overview STICK (Dongle) (LINK !)

        MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
        UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
        Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
        Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

        RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
        Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

        Comment


          #5
          IV) Backup

          IVa) Tools that you need:
          1.) At windows
          2.) At linux
          {For those who use linux: I think you know how to do it but you are welcome to pm me a HowTo}

          To backup (because at me the Win32 Disk Imager 0.9 crash every time at the end with windows BlueScreen) I use WinHex (17.3 SR-5 Specialist) to get the img-file (BackUp) and it works perfect...

          BackUp image with WinHex
          1. File -> Create Disk Image
          2. Select CORRECT Disk ...
          2a. "Raw Image ..."
          2b. "Copy entire Medium"
          2c. check or uncheck "Split Image into segments of"
          2d. "Path and filename:"
          2e. [OK]... wait...



          Writing image with WinHex
          1. File -> Restore Image -> file typ = "Raw Image/Container" ...
          2. Select CORRECT Target Disk
          3. Go... wait...
          works generally perfect too, BUT it write/generate a partition-table, so I get sda & sda1 (for USB) or mmcblk0 & mmcblk0p1 (for SD)...

          At the moment the recovery.img which I use is only able to boot at partition with USB/SD <=8GB. At >=16GB it trys to boot without partition.
          So, for USB/SD <=8GB it works perfect, BUT not for USB/SD >=16GB, it needs only sda or mmcblk0 without partition-table to start up the RFS, so I have to use Win32 Disk Imager 0.9...
          Last edited by no_spam_for_me; 08 March 2014, 19:52.
          RK3288 Devices
          - Overview BOX (LINK !)
          - Overview STICK (Dongle) (LINK !)

          MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
          UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
          Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
          Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

          RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
          Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

          Comment


            #6
            V) Android &amp; Multiboot Linux

            V) Android & Multiboot Linux

            At the moment the recovery.img which I use is only able to boot at partition with USB/SD <=8GB. At >=16GB it trys to boot without partition. (have a look at this)
            (Because of this, I use 'Write to partition via copy' to use 3 partions at 8GB)

            Code:
                                      Size  Used  Avail
            linuxium-ubuntu1204:      2.5G  1.6G  770M
            linuxium-lubuntu1304:     2.5G  1.8G  594M
            linuxium-xubuntu1304:     2.5G  1.9G  462M
            linuxium-debian7-wheezy:  3.0G  2.7G  127M
            picuntu-4.5-basicgui:     1.2G  1.1G   42M

            Prepare USB/SD at windows
            1. Format device with HP USB Disk Storage Format Tool 2.2.3 (You can use it to reset the USB/SD to 1 partition also)
            2. Erase/wipe the USB/SD with CCleaner
            - Select Tools > Drive Wiper
            - !!! SELECT CORRECT DRIVE !!!
            - Entire Drive
            - 1x
            3. Because of 2. I think not really necessary, but for your information: sometimes there exist USB/SD that does not really have the size they should have, so you can check it with the tool H2testw (German only).
            This preparing 1.-3. is not a "must to have" but "a nice to have" to bee sure your device is ok and step 2. can help you to get a smaller archive if you want to pack your BackUp...

            Prepare your SD with CreateMini 1.4 by mickey12 (see attachment II) ) with the count of needing partitions (ext2).
            (BTW: don't use 'linuxroot' at each volumes to avoid conflicts during booting and insert SD if you want to use a USB (sda) too for build up the system.)


            Prepare USB/SD at linux
            I use a USB-Stick (only 1 partition) with a reflashed Backup of the Ubuntu like I've made at IV).
            If you want to restore a BackUp to a partition you have to use WinHex instead of the Win32 Disk Imager 0.9 because the Win32 Disk Imager 0.9 kills the partition-table and use the "hole" USB/SD, so you lost the e.g. mmcblk0p1... or sda1...
            (BTW: Win32 Disk Imager 0.9 for me crashes often at SD).

            First you resize the partition at the USB/SD to its limit:
            Code:
            sudo resize2fs /dev/[I]{device(-partition-number)}[/I]
            e.g.
            Code:
            sudo resize2fs /dev/sda
            and then I copy the extracted images of the archives to the '/home/linuxium' via FTP or at PC.
            (BTW: because of the resize2fs your BackUp grows up too)

            GParted
            Code:
            sudo apt-get install gparted
            'gksudo gparted' or at dash search for 'GParted'.


            Check partitions
            Code:
            sudo fdisk -l /dev/[I]{device}[/I]
            E.g.:
            Code:
            sudo fdisk -l /dev/mmcblk0
            Code:
                    Device Boot      Start         End      Blocks   Id  System
            /dev/mmcblk0p1              63    12370049     6184993+  83  Linux
            /dev/mmcblk0p2        12370050    24740099     6185025   83  Linux
            /dev/mmcblk0p3        24740100    37110149     6185025   83  Linux
            /dev/mmcblk0p4        37110150    61850249    12370050    5  Extended
            /dev/mmcblk0p5        37110213    49480199     6184993+  83  Linux
            /dev/mmcblk0p6        49480263    61850249     6184993+  83  Linux
            You are only interested in the partitions with System = 'Linux' or 'W95 FAT32'.
            Not in the Extended; this is only a descriptor for the logical partition which in this example includes the 5 and 6.

            To get more information for each partition:
            Code:
            sudo dumpe2fs -h /dev/[I]{[/I][I]device(-partition-number)}[/I]
            E.g.:
            Code:
            sudo dumpe2fs -h /dev/mmcblk0p1
            Code:
            Filesystem volume name:   linuxroot
            Last mounted on:          /
            Filesystem UUID:          edda5ddd-7965-4b24-89d2-2663c305a4e6
             :
            Filesystem OS type:       Linux
            Inode count:              163840
            Block count:              655360
            Reserved block count:     32768
            Free blocks:              229691
             :

            Write to partition via dump (dd)
            Write image to drive:
            Code:
            sudo dd bs=4M if=[I]{image-name} [/I]of=/dev/[I]{device(-partition-number)}[/I]
            and wait ...
            Assign a name to the drive/partition:
            Code:
            sudo tune2fs -L [I]{device(-partition)-label-name}[/I] /dev/[I]{device(-partition-number)}[/I]
            E.g.:
            Code:
            sudo dd bs=4M if=linuxium-ubuntu1204-desktop-rfs-BASIS.img of=/dev/mmcblk0p1
            sudo tune2fs -L linuxroot /dev/mmcblk0p1
            Code:
            sudo dd bs=4M if=linuxium-ubuntu1304-lubuntu-desktop-rfs.img of=/dev/mmcblk0p2
            sudo tune2fs -L lubuntu /dev/mmcblk0p2
            Code:
            sudo dd bs=4M if=linuxium-ubuntu1304-xubuntu-desktop-rfs.img of=/dev/mmcblk0p3
            sudo tune2fs -L xubuntu /dev/mmcblk0p3
            Code:
            sudo dd bs=4M if=linuxium-debian7-wheezy-desktop-rfs.img of=/dev/mmcblk0p5
            sudo tune2fs -L wheezy /dev/mmcblk0p5
            Code:
            sudo dd bs=4M if=picuntu-4.5-basicgui-nand_system.img  of=/dev/mmcblk0p6
            sudo tune2fs -L picuntu /dev/mmcblk0p6

            Write to partition via copy
            First once you have to create required directorys:
            Code:
            mkdir ~/img [I]<enter>[/I]
            mkdir ~/SD_part [I]<enter>[/I]
            Then mount the img and the device(-partition):
            Code:
            sudo mount -o loop [I]{image-name}[/I] ~/img [I]<enter>[/I]
            sudo mount -t ext4 /dev/[I]{device-partition-number}[/I] ~/SD_part [I]<enter>[/I]
            Copy the hole files:
            Code:
            sudo cp -r -a ~/img/* ~/SD_part
            and wait ...
            (BTW: with "df -h" you can check the 'Size', 'Used' and 'Avail')
            Last unmount the img and the device(-partition) and give it a label (but before perhaps 'Prepare the RFS'):
            Code:
            sudo umount ~/SD_part [I]<enter>[/I]
            sudo umount ~/img [I]<enter>[/I]
            sudo tune2fs -L [I]{device-partition-label-name}[/I] /dev/[I]{device-partition-number} <enter>[/I]
            E.g.
            Code:
            mkdir ~/img
            mkdir ~/SD_part
            sudo mount -o loop linuxium-ubuntu1204-desktop-rfs-BASIS.img ~/img
            sudo mount -t ext4 /dev/mmcblk0p1 ~/SD_part
            sudo cp -r -a ~/img/* ~/SD_part
            sudo umount ~/SD_part
            sudo umount ~/img
            sudo tune2fs -L linuxroot /dev/mmcblk0p1

            Prepare the RFS
            To copy all needing files to the new RFS(s) you have to mount it, but before once you have to create a folder/directory (if not done at 'Write to partition via copy'):
            Code:
            sudo mkdir ~/SD_part
            then
            Code:
            sudo mount -t ext4 /dev/[I]{device(-partition-number)}[/I] ~/SD_part
            To copy e.g. 'dx05_sd_linux_1.1.0_modules.tgz'
            for linuxium's ubuntu/lubuntu/xubunto/wheezy-RFS(s)
            Code:
            cp dx05_sd_linux_1.1.0_modules.tgz ~/SD_part/home/linuxium
            for aloksinha2001's picuntu-RFS
            Code:
            cp dx05_sd_linux_1.1.0_modules.tgz ~/SD_part/home/picuntu
            or use FTP.

            After that unmount the RFS
            Code:
             sudo umount ~/SD_part

            Reboot to different RFS
            I wrote a little script to change the 'linuxroot' and reboot the device (tested at ubuntu, lubuntu, xubuntu).
            At the moment it is only for SD and only for reboot without 'reboot recovery'...
            Code:
            ###################################
            ##                               ##
            ##   1.  mmcblk0p1   linuxroot   ##
            ##   2.  mmcblk0p2   lubuntu     ##
            ##   3.  mmcblk0p3   xubuntu     ##
            ##   4.  mmcblk0p5   wheezy      ##
            ##   5.  mmcblk0p6   picuntu     ##
            ##                               ##
            ###################################
            Please select a partition [1..5]:
            Make it executable:
            Code:
            sudo chmod a+x switch_rfs
            To start it:
            Code:
            sudo ./switch_rfs

            BackUp
            Because windows check the "removable bit" at the device, you can only see the first partition to backup it with WinHex, but there exist some drivers for windows (most only 32 bit) that "kills" (hide) this bit. Filter Drivers – Removable Media as Fixed Disk in Windows. For 64 bit the Hitachi Microdrive Filter Driver exists also (German only).

            So you have to use linux and e.g. dd at the box for the second and above partitions...
            Code:
            sudo dd bs=4M if=/dev/mmcblk0p[I]{partition-number}[/I] of=[I]{wherever-you-want}[/I]
            Attached Files
            Last edited by no_spam_for_me; 08 March 2014, 19:51.
            RK3288 Devices
            - Overview BOX (LINK !)
            - Overview STICK (Dongle) (LINK !)

            MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
            UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
            Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
            Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

            RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
            Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

            Comment


              #7
              VI) Different devices / kernels

              VI) Different devices / kernels
              RK3288 Devices
              - Overview BOX (LINK !)
              - Overview STICK (Dongle) (LINK !)

              MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
              UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
              Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
              Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

              RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
              Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

              Comment


                #8
                RESERVE
                RK3288 Devices
                - Overview BOX (LINK !)
                - Overview STICK (Dongle) (LINK !)

                MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
                UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
                Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
                Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

                RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
                Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

                Comment


                  #9
                  Originally posted by no_spam_for_me View Post
                  This HowTo generally works for every device, but needs different kernel witch fits to the device.

                  I use a K-R42 "old revisoin" to witch the kernel from mmm123 fits for LAN und WiFi.
                  lsusb
                  Bus 002 Device 003: ID 0bda:0179 Realtek Semiconductor Corp.
                  Bus 002 Device 003: ID 0bda:8179 Realtek Semiconductor Corp.

                  There are two different way to make your device "Dual- / Multi- bootable":
                  1.) recovery-partition for the Linux-kernel (including Linux-boot-partition) and untouched rest of the system (mmm123-way).
                  => Boots to Android and "reboot recovery" via Reboot.app or via 'adb reboot recovery' boots to Linux
                  2.) recovery-partition for the android-kernel (including android-boot-partition) and a boot- and kernel-partition for Linux and untouched rest of the system (linuxium-way)
                  => Boots to Linux and "reboot recovery" boots to Android

                  Generally I prefer the first way and use it at this HowTo, because every mod is usable because of minimum touched "basis"-system and concrete because of working kernel for my device (with partitions at the microSD).
                  AND don't worry about a mistake at the Linux, your Android works, and you only have to start at II) or IV)

                  For Linux RFS I use Linuxium Ubuntu 12.04.

                  If you primarily want to user the device as a Linux-Server, because of the restart to Linux the second way would be the better solution...
                  I agree that method 1 is simple and effective however with method 2 I allow the user to chose at boot (effectively) what they want (similar to grub) and, as the source given this functionality is provided by the standard Linux init, any user (well, those willing to) can modify this as per their requirements.

                  Comment


                    #10
                    Update post #5 IV) Backup
                    Insert post #6 V) Android & Multiboot Linux
                    RK3288 Devices
                    - Overview BOX (LINK !)
                    - Overview STICK (Dongle) (LINK !)

                    MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
                    UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
                    Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
                    Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

                    RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
                    Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

                    Comment


                      #11
                      Originally posted by no_spam_for_me View Post
                      VI) Different devices / kernels
                      Because no longer able to edit:

                      VI) Different devices / kernels

                      VIa) Foreword

                      What you need for your device is a kernel for Linux and an initramfs.
                      The initramfs is for boot.img or recovery.img.
                      At the kernel.img you have to use the compressed/packed kernel (zImage) and at recovery.img the uncompressed/unpacked version (Image).
                      You will find your compiled kernel at '/arch/arm/boot/' at your kernel-source-subfolder.

                      An important file at the initramfs is the 'init' because it handles e.g. the load (mount) of the RootFileSystem (RFS).

                      To compile the kernel you need a kernel-configuration-file '.config' found at the root of your kernel-source-subfolder.

                      If you want to use kernel.img you should set at '.config':
                      Code:
                      CONFIG_CMDLINE_FROM_BOOTLOADER=y
                      # CONFIG_CMDLINE_FORCE is not set
                      so the CMDLINE is read form parameter and you have to add at parameter between "CMDLINE:" and "mtdparts=rk29xxnand:" e.g. for loading (mounting) RFS from SD/USB e.g.
                      Code:
                      "root=LABEL=linuxroot"
                      If you want to use kernel at recovery.img you should set at '.config':
                      Code:
                      # CONFIG_CMDLINE_FROM_BOOTLOADER is not set
                      CONFIG_CMDLINE_FORCE=y
                      CONFIG_CMDLINE=xxxxxxxxxxxxxxxxxx
                      e.g.
                      Code:
                      CONFIG_CMDLINE="initrd=0x62000000,0x00800000 root=LABEL=linuxroot init=/sbin/init"
                      so the CMDLINE is read form inside the kernel and avoids conflicts with the parameter for android.

                      At my first steps I use the existing 'recovery.img' and '.config' from mmm123 (THX) to test my first by my self compiled kernel. I've insert the "log" of my way as an example at the end.


                      VIb) Linux at a Virtual Machine
                      First you need to install:
                      Oracle VM VirtualBox for Windows hosts inclusive the 'VM VirtualBox Extension Pack'
                      with Ubuntu 12.04.4 LTS (Precise Pangolin) 64-bit PC (iso).
                      LTS means “Long Term Support”.

                      General Settings
                      File -> Preferences
                      Code:
                      - General
                      - Extensions -> Install the 'VM VirtualBox Extension Pack'
                      Create the Virtual Machine
                      'New'
                      Code:
                        Name: {what ever you want}
                        Type: Linux
                        Version: Ubuntu (64 bit)
                      -> Next
                        Memory Size: >=1024 MB
                      -> Next
                           Hard Drive: 'Create a virtual hard drive now' [Create]
                           Hard drive file type: 'VDI (VirtualBox Disk Image)'
                           Storage on physical hard drive: 'Dynamically allocated'
                           File location and size: >= 10GB
                      'Settings'
                      Code:
                      - General -> Advanced
                           - Share Clipboard: Bidirectional
                           - Drag'n'Drop: Bidirectional
                      - System -> Processor
                           -  >= 2
                      - Display -> Video
                           - Video Memory = 128 MB
                           -  Enable 3D Acceleration
                      - Storage ->  CD -> via the symbol select the 'Ubuntu.iso' file you have downloaded
                      - USB -> Enable USB 2.0
                      - Shared Folder -> 'Machine Folders' -> [+]
                          [U][B]DO NOT CHECK[/B][/U] 'Auto-Mount' !!!
                      Start the VM and install the Ubuntu...

                      I use 12.10 and have to do something before installing the 'Guest Additions' so I don't know if you have to do it at 12.04 too:
                      Press 'Dash Home' in the launcher at left top corner and type terminal and click at the terminal icon.
                      Code:
                      uname -a
                      You get something like this => '... 3.5.0-27-generic ...'
                      You have to use 'sudo apt-get install linux-headers-xxxx-generic'
                      e.g.
                      Code:
                      sudo apt-get install linux-headers-3.5.0-27-generic
                      Install Guest Additions on Linux guest for e.g. "Copy and Paste"...
                      (Normally not need, but if you're looking for the separate iso of the 'VBoxGuestAdditions' (have a look at the correct version-folder)...)

                      Reboot VM (right top corner 'Restart...').

                      Mounting the Shared Folder -> 'Machine Folders'
                      Code:
                      sudo nano /etc/fstab
                      insert at last line
                      Code:
                      {your-share-name} /home/{your-user-name}/{your-share-name} vboxsf defaults  0   0
                      e.g.
                      Code:
                      Transfer /home/ich/Transfer vboxsf defaults  0   0
                      <ctrl + x>
                      <y>
                      <enter>
                      Code:
                      sudo reboot
                      After the reboot you have the folder at left side at 'Home Folder'...


                      It also exist a video HowTo at rockchip for Mint 14 as guest OS.


                      VIc) Development

                      Preparing your Linux
                      Code:
                      sudo apt-get install git-core flex bison build-essential gcc-arm-linux-gnueabihf libncurses5-dev zlib1g-dev lib32z1 lib32ncurses5 sharutils lzop
                      Kernel compiling
                      Some basic about compiler and make.

                      Demontager (THX) wrote a Quick Guide Custom kernel for RK3188 base on
                      phjanderson's (THX) Marvin - automated multi device kernel build tool.

                      Galland (THX) describe a way to build the kernel for recovery.img and he use another 'ARM compiler toolchain' instead of the 'arm-linux-gnueabihf-gcc'...
                      Because of this, he needs more packages to be installed:
                      'sudo apt-get install gnupg gperf libsdl-dev libesd0-dev libwxgtk2.8-dev zip curl libncurses5-dev zlib1g-dev ia32-libs lib32z1-dev lib32ncurses5-dev gcc-multilib g++-multilib'
                      Ian MORRISON 'linuxium' (THX) also describes a way to build the kernel for recovery.img and last but not least mmm123 (THX) also describes a way.
                      The different between Gallands or linuxiums way and mmm123s way to build kernel for recovery is the different way to "design" the "structure" at the kernel and recovery.img:
                      1.) kernel incl. the inintramfs + because of that the "fakeinitramfs" (it is empty) and at '.config'
                      Code:
                      CONFIG_INITRAMFS_SOURCE="{path to the cpio}"
                      2.) kernel + initramfs and at '.config'
                      Code:
                      CONFIG_INITRAMFS_SOURCE=""
                      I think way 2.) is like kernel.img & boot.img at NAND and way 1.) is like boot.img includes also a kernel at NAND...

                      A really nice HowTo Unpacking and repacking recovery or boot image


                      GitHub with rk3188 kernel sources:
                      aloksinha2001
                      (e.g. 'git://github.com/aloksinha2001/Linux3188' for Linux kernel version 3.0.36+)
                      phjanderson
                      (e.g. 'git://github.com/phjanderson/Linux3188' for Linux kernel version 3.0.36+)
                      linuxium
                      (e.g. 'git://github.com/linuxium/3188-SRC-AP6210' for Linux kernel version 3.0.36+ witch includes support for the Broadcom AP6210) (.config)
                      Galland
                      (e.g. 'git://github.com/Galland/Linux3188' for Linux kernel version 3.0.36+)
                      omegamoon
                      leolas
                      and more can be found with Google

                      As you've seen at the HowTo from Demontager, sometimes you must change some GPIO.
                      You can "catch" the information by GPIO module to check gpios in wifi and bt. Lets make the wifi and BT work in more devices.


                      Useful Tools:
                      unmkbootimg - reverse mkbootimg utility
                      ?? split_bootimg_pl ?? https://github.com/quarck/csetup/blo...lit_bootimg_pl
                      mkbootimg at 'git clone https://github.com/olegk0/tools.git' and also already compiled at Toolbox
                      - windows versions
                      -- Android Image Kitchen - Unpack/Repack Kernel/Recovery + ramdisk
                      -- imgRePackerRK (RockChip's firmware images unpacker/packer)
                      Boot.img tools [unpack, repack, ramdisk]
                      rk-tools - RockChip tools modified to work with both RK29 and RK30 boards (compiled)
                      RK3066 image kitchen (includes rk-tools and also 'mkkrnlimg' (largely already compiled))


                      My first steps as an example
                      Code:
                      sudo apt-get update
                      sudo apt-get upgrade 
                      sudo apt-get install git-core flex bison build-essential gcc-arm-linux-gnueabihf libncurses5-dev zlib1g-dev lib32z1 lib32ncurses5 sharutils lzop 
                       
                      mkdir RK3188
                      cd RK3188
                      mkdir Tools
                      mkdir SRC
                       
                      cd SRC
                      mkdir aloksinha
                      cd aloksinha
                      git clone git://github.com/aloksinha2001/Linux3188
                      # 167.42 MB
                       
                      cd Linux3188
                      mv .config .config_aloksinha
                      cp ~/Transfer/mmm123_config_1.1.1/config.1.1.1_recovery .config
                       
                      cd ~/RK3188/SRC/
                      mkdir mmm123_initramfs
                      cd mmm123_initramfs
                      cp ~/Transfer/mmm123_dx05_boot_from_sd_recovery_1.1.1/dx05_sd_linux_1.1.1_recovery.img recovery.img
                       
                      cd ~/RK3188/Tools
                      git clone git://github.com/olegk0/tools
                      mv tools olegk0
                      mkdir Kuisma
                      cd Kuisma
                      cp ~/Transfer/unmkbootimg.gz unmkbootimg.gz
                      gunzip unmkbootimg.gz
                       
                      cd ~/RK3188/SRC/mmm123_initramfs
                      ~/RK3188/Tools/Kuisma/unmkbootimg recovery.img > unmkbootimg_output.txt
                      cat unmkbootimg_output.txt
                      ls -al
                       
                      cd ~/RK3188/SRC/aloksinha/Linux3188
                      make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j2
                       
                      ls -al arch/arm/boot/
                      ls -al ~/RK3188/SRC/mmm123_initramfs/
                      mkdir ~/RK3188/Kernel
                      mkdir ~/RK3188/Kernel/mmm123
                      cd ~/RK3188/Kernel/mmm123
                      mv ~/RK3188/SRC/aloksinha/Linux3188/arch/arm/boot/Image Image
                      mv ~/RK3188/SRC/aloksinha/Linux3188/arch/arm/boot/zImage zImage
                       
                      ~/RK3188/Tools/olegk0/mkbootimg --kernel Image --ramdisk ~/RK3188/SRC/mmm123_initramfs/initramfs.cpio.gz --pagesize 16384 --ramdiskaddr 62000000 -o recovery.img
                       
                      ls -al
                      cp recovery.img ~/Transfer/recovery_mmm123.img
                      My first working kernel at my first working recovery.img

                      Next step will be to compile OC-kernel with marvin:
                      Code:
                      cd RK3188
                      cd Tools
                      git clone https://github.com/phjanderson/marvin
                      # 76.34 kB
                      cd ../SRC
                      mkdir phjanderson
                      cd phjanderson
                      git clone https://github.com/phjanderson/Linux3188
                      # Merge of https://github.com/aloksinha2001/Linux3188
                      # 167.50 MB
                      .......
                      RK3288 Devices
                      - Overview BOX (LINK !)
                      - Overview STICK (Dongle) (LINK !)

                      MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
                      UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
                      Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
                      Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

                      RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
                      Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

                      Comment


                        #12
                        Hi, no_spam_for_me , I can in this way instead of linux, install android to run with an external micro sd ?
                        k-r42 Board TN-BX09_V.2.1 2013/05/31 ,wifi RTL8188ETV,
                        rom 1.0.4 (kitkat) old revision Wasser

                        Comment


                          #13
                          Hi,

                          I never thought about it...

                          But I don't think so... you need to boot something from nand like the recovery.img which contains the kernel and the initramfs which is a must to have at nand... then you are able to mount the filesystem from SD... BUT instead of linux you need at android more then one partition at SD (e.g. system, userdata, user)... so the "root=LABEL=linuxroot" doesn't fit and isn't enough...
                          RK3288 Devices
                          - Overview BOX (LINK !)
                          - Overview STICK (Dongle) (LINK !)

                          MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
                          UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
                          Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
                          Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

                          RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
                          Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

                          Comment


                            #14
                            Originally posted by no_spam_for_me View Post
                            Hi,

                            I never thought about it...

                            But I don't think so... you need to boot something from nand like the recovery.img which contains the kernel and the initramfs which is a must to have at nand... then you are able to mount the filesystem from SD... BUT instead of linux you need at android more then one partition at SD (e.g. system, userdata, user)... so the "root=LABEL=linuxroot" doesn't fit and isn't enough...
                            well, I understood ..but for "htc hd2"(windows mobile) have been "android" to run with micro sd and for samsung gt-i8000 too(I used it was) as you said "you need more than one partition"


                            P.s but if I do this on the instructions? http://linux-sunxi.org/Boot_Android_from_SdCard
                            k-r42 Board TN-BX09_V.2.1 2013/05/31 ,wifi RTL8188ETV,
                            rom 1.0.4 (kitkat) old revision Wasser

                            Comment


                              #15
                              Yes, but:
                              "BootLoader
                              For SD card booting you'll need one of this pair of ..."
                              and I think that's the secrete you will need a patched bootloader...
                              You can also have a look at:

                              (I think that's the thread you should have a look at... but I'm not sure, have no time at the moment to search for more information...)
                              RK3288 Devices
                              - Overview BOX (LINK !)
                              - Overview STICK (Dongle) (LINK !)

                              MINIX NEO: Z64 W/A - (Intel Z3735F); X8-H Plus - (Amlogic S812H); A2 Lite (sponsored by minix.com.hk)
                              UGOOS UT3S (4/32GB with fan) - FW 2.0.6 - (RK3288) (sponsored by GearBest.com)
                              Tronsmart Draco AW80 Meta (2/16GB) - FW v2.0rc3 - (Allwinner A80) (sponsored by GeekBuying.com)
                              Beelink / UBOX R89 - FW 111k4110_1219 - (RK3288) (sponsored by Netxeon (Beelink))

                              RK3188: pcb => "CH001 1332 TN-BX09_V2.1" (K-R42 / CS918...) => wasser KK 1.0.3 (old rev)
                              Fly Mouse Mini Wireless Keyboard with 2 mode learning IR remote 'iPazzPort KP-810-16'

                              Comment

                              Working...
                              X