Skip to content

quarkscript/linux-armv7-xe303c12-only

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Custom linux kernel for old armv7 chromebook

short demo of running linux on this device.

  • kernel - Forked from archlinux|ARM. Archlinux|ARM package build script. Difference:

    • lighter and faster as a result of build for specific hardware and not for whole armv7 platform
    • single package for kernel, headers and flash image
    • no initrd (any way it is not used)
    • detects Chrome OS Kernel partition for flashing kernel
    • lets user to change kernel boot string during installation (with some conditions)
    • support samsung\google snow - XE303C12 chromebook only.
  • firmware - Archlinux|ARM package build script. It collect a couple of necessary files and saves some space compared to regular linux-firmware.

  • some forked apps may run faster than from repo or may not ( builded )

Some (not all) packages from AUR could be installed by sfslib like ./sfslib armget 'pkg name'

The same, but for void-linux. Second forked source is void-packages.

  • kernel - Void-linux package build script can be cross-compiled with xbps-src into void-linux package with armv7hf-glibc or armv7hf-musl architectures.
  • firmware - Void-linux package build script. It collect a couple of necessary files and takes up less space than a regular linux-firmware package.
  • mesa - Void-linux package build script, forked from void-packages
  • xorg video driver - Void-linux package build script, forked from archlinux|ARM (it looks like no more required)

Some already builded packages can be found at releases

Kali / Devuan linux

To try Kali on that device you may use official build script from Kali developers or my rewrited mod of that script Devuan linux disk image could be build with rewrited script too.

test disk images

Disk images created for demonstration, testing and recovery things. For daily use user should tune it to his own needs and upsize it to used pendrive, sdcard and so on.

empty disk image maker could be used to create an empty disk image of the required size demonstration

Created disk images:

disk images updated 27.11.2022

Example of run under hypervisor (qemu)

qemu-system-arm -machine virt,highmem=off -m 1024 -kernel zImage -append "root=/dev/vda2" -serial stdio -drive if=none,file=armv7hf_q.img,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -netdev user,id=net0 -device virtio-net-device,netdev=net0 

zImage could be extracted from second partition of disk image like:

mkdir dsk
sudo mount -t btrfs -o,loop,offset=$((512*40960)) armv7hf_q.img dsk
cp dsk/boot/zImage zImage
sudo umount dsk

Example of cross-compiling Void-linux packages

(looks like xbps is no longer part of void-packages so this example requires Linux with xbps-static-bin installed or Void-linux)

git clone https://github.com/void-linux/void-packages.git
git clone https://github.com/quarkscript/linux-armv7-xe303c12-only.git

cd void-packages/

## copy templates to src-dir
  cp -fr ../linux-armv7-xe303c12-only/voidlinux/linux_xe303c12 srcpkgs/
  cp -fr ../linux-armv7-xe303c12-only/voidlinux/linux_xe303c12_firmware srcpkgs/
    
##############################################################

## make glibc build env.
  ./xbps-src binary-bootstrap
  
## make glibc kernel package
  ./xbps-src -a armv7hf build linux_xe303c12
  ./xbps-src -a armv7hf pkg linux_xe303c12

## make glibc firmware package
  ./xbps-src -a armv7hf pkg linux_xe303c12_firmware

##############################################################

## make musl build env.
  ./xbps-src -m x86_64-musl binary-bootstrap x86_64-musl

## make musl kernel package
  ./xbps-src -m x86_64-musl -a armv7hf-musl build linux_xe303c12
  ./xbps-src -m x86_64-musl -a armv7hf-musl pkg linux_xe303c12 

## make musl firmware package
  ./xbps-src -m x86_64-musl -a armv7hf-musl pkg linux_xe303c12_firmware
  

If you plan to re-sign kernel during installation then you will need to install a uboot-mkimage/uboot-tools firstly.

Be aware! Given scripts or packages are not officially supported by any mentioned Linux distributions.