Aktualisieren des Chrubuntu 14.04-Kernels auf Acer C7 (derzeit 3.4.0)

0

Es gab eine andere, ähnliche Frage dazu Hier , aber es ist für alte Ubuntu-Versionen und das Skript funktioniert nicht mehr.

Während der Installation funktioniert das Skript gut, bis:

+ vbutil_kernel --verify /dev/sda6 --verbose + tail -1 + sed -e s/$/ disablevmx=off/ /config-2013-05-22-2259-orig.txt + vbutil_kernel --pack /newkernel --keyblock /usr/share/vboot/devkeys/kernel.keyblock --version 1 --signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk --config=/config-2013-05-22-2259.txt --vmlinuz /boot/vmlinuz-3.8.0 --arch x86_64 ERROR: Error reading kernel file. + vbutil_kernel --verify /newkernel ERROR: Unable to stat /newkernel: No such file or directory + dd if=/newkernel of=/dev/sda6 dd: opening ‘/newkernel’: No such file or directory

Das Problem ist also, dass dieser / newkernel aufgerufen wird, aber nicht vom Skript erstellt wurde, was anscheinend kein Problem war.

Kommentare zum ursprüngliche Website Erwähnen Sie für das Skript dasselbe Problem sowie eine Lösung für den 14.04. Leider bin ich ein absoluter Neuling in diesem Bereich und verstehe nicht vollständig, wie die Lösung implementiert wird:

Nur eine kurze Notiz: Ich habe die 3.8-Version des Skripts verwendet, um einen Kernel an einem Chrubutu-Acer zu arbeiten, der den Videoanforderungen von 14.04 entspricht. Musste old_bins in Position bringen, wie folgt:

mount -o ro /dev/sda3 /mnt cd /usr/bin cp -a /mnt/usr/bin/old_bins/

Und in kernel_next / Makefile kommentieren Sie die Anweisung stop-on-warning aus:

# KBUILD_CFLAGS += -Werror

und zu KBUILD_CFLAGS hinzufügen:

-fno-tree-vrp

und endete mit einem 3.8.11-Kernel, der gut funktioniert.

Ich denke, das ist eine Bitte. Kann jemand das Skript mit den erforderlichen Änderungen aktualisieren oder detaillierter beschreiben, was zu tun ist?

Kyle Letham
quelle
Nachdem das Skript funktioniert und der neue Kernel inkompatibel war, habe ich gelesen, dass dies der einfachste Weg ist, den Kernel in ChromeOS zu aktualisieren und dann Chrubuntu zu installieren und dabei den Kernel zu kopieren. Dies hat jedoch auch einen Haken bekommen. Ich werde es in eine neue Frage stellen.
Kyle Letham

Antworten:

0

Ich habe kein Chromebook, aber ich bin ein Linux-Benutzer, also ...

mount -o ro /dev/sda3 /mnt
cd /usr/bin
cp -a /mnt/usr/bin/ old_bins/

Dies sind Befehle, die auf einem Terminal-Emulator ausgeführt werden. Öffnen Sie einfach einen und melden Sie sich als an root mit dem su Befehl und geben sie danach aus. (das # Anmelden in einer Shell zeigt an, dass Sie Befehle als ausführen root Nutzer).

$ su
<enter your root password>
# mount -o ro /dev/sda3 /mnt
# cd /usr/bin
# cp -a /mnt/usr/bin/ old_bins/

Ich vermute das old_bins/ Teil ist vom Rest getrennt, wie der cp Der Befehl benötigt mindestens 2 Parameter, um zu funktionieren. Was es macht, ist das zu kopieren /mnt/usr/bin/ Verzeichnis (und dessen Inhalt) an old_bins/ Verzeichnis (das im Inneren endet /usr/bin nicht /mnt/usr/bin ).

Und ich gehe davon aus, dass Sie Zugriff auf diese Datei haben kernel_next/Makefile die ein makefile in einem Verzeichnis namens kernel_next. Sie müssen es also mit Ihrem bevorzugten Texteditor öffnen und eine hinzufügen # Zeichen (es bedeutet "Kommentar der folgenden Zeile" in vielen Sprachen) vor der Zeile KBUILD_CFLAGS += -Werror. So was:

Vor

KBUILD_CFLAGS += -Werror

Nach dem

# KBUILD_CFLAGS += -Werror

Und gleich danach die -fno-tree-vrp Flagge an die KBUILD_CFLAGS Aussage wie folgt: KBUILD_CFLAGS += -fno-tree-vrp. Sie erhalten am Ende so etwas in Ihrem Makefile:

# KBUILD_CFLAGS += -Werror
KBUILD_CFLAGS += -fno-tree-vrp

Dann können Sie mit dem fortfahren, was Sie getan haben. Viel Glück.

arielnmz
quelle
Dies war sehr hilfreich, um die im Beitrag vorgeschlagenen Änderungen vorzunehmen. Es funktionierte jedoch nicht für die Installation des Kernels - es wurde einfach nicht gestartet, nachdem ich das Skript ausgeführt hatte. Das eigentliche Problem war, dass das Skript das vmlinuz auf das mit 14.04 gelieferte aktualisieren musste. Nachdem ich das getan hatte, lief das Skript, aber wie ich schon sagte, schien es nicht kompatibel zu sein.
Kyle Letham