Cross-compilen voor ARM

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Sten Vollebregt
  • Registratie: September 2001
  • Laatst online: 26-09 12:28
Ik wil een WiFi dongle driver compilen voor mijn Asus router waarop Merlin draait. Aangezien de 2.6.36 kernel niet de juiste driver heeft voor de RT5370 dongle, ben ik op zoek gegaan naar een driver. Uiteindelijk heb ik deze driver gevonden die compatible is met de 2.4.x en 2.6.x kernels en dus in theorie zou moeten werken als ik de kernel module gecompileerd krijg (link naar pagina met uitleg over builden van driver in x86 linux, link naar package).

Ik heb de Asuswrt-Merlin git source en de build tools in Ubuntu 18.04 gedownload en de toolchain variabelen gezet zoals in de volgende twee pagina's wordt uitgelegd: 1 en 2:
code:
1
2
3
sudo ln -s ~/am-toolchains/brcm-arm-sdk/hndtools-arm-linux-2.6.36-uclibc-4.5.3 /opt/brcm-arm
ln -s ~/am-toolchains/brcm-arm-sdk  ~/asuswrt-merlin.ng/release/src-rt-6.x.4708/toolchains
echo "PATH=$PATH:/opt/brcm-arm/bin" >> ~/.profile

Dit werkt en ik kan de RT-AC68u firmware builden op deze manier, tot zo ver het makkelijkere gedeelte.

Ik zag in de Makefile van de drivers dat er platform specifieke opties waren en heb mijn eigen platform toegevoegd in een poging het cross-compilen werkend te krijgen (inspiratie via)
code:
1
2
3
4
5
6
7
8
PLATFORM = MERLIN

ifeq ($(PLATFORM),MERLIN)
LINUX_SRC = /home/router/asuswrt-merlin.ng/release/src-rt-6.x.4708/linux/linux-2.6.36/
LINUX_SRC_MODULE = /home/router/asuswrt-merlin.ng/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/net/wireless/
CROSS_COMPILE = /opt/brcm-arm/bin/arm-linux-
CROSS_COMPILE_INCLUDE = /opt/brcm-arm/lib/
endif

en in de os/linux/config.mk:
code:
1
2
3
ifeq ($(PLATFORM),MERLIN)
EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include -I$(CROSS_COMPILE_INCLUDE)
endif


Als ik make uitvoer in de driver folder dan lijkt hij de cross-compiler te vinden, maar gaat het mis bij de libraries (die in /opt/brcm-arm/lib/ te vinden zijn):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
make -C tools
make[1]: Entering directory '/home/router/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/tools'
gcc -g bin2h.c -o bin2h
make[1]: Leaving directory '/home/router/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/tools'
/home/router/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/tools/bin2h
cp -f os/linux/Makefile.6 /home/router/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux/Makefile
make -C /home/router/asuswrt-merlin.ng/release/src-rt-6.x.4708/linux/linux-2.6.36/ SUBDIRS=/home/router/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux modules
make[1]: Entering directory '/home/router/asuswrt-merlin.ng/release/src-rt-6.x.4708/linux/linux-2.6.36'
  CC [M]  /home/router/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux/../../common/crypt_md5.o
/home/router/am-toolchains/brcm-arm-sdk/hndtools-arm-linux-2.6.36-uclibc-4.5.3/bin/../libexec/gcc/arm-brcm-linux-uclibcgnueabi/4.5.3/cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory
scripts/Makefile.build:233: recipe for target '/home/router/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux/../../common/crypt_md5.o' failed
make[2]: *** [/home/router/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux/../../common/crypt_md5.o] Error 1
Makefile:1387: recipe for target '_module_/home/router/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux' failed
make[1]: *** [_module_/home/router/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux] Error 2
make[1]: Leaving directory '/home/router/asuswrt-merlin.ng/release/src-rt-6.x.4708/linux/linux-2.6.36'
Makefile:363: recipe for target 'LINUX' failed
make: *** [LINUX] Error 2


Hier loop ik vast met mijn beperkte kennis van compileren onder Linux... iemand een idee waarom de compiler de libraries niet kan vinden? Staat er nog ergens een path verkeerd die ik over het hoofd zie?

My case has so many fans that it hovers above the ground


Acties:
  • +1 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Hij mist libmpc.so.2 blijkbaar. Is deze geïnstalleerd?

Hier staan wat hints die je kan proberen mocht hij niet geïnstalleerd zijn. https://stackoverflow.com...-cannot-open-shared-objec

