Kali-ARM on Samsung Snow Chromebook

I have a Samsung chormebook Snow. This is an ARM based chreomebook released in 2012. It has an Exynos 5250 processor. It's a bit low on the IO (1x USB2, 1x USB3 and a SD card slot) but i have it, and it's still useful. The size (~11" screen) is pretty compact and keyboard feel is decent too for the size.

I started using Kali-ARM on the chromebook when official ChromeOS support for it finished a few years ago. When i first installed it, offensive security had an image avaliable for download ( https://www.offensive-security.com/kali-linux-arm-images/ ) but with the latest release (2020.1) it was not listed, so i decided to try building it myself. And hence this journey and notes.

This is some quick notes on what i needed to do to get kali-arm building.

  1. Go to https://gitlab.com/kalilinux/build-scripts/kali-arm and follow the instructions listed in the Readme.md. In my case i had a lot of issues with getting the basic process to work without issues. I'll go into my issues and the solutions below. The instructions from the readme are basically:

    git clone https://gitlab.com/kalilinux/build-scripts/kali-arm
    cd kali-arm
    sudo ./build-deps.sh
    sudo ./chromebook-arm-exynos.sh 2019.2
  2. If you don't have any issues with that process, you'll then get a nice image that you then copy (dd) to a SD card or USB stick. If you don't resize the created image, you'll boot just fine. if you want to resize the image to let you use the full capacity of the disk, you'll need some additional magic.


So. the issues i had were:

  1. the build-deps.sh script not installing all the required dependencies. I have no idea why, but several packages just got missed. this would cause the build to stop, which then requires deleting the WIP files and starting again.

  2. The version of debootstrap needs to be relatively recent. I was getting an issue with the line:

    LANG=C systemd-nspawn -M ${machine} -D kali-${architecture} /debootstrap/debootstrap --second-stage

    where the error was complaining about /proc being already mounted. From what i can tell, older versions of debootstrap do not check to see if /proc is mounted and then fail out. I upgraded the version of debootstrap and the problem stopped. The old version was iirc 1.0.97 and then version i upgraded to was 1.0.123

  3. Resizing the size of the partition deletes some magic chromeos partition information, which then causes the the chromebook to not boot and beep at you. This was a very frustrating excercise for me until i understood what was going on. the tool that is needed is cgpt . Some details of what is going on is here: http://manpages.ubuntu.com/manpages/bionic/man1/cgpt.1.html

    The key is about adding the priority, tries and succesful flags to the partition that holds the kernel. Assuming that you've copied the disk image created by the kail-arm build, and then resized the rootfs partion, you should run something like the following command

    sudo cgpt add -i 1 -P 10 -T 10 -S 1

    This sets the priority to 10, the number of tries to 10 and the succesful value to 1.



And that's all i have to say at the moment.

Back to the index