Feature #11677

Test hardware support with Debian on ARM chromebook

Added by Dr_Whax 2016-08-20 12:19:20 . Updated 2019-08-31 13:56:15 .

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Target version:
Start date:
2016-08-20
Due date:
% Done:

10%

Feature Branch:
Type of work:
Research
Blueprint:

Starter:
Affected tool:
Deliverable for:

Description

We want to test hardware support with debian on ARM chromebooks, this specific model is an Chromebook c201.


Subtasks


History

#1 Updated by LABRADOR 2017-01-28 16:05:45

Chromebook Asus C201 (veyron-speedy) w/ libreboot

  • CPU: Rockchip RK3288
  • RAM: 4GB

works with Debian testing (since mainline kernel 4.8):

$ uname -a
Linux generic 4.9.0-1-armmp-lpae #1 SMP Debian 4.9.2-2 (2017-01-12) armv7l GNU/Linux

working:

  • Touchpad (manually insmod […]elan_i2c.ko)
  • Wifi (firmware-brcm80211 from non-free)

flaws:

  • eMMC support still (linux 4.9) unreliable (cf. https://wiki.debian.org/InstallingDebianOn/Asus/C201#Mainline_Linux_Kernel)
  • Kernel installation procedure (cf. https://wiki.debian.org/InstallingDebianOn/Asus/C201#Mainline_Linux_Kernel):
    [/boot is part of rootfs, /dev/mmcblk0p2 is not mounted]
    # cgpt show /dev/mmcblk0
           start        size    part  contents
               0           1          PMBR (Boot GUID: C75051E3-15D4-B24C-AE5E-4011F51A74AE)
               1           1          Pri GPT header
               2          32          Pri GPT table
         4476992    26275776       1  Label: "STATE"
                                      Type: Linux data
                                      UUID: 0E35E859-6F3E-1449-B5D2-BA81F89340DE
           20480       65504       2  Label: "KERN-A"
                                      Type: ChromeOS kernel
                                      UUID: 5F800574-E6D5-E744-83D7-8D4480686376
                                      Attr: priority=15 tries=5 successful=1
         4476928          32       3  Label: "ROOT-A"
                                      Type: ChromeOS rootfs
                                      UUID: 0A33BE8A-CFE7-8D45-9787-31AE05B7882C
           85984          32       4  Label: "KERN-B"
                                      Type: ChromeOS kernel
                                      UUID: 198DFC6C-A67E-1543-B8A1-A5A5D81355D2
                                      Attr: priority=0 tries=0 successful=0
          282624          32       5  Label: "ROOT-B"
                                      Type: ChromeOS rootfs
                                      UUID: 86304895-396C-BE49-8E8D-D3DC0199E198
           16448           1       6  Label: "KERN-C"
                                      Type: ChromeOS kernel
                                      UUID: CB9BDECB-1C9D-CD43-A17F-CA434AAED815
                                      Attr: priority=0 tries=0 successful=0
           16449           1       7  Label: "ROOT-C"
                                      Type: ChromeOS rootfs
                                      UUID: 91C78600-7DED-5D4E-BE46-4AFE8A64BABB
           86016       32768       8  Label: "OEM"
                                      Type: Linux data
                                      UUID: 29EE74F6-63D0-7C47-87CF-A864C666F7AD
           16450           1       9  Label: "reserved"
                                      Type: ChromeOS reserved
                                      UUID: 017E3776-32B4-3C44-AFE1-5D013E7C3054
           16451           1      10  Label: "reserved"
                                      Type: ChromeOS reserved
                                      UUID: 88BE3A30-5B96-DD45-BA10-4D54BEC90494
              64       16384      11  Label: "RWFW"
                                      Type: ChromeOS firmware
                                      UUID: 148731FB-76B7-214C-946A-657DBB577EC8
          249856       32768      12  Label: "EFI-SYSTEM"
                                      Type: EFI System Partition
                                      UUID: C75051E3-15D4-B24C-AE5E-4011F51A74AE
        30785503          32          Sec GPT table
        30785535           1          Sec GPT header
    
    # cp /usr/lib/linux-image-4.9.0-1-armmp-lpae/rk3288-veyron-speedy.dtb /boot/
    # cat /boot/debian-4.9.0-1.its
    /dts-v1/;
    
    / {
        description = "Linux kernel image with one or more FDT blobs";
        #address-cells = <1>;
        images {
            kernel@1{
                description = "vmlinuz";
                data = /incbin/("vmlinuz-4.9.0-1-armmp-lpae");
                type = "kernel_noload";
                arch = "arm";
                os = "linux";
                compression = "none";
                hash@1{
                    algo = "sha1";
                };
            };
            fdt@1{
                description = "dtb";
                data = /incbin/("rk3288-veyron-speedy.dtb");
                type = "flat_dt";
                arch = "arm";
                compression = "none";
                hash@1{
                    algo = "sha1";
                };
            };
            ramdisk@1{
                description = "initrd.img";
                data = /incbin/("initrd.img-4.9.0-1-armmp-lpae");
                type = "ramdisk";
                arch = "arm";
                os = "linux";
                compression = "none";
                hash@1{
                    algo = "sha1";
                };
            };
        };
        configurations {
            default = "conf@1";
            conf@1{
                kernel = "kernel@1";
                fdt = "fdt@1";
                    ramdisk = "ramdisk@1";
            };
        };
    };
    
    # mkimage -f debian-4.9.0-1.its debian-4.9.0-1.itb
    
    # cat /boot/kernel.flags
    console=tty1 nosplash root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 lsm.module_locking=0
    
    # cat /boot/sign-kernel.sh
    vbutil_kernel --pack /boot/vmlinuz.signed \
    --keyblock /usr/share/vboot/devkeys/kernel.keyblock \
    --version 1 \
    --signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
    --bootloader /boot/kernel.flags \
    --config /boot/kernel.flags \
    --vmlinuz /boot/debian-4.9.0-1.itb \
    --arch arm
    
    # sh /boot/sign-kernel.sh
    
    # dd if=/boot/vmlinuz.signed of=/dev/mmcblk0p2

not working/not tested:

  • hw video decoding
  • hw 3D acceleration

#2 Updated by intrigeri 2017-04-11 08:24:58

  • Status changed from Confirmed to In Progress
  • % Done changed from 0 to 10

Test results on arm64 Chromebooks: https://tails.boum.org/blueprint/ARM_platforms/Acer_Chromebook_R_13_CB5-312T/

#3 Updated by BitingBird 2017-08-26 16:00:50

  • Target version deleted (2017)

#4 Updated by Dr_Whax 2018-08-25 13:26:05

Do we want to want to focus on just arm64 or armhf as well?

#5 Updated by Dr_Whax 2018-08-25 13:28:54

Dr_Whax wrote:
> Do we want to want to focus on just arm64 or armhf as well?

As indicated here: https://labs.riseup.net/code/issues/12111#note-13

Just arm64. I have a pine64 that I could try things on..

#6 Updated by Dr_Whax 2019-07-07 15:17:45

  • Assignee deleted (Dr_Whax)

#7 Updated by intrigeri 2019-08-31 13:56:16

  • Status changed from In Progress to Resolved

I think our initial tests are enough to already draw some conclusions.