Ik ben zelf geen held in het compileren van C onder Linux, helemaal niet als het mis gaat, maar die tips in de SO post lijken me wel doable.

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • Sten Vollebregt
  • Registratie: September 2001
  • Laatst online: 26-09 12:28
Dat heeft gewerkt, bedankt, moest inderdaad het library path exporteren zoals in de eerste reactie in die link. Module is nu gecompileerd. Ben benieuwd of hij wil laden, want ik heb wel wat dingen in de kernel aan moeten zetten in mijn build environment... kan zijn dat ik nog wat andere modules eerst moet laden.

My case has so many fans that it hovers above the ground


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Ben benieuwd. :)

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • Sten Vollebregt
  • Registratie: September 2001
  • Laatst online: 26-09 12:28
Ik moest wat 802.11 support options aanzetten om de driver te builden. Hoewel ik deze als module kon compilen kan ik deze modules niet laden in de kernel, ik krijg allemaal verschillende ' disagrees about version of symbol blablabla' errors, wat er op lijkt te wijzen dat bepaalde onderdelen van de 802.11 support ingebakken zitten en niet als losse module zijn te laden. Ik kan alleen de hele kernel veranderen als ik een andere firmware image laadt, iets wat ik liever niet doe aangezien ik mogelijk mijn router om zeep help (of dingen aanzet waardoor de hardware mogelijk niet meer correct werkt).

My case has so many fans that it hovers above the ground


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:21

Hero of Time

Moderator LNX

There is only one Legend

Als je bang bent om je router te bricken, wat is dan de reden om zo'n USB dongle eraan te hangen terwijl het apparaat prima wifi intern heeft?
Sterker nog, die dongle bied een slechtere wifi standaard (802.11n) dan wat de router zelf heeft (802.11ac).

[ Voor 27% gewijzigd door Hero of Time op 13-08-2018 17:01 ]

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Sten Vollebregt
  • Registratie: September 2001
  • Laatst online: 26-09 12:28
Ik wil de wifi dongle gebruiken voor dual-WAN fallback aangezien ik toegang heb tot een hotspot in hetzelfde gebouw (nee, niet het netwerk van de buren dat niet beveiligd is ;-) ). Voor dit soort dingen kan je het interne wifi niet gebruiken.

My case has so many fans that it hovers above the ground


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Jammer, zijn de errors echt zo onoverkomelijk?

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • Sten Vollebregt
  • Registratie: September 2001
  • Laatst online: 26-09 12:28
Hij laat de kernel modules niet door de errors en ik heb momenteel nog geen idee hoe dat opt te lossen is.

My case has so many fans that it hovers above the ground


Acties:
  • 0 Henk 'm!

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 20:24

Super_ik

haklust!

Wat zijn de errors die je krijgt bij het laden van de module?

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


Acties:
  • 0 Henk 'm!

  • Sten Vollebregt
  • Registratie: September 2001
  • Laatst online: 26-09 12:28
