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