NanoBSD: Problem mit Firmware für RAL-Treiber im Image

2

Mit meinem aktuellen NanoBSD-Build kann ich die ral0-Schnittstelle nicht aufrufen. Stattdessen bekomme ich folgendes:

...
rt2561sfw: could not load firmware image, error 2
ral0: rt2661_load_microcode: unable to retrieve firmware image rt2561sfw
ral0: rt2661_init_locked: could not load 8051 microcode, error 22

Ich fand heraus, dass ich die Firmware für das Gerät benötige, von dem ich gehofft hatte, dass es mit RAL- und RALFW-Modulen in meiner nanobsd.conf-Datei funktioniert:

NANO_NAME="nano"

NANO_KERNEL=GENERIC
NANO_ARCH=i386
TARGET_ARCH=i386; export TARGET_ARCH
TARGET_CPUTYPE=i386; export TARGET_CPUTYPE
NO_CLEAN=YES
NANO_DRIVE=ad1

NANO_MEDIASIZE=1900000
NANO_CONFSIZE=40960
NANO_RAM_ETCSIZE=20480
NANO_RAM_TMPVARSIZE=102400
NANO_NEWFS="-m 0 -b 4096 -f 512 -i 8192 -O1"
# NANO_PMAKE="make -j 8"
NANO_PMAKE="${NANO_PMAKE} -DDB_FROM_SRC"
NANO_MODULES="pf pflog if_bridge bridgestp netgraph/netgraph netgraph/ether netgraph/pppoe netgraph/socket wlan wlan_xauth wlan_tkip wlan_ccmp wlan_wep wlan_rssadapt firmware amdtemp bios wlan_amrr ral ralfw"

# 0 -> Leave second image all zeroes so it compresses better.
# 1 -> Initialize second image with a copy of the first
NANO_INIT_IMG2=0


CONF_INSTALL='
WITHOUT_INSTALLLIB=yes
WITHOUT_TOOLCHAIN=yes
'

CONF_WORLD='
WITHOUT_ACCT=yes
WITHOUT_ACPI=yes
WITHOUT_AMD=yes
WITHOUT_APM=yes
WITHOUT_AT=yes
WITHOUT_ATM=yes
WITHOUT_AUDIT=yes
WITHOUT_AUTHPF=yes
WITHOUT_BLUETOOTH=yes
WITHOUT_CALENDAR=yes
WITHOUT_CDDL=yes
WITHOUT_CTM=yes
WITHOUT_CVS=yes
WITHOUT_DICT=yes
WITHOUT_EXAMPLES=yes
WITHOUT_FDT=yes
WITHOUT_FLOPPY=yes
WITHOUT_FREEBSD_UPDATE=yes
WITHOUT_GAMES=yes
WITHOUT_GCOV=yes
WITHOUT_GPIB=yes
WITHOUT_GPIO=yes
WITHOUT_INFO=yes
WITHOUT_IPFILTER=yes
WITHOUT_IPFW=yes
WITHOUT_IPX=yes
WITHOUT_JAIL=yes
WITHOUT_LOCALES=yes
WITHOUT_LOCATE=yes
WITHOUT_LPR=yes
WITHOUT_NDIS=yes
WITHOUT_NIS=yes
WITHOUT_NLS=yes
WITHOUT_NLS_CATALOGS=yes
WITHOUT_NS_CACHING=yes
WITHOUT_PC_SYSINSTALL=yes
WITHOUT_PORTSNAP=yes
WITHOUT_PROFILE=yes
WITHOUT_QUOTAS=yes
WITHOUT_RCMDS=yes
WITHOUT_RCS=yes
WITHOUT_ROUTED=yes
WITHOUT_SHAREDOCS=yes
WITHOUT_SOURCELESS=yes
WITHOUT_SYSINSTALL=yes
WITHOUT_USB=yes
WITHOUT_MAN=yes
WITHOUT_MAN_UTILS=yes
'

cust_local() {
        echo '
sshd_enable=YES
ifconfig_re0="DHCP"
' >>${NANO_WORLDDIR}/etc/rc.conf
}

customize_cmd cust_pkg
customize_cmd cust_comconsole
customize_cmd cust_install_files
customize_cmd cust_allow_ssh_root
customize_cmd cust_local

Dies führt jedoch dazu, dass der Kernel nicht installiert werden kann. Insbesondere erhalte ich die folgende Fehlermeldung

===> ral (install)
install -o root -g wheel -m 555   if_ral.ko /usr/obj/nanobsd.nano//_.w/boot/kernel
install -o root -g wheel -m 555   if_ral.ko.symbols /usr/obj/nanobsd.nano//_.w/boot/kernel
===> ralfw (install)
===> ralfw/rt2561 (install)
install -o root -g wheel -m 555   rt2561fw.ko /usr/obj/nanobsd.nano//_.w/boot/kernel
install: rt2561fw.ko: No such file or directory
*** Error code 71

Ich habe herumgegoogelt, aber nichts Nützliches gefunden. Ich schätze, das ist grundlegendes FreeBSD-Modul-Building-Zeug ... aber ich sehe es nicht.

Zabuzzman
quelle

Antworten:

0

Alle Quellen warten darauf, dass ich sie einfach lese, und so fand ich diesen interessanten Eintrag in / usr / src / sys / modules / Makefile :

.if ${MK_SOURCELESS_UCODE} != "no"
_bce=           bce
_fatm=          fatm
_fxp=           fxp
_ispfw=         ispfw
_mwlfw=         mwlfw
_ralfw=         ralfw
_sf=            sf
_sn=            sn
_ti=            ti
_txp=           txp
.endif

Was zu steuern scheint, ob die RAL-Firmware (und eine Reihe anderer Firmwares) im Kernel enthalten ist. (Lesen Sie den Rest der Datei für die Details).

Also dachte ich mir, dass das Setzen des Folgenden in der nanobsd.conf alles Elend lösen würde:

CONF_BUILD='
MK_SOURCELESS_UCODE=yes
'

Seltsamerweise versagt jetzt die Build-Welt (nicht der Build-Kernel!) Mit:

--- buildworld ---
make[1]: "/usr/src/share/mk/bsd.own.mk" line 457: MK_SOURCELESS_UCODE can't be set by a user.
*** [buildworld] Error code 1

das verdient einen Thread für sich.

Wie auch immer, wenn Sie versuchen:

CONF_BUILD='
_ralfw=ralfw
'

Die Dinge scheinen so zu laufen, wie ich es wollte.

Ich konnte das neue Image nicht auf das betreffende Gerät laden, aber das Installationsprotokoll zeigt diesmal, dass das Ralfw- Modul installiert wird.

Das Problem ist behoben, aber ich bin immer noch an einer Erklärung von jemandem interessiert, der eine klare Sicht auf all dies hat.

Zabuzzman
quelle
Habe gerade das NanoBSD-Image auf das Gerät geladen und der ral0-Treiber funktioniert nun wie erwartet
Zabuzzman