• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

FreeBSD MIPS Portierung bzw. sich beteiligen am Projekt.

das.chaos

Duracellhase 2.0
Themenstarter #1
Ich ueberflog seit geraumer Zeit den Quellcode von AR71XX basierten SoC und fing an mit Code-Base zu arbeiten, da ich Zuhause mehrere TL-WR1043NDv2 [fuers "bricking"] vorraetig habe. :D

Nachdem ich mir die Implementierung [bspw.] des LEDE Projektes anguckte und einige Datenblaetter analysierte, kam ich zur Erkenntnis, dass das doch ganz easy ist.

Ich fing an mich an bspw. arge(4) "abzuarbeiten" und ergaenzte die Code-base um einge Elemente, die noch nicht implementiert sind, wie aus den Kommentaren im Quelltext ersichtlich ist, wie bspw. fehlendes Handling von Promiscuous-mode oder Multicast-filtering [eher das Akzeptieren von Multicast-Frames, statt Filtering per im Controller integrierten Hash-table, wo der Index von Slots mit einem CRC32 basierten Genaratorpolynom berechnet werden, da der Ethernet-Controller doch sehr "sperrig" ist, wobei ich gerade mit dem "erforschen" von Interface-Cababilities beschaeftigt bin] oder das Implementieren von generischen Methoden fuer das setup von MAC-Addressen, etc. ..

Wie kann ich die Ergaenzungen [die ich gerade Teste] ins Repository von Head bekommen bzw. sollte ich eine PR per Bugzilla mit Patches einreichen oder ist das moeglich per "Pullrequest" per Github-mirror oder per Subversion oder sollte ich per [verschluesselter] Mail die Patches direkt an Adrian Chadd senden [oder diese Person per Message via Github Kontaktieren, da ich ja selbst Github als "Dateiablage" oder jetzt als "Windows-Aktenkoffer" benutze]?

Ich habe keine Erfahrungen bzgl. dem sich an professionellen Projekten zu beteiligen [wobei ich mich schon auf der vom Projekt betriebenen Website vorhandenen Informationsquelle informierte], will aber nicht in irgendwelche Fettnaepfchen treten bzw. nicht als Elephant im Porzellanladen auftreten.

Es geht mir bei dieser Aktion _nicht_ ums beschissene Ego, sondern um einen _konstruktiven_ Beitrag zu leisten.
 
Zuletzt bearbeitet:

Yamagi

Possessed With Psi Powers
Mitarbeiter
#2
Die eine, kanonische Strategie um etwas beizutragen gibt es nicht. Denn es ist letztendlich ein Freiwilligenprojekt und man kann Freiwilligen immer schlecht vorschreiben, wie sie zu arbeiten haben. Allerdings gibt es, zum Glück, sozusagen allgemein anerkannte Vorgehensweisen. Ich würde:

  1. Mir klarmachen, dass das FreeBSD-Projekt in seinen Umgangsformen recht amerikanisch geprägt ist. Amerikaner sind direkt, sie nehmen in Sachen Kritik kein Blatt vor den Mund. Kritik im FreeBSD-Projekt wirkt für uns Europäer daher oft beleidigend hart. Mache dir klar, dass sie nicht so gemeint ist. Außerdem kann es lange bis sehr lange dauern substanzielle Reaktionen zu bekommen. Habe Geduld, warte ab und frage nach 4 Wochen mal freundlich nach. Alle Committer haben immer viel zu tun.
  2. Stelle sicher, dass dein Code dem Style entspricht: https://www.freebsd.org/cgi/man.cgi?query=style&sektion=9 Man muss FreeBSDs Codestil nicht mögen, aber ohne zumindest 90% Umsetzung wird der Code nicht committet werden. Gleich möglichst nahe daran zu sein, erspart mehrere Iterationen.
  3. Registriere dich auf https://reviews.freebsd.org/ und lade den Code dort mit einer Beschreibung, was du warum gemacht hast, hoch. Wenn Kritik oder Anmerkungen kommen, beantworte sie dort freundlich und prägnant. Aber das ist eigentlich logisch. :)
  4. Schicke eine Mail mit dem Link auf das Review und - ganz wichtig - einer Kopie der Beschreibung und eventuell noch weiteren Hinweisen an die entsprechenden Mailinglisten. Hier wären das freebsd-mips@ da es um MIPS geht und freebsd-current@ da du Code in -CURRENT gemerged haben möchtest und da die Liste ein sehr großes Publikum hat. Einen Committer würde ich erstmal nicht direkt anschreiben, aber wenn es keine Reaktion gibt, kann man sie bei einer "Anyone?"-Anwort an die erste Mail ins CC nehmen.
  5. Es schadet nie im entsprechenden IRC-Chan zu sein, wobei da Zeitzonen ein großes Problem sein können. Da kann man auch noch mal einen Link auf das Review und ein paar Worte dazu reinwerfen: https://wiki.freebsd.org/IRC/Channels Hier wohl #bsdmips im EFNet.
 

