GithubHelp home page GithubHelp logo

hypriot / rpi-kernel Goto Github PK

View Code? Open in Web Editor NEW
134.0 16.0 46.0 287 KB

Build a Linux kernel for Raspberry Pi 0/1/2/3/3B+

License: MIT License

Shell 100.00%
raspberry-pi linux-kernel hypriot-os docker

rpi-kernel's Introduction

rpi-kernel Circle CI

Build a Raspberry Pi 0/1 and 2/3/3+ kernel with all kernel modules running Docker.

Build inputs

Kernel git commit

In the build script scripts/compile_kernel.sh there is a git commit hash to pin the build to this exact commit to make it reproducible.

If you want to build another kernel version, have a look at the upstream repo https://github.com/raspberrypi/linux and check for a good git commit hash and change the line

LINUX_KERNEL_COMMIT="c8baa9702cc99de9614367d0b96de560944e7ccd"

Kernel configs

In the local directory kernel_configs/ are two configuration files for Pi 0/1 and Pi 2/3/3+.

  • rpi1_docker_defconfig
  • rpi2_3_docker_defconfig

These configuration files are created from an initial make menuconfig and activating all kernel modules we need to run docker on the Raspberry Pi.

The differences to the upstream Raspberry Pi kernel is

$ diff kernel_configs/rpi1_docker_defconfig /var/kernel_build/cache/linux-kernel/arch/arm/configs/bcmrpi_defconfig
16d15
< CONFIG_MEMCG_SWAP=y
18,20d16
< CONFIG_CFS_BANDWIDTH=y
< CONFIG_RT_GROUP_SCHED=y
< CONFIG_CGROUP_PIDS=y
25d20
< CONFIG_CGROUP_PERF=y
354,355d348
< CONFIG_NET_L3_MASTER_DEV=y
< CONFIG_CGROUP_NET_PRIO=y
461d453
< CONFIG_IPVLAN=m

Build outputs

Kernel deb packages

The two relevant kernel deb packages are copied to build_results/kernel/${KERNEL_DATETIME}/.

  • kernel-commit.txt
  • raspberrypi-kernel_${KERNEL_VERSION}_armhf.deb
  • raspberrypi-kernel-headers_${KERNEL_VERSION}_armhf.deb

Build with Vagrant

To build the SD card image locally with Vagrant and VirtualBox, enter

vagrant up

Recompile kernel

Only on first boot the kernel will be compiled automatically. If you want to compile again, use these steps:

vagrant up
vagrant ssh
sudo su
/vagrant/scripts/compile_kernel.sh

Update kernel configs

To update the two kernel config files you can use this steps.

vagrant up
vagrant ssh
sudo su
MENUCONFIG=1 /vagrant/scripts/compile_kernel.sh

This will only call the make menuconfig inside the toolchain and copies the updated kernel configs back to kernel_configs/ folder to be committed to the GitHub repo.

Test kernel

To test the new kernel, copy all DEB packages to your Pi and login as root. Then install the following packages:

dpkg -i raspberrypi-kernel_${KERNEL_DATETIME}_armhf.deb

dpkg -i raspberrypi-kernel-headers_${KERNEL_DATETIME}_armhf.deb

Reboot your Pi.

rpi-kernel's People

Contributors

dieterreuter avatar govinda-fichtner avatar mathiasrenner avatar stefanscherer avatar watson81 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rpi-kernel's Issues

Vagrant build of "upgrade-kernel-to-4.4.27"

Looking to rebuild Hypriot kernel "upgrade-kernel-to-4.4.27" via Vagrant:-
git clone --branch upgrade-kernel-to-4.4.27 https://github.com/hypriot/rpi-kernel.git
cd rpi-kernel
vagrant up

The build fails at this point...
==> docker-raspbian: + git clone --depth 20 https://github.com/raspberrypi/linux.git /var/kernel_build/cache/linux-kernel
...
==> docker-raspbian: Checking out files: 100% (52748/52748), done.
...
==> docker-raspbian: + git checkout -qf 1c8b82bcb72f95d8f9d606326178192a2abc9c9c
==> docker-raspbian: fatal: reference is not a tree: 1c8b82bcb72f95d8f9d606326178192a2abc9c9c

s the depth too restricted for the 4.4.27 version of the Kernel?

I tried going into the Vagrant Virtualbox and increasing the depth, but still couldn't get this to work:-
vagrant ssh
mkdir /tmp/tmp
cd /tmp/tmp
git clone --depth 100 https://github.com/raspberrypi/linux.git
cd linux/
git checkout -qf 1c8b82bcb72f95d8f9d606326178192a2abc9c9c
fatal: reference is not a tree: 1c8b82bcb72f95d8f9d606326178192a2abc9c9c

