Eigenen Linux Kernel für Raspberry Pi in Ubuntu 16.06 x64 VM cross-compilen/kompilieren

Da der aktuelle VXLAN-Test, wie viele Ideen, auch dieses mal wieder ein paar Dinge voraussetzt die bisher wohl niemand gemacht hat, brauchen wir einen neuen Kernel für unseren Pi. :(

sudo apt-get install git-core
sudo apt-get install gcc-4.7-arm-linux-gnueabi
sudo apt-get install build-essential
sudo apt-get install ncurses-dev
sudo modprobe configs
mkdir src
cd src/
git init
git clone git://github.com/raspberrypi/tools.git
git clone --depth 1 git://github.com/raspberrypi/linux.git
mkdir linux-4.4.y
cd linux-4.4.y/
git init
git fetch git://github.com/raspberrypi/linux.git rpi-4.4.y:refs/remotes/origin/rpi-4.4.y
git checkout refs/remotes/origin/rpi-4.4.y
make mrproper
export KERNEL=kernel
export KERNEL=kernel7
export KERNEL=kernel7
$ make ARCH=arm CROSS_COMPILE=~/src/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- olddefconfig
make ARCH=arm CROSS_COMPILE=~/src/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- menuconfig
make -j 2 ARCH=arm CROSS_COMPILE=~/src/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-
mkdir /tmp/modules
make ARCH=arm CROSS_COMPILE=~/src/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=/tmp/modules modules_install
scp arch/arm/boot/Image pi@192.168.0.98:
cd /tmp
tar czf modules.tar.gz modules/
scp modules.tar.gz pi@192.168.0.98:
ssh pi@192.168.0.98
pi@pi3:~ $ mv Image kernel_vxlan_4.4.11.y.img
pi@pi3:~ $ sudo cp kernel_vxlan_4.4.11.y.img /boot/
pi@pi3:~ $ tar xvzf modules.tar.gz
... wird entpackt nach modules/ ...
pi@pi3:~ $ sudo cp -r modules/lib/* /lib/
pi@pi3:~ $ sudo vi /boot/config.txt
# Am Ende der Datei einfügen oder den Eintrag ersetzen, vorher "i" drücken für "Insert"
kernel=kernel_vxlan_4.4.11.y.img
# :wq zum Beenden
pi@pi3:~ $ sudo reboot
pi@pi3:~ $ uname -a
Linux pi3 4.4.11-v7+ #1 SMP Sat May 28 18:13:41 CEST 2016 armv7l GNU/Linux
pi@pi3:~ $ sudo modprobe vxlan
pi@pi3:~ $ sudo modprobe bridge
pi@pi3:~ $ lsmod
Module                  Size  Used by
joydev                  9373  0 
evdev                  11567  2 
openvswitch            85373  4 
nf_defrag_ipv6         14822  1 openvswitch
nf_conntrack           79602  1 openvswitch
bnep                   10592  2 
hci_uart               19216  1 
btbcm                   6181  1 hci_uart
bluetooth             336951  22 bnep,btbcm,hci_uart
brcmfmac              186926  0 
brcmutil                5901  1 brcmfmac
cfg80211              437818  1 brcmfmac
cdc_ether               4279  0 
rfkill                 16728  3 cfg80211,bluetooth
r8152                  34768  0 
snd_bcm2835            20452  0 
snd_pcm                77450  1 snd_bcm2835
snd_timer              19590  1 snd_pcm
snd                    53776  3 snd_bcm2835,snd_timer,snd_pcm
bcm2835_gpiomem         3211  0 
bcm2835_wdt             3434  0 
uio_pdrv_genirq         3202  0 
uio                     8416  1 uio_pdrv_genirq
vxlan                  32491  0 
ip6_udp_tunnel          1706  1 vxlan
udp_tunnel              2191  1 vxlan
bridge                 97692  0 
stp                     1643  1 bridge
llc                     3772  2 stp,bridge
ipv6                  352477  28 bridge,nf_defrag_ipv6