das.chaos

Duracellhase 2.0
Themenstarter #3
Dankeschoen fuer diesen schoenen Algorithmus. :)

Den Phabricator kannte ich noch nicht bzw. ich erstellte gerade ein Benutzerkonto beim Phabricator und guck' mir den gerade an.
 

TCM

Well-Known Member
#5
Ja, hier muss eine Verwechslung vorliegen. Hart ist bei den Amis gar nichts mehr. Im Gegenteil kann man sogar einen safe space für sich reklamieren, den dann alle ganz doll respektieren, und jeder, der was dagegen sagt, wird einfach wegen hate speech bei seinem Arbeitgeber angeschwärzt. So läuft das doch heute.

Also keine Sorge, einfach mit Unwissenheit und Ignoranz immer frei gerade raus. Du bist immer im Recht und wenn sich irgendwer an dir stört, dann ist das immer dessen Schuld, weil der nunmal gerne hetzt und ein böser, böser Mensch ist. Und nachdem du das weißt, kannst du die Leute auch ruhig ein bisschen damit aufziehen, die sind ja eh schlecht, und wenn sie dadurch ein bisschen früher als die Hasser entlarvt werden, die sie nunmal tief im Inneren sind, dann bist du sie auch umso eher wieder los.

Bonuspunkte erhältst du für türkise Haare und Engagement in irgendwas mit sozial und Gerechtigkeit.

Aber das nur am Rande.
 

mapet

Active OpenBSD User
#7
Bonuspunkte erhältst du für türkise Haare und Engagement in irgendwas mit sozial und Gerechtigkeit.

Aber das nur am Rande.
Musste das sein? Kalter Kaffee wird vom Aufwärmen auch nicht besser.

Zum Thema: Eine Vielzahl von Neuerungen werden auf den Mailinglisten diskutiert und begutachtet. Zur Form der Mail war Yamagis Post sehr ausführlich. Meistens ist ein unified diff gefragt, der dann einfach als Patch gegen den aktuellen Tree von den Entwicklern gemerged werden kann. Hilfreich kann es dazu auch sein, sich ein wenig die Archive anzugucken, wie der Ablauf ist und worauf die Entwickler wert legen.
 

das.chaos

Duracellhase 2.0
Themenstarter #8
Kalter Kaffee??!?! Das klingt nach [viel] Emotionen [und Drama]..

Hilfreich kann es dazu auch sein, sich ein wenig die Archive anzugucken, wie der Ablauf ist und worauf die Entwickler wert legen.
Danke, guter Hinweis. Bin schon am "mining", weil ich einige Fragen an die MIPS Entwickler haette [MAC Address Vergabe, da das auf dem ersten Blick etwas "wirr" erscheint und meine ein im Aufbau befindliches KPI zu erkennen, wo einiges aus arge(4) hin verschoben werden koennte, was ich vorgestern testweise tat], aber keine "redundanten" Fragen stellen wolle [und nicht gleich gesteinigt werden moechte, weil ich ja nicht genau nachschaute]. :)
 
