LINUX.ORG.RU

Не могу чрутнуться в qemu-arm-static

 ,


1

1

Так как Raspberry Pi жутко тормозная, я решил все необходимое сделать на компьютере (в qemu chroot), а потом просто перенести образ на флешку.

Скопировал в /usr/bin целевой системы qemu-arm-static, написал такой скрипт для упрощения chroot:

#!/bin/bash
CHRT="ROOT"
if [ $# != 1 ]; then
    echo "usage: $0 image"
    exit 1
fi

function mnt(){
    mount -o bind $1 ${CHRT}$1
}
[ -f /proc/sys/fs/binfmt_misc/arm ] || echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\x
ff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-static:' > /proc/sys/fs/binfmt_misc/register
mount -o loop,offset=62914560 $1 ${CHRT}
mount -o loop,offset=2962227200 $1 ${CHRT}/Data
mnt /dev
mnt /sys
mount -t proc none ${CHRT}/proc
mnt /run
chroot ${CHRT}
Однако, ничего в чруте, кроме выполнения ls/cd сделать не могу, ругается:
./Chroot Raspberry-3.12.32_last.img
root@ishtar:/# apt-get update
qemu: uncaught target signal 4 (Illegal instruction) - core dumped
Illegal instruction (core dumped)
root@ishtar:/Data/pi/Apogee/opt/apogee/libapogee-3.0.2865# ./configure
qemu: uncaught target signal 4 (Illegal instruction) - core dumped
Illegal instruction (core dumped)

Что я сделал не так?

☆☆☆☆☆

Это называется - в гугле забанили!

Здесь со ссылкой сюда пишут, что тупо надо закомментировать содержимое /etc/ld.so.preload.

Если его потом надо будет раскомментировать перед запуском на целевой системе, то нужно будет внести эту поправочку в скрипт.

Eddy_Em ☆☆☆☆☆
() автор топика

Я в шоке!

Несколько секунд ушло на apt-get update, скорость apt-get upgrade ограничена лишь скоростью интернета.

Правда, сборка все равно медленнее, чем без qemu работает. Но зато на глаз — где-то на порядок шустрей, чем на "малинке". Там уж что-то собирать вообще не вариант.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от anonymous

Старая.

Про летает не сказал бы: у меня еще есть кубитраки, так кроскомпиляция ядра на нормальном компьютере раз в 5 шустрей идет, чем на кубитраке. Правда, я туда еще SSD не прифигачил, подозреваю, что если на SSD компилять, то будет нормально.

Eddy_Em ☆☆☆☆☆
() автор топика

Черт!

Где-то я налажал.

/usr/bin/ld: .libs/ITimer.o: Relocations in generic ELF (EM: 3)
.libs/ITimer.o: error adding symbols: File in wrong format
collect2: ld returned 1 exit status
Makefile:520: recipe for target 'libapogee.la' failed

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: Черт! от Eddy_Em

А что говорит

file .libs/ITimer.o
? Если ничего подозрительного, тогда наоборот, надо на остальные *.o посмотреть.

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

Да не, все ОК: там просто остались осколки от предыдущей сборки (до apt-get upgrade).

Eddy_Em ☆☆☆☆☆
() автор топика

Собрал уже библиотечку. Остается только собрать libwebsockets, которая чего-то ругается на неправильные ассемблерные вставки.

Eddy_Em ☆☆☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.