Coder Social home page Coder Social logo

realtimepi's Introduction

RealtimePi

An out of the box Raspberry Pi Raspbian distro with a realtime kernel. The kernel is a RaspberryPi kernel patched with the Preempt RT patch. Kernel patches are taken from here.

RealtimePi uses CustomPiOS, and you can use RealtimePi as a base image for CustomPiOS to make your own realtime kernel-based disros.

Donate

RealtimePi is 100% free and open source and maintained by Guy Sheffer. If its helping your life, your organisation or makes you happy, please consider making a donation. It means I can code more and worry less about my balance. Any amount counts. Also many thanks to people contributing code.

paypal

Where to get it?

You can use the pi-imager commuity raspberrypi imager here, unofficial section.

Or download directly form the official mirror here

Nightly builds are available on pi-imager above or here (currently built on demand)

How to use it?

  1. Unzip the image and install it to an SD card like any other Raspberry Pi image
  2. Configure your WiFi by editing realtimepi-wpa-supplicant.txt at the root of the flashed card when using it like a flash drive
  3. Boot the Pi from the SD card
  4. Hostname is realtimepi (not raspberrypi as usual)

Requirements

  • Raspberrypi, any.
  • 2A power supply

Features

  • Realtime kernel out of the box for both armv6 and armv7. All Pies that Raspbian supports are supported.
  • Tools to configure the network via text files /boot

Developing