Zuletzt bearbeitet:

das.chaos

Duracellhase 2.0
Themenstarter #9
*wtf* Gerade getestet, ... es funktioniert, d. h. keine panic(9) bzw. kein spektakulaerer Crash.

Code:
# uname -a
FreeBSD freebsd-wifi 12.0-CURRENT FreeBSD 12.0-CURRENT #12 r336033M: Sun Jul  8 03:22:23 CEST 2018     gast@morpheus.testenv.local:/data/head/obj/mips_ap/data/head/src/mips.mips/sys/TL-WR1043NDv2  mips
# ifconfig arge0
arge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 62:73:64:09:dc:74
        media: Ethernet 1000baseT <full-duplex>
        status: active
# ifconfig arge0 promisc up
arge0: permanently promiscuous mode enabled
# ifconfig arge0 -promisc
arge0: permanently promiscuous mode disabled
# ifconfig
arge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 62:73:64:09:dc:74
        media: Ethernet 1000baseT <full-duplex>
        status: active
arge1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 62:73:64:f7:45:6e
        media: Ethernet 1000baseT <full-duplex>
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
        inet 127.0.0.1 netmask 0xff000000
        groups: lo
# ifconfig arge0 promisc up
arge0: permanently promiscuous mode enabled
# ifconfig
arge0: flags=28943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 62:73:64:09:dc:74
        media: Ethernet 1000baseT <full-duplex>
        status: active
arge1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 62:73:64:f7:45:6e
        media: Ethernet 1000baseT <full-duplex>
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
        inet 127.0.0.1 netmask 0xff000000
        groups: lo
#
Ich raeumte etwas arge_attach(9) auf und implementierte arge_rxfilt(9), die bspw. von arge_ioctl(9) aufgerufen wird. Ich ersetzte einge Magic-numbers an anderen Komponenten.
Code:
# dmesg
qca955x_chip_init_gmac: gmac_cfg=0x00000001
qca955x_configure_gmac: ETH_CFG=0x0003c001
ar71xx: Overriding MAC from EEPROM
ar71xx: Board MAC: c4:6e:1f:b9:19:e0
ar71xx: devid 'ath.0', MAC offset '0'
  hint.ath.0.macaddr => c4:6e:1f:b9:19:e0
KDB: debugger backends: ddb
KDB: current backend: ddb
Copyright (c) 1992-2018 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 12.0-CURRENT #12 r336033M: Sun Jul  8 03:22:23 CEST 2018
    gast@morpheus.testenv.local:/data/head/obj/mips_ap/data/head/src/mips.mips/sys/TL-WR1043NDv2 mips
