NanoBSD on Beaglebone Black

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

NanoBSD on Beaglebone Black

Manuel Stühn-2
Hi,
I'm trying to get NanoBSD running on Beaglebone Black and had some
setbacks:

1. using the standard slice layout does not find/load a kernel:

[..]
DRAM: 512MB
Card did not respond to voltage select!
Card did not respond to voltage select!
Card did not respond to voltage select!
Number of U-Boot devices: 2
U-Boot env: loaderdev not set, will probe all devices.
Found U-Boot device: disk
  Probing all disk devices...
  Checking unit=0 slice=<auto> partition=<auto>...
  Checking unit=1 slice=<auto> partition=<auto>...
  Checking unit=2 slice=<auto> partition=<auto>...
  Checking unit=3 slice=<auto> partition=<auto>...
  Checking unit=4 slice=<auto> partition=<auto>...
  Checking unit=5 slice=<auto> partition=<auto>...
Found U-Boot device: net
Booting from net0:
link up on port 0, speed 100, full duplex

After switching in nanobsd/embedded/common the slice numbers of
NANO_SLICE_CFG(2->3) and NANO_SLICE_ROOT(3->2), it boots without
problems

2. devmatch cant read linker hints file:

dmesg:
[..]
Starting devd.
devmatch: Can't read linker hints file.
devmatch: Can't read linker hints file.
devmatch: Can't read linker hints file.
devmatch: Can't read linker hints file.
devmatch: Can't read linker hints file.
devmatch: Can't read linker hints file.
[..]

Google told me to "kldxref -R /boot", and after adding a function into
my nanobsd config file for the bbb which chroots into the nanobsd-world
and calls this "kldxref -R /boot" it boots without these messages. How
should this be done correctly?

3. ABI mismatch of chrooted nanobsd and booted nanobsd:

I would like to install some packages into the nanobsd image, so i
extended my config file by a some code:

prepare_chroot() {
  mkdir -p ${NANO_WORLDDIR}/usr/local/bin
  cp /usr/local/bin/qemu-arm-static  ${NANO_WORLDDIR}/usr/local/bin

  mount -t devfs devfs ${NANO_WORLDDIR}/dev
}

cleanup_chroot() {

  umount ${NANO_WORLDDIR}/dev
  rm -f ${NANO_WORLDDIR}/usr/local/bin/qemu-arm-static
}

install_packages () (
  mkdir -p ${NANO_WORLDDIR}/usr/local/etc/pkg/repos
  sed 's/\${ABI}/FreeBSD:12:armv7/g' ${NANO_WORLDDIR}/etc/pkg/FreeBSD.conf \
  > ${NANO_WORLDDIR}/usr/local/etc/pkg/repos/FreeBSD.conf

  echo "nameserver 8.8.8.8" > ${NANO_WORLDDIR}/etc/resolv.conf

  prepare_chroot
  chroot ${NANO_WORLDDIR} pkg install -y vim-console mosquitto
  cleanup_chroot

  rm -f ${NANO_WORLDDIR}/etc/resolv.conf
)

chroot'ing into the nanobsd world and querying hw.machine_arch gets me
armv6.  Booting the image and querying the variable on real hardware
returns armv7.  This prevents me from install packages without altering
the FreeBSD.conf. Who replies queries of sysctl-variable
"hw.machine_arch" in chroot?

Thanks
--
Manuel
_______________________________________________
[hidden email] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-embedded
To unsubscribe, send any mail to "[hidden email]"