Does anyone have any suggestions on how to resolve, or an alternative approach to rebuilding Hypriot kernel using 4.4.27 Linux kernel?

Thanks in advance.

Add support for SPI interface

Hello,

thanks for your amazing job!
I noticed that SPI is not enabled and since there is no raspi-conf, how is it possible to activate it ?
thx

Deb without prebuilt stuff

Hi,

thanks for your nice scripts!

But I have a question: Your scripts are almost entirely from scratch, but not at the end: at the end, for creating the final deb... you use prebuilt artifacts from this repository:
https://github.com/RPi-Distro/firmware

tar --exclude=modules --exclude=headers --exclude=.git -C $RASPBERRY_FIRMWARE -cf - . | tar -C $NEW_KERNEL -xvf -

As can be seen, you exclude modules and headers, but other prebuilt artifacts (from boot, extra, hardfp/opt/vc etc.) are still taken.

Where are these things compiled? Where are their sources?
Thanks.

Kernel 4.14.70 not present in packagecloud.io/hypriot/rpi

I see that 4.14.70 has been built and exists as a release on github, but it doesn't appear that it's been uploaded to the hypriot repos (packagecloud.io/hypriot/rpi).

I checked the CircleCI config, and it does appear that CI should be uploading new releases. Is this release intentionally excluded from the repos? Or did CircleCI fail?

I need at least 4.14.50 to pull in the vxlan issue referenced in raspberrypi/linux#2580 . I can pull the .debs manually from github, but I would feel more comfortable updating from the repos.

Kernel should support 'dtoverlay=pi3-disable-bt'

I'm trying to switch the UART (serial ports) using the dtoverlay=pi3-disable-bt flag in /boot/config.txt.

according to the help (dtoverlay -h pi3-disable-bt) this is supposed to link /dev/ttyAMA0 to the GPIO pins using the (non mini) UART.
but this is not working the way it's documented using the Hypriot kernel.

it is working ok on a standard raspbian kernel, that I can switch to using rpi-update (eg. 4.9.70-v7+).

my use case is a raspi accessing some home automation system via serial port, and I have the home automation software running as docker container on Hypriot.

vagrant up fails to build kernel

I haven't done much testing on it yet but a vagrant up gives the following error