gcc version 6.4.0 (FreeBSD Ports Collection for mips)
Preloaded elf kernel "kernel" at 0x8047f82c.
real memory  = 67108864 (65536K bytes)
Physical memory chunk(s):
0x0051a000 - 0x03ef5fff, 60669952 bytes (14812 pages)
avail memory = 60248064 (57MB)
arc4random: no preloaded entropy cache
random: entropy device external interface
mem: <memory>
null: <full device, null device, zero device>
nexus0: <MIPS32 root nexus>
random: harvesting attach, 8 bytes (4 bits) from nexus0
argemdio0: <Atheros AR71xx built-in ethernet interface, MDIO controller> at mem 0x19000000-0x19000fff on nexus0
mdio0: <MDIO> on argemdio0
mdioproxy0: <MII/MDIO proxy, MDIO side> on mdio0
random: harvesting attach, 8 bytes (4 bits) from mdioproxy0
arswitch0: <Atheros AR8327 Ethernet Switch (ver 1 rev 4)> on mdio0
arswitch0: ar8327_fetch_pdata_port: port 0: speed=3, duplex=1, txpause=1, rxpause=1
arswitch0: ar8327_fetch_pdata_port: port 6: speed=3, duplex=1, txpause=1, rxpause=1
arswitch0: ar8327_fetch_pdata_pad: pad 0: mode=3, rxclk_sel=0, txclk_sel=0, txclk_delay_sel=0, rxclk_delay_sel=0, txclk_delay_en=0, rxclk_enable_en=0, sgmii_delay_en=1, pipe_rxclk_sel=0
arswitch0: ar8327_fetch_pdata_pad: pad 6: mode=6, rxclk_sel=0, txclk_sel=0, txclk_delay_sel=1, rxclk_delay_sel=2, txclk_delay_en=1, rxclk_enable_en=1, sgmii_delay_en=0, pipe_rxclk_sel=0
arswitch0: ar8327_phy_fixup: called; phy=0; chiprev=4
arswitch0: ar8327_phy_fixup: called; phy=1; chiprev=4
arswitch0: ar8327_phy_fixup: called; phy=2; chiprev=4
arswitch0: ar8327_phy_fixup: called; phy=3; chiprev=4
arswitch0: ar8327_phy_fixup: called; phy=4; chiprev=4
arswitch0: ar8327_atu_learn_default: TODO!
miibus0: <MII bus> on arswitch0
ukphy0: <Generic IEEE 802.3u media interface> PHY 0 on miibus0
ukphy0: OUI 0x00c82e, model 0x0003, rev. 4
ukphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
random: harvesting attach, 8 bytes (4 bits) from ukphy0
random: harvesting attach, 8 bytes (4 bits) from miibus0
miibus1: <MII bus> on arswitch0
ukphy1: <Generic IEEE 802.3u media interface> PHY 1 on miibus1
ukphy1: OUI 0x00c82e, model 0x0003, rev. 4
ukphy1:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
random: harvesting attach, 8 bytes (4 bits) from ukphy1
random: harvesting attach, 8 bytes (4 bits) from miibus1
miibus2: <MII bus> on arswitch0
ukphy2: <Generic IEEE 802.3u media interface> PHY 2 on miibus2
ukphy2: OUI 0x00c82e, model 0x0003, rev. 4
ukphy2:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
random: harvesting attach, 8 bytes (4 bits) from ukphy2
random: harvesting attach, 8 bytes (4 bits) from miibus2
miibus3: <MII bus> on arswitch0
ukphy3: <Generic IEEE 802.3u media interface> PHY 3 on miibus3
ukphy3: OUI 0x00c82e, model 0x0003, rev. 4
ukphy3:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
random: harvesting attach, 8 bytes (4 bits) from ukphy3
random: harvesting attach, 8 bytes (4 bits) from miibus3
etherswitch0: <Switch controller> on arswitch0
random: harvesting attach, 8 bytes (4 bits) from etherswitch0
mdio1: <MDIO> on arswitch0
mdioproxy1: <MII/MDIO proxy, MDIO side> on mdio1
random: harvesting attach, 8 bytes (4 bits) from mdioproxy1
random: harvesting attach, 8 bytes (4 bits) from mdio1
random: harvesting attach, 8 bytes (4 bits) from arswitch0
random: harvesting attach, 8 bytes (4 bits) from mdio0
random: harvesting attach, 8 bytes (4 bits) from argemdio0
argemdio1: <Atheros AR71xx built-in ethernet interface, MDIO controller> at mem 0x1a000000-0x1a000fff on nexus0
mdio2: <MDIO> on argemdio1
mdioproxy2: <MII/MDIO proxy, MDIO side> on mdio2
random: harvesting attach, 8 bytes (4 bits) from mdioproxy2
random: harvesting attach, 8 bytes (4 bits) from mdio2
random: harvesting attach, 8 bytes (4 bits) from argemdio1
ar71xx_caldata0 on nexus0
random: harvesting attach, 8 bytes (4 bits) from ar71xx_caldata0
clock0: <Generic MIPS32 ticker> on nexus0
Timecounter "MIPS32" frequency 360000000 Hz quality 800
Event timer "MIPS32" frequency 360000000 Hz quality 800
random: harvesting attach, 8 bytes (4 bits) from clock0
apb0 at irq 4 on nexus0
uart0: <16550 or compatible> at mem 0x18020003-0x1802001a irq 3 on apb0
uart0: console (115200,n,8,1)
uart0: fast interrupt
uart0: PPS capture mode: DCD
random: harvesting attach, 8 bytes (4 bits) from uart0
random: harvesting attach, 8 bytes (4 bits) from apb0
ehci0: <AR71XX Integrated USB 2.0 controller> at mem 0x1b000100-0x1b0010ff irq 1 on nexus0
usbus0: EHCI version 1.0
usbus0 on ehci0
ehci0: usbpf: Attached
random: harvesting attach, 8 bytes (4 bits) from usbus0
random: harvesting attach, 8 bytes (4 bits) from ehci0
ehci1: <AR71XX Integrated USB 2.0 controller> at mem 0x1b400100-0x1b4010ff irq 1 on nexus0
usbus1: EHCI version 1.0
usbus1 on ehci1
ehci1: usbpf: Attached
random: harvesting attach, 8 bytes (4 bits) from usbus1
random: harvesting attach, 8 bytes (4 bits) from ehci1
arge0: <Atheros AR71xx built-in ethernet interface> at mem 0x19000000-0x19000fff irq 2 on nexus0
arge0: arge_fetch_pll_config: pll_1000 = 0x56000000
arge0: Generating random ethernet address.
mii_attach_proxy: not attaching, no mdio device hint for arge0
arge0: finishing attachment, phymask 0000, proxy null
arge0: bpf attached
arge0: Ethernet address: 62:73:64:09:dc:74
random: harvesting attach, 8 bytes (4 bits) from arge0
arge1: <Atheros AR71xx built-in ethernet interface> at mem 0x1a000000-0x1a000fff irq 3 on nexus0
arge1: arge_fetch_pll_config: pll_1000 = 0x3000101
arge1: Generating random ethernet address.
mii_attach_proxy: not attaching, no mdio device hint for arge1
arge1: finishing attachment, phymask 0000, proxy null
arge1: bpf attached
arge1: Ethernet address: 62:73:64:f7:45:6e
random: harvesting attach, 8 bytes (4 bits) from arge1
spi0: <AR71XX SPI> at mem 0x1f000000-0x1f00000f on nexus0
spibus0: <SPI bus> on spi0
mx25l0: <M25Pxx Flash Family> at cs 0 mode 0 on spibus0
mx25l0: device type w25q64, size 8192K in 128 sectors of 64K, erase size 4K
random: harvesting attach, 8 bytes (4 bits) from mx25l0
random: harvesting attach, 8 bytes (4 bits) from spibus0
random: harvesting attach, 8 bytes (4 bits) from spi0
ar71xx_wdog0: <Atheros AR71XX watchdog timer> on nexus0
random: harvesting attach, 8 bytes (4 bits) from ar71xx_wdog0
Device configuration finished.
Timecounters tick every 1.000 msec
lo0: bpf attached
tcp_init: net.inet.tcp.tcbhashsize auto tuned to 1024
arswitch0port1: link state changed to DOWN
arswitch0port2: link state changed to DOWN
arswitch0port3: link state changed to DOWN
arswitch0port4: link state changed to DOWN
GEOM: new disk flash/spi0
MAP: "u-boot" can't parse/use end value
MAP: search flash/spi0 for key ".!/bin/sh" from 0x20000, step 0x10000
usbus0: 480Mbps High Speed USB v2.0
usbus1: 480Mbps High Speed USB v2.0
ugen0.1: <Atheros EHCI root HUB> at usbus0
uhub0: <Atheros EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
ugen1.1: <Atheros EHCI root HUB> at usbus1
uhub1: <Atheros EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
MAP: flash/spi0: 20000x160000, data=0x160000 "/dev/map/kernel"
MAP: search flash/spi0 for key ".!/bin/sh" from 0x20000, step 0x10000
MAP: flash/spi0: 180000x650000, data=0x650000 "/dev/map/rootfs"
MAP: flash/spi0: 7d0000x10000, data=0x10000 "/dev/map/cfg"
MAP: flash/spi0: 7e0000x10000, data=0x10000 "/dev/map/mib0"
MAP: "ART" can't parse/use end value
MAP: No valid partition found at map/rootfs.uzip
Trying to mount root from ufs:map/rootfs.uzip []...
Warning: no time-of-day clock registered, system time will not be set accurately
start_init: trying /sbin/init
uhub0: 1 port with 1 removable, self powered
random: harvesting attach, 8 bytes (4 bits) from uhub0
uhub1: 1 port with 1 removable, self powered
random: harvesting attach, 8 bytes (4 bits) from uhub1
MAP: No valid partition found at md0
random: unblocking device.
MAP: No valid partition found at md0
MAP: No valid partition found at md1
MAP: No valid partition found at md1
MAP: No valid partition found at md2
MAP: No valid partition found at md2
lo0: link state changed to UP
arge0: permanently promiscuous mode enabled
arge0: permanently promiscuous mode disabled
arge0: permanently promiscuous mode enabled
#
Da ist aber noch ein bisschen "Fine-tuning" erforderlich, etc. ...
Code:
# ls -oil
total 19
6 drwxr-xr-x  2 root  wheel  -  512 Jul  8 15:27 bin
8 drwxr-xr-x  3 root  wheel  -  512 Jul  8 15:27 boot
3 drwxr-xr-x  3 root  wheel  -  512 Jul  8 15:27 c
7 drwxr-xr-x  6 root  wheel  -  512 Jul  8 15:27 data
2 dr-xr-xr-x  7 root  wheel  -  512 Jul  8 15:27 dev
2 drwxr-xr-x  9 root  wheel  - 1024 Jul  8 15:27 etc
5 drwxr-xr-x  2 root  wheel  - 1024 Jul  8 15:27 lib
16 drwxr-xr-x  3 root  wheel  -  512 Jul  8 15:27 libexec
11 drwxr-xr-x  2 root  wheel  -  512 Jul  8 15:27 mnt
12 drwxr-xr-x  2 root  wheel  -  512 Jul  8 15:27 proc
13 drwxr-xr-x  2 root  wheel  -  512 Jul  8 15:27 root
15 drwxr-xr-x  2 root  wheel  -  512 Jul  8 15:27 sbin
2 drwxrwxrwt  3 root  wheel  -  512 Jul  8 15:27 tmp
17 drwxr-xr-x  7 root  wheel  -  512 Jul  8 15:27 usr
2 drwxrwxrwt  9 root  wheel  -  512 Jul  8 15:27 var
# ls -oil /usr
total 4
182 drwxr-xr-x  2 root  wheel  - 1024 Jul  8 15:27 bin
181 drwxr-xr-x  2 root  wheel  - 1024 Jul  8 15:27 lib
180 drwxr-xr-x  2 root  wheel  -  512 Jul  8 15:27 libexec
183 drwxr-xr-x  2 root  wheel  -  512 Jul  8 15:27 sbin
184 drwxr-xr-x  4 root  wheel  -  512 Jul  8 15:27 share
# ls -oil /etc
total 360
3 drwxrwxr-x  2 root  wheel  -   512 Jul  8 15:27 .snap
68 -rw-r--r--  1 root  wheel  -   115 Jul  8 15:27 board.cfg
5 drwxr-xr-x  2 root  wheel  -   512 Jul  8 15:27 cfg
8 drwxr-xr-x  2 root  wheel  -   512 Jul  8 15:27 cron.d
47 -rw-r--r--  1 root  wheel  -   169 Jul  8 15:27 crontab
49 -rw-r--r--  1 root  wheel  -   267 Jul  8 15:27 dhclient-enter-hooks
50 -rw-r--r--  1 root  wheel  -   266 Jul  8 15:27 dhclient-exit-hooks
48 -rw-r--r--  1 root  wheel  -   265 Jul  8 15:27 dhclient.conf
4 drwxr-xr-x  2 root  wheel  -   512 Jul  8 15:27 dropbear
55 -rw-r--r--  1 root  wheel  -  6158 Jul  8 15:27 gettytab
58 -rw-r--r--  1 root  wheel  -   431 Jul  8 15:27 group
52 -rw-r--r--  1 root  wheel  -    60 Jul  8 15:27 inetd.conf
54 -rw-r--r--  1 root  wheel  -  6783 Jul  8 15:27 login.conf
72 -rw-r--r--  1 root  wheel  - 16384 Jul  8 15:27 login.conf.db
57 -rw-------  1 root  wheel  -  1460 Jul  8 15:27 master.passwd
67 -rw-r--r--  1 root  wheel  -   782 Jul  8 15:27 netconfig
51 -rw-r--r--  1 root  wheel  -   333 Jul  8 15:27 nsswitch.conf
27 drwxr-xr-x  2 root  wheel  -   512 Jul  8 15:27 pam.d
56 -rw-r--r--  1 root  wheel  -  1352 Jul  8 15:27 passwd
66 -rw-r--r--  1 root  wheel  -  6447 Jul  8 15:27 protocols
70 -rw-r--r--  1 root  wheel  - 40960 Jul  8 15:27 pwd.db
59 -rw-r--r--  1 root  wheel  -    56 Jul  8 15:27 rc.conf.default
9 drwxr-xr-x  5 root  wheel  -   512 Jul  8 15:27 rc.d
61 -rwxr-xr-x  1 root  wheel  -  1373 Jul  8 15:27 rc.hostapd
60 -rwxr-xr-x  1 root  wheel  -  2312 Jul  8 15:27 rc.subr
62 -rwxr-xr-x  1 root  wheel  -  3412 Jul  8 15:27 rc.wpa_ibss
53 -rwxr-xr-x  1 root  wheel  -  1644 Jul  8 15:27 rc2
63 -rw-r--r--  1 root  wheel  - 53715 Jul  8 15:27 regdomain.xml
64 -rw-r--r--  1 root  wheel  - 86361 Jul  8 15:27 services
71 -rw-------  1 root  wheel  - 40960 Jul  8 15:27 spwd.db
44 drwxr-xr-x  2 root  wheel  -   512 Jul  8 15:27 state
69 lrwxr-xr-x  1 root  wheel  -    23 Jul  8 15:27 termcap -> /usr/share/misc/termcap
65 -rw-r--r--  1 root  wheel  -   213 Jul  8 15:27 ttys
#
Fazit: OpenWRT oder FreeBSD kratzen "nur" an der Oberflache der vom QCA955X integrierten Funktionen, weil laut Datenblatt von AR9334X [vorheriges Modell] das SoC bspw. einen PPPoE-Stack sowie Mandatory Access Contol Funktionen fuer das Packet Filtering oder ein PCM Modul [IIC Bus, ...] fuer VoIP [oder Sound], etc. integriert.
 