Requirements

  1. qemu-arm-static
  2. CustomPiOS
  3. Downloaded Raspbian image.
  4. root privileges for chroot
  5. Bash
  6. realpath
  7. sudo (the script itself calls it, running as root without sudo won't work)

Build RealtimePi From within Raspbian / Debian / Ubuntu

RealtimePi can be built from Debian, Ubuntu, Raspbian. Build requires about 3.5 GB of free space available. Note it takes about 6 hours to builds the kernel, and 12 for both kernels! You can build it by issuing the following commands:

sudo apt-get install realpath p7zip-full qemu-user-static

git clone https://github.com/guysoft/CustomPiOS.git
git clone https://github.com/guysoft/RealtimePi.git
cd RealtimePi/src/image
wget -c --trust-server-names 'https://downloads.raspberrypi.org/raspbian_lite_latest'
cd ..
../../CustomPiOS/src/update-custompios-paths
sudo modprobe loop
sudo bash -x ./build_dist

Building RealtimePi Variants

RealtimePi supports building variants, which are builds with changes from the main release build. An example and other variants are available in the folder src/variants/example.

To build a variant use:

sudo bash -x ./build_dist [Variant]

Building Using Vagrant

There is a vagrant machine configuration to let build RealtimePi in case your build environment behaves differently. Unless you do extra configuration, vagrant must run as root to have nfs folder sync working.

To use it:

sudo apt-get install vagrant nfs-kernel-server
sudo vagrant plugin install vagrant-nfs_guest
sudo modprobe nfs
cd RealtimePi/src/vagrant
sudo vagrant up

After provisioning the machine, its also possible to run a nightly build which updates from devel using:

cd RealtimePi/src/vagrant
run_vagrant_build.sh

To build a variant on the machine simply run:

cd RealtimePi/src/vagrant
run_vagrant_build.sh [Variant]

Usage

  1. If needed, override existing config settings by creating a new file src/config.local. You can override all settings found in src/config. If you need to override the path to the Raspbian image to use for building RealtimePi, override the path to be used in ZIP_IMG. By default, the most recent file matching *-raspbian.zip found in src/image will be used.
  2. Run src/build_dist as root.
  3. The final image will be created in src/workspace

Attribution

Logo in some parts uses the svg: https://www.svgrepo.com/svg/276134/leaf

Code contribution would be appreciated!

realtimepi's People

Contributors

guysoft avatar lukexi 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

realtimepi's Issues

RaspberryPi 4 support

uname gives-
Linux realtimepi 4.19.50-v7l+ #895 SMP Thu Jun 20 16:03:42 BST 2019 armv7l GNU/Linux

I was expecting to see -RT or -preempt-rt or something.

LinuxCNC does not seem to think it is a realtime kernel:
pi@realtimepi:~/linuxcnc-dev/src $ latency-test
Note: Using POSIX non-realtime

Before I dig in to the LinuxCNC config and build, can you confirm that this is a realtime kernel, and which realtime flavour it is? I was assuming preempt-rt.

pi zero won't boot

haven't been able to boot a pi zero using the image:
2021-05-07-realtimepi-buster-armhf-lite-0.5.0.img
obtained from the mirror

Should I be using a different image?

Explain usage-statistics.service data collection purpose

First of all thank you very much for maintaining a ready-to-use Raspbian image driven by a real-time kernel! I use it for a low latency audio application with JACK audio server and it works great.

While I was looking for unneeded services to disable, I found that there is a service called usage-statistics.service located in /etc/systemd/system/ which doesn't seem to be provided by Raspbian itself:
[Unit]
Description=Send anonymous statistics of a distro
After=multi-user.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/boot_report
[Install]
WantedBy=multi-user.target

The service starts the attached script /usr/bin/boot_report.
boot_report.txt

It generates a unique id, gathers version and variant information to be send to: https://realtimepi-tracking.gnethomelinux.com/boot?id=ID_HERE&version=VERSION_HERE&variant=VARIANT_HERE which seems to me like fingerprinting and tracking devices using RealtimePi every 5 seconds.

Can you please explain why this is necessary and what do you do with that data? Another aspect that makes me sceptic, is that there's no information about tracking in project readme.

Can't boot Pi 1B+ on recent images

Hi ,
I tried booting my Pi without plugging everything ,only the ethernet cable for ssh, but it freezes.
Only working image was 0.1 and 0.2 with 4.9.68-rt60 kernel

Edit: Should check #13 first, will post back

how to get the correct linux-headers?

Hi @guysoft
Thanks for the great work to make realtime Pi work.
May I know the right way to get the linux-headers in order to compile some application on the Pi?
If I use apt-get install linux-headers , I can't get the correct header...

Thanks a lot!

default password?

Hi! There is no default password mentioned in the readme! Why? How can I use the system without it?

Make compile time faster

Compile time can easily reach up to 12 hours. The way to do this would be to build the kernel in the vm, and only then chroot with qemu. But CustomPiOSs architecture would not allow that.

Need linux-headers-4.14.34-rt27-v7 linux-image-4.14.34-rt27-v7

I tried to install the ethercat per this github: https://github.com/koppi/mk/blob/master/Machinekit-RT-Preempt-RPI.md
Build and install IgH EtherCAT master

git clone https://github.com/koppi/ec-debianize
cd ec-debianize
git checkout for-sittner
debian/configure uname -r
dpkg-checkbuilddeps
debuild -uc -us

when running checkbuilddeps I got this error:
pi@realtimepi:~/ec-debianize $ dpkg-checkbuilddeps
dpkg-checkbuilddeps: error: Unmet build dependencies: linux-headers-4.14.34-rt27-v7 linux-image-4.14.34-rt27-v7

my raspberry pi
pi@realtimepi:~/ec-debianize $ uname -a
Linux realtimepi 4.14.34-rt27-v7 #2 SMP PREEMPT RT Tue Jun 12 19:20:24 UTC 2018 armv7l GNU/Linux

Please help.
Thanks,
Tac.

Boot Freeze on old RPi

I have a 2011 RPi (Hardware : BCM2835 Revision : 000f) which freezes during boo after few blinks.
It's no overclocked and work absolutely fine with a Debian on it.
See picture.
img_2869
is it simply too old?

Cheers

all buster builds (nightly) broken - usb and networking dont work

Tried the buster builds, none of them work, usb and networking is broken. This on a rpi 2B. Guess its because it lacks bluetooth and wifi support and the build tried to activate that without support.

Since I can neither connect to ssh (due to broken networking) or connect a keyboard (due to broken usb) im unable to provide any form of logs or debugging info.

RealtimePi 0.4.0 RC2 status

Image:
http://unofficialpi.org/Distros/RealtimePi/nightly/2019-12-17_2019-09-26-realtimepi-buster-lite-0.4.0.zip
Md5: 2e88870a3fb38d5f63a0e070bc1e7561
Export:
http://unofficialpi.org/Distros/RealtimePi/nightly/2019-12-17_realtimepi-kernel-4.19.71.tar.gz

Please test and report issues.

New raspberrypi kernel will not build against rt61 or rt60

When building:

KERNEL_COMMIT=a00afce9b4231c120c8b007d2c48018547d0156f
22:59:51 ++++ export REALTIMEPI_RTPATCH=https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patch-4.9.76-rt61.patch.xz
1 out of 28 hunks FAILED -- saving rejects to file kernel/time/hrtimer.c.rej
 1 out of 45 hunks FAILED -- saving rejects to file kernel/workqueue.c.rej

wifi configuration difficulty

I am having trouble setting up wifi and having it automatically come up on boot.

I have separately tried editing realtimepi-wpa-supplicant.txt and realtimepi-network.txt to have my wifi ssid and key. I have also changed both. From reading the comments in realtimepi-network.txt it seems that only thins file needs to be edited for a single ssid setup.

I cannot however get the wlan going โ€“ neither automaticall at boot or manually via iwconfig or ifconfig or iw

What i have for the realtimepi-wpa-supplicant.txt, I put identical info to what I used with a standard raspbian install:

code:

country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={                                        #edited: typo in original post. was Network={
    ssid="myssid"
    psk="mypassword"
    key_mgmt=WPA-PSK
}

for realtimepi-network.txt I used:
code:

auto wlan0
iface wlan0 inet dhcp
    wpa-ssid "myssid"
    wpa-psk "mypassword"

Some help would be greatly appreciated.

Thank you

G

RealtimePi 0.5.0 RC1 status

Hey all,
Dues to lack of maintenance by the Rpi realtime linux branch, and since @kdoren got a 5.10.y tree working, I am release this release candidate. I tested it and it boots with RT kernel on a RaspberryPi 4B here I have.

pi@realtimepi:~ $ uname -a
Linux realtimepi 5.10.35-rt39-v7l+ #8 SMP PREEMPT_RT Mon May 24 16:06:59 PDT 2021 armv7l GNU/Linux

If anyone uses the exports and needs them please state so in the comments.

overlay file system doesn't work

If I try to switch on overlay file system in raspi-config (in Performance Options) then everything seems to be ok. It is generating new initrd image, cmdline.txt contains "boot=overlay", script /etc/initramfs-tools/scripts/overlay exists... But if I try to write something on disk after reboot then it is still there after next reboot. I tried 2021-05-07-realtimepi-buster-armhf-lite-0.5.0.img

Any ideas?

GUI

Hello guysoft,

I really like your RealtimePi. Is it possible to set up a GUI without a new build ?

Best Regards

Repository Request

This looks like the best way to easily get a realtime kernel for RaspberryPi OS. Is there anyway that the project could make a repository vanilla RaspberryPi OS (sounds tasty!) users can add to use the realtime kernel to save build time?

RealtimePi 0.3.0 RC1 status

Hey,
New Pi 3B+ is a good reason to do a new release candidate.
Its on the way to be built so will post link here when ready.

Disable the IRQ while the FIQ spin lock is held - USB might cause crashes

There is an known issue reported here:
https://www.osadl.org/Single-View.111+M5c03315dc57.0.html

Apart from the workaround there is a permanent solution in a series of patches:
https://www.osadl.org/monitoring/patches/rbs3s/usb-dwc_otg-fix-system-lockup-when-interrupts-are-threaded.patch.html

If I patch them a hunk fails:
drivers/usb/host/dwc_otg/dwc_otg_hcd.c.rej

I am not sure yet if this patch is necessary, and input/reports would be appreciated.

Remove kernel sources

Kernel sources are bloating the image, make a script that downloads and patches the sources instead.

Keyboard mapping

Aloha Guy,

Thank you for providing the compiled realtimepi kernel. I have been experimenting with it for a couple of days and I am writing to l;et you know about a peculiarity of the set up. I have noticed it in both 0.5.0 and 0.6.0 buster distros.

I believe that the default keyboard mapping is set to a locale other than US. I changed the default pi account password to one with a lot of special characters using a US keyboard directly connected to the Pi. A few minutes later I tried to ssh to the Pi from another machine with, yet another, US keyboard. To my surprise the password was rejected every time. It took me a few tries to figure out that the default locale might be GB and only because the British pound symbol showed up when I tried to type #.

I cleared the hurdle with

$ localectl set-keymap us

and I've been happily performing cyclictests ever since.

Since I haven't seen anything about keyboard mappings mentioned in the README I thought it might be worth bringing it up here.

Cheers,
BUI

Usage statistics

Hey,

whats this line for in src\config
"""
export USAGE_STATISTICS_URL=https://realtimepi-tracking.gnethomelinux.com
"""

I'm using the RPI as an EtherCAT master with a looptime of 3ms, but I kept having alot of jitter so the system would crash, I checked htop and saw that the following line got called a bunch of time corresponding to the system glitching:

curl --output /dev/null --silent --head --fail https://realtimepi-tracking.gnethomelinux.com/..........etc.....

went to the link manually, and it stopped showing up in htop and the system stopped glitching, any ideas?

(the clock is set wrong on the PI, I'm guessing the curl might be timing out because of that and subsequently messing up a bunch of stuff?)

failed start bluetooth module

I downloaded the version 2021-0-3-16 and as the title suggests it does not see the bcm3430 wifi chip, what should I do to solve the problem?

Blank screen in current nightly

Hey,
The screen does not work, I can ssh to the pi and it works, but at some point during initrd it just blanks.

kernel:

pi@realtimepi:~ $ uname -a
Linux realtimepi 5.10.74-rt54-v7l+ #1 SMP PREEMPT_RT Fri Oct 22 02:21:31 PDT 2021 armv7l GNU/Linux

dmesg output:

[    4.146628] systemd[1]: Mounted Kernel Debug File System.
[    4.152996] systemd[1]: Mounted Kernel Trace File System.
[    4.173659] systemd[1]: Finished Restore / save the current clock.
[    4.187902] systemd[1]: Finished Create list of static device nodes for the current kernel.
[    4.200033] systemd[1]: [email protected]: Succeeded.
[    4.213432] systemd[1]: Finished Load Kernel Module configfs.
[    4.223920] systemd[1]: [email protected]: Succeeded.
[    4.231243] systemd[1]: Finished Load Kernel Module drm.
[    4.241935] systemd[1]: [email protected]: Succeeded.
[    4.249425] systemd[1]: Finished Load Kernel Module fuse.
[    4.268826] systemd[1]: Finished Load Kernel Modules.
[    4.293133] systemd[1]: Mounting FUSE Control File System...
[    4.345472] systemd[1]: Mounting Kernel Configuration File System...
[    4.384652] systemd[1]: Started File System Check Daemon to report status.
[    4.439373] systemd[1]: Starting Apply Kernel Variables...
[    4.481896] systemd[1]: Finished Set the console keyboard layout.
[    4.497278] systemd[1]: Finished File System Check on Root Device.
[    4.503397] systemd[1]: Mounted FUSE Control File System.
[    4.508859] systemd[1]: Mounted Kernel Configuration File System.
[    4.521887] systemd[1]: Finished Apply Kernel Variables.
[    4.537956] systemd[1]: Starting Remount Root and Kernel File Systems...
[    4.652412] systemd[1]: Started Journal Service.
[    4.753670] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    4.843932] systemd-journald[152]: Received client request to flush runtime journal.
[    4.857779] systemd-journald[152]: File /var/log/journal/36dea56754e648649a5e65b630af15c7/system.journal corrupted or uncleanly shut down, renaming and replacing.
[    6.198665] random: crng init done
[    6.198681] random: 7 urandom warning(s) missed due to ratelimiting
[    7.929098] rpivid-mem feb00000.hevc-decoder: rpivid-hevcmem initialised: Registers at 0xfeb00000 length 0x00010000
[    7.966272] rpivid-mem feb10000.rpivid-local-intc: rpivid-intcmem initialised: Registers at 0xfeb10000 length 0x00001000
[    8.011083] rpivid-mem feb20000.h264-decoder: rpivid-h264mem initialised: Registers at 0xfeb20000 length 0x00010000
[    8.053107] rpivid-mem feb30000.vp9-decoder: rpivid-vp9mem initialised: Registers at 0xfeb30000 length 0x00010000
[    8.353747] mc: Linux media interface: v0.10
[    8.487857] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[    8.493975] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[    8.598891] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[    8.598917] [vc_sm_connected_init]: start
[    8.606735] videodev: Linux video capture interface: v2.00
[    8.654297] [vc_sm_connected_init]: installed successfully
[    8.757137] bcm2835_audio bcm2835_audio: card created with 8 channels
[    8.852396] brcmstb-i2c fef04500.i2c:  @97500hz registered in polling mode
[    8.938198] brcmstb-i2c fef09500.i2c:  @97500hz registered in polling mode
[    9.147468] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    9.168995] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    9.270388] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned.
[    9.273901] of_clk_hw_onecell_get: invalid index 5
[    9.273924] v3d fec00000.v3d: Failed to get clock (-2)
[    9.275119] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[    9.282342] v3d: probe of fec00000.v3d failed with error -2
[    9.321411] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[    9.595697] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13
[    9.660770] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14
[    9.721310] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15
[    9.746610] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[    9.746658] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[    9.781844] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16
[    9.781879] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[    9.781897] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[    9.781913] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[    9.781928] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[    9.827207] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[    9.827247] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[    9.845850] bcm2835-isp bcm2835-isp: Loaded V4L2 bcm2835-isp
[    9.900047] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[    9.900090] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[    9.938317] checking generic (3e2fd000 8ca000) vs hw (0 ffffffffffffffff)
[    9.938334] fb0: switching to vc4drmfb from simple
[    9.970024] bcm2835-codec bcm2835-codec: Device registered as /dev/video18
[    9.970088] bcm2835-codec bcm2835-codec: Loaded V4L2 image_fx
[   10.029987] Console: switching to colour dummy device 80x30
[   10.070660] of_clk_hw_onecell_get: invalid index 4
[   10.070682] vc4_hvs fe400000.hvs: Couldn't get core clock
[   10.070717] vc4-drm gpu: failed to bind fe400000.hvs (ops vc4_hvs_ops [vc4]): -2
[   10.071247] vc4-drm gpu: master bind failed: -2
[   10.078111] vc4-drm: probe of gpu failed with error -2
[   10.518175] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   10.704846] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   10.726249] cfg80211: loaded regulatory.db is malformed or signature is missing/invalid
[   11.113873] brcmfmac: F1 signature read @0x18000000=0x15264345
[   11.130372] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[   11.200041] usbcore: registered new interface driver brcmfmac
[   11.408987] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[   11.409141] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[   11.417271] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Nov  1 2021 00:37:25 version 7.45.241 (1a2f2fa CY) FWID 01-703fd60
[   15.532980] 8021q: 802.1Q VLAN Support v1.8
[   16.027842] uart-pl011 fe201000.serial: no DMA platform data
[   16.976648] Adding 102396k swap on /var/swap.  Priority:-2 extents:1 across:102396k SSFS
[   17.060877] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[   17.353072] bcmgenet fd580000.ethernet: configuring instance for external RGMII (RX delay)
[   17.353890] bcmgenet fd580000.ethernet eth0: Link is Down
[   22.546970] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   23.149865] Bluetooth: Core ver 2.22
[   23.150002] NET: Registered protocol family 31
[   23.150011] Bluetooth: HCI device and connection manager initialized
[   23.150053] Bluetooth: HCI socket layer initialized
[   23.150088] Bluetooth: L2CAP socket layer initialized
[   23.150147] Bluetooth: SCO socket layer initialized
[   23.164978] Bluetooth: HCI UART driver ver 2.3
[   23.164999] Bluetooth: HCI UART protocol H4 registered
[   23.165110] Bluetooth: HCI UART protocol Three-wire (H5) registered
[   23.165349] Bluetooth: HCI UART protocol Broadcom registered
[   23.682098] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   23.682115] Bluetooth: BNEP filters: protocol multicast
[   23.682157] Bluetooth: BNEP socket layer initialized
[   23.713725] NET: Registered protocol family 38
[   23.767244] cryptd: max_cpu_qlen set to 1000
[   24.614239] ICMPv6: process `dhcpcd' is using deprecated sysctl (syscall) net.ipv6.neigh.wlan0.retrans_time - use net.ipv6.neigh.wlan0.retrans_time_ms instead
``

cyclictest results

Hi,

I downloaded RealtimePi 0.5.0 to sd card, put it into RaspberryPi3, "apt install rt-tests" and ran "cyclictest".

According to various web sites I expected maximum latency about 100-200 microseconds but I got thousands.

Is there any explanation for this?
Shall I try something?
Have you ever tried to run cyclictest?

questions: image size, apt upgrade, multiple kernels

Hi, it's me again.
I'm still trying your distro/kernel and I have couple questions.

(1) When I download some of your releases then the zip file has about 0.5 GB.
Unzipped image has slightly more then 2 GB so I can't put it on 2 GB SD card.
(Don't laugh at me, one of my SD cards is really so small.)
When I dd the image to SD card then the files on disk take only about 1.3 GB.
Is it possible to create smaller images then 2 GB?
But this one is not very important.

(2) I'm linux beginner, let's say "average user".
What happens if I run "apt update && apt upgrade" in your distro?
I guess some of your files will be overwritten by orginal raspbian.
I confess that I tried it and my python application using SPI communication stopped working correctly.
So I had to return back to your image.

(3) Is it somehow possible to start with original Rasbian and put your kernel on the same SD card (same filesystem) and to switch between them?
What files are different in your kernel?
I guess it is /boot and /usr/lib/modules but I'm not sure.

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.