Hi Mike,
You are probably right.
At the moment the seL4 doesn't save and restore FPU state on ARM. I believe we are currently working on adding this currently within Data61. Once that's done, the vmm will need to be set up to provide the guest access to the FPU. Until then the guests have to use software floating point.
Kind regards,
Kent McLeod.
________________________________________
From: Mike Clark
Hi Mike,
We weren't able to get the official Nvidia Ubuntu distribution (R21.5) working on top of the version of Linux that we provide for the arm-camkes-vm. We created our own debian rootfs ourselves using debootstrap. The link to one we created is here (https://drive.google.com/uc?id=0B9-Sswvx8AZ2Tjg2UUQxWExqdnM). You would need to extract the rootfs onto your partition by:
cd destination_directory cat debian.cpio | fakeroot cpio --extract --make-directories --no-preserve-owner --preserve-modification-time
If you don't feel comfortable running some random unsigned OS binaries you downloaded off of the internet, you could build one yourself. When I originally made ours I used debootstrap with software floating point toolchains (armel). I have tried to recreate my process below. It will be faster to do the following on local disk, then move everything over to the sdcard partition at the end.
Hope this helps.
Kind regards, Kent McLeod
# Get dependencies apt-get install debootstrap qemu-user-static binfmt-support
# First stage of debootstrap export targetdir=`pwd`/rootfs export distro=stretch mkdir -p $targetdir sudo debootstrap --arch armel --foreign $distro $targetdir
# Copy qemu arm binary into new rootfs for chroot sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin sudo cp /etc/resolv.conf $targetdir/etc
# chroot into environment and set env variables. sudo chroot $targetdir export distro=stretch export LANG=C
# Second stage debootstrap /debootstrap/debootstrap --second-stage
# System configuration cat <<EOT > /etc/apt/apt.conf.d/71-no-recommends APT::Install-Recommends "0"; APT::Install-Suggests "0"; EOT cat <<EOT > /etc/apt/sources.list deb http://httpredir.debian.org/debian $distro main contrib non-free deb-src http://httpredir.debian.org/debian $distro main contrib non-free deb http://httpredir.debian.org/debian $distro-updates main contrib non-free deb-src http://httpredir.debian.org/debian $distro-updates main contrib non-free deb http://security.debian.org/debian-security $distro/updates main contrib non-free deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free EOT
# Set root password and hostname passwd root echo 'armel-root' > /etc/hostname # Configure timezone dpkg-reconfigure tzdata # Update everything apt-get update
# Cleanup and leave apt-get clean rm /etc/resolv.conf exit
# At this stage you can create a cpio archive to then extract out onto the SD partition of the TK1 # Assuming your partion is mounted somewhere cd $targetdir && find . | cpio -o -H newc > /mnt/debian.cpio cd /mnt cat debian.cpio | fakeroot cpio --extract --make-directories --no-preserve-owner --preserve-modification-time
________________________________________ From: Devel
on behalf of Mike Clark Sent: Wednesday, May 31, 2017 11:52 PM To: devel@sel4.systems Subject: [seL4] Using linux-tk1-debian on camkes-arm-vm I have seL4 running on a TK1 using linux-tk1-initrd. I'd like to get the linux-tk1-debian version running to load the userspace off of the emmc drive of the TK1. FWIW, I did flash the TK1 to the latest verison, R21.5.
The default DTS has root=/dev/mmcblk0p2 in the bootargs. When booting with this, I get a kernel panic. I also tried changing that to root=/dev/mmcblk0p1 (since that partition was the larger one on the emmc). It also gives a kernel panic, albeit a different message.
With mmcblk0p1, the message I get is:
[ 10.092841] EXT2-fs (mmcblk0p1): error: couldn't mount because of unsupported optional features (240) [ 10.102749] EXT4-fs (mmcblk0p1): couldn't mount as ext3 due to feature incompatibilities [ 10.137427] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null) [ 10.145696] VFS: Mounted root (ext4 filesystem) on device 179:1. [ 10.162679] devtmpfs: mounted [ 10.165845] Freeing unused kernel memory: 252K (c0aa9000 - c0ae8000) [ 10.224352] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004 [ 10.224352] [ 10.233480] CPU: 0 PID: 1 Comm: init Tainted: G W 4.3.0-rc5 #1 [ 10.240429] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree) [ 10.246713] [<c0015d30>] (unwind_backtrace) from [<c0012b74>] (show_stack+0x10/0x14) [ 10.254457] [<c0012b74>] (show_stack) from [<c009247c>] (panic+0xa0/0x214) [ 10.261330] [<c009247c>] (panic) from [<c002566c>] (complete_and_exit+0x0/0x1c) [ 10.268627] [<c002566c>] (complete_and_exit) from [<00000000>] ( (null)) [ 10.275408] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004
With mmcblk0p2, the message I get is:
[ 10.095124] F2FS-fs (mmcblk0p2): Magic Mismatch, valid(0xf2f52010) - read(0x1000000) [ 10.102907] F2FS-fs (mmcblk0p2): Can't find valid F2FS filesystem in 1th superblock [ 10.111127] F2FS-fs (mmcblk0p2): Magic Mismatch, valid(0xf2f52010) - read(0xfb000000) [ 10.118994] F2FS-fs (mmcblk0p2): Can't find valid F2FS filesystem in 2th superblock [ 10.126711] F2FS-fs (mmcblk0p2): Magic Mismatch, valid(0xf2f52010) - read(0x1000000) [ 10.134472] F2FS-fs (mmcblk0p2): Can't find valid F2FS filesystem in 1th superblock [ 10.142167] F2FS-fs (mmcblk0p2): Magic Mismatch, valid(0xf2f52010) - read(0xfb000000) [ 10.149983] F2FS-fs (mmcblk0p2): Can't find valid F2FS filesystem in 2th superblock [ 10.159891] F2FS-fs (mmcblk0p2): Magic Mismatch, valid(0xf2f52010) - read(0x1000000) [ 10.167669] F2FS-fs (mmcblk0p2): Can't find valid F2FS filesystem in 1th superblock [ 10.175842] F2FS-fs (mmcblk0p2): Magic Mismatch, valid(0xf2f52010) - read(0xfb000000) [ 10.183743] F2FS-fs (mmcblk0p2): Can't find valid F2FS filesystem in 2th superblock [ 10.191391] F2FS-fs (mmcblk0p2): Magic Mismatch, valid(0xf2f52010) - read(0x1000000) [ 10.199146] F2FS-fs (mmcblk0p2): Can't find valid F2FS filesystem in 1th superblock [ 10.206813] F2FS-fs (mmcblk0p2): Magic Mismatch, valid(0xf2f52010) - read(0xfb000000) [ 10.214653] F2FS-fs (mmcblk0p2): Can't find valid F2FS filesystem in 2th superblock [ 10.222551] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2) [ 10.230976] CPU: 0 PID: 1 Comm: swapper Tainted: G W 4.3.0-rc5 #1 [ 10.238184] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree) [ 10.244462] [<c0015d30>] (unwind_backtrace) from [<c0012b74>] (show_stack+0x10/0x14) [ 10.252205] [<c0012b74>] (show_stack) from [<c009247c>] (panic+0xa0/0x214) [ 10.259079] [<c009247c>] (panic) from [<c0aaa238>] (mount_block_root+0x21c/0x230) [ 10.266554] [<c0aaa238>] (mount_block_root) from [<c0aaa368>] (mount_root+0x11c/0x124) [ 10.274459] [<c0aaa368>] (mount_root) from [<c0aaa4bc>] (prepare_namespace+0x14c/0x194) [ 10.282451] [<c0aaa4bc>] (prepare_namespace) from [<c0aa9dec>] (kernel_init_freeable+0x1c0/0x1d0) [ 10.291315] [<c0aa9dec>] (kernel_init_freeable) from [<c07c4b20>] (kernel_init+0x8/0xe8) [ 10.299397] [<c07c4b20>] (kernel_init) from [<c000f4d8>] (ret_from_fork+0x14/0x3c) [ 10.306959] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
Is there a guide for how to setup the emmc on the TK1 to boot using linux-tk1-debian?
Will an older version of the TK1 image from Nvidia work or do I need to do a custom debian install (like this https://wiki.debian.org/InstallingDebianOn/NVIDIA/Jetson-TK1)?
_______________________________________________ Devel mailing list Devel@sel4.systems https://sel4.systems/lists/listinfo/devel