Zuletzt bearbeitet:

SolarCatcher

Well-Known Member
#10
Hallo @das.chaos, nur um sicher zu gehen: Das FreeBSD-Wifi-Build project kennst Du? Dort tummeln sich ja auch Adrian Chadd und andere, die FreeBSD auf (MIPS basierte) Wifi-Produkte bringen. Du könntest auf der GitHub-Seite mal fragen, wie Du Deinen Code am besten beitragen kannst - vielleicht findest Du da auch gleich Tester.
 

das.chaos

Duracellhase 2.0
Themenstarter #11
Ich startete schon einen Testballon, wobei ich mich versuchte anm "Tonfall" von @freebsd-mips "anzupassen, wobei ich nicht auf die naheliegenste Idee kam per GitHub Kontakt aufzunehmen.

Ich verwende das FreeBSD-Wifi-Build als Basis, da es das Arbeiten erheblich vereinfacht [Customizing] und ich beinahe vor ein paar Monaten [als ich es noch nicht kannte] dem NIH-Syndrom verfiel.

Da kommt aber noch mehr, da das MII Interface [bspw. vom QCA955X] nicht wirklich vollstaendig implementiert wurde, deswegen fing ich erstmal an einige Magic Numbers durch Konstanten zu ersetzen bzw. aufzuraeumen.
 
