NanoBSD on Beaglebone Black
Manuel Stühn
freebsd at justmail.de
Wed Jul 25 19:04:06 UTC 2018
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
More information about the freebsd-embedded
mailing list