Last active
August 25, 2017 08:25
-
-
Save Obihoernchen/28c02a8eeb37f816b4f3e9ea6f150f42 to your computer and use it in GitHub Desktop.
Use new official 4.9 kernel build
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
DLPATH=ftp://vserver.obihoernchen.net/ODROID-XU4-KERNEL/LATEST-4.9 | |
if [[ "$1" =~ ^(ftp|https?):// ]]; then | |
DLPATH="$1" | |
fi | |
rm -r /boot/* | |
# for safety | |
rm -r /tmp/kernel-update | |
echo "Download kernel" | |
mkdir /tmp/kernel-update | |
cd /tmp/kernel-update | |
wget $DLPATH -O kernel.tar.xz | |
echo | |
echo "Extract kernel" | |
tar -xf kernel.tar.xz | |
KERNEL_VERSION=$(ls config-* | sed -e 's/^config-//') | |
echo | |
echo "Kernel Version: $KERNEL_VERSION" | |
echo | |
echo "Copy firmware and modules" | |
cp -R lib/* /lib | |
echo | |
echo "Create intramfs and uInitrd" | |
cp config-$KERNEL_VERSION /boot | |
update-initramfs -c -k $KERNEL_VERSION | |
mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n "uInitrd-$KERNEL_VERSION" -d /boot/initrd.img-$KERNEL_VERSION /boot/uInitrd-$KERNEL_VERSION | |
echo | |
echo "Install kernel" | |
mount /dev/mmcblk0p1 /media/boot | |
mount /dev/mmcblk1p1 /media/boot | |
cp zImage /media/boot | |
DTB=$(ls *.dtb) | |
cp $DTB /media/boot | |
sed -i -r "s/\S+\.dtb;/${DTB};/" /media/boot/boot.ini | |
echo "Using dtb: $DTB" | |
cp /boot/uInitrd-$KERNEL_VERSION /media/boot/uInitrd | |
sync | |
sleep 3 | |
umount /media/boot | |
rm -r /tmp/kernel-update | |
echo | |
echo "Kernel updated successfully" | |
echo "Reboot to use new kernel" |
Second try:
I've created /media/boot and run update script:
./update-kernel.sh
rm: cannot remove ‘/tmp/kernel-update’: No such file or directory
Download kernel
--2017-08-21 13:33:22-- ftp://vserver.obihoernchen.net/ODROID-XU4-KERNEL/LATEST-4.9
=> ‘kernel.tar.xz’
Resolving vserver.obihoernchen.net (vserver.obihoernchen.net)... 188.68.56.63, 2a03:4000:6:f172::
Connecting to vserver.obihoernchen.net (vserver.obihoernchen.net)|188.68.56.63|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD (1) /ODROID-XU4-KERNEL ... done.
==> SIZE LATEST-4.9 ... 14553744
==> PASV ... done. ==> RETR LATEST-4.9 ... done.
Length: 14553744 (14M) (unauthoritative)
LATEST-4.9 100%[===========================================================================================================================================>] 13.88M 1.12MB/s in 11s
2017-08-21 13:33:33 (1.29 MB/s) - ‘kernel.tar.xz’ saved [14553744]
Extract kernel
Kernel Version: 4.9.38
Copy firmware and modules
Create intramfs and uInitrd
update-initramfs: Generating /boot/initrd.img-4.9.38
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
W: mdadm: no arrays defined in configuration file.
update-initramfs: Converting to u-boot format
Image Name: uInitrd-4.9.38
Created: Mon Aug 21 13:33:58 2017
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 6106265 Bytes = 5963.15 kB = 5.82 MB
Load Address: 00000000
Entry Point: 00000000
Install kernel
mount: special device /dev/mmcblk0p1 does not exist
sed: can't read /media/boot/boot.ini: No such file or directory
Using dtb: exynos5422-odroidxu4.dtb
Kernel updated successfully
Reboot to use new kernel
So this time only these 2 commands failed:
- mount: special device /dev/mmcblk0p1 does not exist - but I think that's normal since I also have /dev/mmcblk1p1
- sed: can't read /media/boot/boot.ini: No such file or directory - no idea why /media/boot/boot.ini is not present?
Any help appreciated.
Hi,
yes unfortunately OMV3/armbian changed the boot layout so this script is not compatible with OMV3 right now.
Will you update the script for OMV3 in the near future? Just askin.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I installed Armbian_5.33_Odroidxu4_Debian_jessie_next_4.9.37.img for odroid XU4, then I used this script trying to install latest kernel with mali support. Since the preinstalled one 4.9.37-odroidxu4 didn't have support for it. I run your script and those are the last lines I got:
I wasn't cautious and didn't see about /media/boot does not exists and some failures... only Kernel updates successfully which was false since then I was in a loop and now I have to reinstall it :)
What exactly is "/media/boot"? Do I have to create it manually or is this on openmediavault3 named something else?
Thank you!