Zuletzt bearbeitet:

Yamagi

Possessed With Psi Powers
Mitarbeiter
#12
Ich startete schon einen Testballon, wobei ich mich versuchte anm "Tonfall" von @freebsd-mips "anzupassen, wobei ich nicht auf die naheliegenste Idee kam per GitHub Kontakt aufzunehmen.
Das Problem bei Github ist halt, dass man dann eine weitere Diskussion mit weiterem Code außerhalb der FreeBSD-Infrastruktur hat. Das ist kurzfristig vielleicht völlig in Ordnung, längerfristig nervt das aber nur. So kann man im Commit auf das Review verlinken und hat dort auf alle Ewigkeiten die Diskussion dazu. Kommt es - aus welchen Gründen auch immer - nicht zum Commit, kann der Code später von jedem anderen Entwickler einfach gefunden und aufgegriffen werden.
 

das.chaos

Duracellhase 2.0
Themenstarter #13
Schoen. Ich fing keine Diskussion auf GitHub an. :)

Ich erweiterte arge_init_locked(9) bzgl. dem Use-case der von der generischen Funktion if_setlladdr(9) implementiert wird, da bisher nur die MAC Addresse initialisiert wird, die entweder im EEPROM gespeichert ist oder per Hints mechanism definiert wurde. Es werden _nur_ Unicast Addressen akzeptiert, aber es wird [noch] nicht geprueft ob das "Locally administered"-Bit [oder wie auch immer das bezeichnet wird] gesetzt wurde.