Hier een voorbeeld voor insmod cfg80211.ko (lib80211 laad zonder errors):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol skb_copy_bits
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol skb_copy_bits (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol skb_put
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol skb_put (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol consume_skb
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol consume_skb (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol genlmsg_multicast_allns
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol genlmsg_multicast_allns (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol pskb_expand_head
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol pskb_expand_head (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol kfree_skb
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol kfree_skb (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol netlink_broadcast
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol netlink_broadcast (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol __alloc_skb
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol __alloc_skb (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol kobject_uevent_env
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol kobject_uevent_env (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol __dev_get_by_index
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol __dev_get_by_index (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol init_net
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol init_net (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol skb_pull
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol skb_pull (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol genl_register_family_with_ops
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol genl_register_family_with_ops (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol netlink_unicast
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol netlink_unicast (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol dev_get_by_index
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol dev_get_by_index (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol dev_close
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol dev_close (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol skb_push
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol skb_push (err -22)
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol wireless_send_event (err 0)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol nla_put
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol nla_put (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol unregister_pernet_device
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol unregister_pernet_device (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol ethtool_op_get_link
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol ethtool_op_get_link (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol dev_alloc_skb
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol dev_alloc_skb (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol __pskb_pull_tail
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol __pskb_pull_tail (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol skb_trim
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol skb_trim (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol get_net_ns_by_pid
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol get_net_ns_by_pid (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol dev_change_net_namespace
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol dev_change_net_namespace (err -22)
Aug 13 16:42:31 kernel: cfg80211: disagrees about version of symbol register_pernet_device
Aug 13 16:42:31 kernel: cfg80211: Unknown symbol register_pernet_device (err -22)

My case has so many fans that it hovers above the ground


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:21

Hero of Time

Moderator LNX

There is only one Legend

En had je alleen de modules gebouwd of de hele kernel met alle modules e.d. erbij? En weet je ook zeker dat de juiste kernel wordt gestart?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Sten Vollebregt
  • Registratie: September 2001
  • Laatst online: 26-09 12:28
In Ubuntu heb ik de hele kernel gebouwd van de laatste merlin source (zelfde als de firmware) en daarna de drivers met als source tree de gecompileerde kernel.

De modules heb ik op entware gezet waarna ik ze kan proberem te laden. In het verleden heb ik op deze manier een usb naar serieel converter aan de praat gekregen, maar blijkbaar zit wireless support wat dieper ingebakken.

My case has so many fans that it hovers above the ground


Acties:
  • +1 Henk 'm!

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 20:24

Super_ik

haklust!

Die kernel source hoort niet bij die draaiende kernel. Dus of je moet de juiste source, .config en compiler gebruiken (dus van de kernel die nu draait) of je moet je nieuw gebakken kernel booten en de nieuwe modules gebruiken.

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 29-09 08:07
Super_ik schreef op dinsdag 14 augustus 2018 @ 00:10:
Die kernel source hoort niet bij die draaiende kernel. Dus of je moet de juiste source, .config en compiler gebruiken (dus van de kernel die nu draait) of je moet je nieuw gebakken kernel booten en de nieuwe modules gebruiken.
Nou, de resulterende object files passen er in ieder geval niet op. Waarschijnlijk inderdaad de verkeerde .config en/of toolchain.

Ik zou verwachten dat de kernel overigens print welke vermagic hij verwacht, en wat hij ziet - maar dat post TS niet. Hebben de gebouwde .ko's misschien helemaal geen vermagic (voer eens modinfo cfg80211.ko uit).

Wat een extreem oude kernel overigens. Is er niets nieuwers voor dat apparaat (oa. OpenWRT/LEDE houdt hun kernels vrij up-to-date)? Support voor die dongle zit al tijden in mainline (rt2800usb) namelijk...

Acties:
  • 0 Henk 'm!

  • Sten Vollebregt
  • Registratie: September 2001
  • Laatst online: 26-09 12:28
Modinfo is een goede, deze blijkt beschikbaar te zijn in Entware!

Hieronder de modinfo van usbcore.ko dat ingebakken zit in de firmware van de router:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
filename:       /lib/modules/2.6.36.4brcmarm/kernel/drivers/usb/usbcore.ko
license:        GPL
srcversion:     03F8131AE4CCAD51C8E1DA7
alias:          usb:v*p*d*dc*dsc*dp*ic09isc*ip*
alias:          usb:v*p*d*dc09dsc*dp*ic*isc*ip*
depends:
vermagic:       2.6.36.4brcmarm SMP preempt mod_unload modversions ARMv7
parm:           usbfs_snoop:true to log all usbfs traffic (bool)
parm:           blinkenlights:true to cycle leds on hubs (bool)
parm:           initial_descriptor_timeout:initial 64-byte descriptor request timeout in milliseconds (default 5000 - 5.0 seconds) (int)
parm:           old_scheme_first:start with the old device initialization scheme (bool)
parm:           use_both_schemes:try the other device initialization scheme if the first one fails (bool)
parm:           nousb:bool


En dat van mijn gebouwde modules:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
filename:       /jffs/modules/lib80211.ko
license:        GPL
author:         John W. Linville <linville@tuxdriver.com>
description:    common routines for IEEE802.11 drivers
srcversion:     41681A4220CE115180A4DCD
depends:
vermagic:       2.6.36.4brcmarm SMP preempt mod_unload modversions ARMv7

filename:       /jffs/modules/cfg80211.ko
description:    wireless configuration support
license:        GPL
author:         Johannes Berg
srcversion:     865F7FB56A260DD3DD6799D
depends:
vermagic:       2.6.36.4brcmarm SMP preempt mod_unload modversions ARMv7
parm:           ieee80211_regdom:IEEE 802.11 regulatory domain code (charp)

filename:       /jffs/modules/mac80211.ko
license:        GPL
description:    IEEE 802.11 subsystem
srcversion:     6494FDB9105E24129C24799
depends:        cfg80211
vermagic:       2.6.36.4brcmarm SMP preempt mod_unload modversions ARMv7
parm:           ieee80211_default_rc_algo:Default rate control algorithm for mac80211 to use (charp)
parm:           ieee80211_disable_40mhz_24ghz:Disable 40MHz support in the 2.4GHz band (bool)

filename:       /jffs/modules/rt5370sta.ko
version:        2.5.0.3
license:        GPL
description:    RT2870 Wireless Lan Linux Driver
author:         Paul Lin <paul_lin@ralinktech.com>
srcversion:     31AB29ED00A77512FD3673C
alias:          usb:v043Ep7A22d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v043Ep7A12d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2001p3C1Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2001p3C1Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2001p3C19d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2001p3C15d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3329d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3365d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp5372d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp5370d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0050d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp3370d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1EDAp2012d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0586p343Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0586p341Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0586p341Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0789p0166d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07FAp7712d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3321d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3307d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083ApA703d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v5A57p0282d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p821Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p3821d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p822Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p871Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p3871d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p3822d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p6899d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p870Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p3870d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p899Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v203Dp14A9d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0B05p1784d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v20B8p8888d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v203Dp1480d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v04BBp0948d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v04BBp0947d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v04BBp0945d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v5A57p0283d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v5A57p5257d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1D4Dp0011d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1D4Dp000Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1D4Dp000Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C17d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C16d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C0Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C0Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C0Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3C0Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1EDAp2310d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1A32p0304d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v7392p4085d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v7392p7711d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07B8p3072d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07B8p3071d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07B8p3070d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2019p5201d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v2019pAB25d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1044p800Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3305d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3273d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9709d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9708d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9707d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9706d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9705d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1740p9703d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083ApA702d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083ApA701d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083Ap7511d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v18C5p0012d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v14B2p3C12d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p005Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0047d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0048d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p0042d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DF6p003Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p822Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p871Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p822Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p871Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DB0p3820d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp3072d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp3071d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp3070d*dc*dsc*dp*ic*isc*ip*
depends:        usbcore
vermagic:       2.6.36.4brcmarm SMP preempt mod_unload modversions ARMv7
parm:           mac:rt28xx: wireless mac addr (charp)


Sourcecode en platform lijken mij correct (gebruik de source van Asuswrt-merlin en de bijbehorende toolchain). De .config heb ik moeten aanpassen om de driver te kunnen compileren. Hoewel dat nergens expliciet genoemd staat in de readme, moet 802.11 support aanstaan. Ik heb dit als modules gecompileerd, maar ik denk dat ik er mogelijk ook in de kernel zelf dingen veranderen als dit wordt aangezet... of ik zie een module over het hoofd die ik eerst moet laden. Iemand suggesties?

Edit: helaas werkt OpenWRT niet zo goed als Asuswrt(-merlin), dit omdat Asus heel veel dingen closed-source optimaliseert wat je dan allemaal kwijt bent. Op de één of andere manier heeft Asus nooit de moiete genomen om een wat meer recente kernel in zijn producten te plaatsen... alleen de nieuwste RT-AC86u draait een 4.1 kernel (en ARMv8), alle andere modellen zijn ARMv7 met 2.6.36.4.

My case has so many fans that it hovers above the ground


Acties:
  • 0 Henk 'm!

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 20:24

Super_ik

haklust!

Kan je niet de nieuw gebakken kernel proberen te booten? Dan kloppen de symbol versies zeker.

Ik zou me trouwens wel serieus afvragen of ik een 8 jaar oude kernel op een router zou willen draaien.

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:21

Hero of Time

Moderator LNX

There is only one Legend

Super_ik schreef op dinsdag 14 augustus 2018 @ 11:56:
Ik zou me trouwens wel serieus afvragen of ik een 8 jaar oude kernel op een router zou willen draaien.
Jij denkt dat je modem/router al kernel 4.18 draait? Of zal de kans wat groter zijn dat je apparatuur hebt dat zelfs nog kernel 2.4 kan bevatten? Of denk je dat kernel 3.10 dat met CentOS/Red Hat 7 wordt meegeleverd vorige maand is uitgekomen? ;)

Er zijn veel redenen om zo'n oude kernel te gebruiken. Meestal is het dat er bepaalde binaire blobs worden gebruikt die niet met nieuwere kernels werkt om $reden. Meestal is het de fabrikant die niet meer tijd en moeite wil steken in het bijhouden, maar er kunnen ook puur technische redenen achter zitten.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Sten Vollebregt
  • Registratie: September 2001
  • Laatst online: 26-09 12:28
Super_ik schreef op dinsdag 14 augustus 2018 @ 11:56:
Kan je niet de nieuw gebakken kernel proberen te booten? Dan kloppen de symbol versies zeker.

Ik zou me trouwens wel serieus afvragen of ik een 8 jaar oude kernel op een router zou willen draaien.
In theorie, maar dan moet ik de zelf gebouwde firmware op de router laden met de kans dat ik deze in een paperweight verander. Ik heb wel op het Asuswrt-merlin forum gevraagd of iemand ooit het Wifi USB aan de praat heeft gekregen. Kernel modules laden vanaf mijn Entware USB drive heeft sterk de voorkeur, na een reboot is dan alles weer normaal.

My case has so many fans that it hovers above the ground


Acties:
  • 0 Henk 'm!

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 20:24

Super_ik

haklust!

Hero of Time schreef op dinsdag 14 augustus 2018 @ 12:06:
[...]

Jij denkt dat je modem/router al kernel 4.18 draait? Of zal de kans wat groter zijn dat je apparatuur hebt dat zelfs nog kernel 2.4 kan bevatten? Of denk je dat kernel 3.10 dat met CentOS/Red Hat 7 wordt meegeleverd vorige maand is uitgekomen? ;)

Er zijn veel redenen om zo'n oude kernel te gebruiken. Meestal is het dat er bepaalde binaire blobs worden gebruikt die niet met nieuwere kernels werkt om $reden. Meestal is het de fabrikant die niet meer tijd en moeite wil steken in het bijhouden, maar er kunnen ook puur technische redenen achter zitten.
Als embedded linux/kernel developer ben ik wel aardig op de hoogte van welke apparatuur welke kernelversie draaien ja. En wat betreft CVE's is er wel een aardig verschil tussen 2.6 en 3.10, nietwaar. Op een gegeven moment gaat binary ellende toch echt wel opwegen tegen een outdated kernel versie, zeker op zoiets als een router.

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Sten Vollebregt schreef op dinsdag 14 augustus 2018 @ 12:13:
[...]

In theorie, maar dan moet ik de zelf gebouwde firmware op de router laden met de kans dat ik deze in een paperweight verander. Ik heb wel op het Asuswrt-merlin forum gevraagd of iemand ooit het Wifi USB aan de praat heeft gekregen. Kernel modules laden vanaf mijn Entware USB drive heeft sterk de voorkeur, na een reboot is dan alles weer normaal.
Is er niet zoiets als reset to factory defaults? Of overschrijf je echt de ROM?

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • Sten Vollebregt
  • Registratie: September 2001
  • Laatst online: 26-09 12:28
In dit geval overschrijf je de hele ROM. Er zit nog wel een bootloader oid die je in recovery mode kan krijgen om een nieuwe image te laden, maar liever ga ik niet zo ver als de firmware veranderen.

My case has so many fans that it hovers above the ground


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Sten Vollebregt schreef op dinsdag 14 augustus 2018 @ 16:08:
In dit geval overschrijf je de hele ROM. Er zit nog wel een bootloader oid die je in recovery mode kan krijgen om een nieuwe image te laden, maar liever ga ik niet zo ver als de firmware veranderen.
Ah, kan ik inkomen. :)

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 29-09 08:07
Sten Vollebregt schreef op dinsdag 14 augustus 2018 @ 09:05:
Sourcecode en platform lijken mij correct (gebruik de source van Asuswrt-merlin en de bijbehorende toolchain). De .config heb ik moeten aanpassen om de driver te kunnen compileren. Hoewel dat nergens expliciet genoemd staat in de readme, moet 802.11 support aanstaan. Ik heb dit als modules gecompileerd, maar ik denk dat ik er mogelijk ook in de kernel zelf dingen veranderen als dit wordt aangezet... of ik zie een module over het hoofd die ik eerst moet laden. Iemand suggesties?
Het toevoegen van extra modules kan inderdaad dependencies hebben waardoor de kernel ook wijzigt, en symvers als gevolg niet meer kloppen. De vermagic klopt in ieder geval.

Zou even kijken of je een Module.symvers hebt van de kernel die op je device draait (zit vast wel ergens in een -dev package), dan kun je die diffen tegen de Module.symvers zoals die uit jouw kernel build komt rollen.

Je kunt eventueel ook de force flags (ignore symvers) aan modprobe meegeven, maar ik vermoed dat je dan een panic krijgt.
Edit: helaas werkt OpenWRT niet zo goed als Asuswrt(-merlin), dit omdat Asus heel veel dingen closed-source optimaliseert wat je dan allemaal kwijt bent. Op de één of andere manier heeft Asus nooit de moiete genomen om een wat meer recente kernel in zijn producten te plaatsen... alleen de nieuwste RT-AC86u draait een 4.1 kernel (en ARMv8), alle andere modellen zijn ARMv7 met 2.6.36.4.
Tja, die hebben vast een BSP van Broadcom voor v2.6.36.4 gehad, en dat is het dan.
Pagina: 1