Features nach kompilieren?

SierraX

Well-Known Member
Das ist so etwas was ich garnicht mag... ein neues Gerät mit neuem Prozessor... OS ist auch frisch released worden und ein interessanter Teil des Prozessors wird von sysctl nicht ausgelesen weil 2 Zeilen in einer .c Datei fehlen.
Jetzt bin ich nicht so wirklich der Programmierer und könnte ein wenig Hilfe brauchen...
Gehen tuts um meine APU2 auf der ein pfSense 2.3 mit FreeBSD10.3 als unterbau...
Der Temperaturfühler des AMD GX-412TC Prozessors wird von amdtemp noch nicht unterstützt. Ich hab schon ein diff dafür gefunden und würde das jetzt ganz gerne Einpflegen... bin mir aber nicht über den Weg im klaren.
Glaube die Aufgabe ist klein genug um es vor Ort aus durchzuführen...
Ich denke mir das so...
ich brauch einen Compiler - pkg install gcc nehme ich an.
Die amdtemp.c datei aus den 10.3 sourcen holen... kennt jemand den Pfad bzw. einen link?
ggf noch eine header datei dafür... reicht bei sowas ggf. die amdtemp.h oder brauch ich mehr wie kernel header oder sowas?
Kompilieren und an das Binary an die richtige Stelle kopieren... kennt zufällig jemand den Pfad?
Danach ggf. neu starten.

Ist mein gedachter Weg halbwegs korrekt?

Danke im voraus.
 
Nein, Du brauchst schon etwas Kontext um eine Kernel-Modul zu bauen. Du besorgst Dir die passenden Sourcen, dann pflegst Du den Patch ein.

Zum Bauen dann:
Code:
cd /usr/src/sys/modules/amdtemp/
make depend
make
make install
make clean

Gegebenenfalls muss TARGET_ARCH noch korrekt gesetzt sein, wenn Du einen Crossbuild machst. Bei einem crossbuild muss das make install natürlich noch mit passendem DESTDIR aufgerufen werden.
 
Die amdtemp.c datei aus den 10.3 sourcen holen... kennt jemand den Pfad bzw. einen link?
ggf noch eine header datei dafür... reicht bei sowas ggf. die amdtemp.h oder brauch ich mehr wie kernel header oder sowas?
2 Fragen schon selbst gefunden... ach du sch.... sind das viele header.
freebsd/sys/dev/amdtemp/amdtemp.c

@Kamikaze : danke... hab deine Antwort gerade erst gesehen... sehr hilfreich... dann brauch ich neben gcc noch make und oder automake (pfSense ist afaik recht klein gehalten was DEV tools angeht)
 
Der Patch für amdtemp(4) ist inzwischen in 11-CURRENT eingeflossen: https://svnweb.freebsd.org/base?view=revision&revision=298270 Du kannst die Änderung daher mit svn in deinen Checkout mergen. Das ist etwas sicherer als manuell zu patchen, da svn mehr Wissen über die Zusammenhänge zwischen den Zweigen und Änderungen hat. Das ging so:

Code:
% cd /usr/src

# Erstmal ein paar Infos holen
% svnlite info
Path: .
Working Copy Root Path: /usr/src
URL: svn://freebsd-svn.zensiert/base/releng/10.3  <--------------- Das ist die Branch, auf der du bist.
Relative URL: ^/releng/10.3
Repository Root: svn://freebsd-svn.zensiert/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 297369
Node Kind: directory
Schedule: normal
Last Changed Author: marius
Last Changed Rev: 297264
Last Changed Date: 2016-03-25 02:02:12 +0100 (Fr, 25 Mär 2016)

# Nun mergen (Revision 298270 aus /head/ in den lokalen Checkout)
svnlite merge -c 298270 ^/head/

Danach kannst du wie von Kamikaze beschrieben weitermachen. Irgendwelche Pakete installieren musst du nicht. FreeBSD ist ein integriertes Basissystem, was alles mitbringt um sich selbst zu bauen.

Nachtrag, da ich per PN gefragt wurde: FreeBSD bietet unter https://github.com/freebsd/freebsd auch einen offiziellen Git-Mirror. Man könnte sich z.b. eine eigene Branch erstellen und mit 'git cherry-pick' sich diese eine Revision ziehen.
 
Last edited:
Back
Top