Es ist noch redundanter Code, aber daran wird gearbeitet.
 

das.chaos

Duracellhase 2.0
Themenstarter #14
Oehm, man verzeihe mir diese naive Frage, da ich noch nicht an einer Mailing-liste teilnahm: wie antworte ich jetzt am besten per Mail oder wie Antworte ich bzw. an wem [also wie kann ich im Thread bleiben] bzw. sende ich jetzt ne Antwort [Google Translate sei dank]? Ich veraenderte das Paste, wie gefordert, im Phabricator.

Ich habe keinen Plan. O.O
 
Zuletzt bearbeitet:

mapet

Active OpenBSD User
#15
Einfach auf die Mail antworten mit reply oder reply to all. Wenn dein Mailprogramm nicht komische Sachen mit den Headern macht, sollte die Mail richtig einsortiert werden. Mit reply to all sollte die ML in Kopie bleiben. Nicht zum guten Ton gehört allerdings, Antworten auf private Mails in Kopie an die Mailingliste zu senden.
 

Yamagi

Possessed With Psi Powers
Mitarbeiter
#17
Wenn du Deutsch -> Englisch automatisch übersetzen willst oder musst, nimm DeepL statt Google. Die Qualität der Übersetzungen ist doch schon deutlich besser, vor allem liest es sich natürlicher.
 

mapet

Active OpenBSD User
#18
Danke. Ich schreibe eine Antwort auf die Mail [die bei mir im Postfach liegt] mit "to: freebsd-mips@freebsd.org" und nicht mit "to: adrian.chadd@gmail.com" und "cc: freebsd-mips@freebsd.org" [wie bei der mail bei mir im Postfach]?
Kommt ein wenig drauf an. Wenn du direkt auf Dinge eingehst, die er schreibt, ist letzteres sicher angebracht. Wie wird es auf der Liste denn sonst gehandhabt? Außerdem, wenn er dir und der Liste schreibt, ist es meiner Meinung nach besser, ihm ebenfalls persönlich zu antworten und die Liste im cc, damit es auch in den Archiven landet.