==> docker-raspbian: *
==> docker-raspbian: * Restart config...
==> docker-raspbian: *
==> docker-raspbian: *
==> docker-raspbian: * RCU Subsystem
==> docker-raspbian: *
==> docker-raspbian: RCU Implementation
==> docker-raspbian: > 1. Preemptible tree-based hierarchical RCU (PREEMPT_RCU)
==> docker-raspbian: choice[1]: 1
==> docker-raspbian: Task_based RCU implementation using voluntary context switch (TASKS_RCU) [N/y/?] n
==> docker-raspbian: Tree-based hierarchical RCU fanout value (RCU_FANOUT) [32] 32
==> docker-raspbian: Tree-based hierarchical RCU leaf-level fanout value (RCU_FANOUT_LEAF) [16] 16
==> docker-raspbian: Disable tree-based hierarchical RCU auto-balancing (RCU_FANOUT_EXACT) [N/y/?] n
==> docker-raspbian: Enable RCU priority boosting (RCU_BOOST) [N/y/?] n
==> docker-raspbian: Real-time priority to use for RCU worker threads (RCU_KTHREAD_PRIO) [0] (NEW) aborted!
==> docker-raspbian: 
==> docker-raspbian: Console input/output is redirected. Run 'make oldconfig' to update configuration.
==> docker-raspbian: make[2]: *** [silentoldconfig] Error 1
==> docker-raspbian: make[1]: *** [silentoldconfig] Error 2
==> docker-raspbian: make: *** [include/config/tristate.conf] Error 2
==> docker-raspbian: make: Target `_all' not remade because of errors.
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

Wanted to report the issue before digging into it in case someone already knows a fix.

Pin kernel commit

I tried to build and deploy the 4.4.10 kernel with CircleCI. But unfortunately the build hangs at

+ make -j2 -k
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/zconf.lex.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf  --silentoldconfig Kconfig
*
* Restart config...
*
*
* RCU Subsystem
*
Make expert-level adjustments to RCU configuration (RCU_EXPERT) [N/y/?] (NEW) 

We have to pin the kernel commit we like to build with to make the build reproducible.
Something like https://github.com/hypriot/rpi-kernel/blob/master/scripts/compile_kernel.sh#L16

Build and deploy kernel with CircleCI to packagecloud

Did we any deployment to package cloud with CircleCI yet?

As the circle.yml only deploys on tagged builds with vx.x.x I think we uploaded the kernel manually to packagecloud in the past.

deployment:
  release:
    tag: /v[0-9]+(\.[0-9]+)*/
    commands:
      - package_cloud push hypriot-uploader/rpi/debian/jessie $CIRCLE_ARTIFACTS/*.deb

The circle.yml has a deployment section, but this has to be updated to make it work.

rpi-update removes hypriot kernel

Issue from Gitter @fmatejic:

Hi, I used rpi-update on HypriotOS. This was a mistake ... Do you have some howto how to patch kernel, or some notes for revert back normal state ?

HypriotOS: root@home in /etc/init.d
$ /etc/init.d/docker status
[FAIL] Docker is not running ... failed!
cat /var/log/docker.log | grep fatal
time="2015-05-23T23:22:41+02:00" level=fatal msg="Shutting down daemon due to errors: error intializing graphdriver: driver not supported"
$ uname -a
Linux home 3.18.14-v7+ #792 SMP PREEMPT Sat May 23 16:19:32 BST 2015 armv7l GNU/Linux

Thanks

LIRC Overlay not loaded - Dynamic Device Tree flag (DDTK) not set

This is a follow up on this issue:
raspberrypi/firmware#655

From a fresh install of HypriotOS 1.0, and after running the knlinfo script (https://raw.githubusercontent.com/raspberrypi/linux/rpi-4.4.y/scripts/knlinfo), I get:

Kernel trailer found at 9322496/0x8e4000:
  KVer: "Linux version 4.4.15-hypriotos-v7+ (ubuntu@box211) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #1 SMP PREEMPT Mon Jul 25 08:46:52 UTC 2016"
  DTOK: y
  DDTK: n
  270X: y
  283X: n
  283x: n

In order for .dtbo overlays to be loaded (as opposed to -overlay.dtb), DDTK should be y
Not sure if this is the right place to open this issue, I quickly scoped out the scripts from this repo and haven't found references to a kernel trailer.

Kernel 4.14.79 does not have dependency map

Issue: Kernel 4.14.79 seems to be working great, but it looks like the dependency map isn't being installed in /lib/modules/ during installation. This causes modprobe to fail with:

kmod_search_moddep() could not open moddep file '/lib/modules/4.14.79-hypriotos-v7+/modules.dep.bin'

Docker and Containerd require overlayfs, so the containerd service file fails trying to run /sbin/modprobe overlay

Workaround: sudo depmod on each pi fixed this pretty quickly and easily

Workaround is pretty simple, but I believe these files should be being created during the deb install (from searches it looks like linux-image-* should be installing these)

Powersave governor by default making config.txt overclocking difficult

On a newly installed Hypriot "Hector" 0.6, the default governor is powersave. To quote kernel.org:

2.2 Powersave
The CPUfreq governor "powersave" sets the CPU statically to the
lowest frequency within the borders of scaling_min_freq and
scaling_max_freq.

This effectively makes overclocking with config.txt impossible without changing the governor via startup script. I can't confirm it's the same for 0.61, but the kernel configs seem to imply that.

Of course I may be in the wrong, but I doubt this is intended. I'd recommend setting it either to ondemand or conservative.

Permissions issue

Hi,

I got permission issue during the provisioning.

Fixed by adding "sudo" in scripts/provision.sh

sudo /vagrant/scripts/prepare_build_environment.sh
sudo /vagrant/scripts/compile_kernel.sh

Issues:

docker-raspbian: your host and reload your VM. docker-raspbian: docker-raspbian: Guest Additions Version: 4.3.40 docker-raspbian: VirtualBox Version: 5.1 ==> docker-raspbian: Setting hostname... ==> docker-raspbian: Mounting shared folders... docker-raspbian: /vagrant => /home/tlams/raspkernel/rpi-kernel ==> docker-raspbian: Running provisioner: shell... docker-raspbian: Running: /tmp/vagrant-shell20190728-6960-1ltu9wy.sh docker-raspbian: E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock directory /var/lib/apt/lists/ docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) docker-raspbian: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? docker-raspbian: ++ nproc docker-raspbian: + NUM_CPUS=4 docker-raspbian: ############### docker-raspbian: ### Using 4 cores docker-raspbian: + echo '###############' docker-raspbian: + echo '### Using 4 cores' docker-raspbian: + BUILD_USER=vagrant docker-raspbian: + BUILD_GROUP=vagrant docker-raspbian: + BUILD_ROOT=/var/kernel_build docker-raspbian: + BUILD_CACHE=/var/kernel_build/cache docker-raspbian: + ARM_TOOLS=/var/kernel_build/cache/tools docker-raspbian: + LINUX_KERNEL=/var/kernel_build/cache/linux-kernel docker-raspbian: + LINUX_KERNEL_COMMIT=36612d5d7a88672a3e7dd6cb458dbbbca0d75efe docker-raspbian: + RASPBERRY_FIRMWARE=/var/kernel_build/cache/rpi_firmware docker-raspbian: + '[' -d /vagrant ']' docker-raspbian: + SRC_DIR=/vagrant docker-raspbian: + LINUX_KERNEL_CONFIGS=/vagrant/kernel_configs docker-raspbian: ++ date +%Y%m%d-%H%M%S docker-raspbian: + NEW_VERSION=20190728-094257 docker-raspbian: + BUILD_RESULTS=/var/kernel_build/results/kernel-20190728-094257 docker-raspbian: + X64_CROSS_COMPILE_CHAIN=arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64 docker-raspbian: + declare -A CCPREFIX docker-raspbian: + CCPREFIX["rpi1"]=/var/kernel_build/cache/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- docker-raspbian: + CCPREFIX["rpi2_3"]=/var/kernel_build/cache/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- docker-raspbian: + declare -A ORIGDEFCONFIG docker-raspbian: + ORIGDEFCONFIG["rpi1"]=bcmrpi_defconfig docker-raspbian: + ORIGDEFCONFIG["rpi2_3"]=bcm2709_defconfig docker-raspbian: + declare -A DEFCONFIG docker-raspbian: + DEFCONFIG["rpi1"]=rpi1_docker_defconfig docker-raspbian: + DEFCONFIG["rpi2_3"]=rpi2_3_docker_defconfig docker-raspbian: + declare -A IMAGE_NAME docker-raspbian: + IMAGE_NAME["rpi1"]=kernel.img docker-raspbian: + IMAGE_NAME["rpi2_3"]=kernel7.img docker-raspbian: *** all parameters are set *** docker-raspbian: *** the kernel timestamp is: 20190728-094257 *** docker-raspbian: ############################################# docker-raspbian: + echo '*** all parameters are set ***' docker-raspbian: + echo '*** the kernel timestamp is: 20190728-094257 ***' docker-raspbian: + echo '#############################################' docker-raspbian: + rm -fr /var/kernel_build/cache/rpi_firmware docker-raspbian: + prepare_kernel_building docker-raspbian: + setup_build_dirs docker-raspbian: + for dir in '$BUILD_ROOT' '$BUILD_CACHE' '$BUILD_RESULTS' '$ARM_TOOLS' '$LINUX_KERNEL' '$RASPBERRY_FIRMWARE' docker-raspbian: + create_dir_for_build_user /var/kernel_build docker-raspbian: + local target_dir=/var/kernel_build docker-raspbian: + mkdir -p /var/kernel_build docker-raspbian: mkdir: cannot create directory ‘/var/kernel_build’ docker-raspbian: : Permission denied The SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed. The output for this command should be in the log above. Please read the output to determine what went wrong.

Debian 9
Vagrant 2.2.3

Thomas.

SPI inside Docker Container

Hello,
first of , thanks for making my life easier. Now I'm afraid I'll have to make yours a tad harder. :(
I'm currently trying to enable SPI on my Raspberry Pi 2 B inside a Docker container.(edit: using HypriotOS 0.8)
In the end, I want to be able to communicate with a nrf24l01 wireless module via the RF24 lib.

For the image creation im following the tutorial here and adapted the run command to the following
docker run --cap-add ALL -v /lib/modules:/lib/modules -v /sys:/sys --device /dev/ttyAMA0:/dev/ttyAMA0 --device /dev/mem:/dev/mem --privileged -ti tschemmer/sensor bash
as Jerome states that it should enable modprobe within a container. I even added the --cap-add ALL for good measure ;)

The container starts up fine, sudo modprobe spi-bcm2835 works without error and lsmod returns the appropriate values:

root@24a1bfc0fab5:~/docker/test# lsmod
Module                  Size  Used by
...
uio                     8480  1 uio_pdrv_genirq
i2c_dev                 6372  0
spi_bcm2835             7412  0
snd_bcm2835            20243  0
snd_pcm                76775  1 snd_bcm2835
...

But when I checked the /dev directory, the spidev0.0 isnt there. So i tried to do it in the OS directly, outside of any container, according to Issue 13. Even added spi-bcm2835 to /etc/modules and restarted.
The spi is still not in the /dev directory, so trying the loopback test does not work for me.
Now my question is: what do I have to do to get that /dev/spidev0.0 up and running? I feel like im missing something :/ On raspbian i would be able to use raspi-config, is there somehting similar here?
Thanks for your help
Thomas

BUILD_GROUP is known via whoami?

Hi,

I am trying to rebuild the kernel by calling directly the build script because I cannot have vbox where I build the kernel.

Is there a reason why you use the whoami command to identify the group of the user?

else
  # running in drone build
  SRC_DIR=`pwd`
  BUILD_USER=`whoami`
  BUILD_GROUP=`whoami`
fi

I am forced to modify your script and to put the grp of the user by hand because I cannot find a good way to automate it.

Use build matrix at Travis CI

From #17 (comment)

Travis CI: "The job exceeded the maxmimum time limit for jobs, and has been terminated."

To solve this we should try a build matrix to build RPi1 and RPi2 kernel in parallel builds and merge the results into the single DEB file to be deployed to packagecloud Hypriot/rpi.

Allocate reasonable disk space to the image

There seems to be good logic to determine the amount of RAM needed for this image, but apparently the same cannot be said for the disk:

(...)
    docker-raspbian: + '[' '!' -z '' ']'
    docker-raspbian: + '[' -d /var/kernel_build/cache/rpi_firmware/.git ']'
    docker-raspbian: + echo 'Cloning /var/kernel_build/cache/rpi_firmware with commit '
    docker-raspbian: + git clone https://github.com/RPi-Distro/firmware /var/kernel_build/cache/rpi_firmware
    docker-raspbian: Cloning into '/var/kernel_build/cache/rpi_firmware'...
    docker-raspbian: fatal: write error: No space left on device
    docker-raspbian: fatal: index-pack failed
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

$ df -h
Filesystem      Size   Used  Avail Capacity iused      ifree %iused  Mounted on
/dev/disk1     465Gi  267Gi  197Gi    58% 3286932 4291680347    0%   /
devfs          332Ki  332Ki    0Bi   100%    1150          0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%       0          0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%       0          0  100%   /home

I'm trying now with the following changes and this vagrant plugin to resize the disk size:

$ git diff
diff --git a/Vagrantfile b/Vagrantfile
index aec79ea..23f08f6 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -36,15 +36,17 @@ Vagrant.configure(2) do |config|
     config.ssh.forward_agent = true
     config.vm.provision "shell", path: "scripts/provision.sh", privileged: false
     config.vm.provider "virtualbox" do |vb, override|
-       override.vm.box = "ubuntu/trusty64"
+       override.vm.box = "ubuntu/bionic64"
        # find out on which host os we are running
        host = RbConfig::CONFIG['host_os']
        vb.customize ["modifyvm", :id, "--ioapic", "on"]
-       vb.memory = get_memory_setting(host)
+       vb.memory = "4096"
+          config.disksize.size = '50GB'
        vb.cpus = get_cpu_setting(host)
     end
     config.vm.provider "docker" do |docker|
-      docker.image = "tknerr/baseimage-ubuntu:14.04"
+      docker.image = "ubuntu/bionic64"
+         docker.disksize.size = '50GB'
       docker.has_ssh = true
       docker.remains_running = false
     end

deleting kernel source and firmware tools any time the build script is launched

Hello folks,

any time I launch the compile_kernel.sh script the linux-source and rpi_firmware folders and deleted, downloaded again and checked out to a given specific commit..

Shouldn't you fix this behaviour ? I am working on a patch supporting the new RPi 4 board and the arm64 architecture as well...

You should also consider to use the cross-toolchains already residing in the repositories of most popular linux distributions, first of all the debian based, installing them with a simple package manager one liner command (instead of cloning them)...

Arm64?

Will there be an ARM64 version of hypriot? (They have slightly more docker images)

fatal error: version number

When I attempt to compile this using Ubuntu 18.04 (chosen because it is the same distro and version as the CI system uses), I get the following error:

    default: + dch -v 20230402-182945 --package raspberrypi-firmware 'add Hypriot custom kernel'
    default: dch: fatal error at line 1092:
    default: New version specified (20230402-182945) is less than
    default: the current version number (1:1.20230306-1)!  Use -b to force.

Adding the -b flag to dch resolves this error.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.