[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: "FATAL: kernel too old" when running mmdebootstrap'd riscv64 chroot



On 23 Oct 2018, at 06:51, Karsten Merker <merker@debian.org> wrote:
> 
> On Tue, Oct 23, 2018 at 02:57:35AM +0100, Luke Kenneth Casson Leighton wrote:
> 
>> karsten kindly just posted about mmdebootstrap on lowrisc-dev, i
>> thought i'd give it a shot.  below is what occurred.  i am using 4.13
>> on my laptop because efforts to use post-spectre linux kernels
>> actually resulted in "CPU has locked up" messages (which i've never
>> seen before).  also i have so many editor sessions open, across so
>> many projects, that considering rebooting is a major loss of time and
>> context.
>> 
>> is there any other way to resolve this?
>> 
>> l.
>> 
>> root@fizzy:/home/lkcl/src/libreriscv# mmdebstrap
>> --architectures=riscv64 --include="debian-ports-archive-keyring" sid
>> debian-riscv64-chroot/ "deb http://deb.debian.org/debian-ports/ sid
>> main" "deb http://deb.debian.org/debian-ports/ unreleased main"
>> I: riscv64 cannot be executed, falling back to qemu-user
>> I: automatically chosen mode: root
>> I: running apt-get update...
>> done
>> I: downloading packages with apt...
>> done
>> I: extracting archives...
>> done
>> I: installing packages...
>> done
>> FATAL: kernel too old
>> env --unset=APT_CONFIG /usr/sbin/chroot
>> /home/lkcl/src/libreriscv/debian-riscv64-chroot dpkg --install
>> --force-depends failed at /usr/bin/mmdebstrap line 480.
>> root@fizzy:/home/lkcl/src/libreriscv# vi /usr/^C
>> root@fizzy:/home/lkcl/src/libreriscv# grep -ri "FATAL: kernel too"
>> debian-riscv64-chroot/
>> Binary file debian-riscv64-chroot/usr/bin/qemu-riscv64-static matches
>> Binary file debian-riscv64-chroot/usr/sbin/ldconfig matches
>> Binary file debian-riscv64-chroot/usr/lib/riscv64-linux-gnu/ld-2.27.so matches
> 
> There is effectively no way to run Debian riscv64 binaries on a
> kernel below 4.15, because 4.15 is the first mainline kernel
> version that defines the riscv64 UAPI.  Both glibc and qemu-user
> depend on this, so for using the qemu user-mode emulation (which
> mmdebstrap does for executing the maintainer scripts in the
> packages it installs), the host kernel must be at least version
> 4.15 as well.

Unless I'm missing something, this argument is false? Sure you need a 4.15
kernel if you want to run riscv64 natively, but this is using qemu-user on
amd64; all the system calls will be translated to the amd64 versions that have
existed for years. If not, qemu-user itself would be imposing a minimum kernel
version.

NB: This is coming from glibc as it sets arch_minimum_kernel=4.15.0 in
sysdeps/unix/sysv/linux/riscv/configure.ac.

James


Reply to: