Compare commits

...

52 Commits

Author SHA1 Message Date
Jonas Höglund
bc743ec3a7 Move base-files to feed_inteno_openwrt 2016-03-03 11:33:04 +01:00
Jonas Höglund
2cd8e830b4 Remove other mtd-utils 2016-01-28 13:32:30 +01:00
Jonas Höglund
0c8fe5219e Add inteno mtd-utils 2016-01-28 13:32:00 +01:00
Jonas Höglund
7149ff400b Renamed iopsys-base-files to override openwrt base-files 2016-01-27 17:44:47 +01:00
Jonas Höglund
cb51d61097 Removed luci from inteno packages due to broken dependency 2016-01-21 14:22:38 +01:00
Jonas Höglund
4b603feaf7 Update feed [ intenopackages ] package [ iopsys-base-files ]
-------------------------------------------------------------------------------
* ac06bd5 Use physical interface for Wan
* b8834a9 Disable multiwan
-------------------------------------------------------------------------------
commit ac06bd552d2ba72fda1e20d3b52e96302381b3ef
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2016-01-19 11:21:14 +0100

    Use physical interface for Wan

Base directory -> /
 files/etc/init.d/iopsys-network-config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit b8834a96213d6303e475aa673362f290c86d04aa
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2016-01-19 10:15:22 +0100

    Disable multiwan

Base directory -> /
 files/etc/config/network               | 1 -
 files/etc/init.d/iopsys-network-config | 2 --
 2 files changed, 3 deletions(-)
-------------------------------------------------------------------------------
2016-01-19 12:34:26 +01:00
Jonas Höglund
28a699ace1 Update feed [ intenopackages ] package [ iopsys-base-files ]
-------------------------------------------------------------------------------
* f6945f5 small bug fix in hotplug net bridge script
* da0c0ee fix hardcoded device name
* 9a0ecef if a bridge contains uplink device, it uses its macaddress refs #8454
* 0fcfb80 simplify anywan hotplug script
* 5a41587 no need to reload a bridge if a wan interface gets removed from it
* 56679cd separate bridge and anywan hotplug handlers
* f63086e disable ipv6 on unmanaged bridge
* 1a01678 fix ifup lan loop caused by dhd recreating virtual interfaces
* e296d11 restart fap and fc in case of ifup
* a72edb7 wifi: if luci, set disable option for radio as well
* 9ef8071 hotplug: Add extbutton action and printouts for production
* e5f8485 add dect short/long button support to DG301 and CG300
* f3114e2 update hotplug button script dectbutton functions
* 514f165 set wan led status to ok instead of notice when plugged in
* d44ff19 symlink package/base-files/iopsys to package/zeta/basefiels/iopsys/base-files-iopsys
* 5e04757 Added lua to juci base package
* 14221d4 zeta/base-files to zeta/basefiles
-------------------------------------------------------------------------------
commit f6945f5b1169e2afe1f94913803e817fd788f7e8
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2016-01-15 16:11:15 +0100

    small bug fix in hotplug net bridge script

Base directory -> /
 files/etc/hotplug.d/net/01-bridge | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit da0c0ee8c2cccc202d5a314085b9777cd5da03fe
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2016-01-12 14:22:30 +0100

    fix hardcoded device name

Base directory -> /
 files/etc/hotplug.d/net/01-bridge | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 9a0ecef2e25772a39cda78222e2086fdc7a25c4a
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2016-01-12 14:02:33 +0100

    if a bridge contains uplink device, it uses its macaddress refs #8454

Base directory -> /
 files/etc/hotplug.d/net/01-bridge | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 0fcfb806f4ec99722ac17b88d06452cea9a48727
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2016-01-11 18:34:59 +0100

    simplify anywan hotplug script

Base directory -> /
 files/etc/hotplug.d/net/02-anywan | 49 +++++++++++++++------------------------
 1 file changed, 19 insertions(+), 30 deletions(-)
-------------------------------------------------------------------------------
commit 5a41587db7aa41af31700c3b843ca6aaf54a51a1
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2016-01-11 18:11:31 +0100

    no need to reload a bridge if a wan interface gets removed from it

Base directory -> /
 files/etc/hotplug.d/net/01-bridge | 12 ------------
 1 file changed, 12 deletions(-)
-------------------------------------------------------------------------------
commit 56679cdcb58c1576c3f9511c1857f1fd4c5d93e4
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2016-01-11 18:10:23 +0100

    separate bridge and anywan hotplug handlers

Base directory -> /
 files/etc/hotplug.d/net/02-anywan | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
-------------------------------------------------------------------------------
commit f63086ee97b59337638060ccab8f06ea6a0082b9
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2016-01-11 18:09:55 +0100

    disable ipv6 on unmanaged bridge

Base directory -> /
 files/etc/hotplug.d/net/01-bridge | 28 +++++++++++-----------------
 1 file changed, 11 insertions(+), 17 deletions(-)
-------------------------------------------------------------------------------
commit 1a016789ed67d59c17ad9da238e20490ed4baf15
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-02 19:21:12 +0100

    fix ifup lan loop caused by dhd recreating virtual interfaces

Base directory -> /
 files/etc/hotplug.d/net/01-bridge | 2 ++
 1 file changed, 2 insertions(+)
-------------------------------------------------------------------------------
commit e296d111a8f056adba6eda721153a696b7b2afb7
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-10-12 15:14:20 +0200

    restart fap and fc in case of ifup

Base directory -> /
 files/etc/hotplug.d/iface/01-fap | 8 ++++++++
 1 file changed, 8 insertions(+)
-------------------------------------------------------------------------------
commit a72edb7eb9c215f8ee16dbbff32fe2b415b3e11c
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-09-23 17:45:50 +0200

    wifi: if luci, set disable option for radio as well

Base directory -> /
 files/etc/hotplug.d/button/10-button | 8 ++++++++
 1 file changed, 8 insertions(+)
-------------------------------------------------------------------------------
commit 9ef8071033b29895b82558853d7cb1a6b5d753b3
Author: Mats Karrman <mats@southpole.se>
Date: 2015-08-27 10:35:29 +0200

    hotplug: Add extbutton action and printouts for production

Base directory -> /
 files/etc/hotplug.d/button/10-button | 7 +++++++
 1 file changed, 7 insertions(+)
-------------------------------------------------------------------------------
commit e5f8485522efd74c3ef4b4e4559e02216ef926bb
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-08-26 14:34:29 +0200

    add dect short/long button support to DG301 and CG300

Base directory -> /
 files/etc/hotplug.d/button/10-button | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
commit f3114e249465f172cd4e96e9509816067fd52d94
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-08-26 14:08:14 +0200

    update hotplug button script dectbutton functions

Base directory -> /
 files/etc/hotplug.d/button/10-button | 42 ++++++++++++++++--------------------
 1 file changed, 19 insertions(+), 23 deletions(-)
-------------------------------------------------------------------------------
commit 514f1658977b27fc2d85ceb50779ba6c860c5994
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-08-20 14:33:04 +0200

    set wan led status to ok instead of notice when plugged in

Base directory -> /
 files/etc/hotplug.d/switch/10-switch | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit d44ff19af9906d308e5b0c75ece2521fcb44a3bb
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-08-14 09:28:29 +0200

    symlink package/base-files/iopsys to
    package/zeta/basefiels/iopsys/base-files-iopsys

Base directory -> /
 files/etc/hotplug.d/iface/05-ip6route | 42 +++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
-------------------------------------------------------------------------------
commit 5e04757610f379d6ec6420d968b150cd723cf373
Author: Martin Schröder <mkschreder.uk@gmail.com>
Date: 2015-08-13 16:52:22 +0200

    Added lua to juci base package

Base directory -> /
 files/etc/hotplug.d/button/10-button | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
-------------------------------------------------------------------------------
commit 14221d4f7e3520cc1476041f9af6844d63d8f1f1
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-06-30 16:39:28 +0200

    zeta/base-files to zeta/basefiles

Base directory -> /
 files/etc/hotplug.d/button/10-button    |  98 +++++++++++++++++++++++++++++
 files/etc/hotplug.d/dsl/10-dsl          |  39 ++++++++++++
 files/etc/hotplug.d/dsl/20-dsl-leds     |  29 +++++++++
 files/etc/hotplug.d/iface/60-wanuptest  |  10 +++
 files/etc/hotplug.d/iface/70-shiftrange |  47 ++++++++++++++
 files/etc/hotplug.d/net/01-bridge       |  35 +++++++++++
 files/etc/hotplug.d/switch/10-switch    | 107 ++++++++++++++++++++++++++++++++
 files/etc/hotplug.d/switch/20-arpscan   |  10 +++
 files/etc/hotplug.d/usb/10-usb          |  17 +++++
 9 files changed, 392 insertions(+)
-------------------------------------------------------------------------------
2016-01-18 13:15:05 +01:00
Jonas Höglund
ecb30c14a7 Update feed [ intenopackages ] package [ iopsys-base-files ]
-------------------------------------------------------------------------------
* bda5055 Added iopsys banner
-------------------------------------------------------------------------------
commit bda50558ec6a4459036e5a7e3078eb9bda43726a
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2016-01-18 10:30:24 +0100

    Added iopsys banner

Base directory -> /
 files/etc/banner | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)
-------------------------------------------------------------------------------
2016-01-18 10:30:50 +01:00
Jonas Höglund
4df1883bc0 Update feed [ intenopackages ] package [ iopsys-base-files ]
-------------------------------------------------------------------------------
* 0fddb8b Rename environment init script
-------------------------------------------------------------------------------
commit 0fddb8b3e3dfa97c37705c315383b4aac3ccd596
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2016-01-14 17:00:11 +0100

    Rename environment init script

Base directory -> /
 files/etc/init.d/enviroment         | 172 ------------------------------------
 files/etc/init.d/iopsys-environment | 172 ++++++++++++++++++++++++++++++++++++
 2 files changed, 172 insertions(+), 172 deletions(-)
-------------------------------------------------------------------------------
2016-01-14 17:02:59 +01:00
Jonas Höglund
ad7561290b Update feed [ intenopackages ] package [ iopsys-base-files ]
-------------------------------------------------------------------------------
* 2974451 Added iopsys-network-config setup script
-------------------------------------------------------------------------------
commit 29744515609bb0e6962749950f53e739bc00f441
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2016-01-14 13:34:08 +0100

    Added iopsys-network-config setup script

Base directory -> /
 files/etc/init.d/iopsys-network-config | 53 ++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
-------------------------------------------------------------------------------
2016-01-14 14:10:26 +01:00
Jonas Höglund
72c80e7255 Update feed [ intenopackages ] package [ iopsys-base-files ]
-------------------------------------------------------------------------------
* e0a25d9 populate missing config files in /etc/config/backup
* 1b6790c migrate admin, support and user passwords
* 7dd9f06 Fixed openwrt_revision handling and added device_info handling
* e7868b9 move openwrt version filling to enviroment script
* 7b7fe8b remove setting priority of wl related threads in enviroment init script
* 98a5928 enviroment: fix taskset syntax
* 4dfbd24 enviroment script works even if basemac starts with 0
* 5b598d6 zeta/base-files to zeta/basefiles
-------------------------------------------------------------------------------
commit e0a25d918d525af816ccd669ffeabc6e11700d76
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-24 16:04:04 +0100

    populate missing config files in /etc/config/backup

Base directory -> /
 files/etc/init.d/enviroment | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
-------------------------------------------------------------------------------
commit 1b6790c5fdcd2784d906fab51a103b06174d3114
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-12 17:25:04 +0100

    migrate admin, support and user passwords

Base directory -> /
 files/etc/init.d/enviroment | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
commit 7dd9f06d6a3604401a0a1a9a99f9856bf8aa94f3
Author: Vlatko Dimic <vlatko.dimic@inteno.se>
Date: 2015-11-10 12:37:40 +0100

    Fixed openwrt_revision handling and added device_info handling

Base directory -> /
 files/etc/init.d/enviroment | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)
-------------------------------------------------------------------------------
commit e7868b9179f764f557ad78aa2bc74b094b13cf5b
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-10-29 15:01:04 +0100

    move openwrt version filling to enviroment script

Base directory -> /
 files/etc/init.d/enviroment | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
-------------------------------------------------------------------------------
commit 7b7fe8b3ecafbc26f2304ebe28e50973b90af4f6
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-10-23 18:59:59 +0200

    remove setting priority of wl related threads in enviroment init script

Base directory -> /
 files/etc/init.d/enviroment | 32 --------------------------------
 1 file changed, 32 deletions(-)
-------------------------------------------------------------------------------
commit 98a5928d8bc32af3bbde979ea504287e99992ee6
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-09-29 16:42:18 +0200

    enviroment: fix taskset syntax

Base directory -> /
 files/etc/init.d/enviroment | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
-------------------------------------------------------------------------------
commit 4dfbd24f969036219efebd2e4366321e73d8f91a
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-08-18 17:00:55 +0200

    enviroment script works even if basemac starts with 0

Base directory -> /
 files/etc/init.d/enviroment | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
-------------------------------------------------------------------------------
commit 5b598d6700217d2cab7abdbd7f415686e1023a10
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-06-30 16:39:28 +0200

    zeta/base-files to zeta/basefiles

Base directory -> /
 files/etc/init.d/enviroment | 109 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 109 insertions(+)
-------------------------------------------------------------------------------
2016-01-13 17:11:50 +01:00
Jonas Höglund
eeae7ce03a Update feed [ intenopackages ] package [ iopsys-base-files ]
-------------------------------------------------------------------------------
* 2b03f01 network: adk 43, 66 and 67 dhcp options via reqopts in network config
* 7edb054 network config: add option 128 to reqopts
* dba8215 add inteno.lan to dhcp hostnames
* e2f1921 backup DynDNS and QoS config
* d902240 backup: remove backup section from backup config
* 39edc5e backup: remove unused sections
* 9d604d8 remove keep section from backup config
* 0d8b50a fixes for #7869 software upgrade was broken
* cdf64c7 set wan6 via uci-default instead of adding to config by default
* be605cb network: add wan6 interface back
* 950f370 remove management rule from firewall config
* cc0ff7e disable crashlog in default inteno fw
* dd56efd backup: conservative keep of passwd, parental and upnp
* 7dabf7f wifi: change defaults
* 1fb385a add reqopts 132 and 133 to default inteno config
* 21ad267 juci: add juci config to basefiles iopsys (Note: we should probably have a better way of generating all the configs)
* 2d33d83 wifi: default key is WPA2-PSK and added extra ssid
* 8e01614 put .icwmpd_backup_session.xml under correct section
* ea6622d add .icwmpd_backup_session.xml file to keep after upgrade list
* 2374fc9 firewall: add inteno office ip as management
* 001d4f6 wifi: set acs scan timer to 15 minutes by default
* a975f6c sysupgrade: add conservative_keep option in /etc/config/backup (handles sysupgrade from older versions), refs #7947
* 09a2e33 crashlog: catch and store any code dump file.
* 5fc7d9f remove guest network from default software
* a144d4e Add crashlog package.
* 1b8cc57 Added rpcd admin:admin login back
* 4d9d928 wireless: disable extrassid
* c2b749d wifi changes
* 42180d5 Updated default wireless config to only include 4 letters from mac into ssid
* 749899b zeta/base-files to zeta/basefiles
* 41b8b56 Remove openwrt default config files
-------------------------------------------------------------------------------
commit 2b03f01af02675a3717a1e8d55628696a01d5aab
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2016-01-04 14:12:31 +0100

    network: adk 43, 66 and 67 dhcp options via reqopts in network config

Base directory -> /
 files/etc/config/network | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 7edb054a009aa41ac703c081bb4a7a6790e7fc4c
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-12-29 11:14:29 +0100

    network config: add option 128 to reqopts

Base directory -> /
 files/etc/config/network | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit dba821599b0ad906d0974f04aad7d58eb2e03bcb
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-12-17 13:03:52 +0100

    add inteno.lan to dhcp hostnames

Base directory -> /
 files/etc/config/dhcp | 1 +
 1 file changed, 1 insertion(+)
-------------------------------------------------------------------------------
commit e2f1921000af5af4a17ed248ddcbc70435c5a15f
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-24 16:07:51 +0100

    backup DynDNS and QoS config

Base directory -> /
 files/etc/config/backup | 8 ++++++++
 1 file changed, 8 insertions(+)
-------------------------------------------------------------------------------
commit d9022406b8b73fb3740ec0330912ee06f98f94bc
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-20 16:34:24 +0100

    backup: remove backup section from backup config

Base directory -> /
 files/etc/config/backup | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
-------------------------------------------------------------------------------
commit 39edc5e5c42e7d8516faf46036885dba4d5288c0
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-20 15:16:15 +0100

    backup: remove unused sections

Base directory -> /
 files/etc/config/backup | 41 ++++++++++++++---------------------------
 1 file changed, 14 insertions(+), 27 deletions(-)
-------------------------------------------------------------------------------
commit 9d604d8c4b3bc96a986641df030c1b15119b17fc
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-20 15:02:07 +0100

    remove keep section from backup config

Base directory -> /
 files/etc/config/backup | 17 +----------------
 1 file changed, 1 insertion(+), 16 deletions(-)
-------------------------------------------------------------------------------
commit 0d8b50a411498ccaa2d68a1670f08a2ad41aa773
Author: Strhuan Blomquist <strhuan@inteno.se>
Date: 2015-11-20 13:55:48 +0100

    fixes for #7869 software upgrade was broken

Base directory -> /
 files/etc/config/backup | 5 +++++
 1 file changed, 5 insertions(+)
-------------------------------------------------------------------------------
commit cdf64c7a32842a6ea05d9f9fbc73859f91e49257
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-19 17:25:49 +0100

    set wan6 via uci-default instead of adding to config by default

Base directory -> /
 files/etc/config/network | 4 ----
 1 file changed, 4 deletions(-)
-------------------------------------------------------------------------------
commit be605cb666fc6048f8ed598f04b7cdb78333fce8
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-19 14:44:17 +0100

    network: add wan6 interface back

Base directory -> /
 files/etc/config/network | 5 +++++
 1 file changed, 5 insertions(+)
-------------------------------------------------------------------------------
commit 950f370db544b6e751c806dd9cff42e770b1f50c
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-13 14:10:49 +0100

    remove management rule from firewall config

Base directory -> /
 files/etc/config/firewall | 11 -----------
 1 file changed, 11 deletions(-)
-------------------------------------------------------------------------------
commit cc0ff7e334f36f3b9357a2ab2575d499b4774f4d
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-09 15:50:32 +0100

    disable crashlog in default inteno fw

Base directory -> /
 files/etc/config/system | 11 -----------
 1 file changed, 11 deletions(-)
-------------------------------------------------------------------------------
commit dd56efd6b7859525a209fa75cced37a84ee6c8bd
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-11-06 16:33:20 +0100

    backup: conservative keep of passwd, parental and upnp

Base directory -> /
 files/etc/config/backup | 3 +++
 1 file changed, 3 insertions(+)
-------------------------------------------------------------------------------
commit 7dabf7f05b5662f5a53406781dae650f04e196dd
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-05 16:42:08 +0100

    wifi: change defaults

Base directory -> /
 files/etc/config/wireless | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 1fb385ae41b639bf15a71ff95c1866615cf5b6b7
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-04 15:36:48 +0100

    add reqopts 132 and 133 to default inteno config

Base directory -> /
 files/etc/config/network | 1 +
 1 file changed, 1 insertion(+)
-------------------------------------------------------------------------------
commit 21ad267725dbab3daa617af2d4377eb2853a7f26
Author: Martin Schröder <mkschreder.uk@gmail.com>
Date: 2015-11-04 12:22:53 +0100

    juci: add juci config to basefiles iopsys (Note: we should probably have a
    better way of generating all the configs)

    - this change means that you will only have menus that are selected in this
    config - thus you may not see new things added to juci right away.
    - any new pages can be added to juci manually by adding a new config menu
    section to juci config.
    - TODO: think through how we want to generate menu structure in the future
    (currently this is the best way considering special requirements of
    customers such as DNA)

Base directory -> /
 files/etc/config/juci | 316 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 316 insertions(+)
-------------------------------------------------------------------------------
commit 2d33d83fe657efbb82d8d15b75c040fd92aa3a69
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-03 14:54:07 +0100

    wifi: default key is WPA2-PSK and added extra ssid

Base directory -> /
 files/etc/config/wireless | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
commit 8e01614374db1c87facc7ed6d33da0157084596a
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-10-30 11:38:35 +0100

    put .icwmpd_backup_session.xml under correct section

Base directory -> /
 files/etc/config/backup | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit ea6622d59dce51b0a4397e53911588954a279c7e
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-10-30 11:30:26 +0100

    add .icwmpd_backup_session.xml file to keep after upgrade list

Base directory -> /
 files/etc/config/backup | 1 +
 1 file changed, 1 insertion(+)
-------------------------------------------------------------------------------
commit 2374fc9b2f842eca394b80704043148d953614ae
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-10-28 09:31:37 +0100

    firewall: add inteno office ip as management

Base directory -> /
 files/etc/config/firewall | 11 +++++++++++
 1 file changed, 11 insertions(+)
-------------------------------------------------------------------------------
commit 001d4f6b8933d3ea7c094745615a180105327c4f
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-10-27 10:47:00 +0100

    wifi: set acs scan timer to 15 minutes by default

Base directory -> /
 files/etc/config/wireless | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit a975f6cfadb4cead612eefb5019fea923691aff8
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-10-13 11:49:16 +0200

    sysupgrade: add conservative_keep option in /etc/config/backup (handles
    sysupgrade from older versions), refs #7947

Base directory -> /
 files/etc/config/backup | 4 ++++
 1 file changed, 4 insertions(+)
-------------------------------------------------------------------------------
commit 09a2e33213cc09964d9f05f476d40623941a0545
Author: Kenneth Johansson <kenneth@southpole.se>
Date: 2015-09-17 19:23:59 +0200

    crashlog: catch and store any code dump file.

    store the core on the crashlog server.

Base directory -> /
 files/etc/config/system | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
commit 5fc7d9f9b5dd9514f6bf499ee2240466226b9062
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-09-17 15:29:07 +0200

    remove guest network from default software

Base directory -> /
 files/etc/config/dhcp     |  6 ------
 files/etc/config/firewall | 26 --------------------------
 files/etc/config/network  |  7 -------
 3 files changed, 39 deletions(-)
-------------------------------------------------------------------------------
commit a144d4eb916d4cd211cfe57810261786bdedae16
Author: Kenneth Johansson <kenneth@southpole.se>
Date: 2015-09-14 16:44:25 +0200

    Add crashlog package.

    read package/inteno/crashlog/readme for how to setup server for storing
    logs.

Base directory -> /
 files/etc/config/system | 7 +++++++
 1 file changed, 7 insertions(+)
-------------------------------------------------------------------------------
commit 1b8cc57aa6d31089a0f58ffef144fbdd8552339a
Author: Martin Schröder <mkschreder.uk@gmail.com>
Date: 2015-09-04 16:41:44 +0200

    Added rpcd admin:admin login back

Base directory -> /
 files/etc/config/rpcd | 5 +++++
 1 file changed, 5 insertions(+)
-------------------------------------------------------------------------------
commit 4d9d9281c8452391395ccfbe2ec0178cb5fe3d93
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-08-25 10:04:25 +0200

    wireless: disable extrassid

Base directory -> /
 files/etc/config/wireless | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit c2b749d90d65afb047a6890948c29e8671f0f87b
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-08-24 18:12:42 +0200

    wifi changes

Base directory -> /
 files/etc/config/wireless | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
-------------------------------------------------------------------------------
commit 42180d569d2585a549e4fac10eeae8be480012d7
Author: Martin Schröder <mkschreder.uk@gmail.com>
Date: 2015-07-30 11:34:10 +0200

    Updated default wireless config to only include 4 letters from mac into ssid

Base directory -> /
 files/etc/config/wireless | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 749899bfac82cf337cda39f410137516951ec439
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-06-30 16:39:28 +0200

    zeta/base-files to zeta/basefiles

Base directory -> /
 files/etc/config/backup     | 143 ++++++++++++++++++++++++++++++++++++++++++
 files/etc/config/boardpanel |  14 +++++
 files/etc/config/dhcp       |  38 ++++++++++++
 files/etc/config/firewall   | 148 ++++++++++++++++++++++++++++++++++++++++++++
 files/etc/config/hosts      |   0
 files/etc/config/network    |  26 ++++++++
 files/etc/config/passwords  |   8 +++
 files/etc/config/system     |  17 +++++
 files/etc/config/wireless   |  21 +++++++
 9 files changed, 415 insertions(+)
-------------------------------------------------------------------------------
commit 41b8b5653803d2041987a60d9337011eb1d8c6ff
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2016-01-13 15:49:02 +0100

    Remove openwrt default config files

Base directory -> /
 files/etc/config/network | 22 ----------------------
 files/etc/config/system  | 11 -----------
 2 files changed, 33 deletions(-)
-------------------------------------------------------------------------------
2016-01-13 15:58:39 +01:00
Jonas Höglund
e660f7eb4e Update feed [ intenopackages ] package [ iopsys-base-files ]
-------------------------------------------------------------------------------
* 158581a Initialize iopsys-db on boot
-------------------------------------------------------------------------------
commit 158581a475fdaf7d0cf378b568d50ac7b847a948
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2016-01-13 13:26:25 +0100

    Initialize iopsys-db on boot

Base directory -> /
 files/etc/init.d/iopsys-db | 97 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 97 insertions(+)
-------------------------------------------------------------------------------
2016-01-13 13:26:57 +01:00
Jonas Höglund
e25330b763 Update feed [ intenopackages ] package [ iopsys-base-files ]
-------------------------------------------------------------------------------
* c191786 Added db command
* ba32e58 cg300: lit blue wifi led if 5G wifi is on
* 1bc8eaa fix boardfiles with longpress option and set default minpress, refs #8318
* ad5f688 dg150: Add missing items to board file and change name to DG150R0
* 56ae36c eg300: board file: bad spelling of dimming voice1
* 1eed61a Voice: Match brcm line-index to port name in board files, refs #8271
* 37c0cd8 DG400 radar threshould values
* 997b3d5 dg200/dg400: board config: make wan led light up for adsl too, refs #8088
* b13d883 sx9512: create LED intensity and touch sensitivity board config options, refs #7932
* 4bd3f30 DG200: adjust LED intensity and touch sensitivity according to refs #7932
* ba63a97 dg400: board config: Added missing xDSL interfaces, refs #7857
* db708fa dg400: Fix phy led control, refs #7847
* 06a725b radar threshold values for dg200 and dg400
* 6deff60 DG400: Clean up board file
* 54d08eb DG200: enable button press indicator and switch to extbutton action
* d1ccf3e add dect short/long button support to DG301 and CG300
* 6053db6 Added led voice1
* d55c7d8 DG301: turn on broadband LED on ethernet (and DSL) WAN uplink, refs #7651
* 3e0dc52 cg30x boardfiles sx9512 init of LEDs default off
* 8dc2418 peripheral_manager: DG400 support, improved sx9512/shift register and exposed config options
* 8f4a885 dg200: Update peripheral_manager and board file, refs #7598
* 1965d28 DG400: Fix interface name typo in HW config, refs #7631
* 09ad14b Add board config DectAntennaDiversity, Default=0 is use both antennae refs #5990
* 478b1d9 zeta/base-files to zeta/basefiles
-------------------------------------------------------------------------------
commit c191786e48090dc586e45c5e13505eec0df58cd3
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2016-01-12 16:53:23 +0100

    Added db command

Base directory -> /
 files/sbin/db | 4 ++++
 1 file changed, 4 insertions(+)
-------------------------------------------------------------------------------
commit ba32e58d7643c249f5456ce38c4a313a54e33333
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-12-22 15:22:12 +0100

    cg300: lit blue wifi led if 5G wifi is on

Base directory -> /
 files/lib/db/boards/CG300R0 | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
-------------------------------------------------------------------------------
commit 1bc8eaacd19ebb2f3e8f0ccdad820a44aa092a9b
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-12-08 14:41:53 +0100

    fix boardfiles with longpress option and set default minpress, refs #8318

Base directory -> /
 files/lib/db/boards/CG300R0 | 16 ++++------------
 files/lib/db/boards/DG301R0 | 12 +++---------
 files/lib/db/boards/EG300R0 | 17 ++++-------------
 files/lib/db/boards/VOX25   | 11 +++--------
 4 files changed, 14 insertions(+), 42 deletions(-)
-------------------------------------------------------------------------------
commit ad5f6884ae0ff833c5ac2b77229832a3424e00fc
Author: Mats Karrman <mats@southpole.se>
Date: 2015-12-07 18:00:19 +0100

    dg150: Add missing items to board file and change name to DG150R0

Base directory -> /
 files/lib/db/boards/96362ADVNgr | 238 +-------------------------------------
 files/lib/db/boards/DG150R0     | 247 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 248 insertions(+), 237 deletions(-)
-------------------------------------------------------------------------------
commit 56ae36cecca4c67496f823c3b57644489a266992
Author: Mats Karrman <mats@southpole.se>
Date: 2015-12-01 12:57:34 +0100

    eg300: board file: bad spelling of dimming voice1

Base directory -> /
 files/lib/db/boards/EG300R0 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 1eed61a03733a998177a7479092e0bd47f3903de
Author: Mats Karrman <mats@southpole.se>
Date: 2015-11-27 15:03:45 +0100

    Voice: Match brcm line-index to port name in board files, refs #8271

Base directory -> /
 files/lib/db/boards/96362ADVNgr | 2 ++
 files/lib/db/boards/CG300R0     | 4 +++-
 files/lib/db/boards/CG301R0     | 4 +++-
 files/lib/db/boards/DG200R0     | 2 ++
 files/lib/db/boards/DG301R0     | 4 +++-
 files/lib/db/boards/DG400R0     | 4 +++-
 files/lib/db/boards/EG300R0     | 6 ++++--
 files/lib/db/boards/VOX25       | 2 ++
 8 files changed, 22 insertions(+), 6 deletions(-)
-------------------------------------------------------------------------------
commit 37c0cd8f66e271eee83536a56639d00ad92513cf
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-27 11:42:05 +0100

    DG400 radar threshould values

Base directory -> /
 files/lib/db/boards/DG400R0 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 997b3d5be1170b4c4a87f74e2bee553c3705a3e8
Author: Mats Karrman <mats@southpole.se>
Date: 2015-11-05 19:09:19 +0100

    dg200/dg400: board config: make wan led light up for adsl too, refs #8088

Base directory -> /
 files/lib/db/boards/DG200R0 | 36 ++++++++++++++++++++++++++----------
 files/lib/db/boards/DG400R0 | 30 +++++++++++++++++++++++-------
 2 files changed, 49 insertions(+), 17 deletions(-)
-------------------------------------------------------------------------------
commit b13d8835954188763eb113db85b904d16dd7e9ce
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-10-13 17:46:15 +0200

    sx9512: create LED intensity and touch sensitivity board config options,
    refs #7932

Base directory -> /
 files/lib/db/boards/DG200R0 | 44 ++++++++------------------------------------
 1 file changed, 8 insertions(+), 36 deletions(-)
-------------------------------------------------------------------------------
commit 4bd3f30ff20f5cc328045d82238cfb5e6de3d7a6
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-10-13 16:40:10 +0200

    DG200: adjust LED intensity and touch sensitivity according to refs #7932

Base directory -> /
 files/lib/db/boards/DG200R0 | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
-------------------------------------------------------------------------------
commit ba63a97ffb144644646e65a4aedf71d710dee9ce
Author: Mats Karrman <mats@southpole.se>
Date: 2015-09-18 18:33:12 +0200

    dg400: board config: Added missing xDSL interfaces, refs #7857

Base directory -> /
 files/lib/db/boards/DG400R0 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
commit db708fa9ba35d622e89243e13575dcd17ffda133
Author: Mats Karrman <mats@southpole.se>
Date: 2015-09-18 16:26:07 +0200

    dg400: Fix phy led control, refs #7847

Base directory -> /
 files/lib/db/boards/DG400R0 | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
-------------------------------------------------------------------------------
commit 06a725bd5607aab4c596967ba5d9e08f9a2b3abe
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-09-18 11:09:46 +0200

    radar threshold values for dg200 and dg400

Base directory -> /
 files/lib/db/boards/DG200R0 |  2 +-
 files/lib/db/boards/DG400R0 | 21 +++++++++++++--------
 2 files changed, 14 insertions(+), 9 deletions(-)
-------------------------------------------------------------------------------
commit 6deff6046878c97be6f858d33dc3d7e1172efaa7
Author: Mats Karrman <mats@southpole.se>
Date: 2015-08-28 17:26:24 +0200

    DG400: Clean up board file

Base directory -> /
 files/lib/db/boards/DG400R0 | 41 ++++-------------------------------------
 1 file changed, 4 insertions(+), 37 deletions(-)
-------------------------------------------------------------------------------
commit 54d08ebddda4a3ba810f30c96f350231d4d5eba9
Author: Mats Karrman <mats@southpole.se>
Date: 2015-08-27 10:37:15 +0200

    DG200: enable button press indicator and switch to extbutton action

Base directory -> /
 files/lib/db/boards/DG200R0 | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
commit d1ccf3e552f7d09ac4624c3601c7444fff6d7ab9
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-08-26 14:34:29 +0200

    add dect short/long button support to DG301 and CG300

Base directory -> /
 files/lib/db/boards/CG300R0 | 15 +++++++++++----
 files/lib/db/boards/DG301R0 | 14 +++++++++++---
 2 files changed, 22 insertions(+), 7 deletions(-)
-------------------------------------------------------------------------------
commit 6053db6366af59fcfad79912568f30b6c4432611
Author: Vlatko Dimic <vlatko.dimic@inteno.se>
Date: 2015-08-26 11:53:45 +0200

    Added led voice1

Base directory -> /
 files/lib/db/boards/DG301R0 | 1 +
 1 file changed, 1 insertion(+)
-------------------------------------------------------------------------------
commit d55c7d887758b59167da4081de86ca93c9bf1c45
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-08-13 11:51:32 +0200

    DG301: turn on broadband LED on ethernet (and DSL) WAN uplink, refs #7651

Base directory -> /
 files/lib/db/boards/DG301ALR0 | 26 +++++++++++++++++++++-----
 files/lib/db/boards/DG301R0   | 26 +++++++++++++++++++++-----
 2 files changed, 42 insertions(+), 10 deletions(-)
-------------------------------------------------------------------------------
commit 3e0dc523581b945b0ae8769a2538bb26ac7819bf
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-08-06 17:22:46 +0200

    cg30x boardfiles sx9512 init of LEDs default off

Base directory -> /
 files/lib/db/boards/CG300R0 | 8 --------
 files/lib/db/boards/CG301R0 | 4 ----
 2 files changed, 12 deletions(-)
-------------------------------------------------------------------------------
commit 8dc24184f00a7b341d0b8d8fd3a0e2f8d4b35845
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-07-10 11:02:58 +0200

    peripheral_manager: DG400 support, improved sx9512/shift register and
    exposed config options

Base directory -> /
 files/lib/db/boards/CG300R0   |  22 ++-
 files/lib/db/boards/CG301R0   |  16 ++
 files/lib/db/boards/DG200R0   |   5 +
 files/lib/db/boards/DG301ALR0 |   4 +
 files/lib/db/boards/DG301R0   |   5 +-
 files/lib/db/boards/DG400R0   | 445 +++++++++++++++++++++++++++++++++++++++---
 files/lib/db/boards/EG300R0   |   6 +
 7 files changed, 471 insertions(+), 32 deletions(-)
-------------------------------------------------------------------------------
commit 8f4a8850fbc31e984defe85f1c3ebf6369976dee
Author: Mats Karrman <mats@southpole.se>
Date: 2015-07-10 16:52:02 +0200

    dg200: Update peripheral_manager and board file, refs #7598

Base directory -> /
 files/lib/db/boards/DG200R0 | 58 ++++++++++++++++++++++++++++++++-------------
 1 file changed, 42 insertions(+), 16 deletions(-)
-------------------------------------------------------------------------------
commit 1965d285ede48f2f3b918f8f69ff7696d22fdbb1
Author: Mats Karrman <mats@southpole.se>
Date: 2015-07-30 12:58:37 +0200

    DG400: Fix interface name typo in HW config, refs #7631

Base directory -> /
 files/lib/db/boards/DG400R0 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 09ad14b5d37d57a57ede9fff90fdf4078568db5f
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-07-09 18:09:52 +0200

    Add board config DectAntennaDiversity, Default=0 is use both antennae refs
    #5990

Base directory -> /
 files/lib/db/boards/CG300R0 | 1 +
 files/lib/db/boards/DG301R0 | 1 +
 2 files changed, 2 insertions(+)
-------------------------------------------------------------------------------
commit 478b1d9700d8f290e4353ad75f45273a799f267f
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-06-30 16:39:28 +0200

    zeta/base-files to zeta/basefiles

Base directory -> /
 files/lib/db/boards/96362ADVNgr | 235 ++++++++++++++++++++++++++++
 files/lib/db/boards/CG300R0     | 279 +++++++++++++++++++++++++++++++++
 files/lib/db/boards/CG301R0     | 294 ++++++++++++++++++++++++++++++++++
 files/lib/db/boards/DG200R0     | 292 ++++++++++++++++++++++++++++++++++
 files/lib/db/boards/DG301ALR0   | 280 +++++++++++++++++++++++++++++++++
 files/lib/db/boards/DG301R0     | 338 ++++++++++++++++++++++++++++++++++++++++
 files/lib/db/boards/DG400R0     |  44 ++++++
 files/lib/db/boards/EG200R0     | 114 ++++++++++++++
 files/lib/db/boards/EG300R0     | 331 +++++++++++++++++++++++++++++++++++++++
 files/lib/db/boards/VG50_R      | 252 ++++++++++++++++++++++++++++++
 files/lib/db/boards/VOX25       | 254 ++++++++++++++++++++++++++++++
 files/lib/db/boards/board       |   1 +
 12 files changed, 2714 insertions(+)
-------------------------------------------------------------------------------
2016-01-12 17:25:34 +01:00
Jonas Höglund
db18c12c03 Update feed [ intenopackages ] package [ iopsys-base-files ]
-------------------------------------------------------------------------------
* 99bbca8 Added db command
* 1e6a8a1 cg300: lit blue wifi led if 5G wifi is on
* 8566589 fix boardfiles with longpress option and set default minpress, refs #8318
* 80ca7f6 dg150: Add missing items to board file and change name to DG150R0
* 6b88958 eg300: board file: bad spelling of dimming voice1
* 33a25fa Voice: Match brcm line-index to port name in board files, refs #8271
* 7292fd8 DG400 radar threshould values
* dfb5024 dg200/dg400: board config: make wan led light up for adsl too, refs #8088
* ee1e050 sx9512: create LED intensity and touch sensitivity board config options, refs #7932
* d591135 DG200: adjust LED intensity and touch sensitivity according to refs #7932
* ee87250 dg400: board config: Added missing xDSL interfaces, refs #7857
* f15b8cb dg400: Fix phy led control, refs #7847
* 8c8c50b radar threshold values for dg200 and dg400
* 950078b DG400: Clean up board file
* 5c4cad3 DG200: enable button press indicator and switch to extbutton action
* 324e1f8 add dect short/long button support to DG301 and CG300
* 879e98c Added led voice1
* 80fac55 DG301: turn on broadband LED on ethernet (and DSL) WAN uplink, refs #7651
* 756d476 cg30x boardfiles sx9512 init of LEDs default off
* e03e303 peripheral_manager: DG400 support, improved sx9512/shift register and exposed config options
* c6c78fd dg200: Update peripheral_manager and board file, refs #7598
* 058edaa DG400: Fix interface name typo in HW config, refs #7631
* 5f2c95b Add board config DectAntennaDiversity, Default=0 is use both antennae refs #5990
* d425921 zeta/base-files to zeta/basefiles
-------------------------------------------------------------------------------
commit 99bbca8c16390f9efa790bb5957c1cc02f87b064
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2016-01-12 16:53:23 +0100

    Added db command

Base directory -> /
 files/sbin/db | 4 ++++
 1 file changed, 4 insertions(+)
-------------------------------------------------------------------------------
commit 1e6a8a14ef1ae6099501a656f03266b67fbf5b20
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-12-22 15:22:12 +0100

    cg300: lit blue wifi led if 5G wifi is on

Base directory -> /
 lib/db/boards/CG300R0 | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
-------------------------------------------------------------------------------
commit 8566589bb08dd7bb7183f36d79323f3810b30034
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-12-08 14:41:53 +0100

    fix boardfiles with longpress option and set default minpress, refs #8318

Base directory -> /
 lib/db/boards/CG300R0 | 16 ++++------------
 lib/db/boards/DG301R0 | 12 +++---------
 lib/db/boards/EG300R0 | 17 ++++-------------
 lib/db/boards/VOX25   | 11 +++--------
 4 files changed, 14 insertions(+), 42 deletions(-)
-------------------------------------------------------------------------------
commit 80ca7f61c1cd07c71712180a42bc8606b6f4c65f
Author: Mats Karrman <mats@southpole.se>
Date: 2015-12-07 18:00:19 +0100

    dg150: Add missing items to board file and change name to DG150R0

Base directory -> /
 lib/db/boards/96362ADVNgr | 238 +-------------------------------------------
 lib/db/boards/DG150R0     | 247 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 248 insertions(+), 237 deletions(-)
-------------------------------------------------------------------------------
commit 6b88958a416b683d56563665dbbfb142f29e7c0c
Author: Mats Karrman <mats@southpole.se>
Date: 2015-12-01 12:57:34 +0100

    eg300: board file: bad spelling of dimming voice1

Base directory -> /
 lib/db/boards/EG300R0 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 33a25fad2d6cb292502a00f7cf0ca0ba66c69dd4
Author: Mats Karrman <mats@southpole.se>
Date: 2015-11-27 15:03:45 +0100

    Voice: Match brcm line-index to port name in board files, refs #8271

Base directory -> /
 lib/db/boards/96362ADVNgr | 2 ++
 lib/db/boards/CG300R0     | 4 +++-
 lib/db/boards/CG301R0     | 4 +++-
 lib/db/boards/DG200R0     | 2 ++
 lib/db/boards/DG301R0     | 4 +++-
 lib/db/boards/DG400R0     | 4 +++-
 lib/db/boards/EG300R0     | 6 ++++--
 lib/db/boards/VOX25       | 2 ++
 8 files changed, 22 insertions(+), 6 deletions(-)
-------------------------------------------------------------------------------
commit 7292fd802d514efe5600304348302f5b73571e4b
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-11-27 11:42:05 +0100

    DG400 radar threshould values

Base directory -> /
 lib/db/boards/DG400R0 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit dfb5024858e90e70ac4ea6ff2a64d79c939698f6
Author: Mats Karrman <mats@southpole.se>
Date: 2015-11-05 19:09:19 +0100

    dg200/dg400: board config: make wan led light up for adsl too, refs #8088

Base directory -> /
 lib/db/boards/DG200R0 | 36 ++++++++++++++++++++++++++----------
 lib/db/boards/DG400R0 | 30 +++++++++++++++++++++++-------
 2 files changed, 49 insertions(+), 17 deletions(-)
-------------------------------------------------------------------------------
commit ee1e0507d1fd302eabc8814663e86f57dbd2ef8a
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-10-13 17:46:15 +0200

    sx9512: create LED intensity and touch sensitivity board config options,
    refs #7932

Base directory -> /
 lib/db/boards/DG200R0 | 44 ++++++++------------------------------------
 1 file changed, 8 insertions(+), 36 deletions(-)
-------------------------------------------------------------------------------
commit d5911354fa7d31b7b1da5490aa53f06ef0d20435
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-10-13 16:40:10 +0200

    DG200: adjust LED intensity and touch sensitivity according to refs #7932

Base directory -> /
 lib/db/boards/DG200R0 | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
-------------------------------------------------------------------------------
commit ee872509753b95ad67962b038ad47a6b4f4d3370
Author: Mats Karrman <mats@southpole.se>
Date: 2015-09-18 18:33:12 +0200

    dg400: board config: Added missing xDSL interfaces, refs #7857

Base directory -> /
 lib/db/boards/DG400R0 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
commit f15b8cb70e497d70ab992794886e0d1ce94bd597
Author: Mats Karrman <mats@southpole.se>
Date: 2015-09-18 16:26:07 +0200

    dg400: Fix phy led control, refs #7847

Base directory -> /
 lib/db/boards/DG400R0 | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
-------------------------------------------------------------------------------
commit 8c8c50b1012c4806c80b3f3db263ea295ae77061
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-09-18 11:09:46 +0200

    radar threshold values for dg200 and dg400

Base directory -> /
 lib/db/boards/DG200R0 |  2 +-
 lib/db/boards/DG400R0 | 21 +++++++++++++--------
 2 files changed, 14 insertions(+), 9 deletions(-)
-------------------------------------------------------------------------------
commit 950078befe9ed6e03f06782a598c49aa130eb393
Author: Mats Karrman <mats@southpole.se>
Date: 2015-08-28 17:26:24 +0200

    DG400: Clean up board file

Base directory -> /
 lib/db/boards/DG400R0 | 41 ++++-------------------------------------
 1 file changed, 4 insertions(+), 37 deletions(-)
-------------------------------------------------------------------------------
commit 5c4cad39a99c1bd425e9073ad847746da36c0ef8
Author: Mats Karrman <mats@southpole.se>
Date: 2015-08-27 10:37:15 +0200

    DG200: enable button press indicator and switch to extbutton action

Base directory -> /
 lib/db/boards/DG200R0 | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
-------------------------------------------------------------------------------
commit 324e1f8cf9b02f68e022950613a1bb83846e08f4
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-08-26 14:34:29 +0200

    add dect short/long button support to DG301 and CG300

Base directory -> /
 lib/db/boards/CG300R0 | 15 +++++++++++----
 lib/db/boards/DG301R0 | 14 +++++++++++---
 2 files changed, 22 insertions(+), 7 deletions(-)
-------------------------------------------------------------------------------
commit 879e98c962b4a52201d1a79ab65da65995788726
Author: Vlatko Dimic <vlatko.dimic@inteno.se>
Date: 2015-08-26 11:53:45 +0200

    Added led voice1

Base directory -> /
 lib/db/boards/DG301R0 | 1 +
 1 file changed, 1 insertion(+)
-------------------------------------------------------------------------------
commit 80fac550fb406c35420fe4c67bc5b16e0695c6d8
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-08-13 11:51:32 +0200

    DG301: turn on broadband LED on ethernet (and DSL) WAN uplink, refs #7651

Base directory -> /
 lib/db/boards/DG301ALR0 | 26 +++++++++++++++++++++-----
 lib/db/boards/DG301R0   | 26 +++++++++++++++++++++-----
 2 files changed, 42 insertions(+), 10 deletions(-)
-------------------------------------------------------------------------------
commit 756d476d32343acf4f3fb0051d286dd786ca0f78
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-08-06 17:22:46 +0200

    cg30x boardfiles sx9512 init of LEDs default off

Base directory -> /
 lib/db/boards/CG300R0 | 8 --------
 lib/db/boards/CG301R0 | 4 ----
 2 files changed, 12 deletions(-)
-------------------------------------------------------------------------------
commit e03e3039f1afc9e4f23fb40abcfa734a2c05a2ae
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-07-10 11:02:58 +0200

    peripheral_manager: DG400 support, improved sx9512/shift register and
    exposed config options

Base directory -> /
 lib/db/boards/CG300R0   |  22 ++-
 lib/db/boards/CG301R0   |  16 ++
 lib/db/boards/DG200R0   |   5 +
 lib/db/boards/DG301ALR0 |   4 +
 lib/db/boards/DG301R0   |   5 +-
 lib/db/boards/DG400R0   | 445 ++++++++++++++++++++++++++++++++++++++++++++----
 lib/db/boards/EG300R0   |   6 +
 7 files changed, 471 insertions(+), 32 deletions(-)
-------------------------------------------------------------------------------
commit c6c78fdfa002cb363355dbaf194180c96f873bcb
Author: Mats Karrman <mats@southpole.se>
Date: 2015-07-10 16:52:02 +0200

    dg200: Update peripheral_manager and board file, refs #7598

Base directory -> /
 lib/db/boards/DG200R0 | 58 +++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 42 insertions(+), 16 deletions(-)
-------------------------------------------------------------------------------
commit 058edaa6c6040358a3ea1695b1e8aa9afb2e8dc1
Author: Mats Karrman <mats@southpole.se>
Date: 2015-07-30 12:58:37 +0200

    DG400: Fix interface name typo in HW config, refs #7631

Base directory -> /
 lib/db/boards/DG400R0 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
-------------------------------------------------------------------------------
commit 5f2c95b0a4be08f5954453045ec54fa177c3723c
Author: Nabeel Sowan <nabeel@vibes.se>
Date: 2015-07-09 18:09:52 +0200

    Add board config DectAntennaDiversity, Default=0 is use both antennae refs
    #5990

Base directory -> /
 lib/db/boards/CG300R0 | 1 +
 lib/db/boards/DG301R0 | 1 +
 2 files changed, 2 insertions(+)
-------------------------------------------------------------------------------
commit d425921c881cea10beded6c3dcd7cd4c0583c3e1
Author: Sukru Senli <sukru.senli@inteno.se>
Date: 2015-06-30 16:39:28 +0200

    zeta/base-files to zeta/basefiles

Base directory -> /
 lib/db/boards/96362ADVNgr | 235 ++++++++++++++++++++++++++++++++
 lib/db/boards/CG300R0     | 279 ++++++++++++++++++++++++++++++++++++++
 lib/db/boards/CG301R0     | 294 ++++++++++++++++++++++++++++++++++++++++
 lib/db/boards/DG200R0     | 292 +++++++++++++++++++++++++++++++++++++++
 lib/db/boards/DG301ALR0   | 280 ++++++++++++++++++++++++++++++++++++++
 lib/db/boards/DG301R0     | 338 ++++++++++++++++++++++++++++++++++++++++++++++
 lib/db/boards/DG400R0     |  44 ++++++
 lib/db/boards/EG200R0     | 114 ++++++++++++++++
 lib/db/boards/EG300R0     | 331 +++++++++++++++++++++++++++++++++++++++++++++
 lib/db/boards/VG50_R      | 252 ++++++++++++++++++++++++++++++++++
 lib/db/boards/VOX25       | 254 ++++++++++++++++++++++++++++++++++
 lib/db/boards/board       |   1 +
 12 files changed, 2714 insertions(+)
-------------------------------------------------------------------------------
2016-01-12 16:54:09 +01:00
Kenneth Johansson
3c3534e5e6 Added comment
for testing.
2015-12-23 17:03:11 +01:00
Jonas Höglund
7493d71ea8 iopsys-base-files installs in correct dir 2015-12-23 15:00:37 +01:00
Jonas Höglund
847f109800 Update feed [ intenopackages ] package [ iopsys-base-files ]
-------------------------------------------------------------------------------
* a30f359 Removed inittab
* 3aca14d Added mandatory makefile
* 8090be7 Deleted package makefile
-------------------------------------------------------------------------------
commit a30f35957e419a772275071eb1322848fe8bf5df
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2015-12-22 17:17:26 +0100

    Removed inittab

Base directory -> /
 files/etc/inittab | 3 ---
 1 file changed, 3 deletions(-)
-------------------------------------------------------------------------------
commit 3aca14d5ac4dee330f90bb90bb2b60917a846270
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2015-12-21 14:17:45 +0100

    Added mandatory makefile

Base directory -> /
 Makefile | 3 +++
 1 file changed, 3 insertions(+)
-------------------------------------------------------------------------------
commit 8090be782bfe06aae1ffdcf1be7c8e3acd6ecf10
Author: Jonas Höglund <jonas.hoglund@embeddednation.com>
Date: 2015-12-21 14:12:12 +0100

    Deleted package makefile

Base directory -> /
 Makefile | 156 ---------------------------------------------------------------
 1 file changed, 156 deletions(-)
-------------------------------------------------------------------------------
2015-12-22 18:32:33 +01:00
Jonas Höglund
3113657a5f Add opkg build dependency 2015-12-22 11:31:33 +01:00
Jonas Höglund
1e14f810b0 Package compile fix 2015-12-15 18:36:40 +01:00
Jonas Höglund
d8788edffa Repo path added 2015-12-15 14:02:37 +01:00
Jonas Höglund
ec152f8f9f Added iopsys-base-files package 2015-12-14 15:34:56 +01:00
Jonas Höglund
ca278a1871 Build fix for ice-client 2015-12-03 11:10:47 +01:00
Jonas Höglund
209ea5b025 Fix anyfi config.in syntax 2015-11-20 13:22:07 +01:00
Jonas Höglund
dd375f2a18 Correct section for configs in menuconfig 2015-11-20 11:56:24 +01:00
Jonas Höglund
cd49a9c30f New conf-caiman-inteno 2015-11-20 11:27:34 +01:00
Jonas Höglund
66706c7995 NewConfig util function 2015-11-19 18:37:26 +01:00
Jonas Höglund
551f885344 Autogenerate menu entry 2015-11-19 18:28:03 +01:00
Jonas Höglund
527a104ef5 Autogenerate package install 2015-11-19 18:23:35 +01:00
Jonas Höglund
840130ec14 Ignore error on cp 2015-11-19 18:14:24 +01:00
Jonas Höglund
c466667e3d Fixed broken makefile 2015-11-19 17:25:21 +01:00
Jonas Höglund
b83cb84ff9 Added conf-caiman-inteno 2015-11-19 17:22:30 +01:00
Jonas Höglund
0bef3a9e5a Config package definition 2015-11-19 17:11:28 +01:00
Jonas Höglund
6ee6b3675f Updated inteno-config package 2015-11-19 15:48:34 +01:00
Jonas Höglund
e8f90b0d41 Build in standard dir 2015-11-19 15:47:26 +01:00
Jonas Höglund
46eb21a677 Fixed broken url 2015-11-19 15:39:36 +01:00
Jonas Höglund
3161fbde1c Added inteno-configs package 2015-11-19 14:58:10 +01:00
Jonas Höglund
43ea4d028a Don't set ice-client default=y in package makefile 2015-11-17 17:27:08 +01:00
Jonas Höglund
c908ea3e7c Ice client compiles on cc 2015-11-17 15:21:49 +01:00
Jonas Höglund
75299f0ea2 Disable building ice-client torrent plugin 2015-11-17 15:21:49 +01:00
Jonas Höglund
dc6ef2b53e Added ice-client 2015-11-17 15:21:49 +01:00
Fredrik Åsberg
6badb49fd9 Created inteno-packages-broadcom repo for the following packages:
asterisk, bcmhotproxy, bcmkernel, brcm-h, brcm_fw_tool, brcminfo, dectmngr, dectmngr2, endptctl, natalie-dect, peripheral_manager, questd, teliasafety-misc, wl-anyfi.
2015-11-17 12:47:10 +01:00
Fredrik Åsberg
4a670745ca Removal of all packages that we'r not sure that we want to keep.
Removed the following packages: 4g-support, 6relayd, af_alg, alljoyn,ami_tool, block-mount-old, bridge-utils, broadcom-diag, broadcom-nvram, crda, dahdi, dbus, ddns-scripts, freecwmp, glib2, gpioctl, haproxy, hotplug2, jansson, libffi, libipfix, libmicroxml, libpcre, ltq-kpi2udp, ltq-tapidemo, minidlna, mosquitto, multiwan, net-snmp, owsip, pjsip, qrencode, samba2, shflags, sierra-directip, siit, sqlite3, statd, syslog-ng3, usb-modeswitch, wprobe
2015-11-13 17:24:28 +01:00
Fredrik Åsberg
eda680f4cf remove package ltq-dsl and ltq-dsl-app
needed by linux lantiq target
2015-11-13 15:50:35 +01:00
Fredrik Åsberg
8bb1b8e147 remove package libmbim and libqmi
remove reference from webgui/luci/luci/Makefile
2015-11-13 15:32:37 +01:00
Fredrik Åsberg
9cdc86c8e8 remove unused goldfish-qemu package 2015-11-13 15:05:01 +01:00
Fredrik Åsberg
ba02924ce5 remove unused ps3-utils package 2015-11-13 15:04:19 +01:00
Fredrik Åsberg
ee679f8258 remove dect-prog not needed
This package should not be included in the new system.
2015-11-13 14:25:03 +01:00
Fredrik Åsberg
13b7f7e363 remove compcache not needed
/dev/zram is part of linux kernel tree since kernel 3.14 release (part of staging tree for now "drivers/staging/zram").
2015-11-13 13:51:32 +01:00
Fredrik Åsberg
293b0835b1 remove unused grub package 2015-11-13 11:17:24 +01:00
Fredrik Åsberg
54395dd359 remove uboot-omap4 package 2015-11-13 11:01:03 +01:00
Fredrik Åsberg
bbc05c7c79 remove unused package uboot-omap35xx 2015-11-13 11:00:45 +01:00
541 changed files with 147 additions and 100910 deletions

View File

@@ -1,31 +0,0 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=4g-support
PKG_VERSION:=1.0.0
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/4g-support
CATEGORY:=Network
TITLE:=4G Network Setup Tools
endef
define Package/4g-support/description
4g-support contains necessary tools to setup 4G WAN connection
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./files/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
endef
define Package/4g-support/install
$(CP) ./files/* $(1)/
endef
$(eval $(call BuildPackage,4g-support))

View File

@@ -1,62 +0,0 @@
opengt
set com 115200n81
set comecho off
set senddelay 0.05
waitquiet 1 0.2
:start
if $env("USE_DISCONNECT")="1" goto disconnect
send "AT^^NDISDUP=1,1,\""
send $env("USE_APN")
if $env("USE_AUTHTYPE")="-1" goto noauth
else goto auth
:noauth
send "\"^m"
goto result
:auth
send "\",\""
send $env("USE_USERID")
send "\",\""
send $env("USE_PASSWORD")
send "\","
send $env("USE_AUTHTYPE")
send "^m"
goto result
:result
waitfor 5 "OK","ERR","ERROR"
if % = 0 goto connok
if % = 1 goto connerr
if % = 2 goto connerr
:connok
print "WWAN connection established.\r\n"
goto done
:connerr
print "WWAN error. Connection failed.\r\n"
exit 1
:disconnect
send "AT^^NDISDUP=1,0,\""
send $env("USE_APN")
send "\"^m"
waitfor 5 "OK","ERR","ERROR"
if % = 0 goto disconnok
if % = 1 goto disconnerr
if % = 2 goto disconnerr
:disconnok
print "WWAN connection disconnected.\r\n"
goto done
:disconnerr
print "WWAN disconnection error.\r\n"
exit 1
:done
exit 0

View File

@@ -1,35 +0,0 @@
. /lib/network/config.sh
. /usr/share/libubox/jshn.sh
iface_status() {
local iface=$1
local up
json_load "$(ifstatus $iface)"
json_get_var up up
json_close_object
return $up
}
case "$ACTION" in
add|register)
if [ "${INTERFACE:0:4}" == "wwan" ]; then
netname=$(get_network_of "$INTERFACE")
for net in $netname; do
local service=$(uci -q get network.$net.service)
local cnt=0
while $(iface_status $net); do
ifup $net
if [ "$service" == "qmi" ]; then
cnt=$(($cnt+1))
# quit trying if still not online after three times
[ $cnt -eq 3 ] && break
sleep 5
else
break
fi
done
done
fi
;;
esac

View File

@@ -1,66 +0,0 @@
#!/bin/sh
local usb_dir uVid uPid uMa uPr uSe bConf bNumConfs vendor product mdmtyp netdev comdev cdcdev ttydev usbno usbbr
sanitize() {
sed -e 's/[[:space:]]\+$//; s/[[:space:]]\+/_/g' "$@"
}
find_usb_attrs() {
usb_dir="/sys/$DEVPATH"
[ -f "$usb_dir/idVendor" ] || usb_dir="${usb_dir%/*}"
uVid=$(cat "$usb_dir/idVendor")
uPid=$(cat "$usb_dir/idProduct")
uMa=$(sanitize "$usb_dir/manufacturer")
uPr=$(sanitize "$usb_dir/product")
uSe=$(sanitize "$usb_dir/serial")
bNumConfs=$(cat "$usb_dir/bNumConfigurations")
bConf=$(cat "$usb_dir/bConfigurationValue")
netdev=$(find $usb_dir -name wwan* | awk -F'/' '{print$NF}' | head -2 | tail -1)
cdcdev=$(find $usb_dir -name cdc-wdm* | awk -F'/' '{print$NF}' | head -2 | tail -1)
ttydev=$(ls $(find $usb_dir -name tty | head -2 | tail -1) | tail -1)
if [ -n "$cdcdev" ]; then
comdev=$cdcdev
mdmtyp=$(grep $uVid:$uPid /etc/modemdb | grep 'qmi\|mbim' | awk '{print$2}' | head -1)
vendor=$(grep $uVid:$uPid /etc/modemdb | grep 'qmi\|mbim' | awk '{print$3}' | head -1)
product=$(grep $uVid:$uPid /etc/modemdb | grep 'qmi\|mbim' | awk '{print$4}' | head -1)
else
comdev=$ttydev
mdmtyp=$(grep $uVid:$uPid /etc/modemdb | grep 'ncm' | awk '{print$2}' | head -1)
vendor=$(grep $uVid:$uPid /etc/modemdb | grep 'ncm' | awk '{print$3}' | head -1)
product=$(grep $uVid:$uPid /etc/modemdb | grep 'ncm' | awk '{print$4}' | head -1)
fi
[ -n "$mdmtyp" ] || mdmtyp=$(grep $uVid:$uPid /etc/modemdb | awk '{print$2}' | head -1)
[ -n "$vendor" ] || vendor=$(grep $uVid:$uPid /etc/modemdb | awk '{print$3}' | head -1)
[ -n "$product" ] || product=$(grep $uVid:$uPid /etc/modemdb | awk '{print$4}' | head -1)
}
convert_to_mbim() {
if [ "$mdmtyp" == "mbim" ] && [ "$bNumConfs" == "2" ]; then
[ "$bConf" == "2" ] || echo 2 > $usb_dir/bConfigurationValue
fi
}
usbno=$(echo $DEVPATH | cut -d'/' -f5)
usbbr=$(echo $DEVPATH | cut -d'/' -f7)
case "$usbbr" in
*:*) usbbr=$(echo $DEVPATH | cut -d'/' -f6) ;;
esac
find_usb_attrs
if [ "$ACTION" = add ]; then
convert_to_mbim "$uVid:$uPid"
if [ -n "$uVid" ] && [ -n "$uPid" ] && [ -n "$mdmtyp" ] && [ -n "$netdev" ] && [ -n "$comdev" ]; then
if [ -n "$usbno" ] && [ -n "$usbbr" ]; then
sed -i "/$usbno:$usbbr/ d" /var/usbnets
echo $usbno:$usbbr $uVid:$uPid $uMa $uPr $netdev $comdev $mdmtyp $vendor $product >> /var/usbnets
fi
fi
fi
if [ "$ACTION" = remove ]; then
if [ -n "$usbno" ] && [ -n "$usbbr" ]; then
sed -i "/$usbno:$usbbr/ d" /var/usbnets
fi
fi

View File

@@ -1,100 +0,0 @@
1bbb:011e qmi
1a8d:1001 ecm
1a8d:100c ecm
1a8d:100d ecm
16d8:6280 qmi
16d8:6803 qmi
16d8:6804 qmi
16d8:7003 qmi
16d8:700a qmi
2001:7d01 mbim
2001:7d02 mbim
2001:7d03 mbim
12d1:14ac qmi
12d1:140c qmi
12d1:1506 qmi Huawei E367/392/398
12d1:1506 ncm Huawei E3276
12d1:14d2 qmi
12d1:1c07 ncm
12d1:1436 ecm
12d1:14c9 qmi
12d1:14db ecm
12d1:151d mbim
12d1:151e qmi Huawei E353
12d1:1c1e ncm
12d1:150c qmi
12d1:150f qmi
12d1:151b qmi
12d1:142d ecm
12d1:1432 ecm
12d1:1c1f ncm
12d1:1433 qmi
12d1:1465 ecm
12d1:14ca qmi
12d1:14cf ncm
12d1:14bc ecm
12d1:14ae ecm
12d1:1576 mbim
12d1:1577 mbim
12d1:1400 mbim
12d1:14f7 mbim
12d1:1464 qmi
12d1:14cb qmi
12d1:14cc qmi
12d1:14c6 qmi
12d1:14fa mbim
12d1:1578 mbim
12d1:14c8 qmi
12d1:14f8 mbim
12d1:1575 mbim
12d1:1579 mbim
12d1:157a mbim
12d1:157b mbim
12d1:157f mbim
12d1:1f16 mbim Vodafone K5150
12d1:1404 qmi
19f2:1700 ecm
1410:b001 qmi
1527:1000 ecm
0b3c:c005 qmi
0f3d:68a2 qmi
1199:68a2 qmi SierraWireless M7710
1199:68c0 qmi SierraWireless M7304
1349:1100 qmi
1349:1200 qmi
1199:683c qmi
2360:2100 qmi
2360:2200 qmi
2360:2300 qmi
2507:0000 qmi
19d2:0055 qmi
19d2:0052 qmi
19d2:0063 qmi
19d2:1008 qmi
19d2:1010 qmi
19d2:2002 qmi
19d2:1176 qmi
19d2:1023 mbim
19d2:0104 qmi
19d2:1018 qmi
19d2:1032 mbim
19d2:1402 qmi
19d2:1405 ecm
19d2:1426 qmi
19d2:0031 qmi
19d2:0124 qmi
19d2:1254 qmi
19d2:0017 qmi
19d2:0002 qmi
19d2:0121 qmi
19d2:1252 qmi
19d2:0157 qmi
19d2:0167 qmi
19d2:0199 qmi
19d2:0257 qmi
19d2:0326 qmi
19d2:0349 ecm
19d2:1408 ecm
19d2:0284 qmi
19d2:0019 qmi
19d2:0265 qmi

View File

@@ -1,159 +0,0 @@
#!/bin/sh
INCLUDE_ONLY=1
. /lib/functions.sh
. ../netifd-proto.sh
init_proto "$@"
proto_4g_init_config() {
proto_config_add_string "modem"
proto_config_add_string "service"
proto_config_add_string "comdev"
proto_config_add_string "ipaddr"
proto_config_add_string "netmask"
proto_config_add_string "hostname"
proto_config_add_string "clientid"
proto_config_add_string "vendorid"
proto_config_add_boolean "broadcast"
proto_config_add_string "reqopts"
proto_config_add_string "apn"
proto_config_add_string "username"
proto_config_add_string "password"
proto_config_add_boolean "lte_apn_use"
proto_config_add_string "lte_apn"
proto_config_add_string "lte_username"
proto_config_add_string "lte_password"
proto_config_add_string "pincode"
proto_config_add_string "technology"
proto_config_add_string "auto"
}
proto_4g_setup() {
local config="$1"
local iface="$2"
local ipaddr hostname clientid vendorid broadcast reqopts iface6rd sendopts delegate zone6rd zone
json_get_vars ipaddr hostname clientid vendorid broadcast reqopts iface6rd sendopts delegate zone6rd zone
local opt dhcpopts
for opt in $reqopts; do
append dhcpopts "-O $opt"
done
for opt in $sendopts; do
append dhcpopts "-x $opt"
done
[ "$broadcast" = 1 ] && broadcast="-B" || broadcast=
[ -n "$clientid" ] && clientid="-x 0x3d:${clientid//:/}" || clientid="-C"
[ -n "$iface6rd" ] && proto_export "IFACE6RD=$iface6rd"
[ "$iface6rd" != 0 -a -f /lib/netifd/proto/6rd.sh ] && append dhcpopts "-O 212"
[ -n "$zone6rd" ] && proto_export "ZONE6RD=$zone6rd"
[ -n "$zone" ] && proto_export "ZONE=$zone"
[ "$delegate" = "0" ] && proto_export "IFACE6RD_DELEGATE=0"
json_get_var comdev comdev
json_get_var apn apn
json_get_var service service
json_get_var pincode pincode
# if [ -n "$modem" ]; then
# service=$(echo $modem | cut -d':' -f1)
# comdev=$(echo $modem | cut -d':' -f2)
# iface=$(echo $modem | cut -d':' -f3)
# fi
case "$service" in
ecm)
;;
eem)
;;
mbim)
local mbimdev=/dev/$(basename $(ls /sys/class/net/${iface}/device/usb/cdc-wdm* -d))
local comdev="${comdev:-$mbimdev}"
[ -n "$pincode" ] && {
if ! mbimcli -d $comdev --query-pin-state 2>&1 | grep -q "unlocked"; then
set -o pipefail
if ! mbimcli -d $comdev --enter-pin="${pincode}" 2>&1; then
mbimcli -d $comdev --query-pin-state
proto_notify_error "$config" PIN_FAILED
proto_block_restart "$interface"
return 1
fi
fi
}
APN="$apn" mbim-network $comdev start
;;
ncm)
[ -n "$pincode" ] && echo $pincode | gcom -d $comdev
USE_APN="$apn" gcom -d $comdev -s /etc/gcom/ncmconnection.gcom
;;
qmi)
local qmidev=/dev/$(basename $(ls /sys/class/net/${iface}/device/usb/cdc-wdm* -d))
local comdev="${comdev:-$qmidev}"
[ -n "$pincode" ] && {
if ! qmicli -d $comdev --dms-uim-get-pin-status 2>&1 | grep -q "enabled-verified\|disabled" >/dev/null; then
set -o pipefail
if ! qmicli -d $comdev --dms-uim-verify-pin="PIN,${pincode}" 2>&1; then
qmicli -d $comdev --dms-uim-get-pin-status
proto_notify_error "$config" PIN_FAILED
proto_block_restart "$interface"
return 1
fi
fi
}
APN="$apn" qmi-network $comdev start
;;
esac
proto_export "INTERFACE=$config"
proto_run_command "$config" udhcpc -R \
-p /var/run/udhcpc-$iface.pid \
-s /lib/netifd/dhcp.script \
-f -t 0 -i "$iface" \
${ipaddr:+-r $ipaddr} \
${hostname:+-H $hostname} \
${vendorid:+-V $vendorid} \
$clientid $broadcast $dhcpopts
}
proto_4g_teardown() {
local interface="$1"
local iface="$2"
local modem service comdev
config_load network
config_get service $interface service
config_get comdev $interface comdev
# config_get modem $interface modem
# if [ -n "$modem" ]; then
# service=$(echo $modem | cut -d':' -f1)
# comdev=$(echo $modem | cut -d':' -f2)
# iface=$(echo $modem | cut -d':' -f3)
# fi
case "$service" in
ecm)
;;
eem)
;;
mbim)
local mbimdev=/dev/$(basename $(ls /sys/class/net/${iface}/device/usb/cdc-wdm* -d))
local comdev="${comdev:-$mbimdev}"
mbim-network $comdev stop
;;
ncm)
USE_DISCONNECT=1 gcom -d $comdev -s /etc/gcom/ncmconnection.gcom
;;
qmi)
local qmidev=/dev/$(basename $(ls /sys/class/net/${iface}/device/usb/cdc-wdm* -d))
local comdev="${comdev:-$qmidev}"
qmi-network $comdev stop
;;
esac
proto_kill_command "$interface"
}
add_protocol 4g

View File

@@ -1,8 +0,0 @@
config server 'default'
list network 'lan'
option rd 'server'
option dhcpv6 'server'
option management_level '1'
option compat_ula '1'

View File

@@ -1,57 +0,0 @@
#
# Copyright (C) 2006-2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_RELEASE:=1
PKG_VERSION:=1
PKG_SOURCE_URL:=git://git.carnivore.it/users/common/af_alg.git
PKG_SOURCE_VERSION:=1851bbb010c38878c83729be844f168192059189
PKG_NAME:=af_alg
PKG_VERSION:=0.1
DEPENDS:=libopenssl
export BUILD_DIR
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
TARGET_LDFLAGS+= \
-Wl,-rpath-link=$(STAGING_DIR)/usr/lib
MAKE_FLAGS += TARGET="$(target)"
TARGET_CFLAGS += -Dtarget_$(target)=1 -Wall
include $(INCLUDE_DIR)/package.mk
define Package/af_alg
CATEGORY:=Libraries
TITLE:=Openssl af_alg engine
URL:=
endef
define Package/af_alg/description
Openssl af_alg engine
endef
define Build/Compile
$(MAKE_VARS) \
$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
$(MAKE_FLAGS)
endef
define Package/af_alg/install
$(INSTALL_DIR) $(1)/usr
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/engines
cp $(PKG_BUILD_DIR)/libaf_alg.so $(1)/usr/lib/engines/
endef
$(eval $(call BuildPackage,af_alg))

View File

@@ -1,11 +0,0 @@
--- a/Makefile 2014-02-17 13:00:44.161670649 +0100
+++ b/Makefile 2014-02-17 13:00:51.633670316 +0100
@@ -24,7 +24,7 @@
LDFLAGS =
SPEC_LDFLAGS = \
- -lcrypto
+ -lcrypt
CC = cc
LD = $(CC)

View File

@@ -1,135 +0,0 @@
AJ_SERVICE:=config
AJ_SERVICE_NAME:=Config
include $(TOPDIR)/rules.mk
PKG_NAME:=alljoyn-$(AJ_SERVICE)
PKG_BASE_VERSION:=14.12
PKG_PATCHLEVEL:=.00
PKG_RELEASE:=1
PKG_MD5SUM:=389c2623619281e6849da25cee7e1bb7
PKG_VERSION:=$(PKG_BASE_VERSION)$(PKG_PATCHLEVEL)
PKG_TARBALL_VERSION:=$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/alljoyn-services-$(PKG_TARBALL_VERSION)-src
PKG_SOURCE:=alljoyn-services-$(PKG_TARBALL_VERSION)-src.tar.gz
PKG_SOURCE_URL:=https://allseenalliance.org/releases/alljoyn/$(PKG_BASE_VERSION)/
# SCons supports parallel builds but does not support make's jobserver
PKG_BUILD_PARALLEL:=$(if $(CONFIG_PKG_BUILD_USE_JOBSERVER),0,1)
PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_$(PKG_NAME)-samples
include $(INCLUDE_DIR)/package.mk
ifneq ($(CONFIG_CCACHE),)
TARGET_CC=$(TARGET_CC_NOCACHE)
TARGET_CXX=$(TARGET_CXX_NOCACHE)
endif
ALLJOYN_BINDINGS:=cpp,
ALLJOYN_BUILD_SERVICES_SAMPLES:=off
define Package/$(PKG_NAME)
TITLE:=AllJoyn $(AJ_SERVICE_NAME) service library
SECTION:=net
CATEGORY:=Network
DEPENDS:=alljoyn \
+alljoyn-about
URL:=http://www.allseenalliance.org
MAINTAINER:=AllSeen Alliance <allseen-core@lists.allseenalliance.org>
MENU:=1
endef
define Package/$(PKG_NAME)/description
AllJoyn $(AJ_SERVICE_NAME) service library.
endef
define Package/$(PKG_NAME)-samples
$(call Package/$(PKG_NAME))
TITLE+=- testing samples
DEPENDS:=$(PKG_NAME) \
+alljoyn-services_common
MENU:=0
endef
define Package/$(PKG_NAME)-samples/description
Alljoyn $(AJ_SERVICE_NAME) service library samples. (This is primarily for testing.
The contents of this package vary according which other alljoyn packages
are selected.)
endef
ifeq ($(CONFIG_DEBUG),y)
ALLJOYN_BUILD_VARIANT:=debug
else
ALLJOYN_BUILD_VARIANT:=release
endif
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/services/base/$(AJ_SERVICE)/build/openwrt/openwrt/$(ALLJOYN_BUILD_VARIANT)/dist/$(AJ_SERVICE)
TARGET_CFLAGS+=-fPIC
TARGET_CPPFLAGS+=-fPIC
ifdef CONFIG_PACKAGE_$(PKG_NAME)-samples
ifdef CONFIG_PACKAGE_alljoyn-about
ALLJOYN_BUILD_SERVICES_SAMPLES:=on
endif
endif
define Build/Configure/Default
# Override default to do nothing
endef
define Build/Compile
scons -C $(PKG_BUILD_DIR)/services/base/$(AJ_SERVICE) \
$(PKG_JOBS) \
WS=off \
CPU=openwrt \
OS=openwrt \
"BINDINGS=$(ALLJOYN_BINDINGS)" \
"BUILD_SERVICES_SAMPLES=$(ALLJOYN_BUILD_SERVICES_SAMPLES)" \
"VARIANT=$(ALLJOYN_BUILD_VARIANT)" \
BR=off \
BT=off \
ICE=off \
"TARGET_CC=$$(TARGET_CC)" \
"TARGET_CXX=$$(TARGET_CXX)" \
"TARGET_CFLAGS=$$(TARGET_CFLAGS)" \
"TARGET_CPPFLAGS=$$(TARGET_CPPFLAGS)" \
"TARGET_PATH=$$(TARGET_PATH)" \
"TARGET_LINKFLAGS=$$(TARGET_LDFLAGS)" \
"TARGET_LINK=$$(TARGET_CC)" \
"TARGET_AR=$$(TARGET_AR)" \
"TARGET_RANLIB=$$(TARGET_RANLIB)" \
"STAGING_DIR=$$(STAGING_DIR)"
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/alljoyn/$(AJ_SERVICE)
$(CP) $(PKG_INSTALL_DIR)/inc/alljoyn/$(AJ_SERVICE)/*.h $(1)/usr/include/alljoyn/$(AJ_SERVICE)
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).a $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).so $(1)/usr/lib/
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).so $(1)/usr/lib/
endef
define Package/$(PKG_NAME)-samples/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/* $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc/alljoyn-config
$(CP) $(PKG_BUILD_DIR)/services/base/config/cpp/samples/ConfigServiceSample/ConfigService.conf $(1)/etc/alljoyn-config/
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
$(eval $(call BuildPackage,$(PKG_NAME)-samples))

View File

@@ -1,133 +0,0 @@
AJ_SERVICE:=controlpanel
AJ_SERVICE_NAME:=ControlPanel
include $(TOPDIR)/rules.mk
PKG_NAME:=alljoyn-$(AJ_SERVICE)
PKG_BASE_VERSION:=14.12
PKG_PATCHLEVEL:=.00
PKG_RELEASE:=1
PKG_MD5SUM:=389c2623619281e6849da25cee7e1bb7
PKG_VERSION:=$(PKG_BASE_VERSION)$(PKG_PATCHLEVEL)
PKG_TARBALL_VERSION:=$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/alljoyn-services-$(PKG_TARBALL_VERSION)-src
PKG_SOURCE:=alljoyn-services-$(PKG_TARBALL_VERSION)-src.tar.gz
PKG_SOURCE_URL:=https://allseenalliance.org/releases/alljoyn/$(PKG_BASE_VERSION)/
# SCons supports parallel builds but does not support make's jobserver
PKG_BUILD_PARALLEL:=$(if $(CONFIG_PKG_BUILD_USE_JOBSERVER),0,1)
PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_$(PKG_NAME)-samples
include $(INCLUDE_DIR)/package.mk
ifneq ($(CONFIG_CCACHE),)
TARGET_CC=$(TARGET_CC_NOCACHE)
TARGET_CXX=$(TARGET_CXX_NOCACHE)
endif
ALLJOYN_BINDINGS:=cpp,
ALLJOYN_BUILD_SERVICES_SAMPLES:=off
define Package/$(PKG_NAME)
TITLE:=AllJoyn $(AJ_SERVICE_NAME) service library
SECTION:=net
CATEGORY:=Network
DEPENDS:=alljoyn
URL:=http://www.allseenalliance.org
MAINTAINER:=AllSeen Alliance <allseen-core@lists.allseenalliance.org>
MENU:=1
endef
define Package/$(PKG_NAME)/description
AllJoyn $(AJ_SERVICE_NAME) service library.
endef
define Package/$(PKG_NAME)-samples
$(call Package/$(PKG_NAME))
TITLE+=- testing samples
DEPENDS:=$(PKG_NAME) \
+alljoyn-about \
+alljoyn-notification \
+alljoyn-services_common
MENU:=0
endef
define Package/$(PKG_NAME)-samples/description
Alljoyn $(AJ_SERVICE_NAME) service library samples. (This is primarily for testing.
The contents of this package vary according which other alljoyn packages
are selected.)
endef
ifeq ($(CONFIG_DEBUG),y)
ALLJOYN_BUILD_VARIANT:=debug
else
ALLJOYN_BUILD_VARIANT:=release
endif
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/services/base/$(AJ_SERVICE)/build/openwrt/openwrt/$(ALLJOYN_BUILD_VARIANT)/dist/$(AJ_SERVICE)
TARGET_CFLAGS+=-fPIC
TARGET_CPPFLAGS+=-fPIC
ifdef CONFIG_PACKAGE_$(PKG_NAME)-samples
ifdef CONFIG_PACKAGE_alljoyn-about
ALLJOYN_BUILD_SERVICES_SAMPLES:=on
endif
endif
define Build/Configure/Default
# Override default to do nothing
endef
define Build/Compile
scons -C $(PKG_BUILD_DIR)/services/base/$(AJ_SERVICE) \
$(PKG_JOBS) \
WS=off \
CPU=openwrt \
OS=openwrt \
"BINDINGS=$(ALLJOYN_BINDINGS)" \
"BUILD_SERVICES_SAMPLES=$(ALLJOYN_BUILD_SERVICES_SAMPLES)" \
"VARIANT=$(ALLJOYN_BUILD_VARIANT)" \
BR=off \
BT=off \
ICE=off \
"TARGET_CC=$$(TARGET_CC)" \
"TARGET_CXX=$$(TARGET_CXX)" \
"TARGET_CFLAGS=$$(TARGET_CFLAGS)" \
"TARGET_CPPFLAGS=$$(TARGET_CPPFLAGS)" \
"TARGET_PATH=$$(TARGET_PATH)" \
"TARGET_LINKFLAGS=$$(TARGET_LDFLAGS)" \
"TARGET_LINK=$$(TARGET_CC)" \
"TARGET_AR=$$(TARGET_AR)" \
"TARGET_RANLIB=$$(TARGET_RANLIB)" \
"STAGING_DIR=$$(STAGING_DIR)"
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/alljoyn/$(AJ_SERVICE)
$(CP) $(PKG_INSTALL_DIR)/inc/alljoyn/$(AJ_SERVICE)/*.h $(1)/usr/include/alljoyn/$(AJ_SERVICE)
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).a $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).so $(1)/usr/lib/
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).so $(1)/usr/lib/
endef
define Package/$(PKG_NAME)-samples/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/* $(1)/usr/bin/
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
$(eval $(call BuildPackage,$(PKG_NAME)-samples))

View File

@@ -1,132 +0,0 @@
AJ_SERVICE:=notification
AJ_SERVICE_NAME:=Notification
include $(TOPDIR)/rules.mk
PKG_NAME:=alljoyn-$(AJ_SERVICE)
PKG_BASE_VERSION:=14.12
PKG_PATCHLEVEL:=.00
PKG_RELEASE:=1
PKG_MD5SUM:=389c2623619281e6849da25cee7e1bb7
PKG_VERSION:=$(PKG_BASE_VERSION)$(PKG_PATCHLEVEL)
PKG_TARBALL_VERSION:=$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/alljoyn-services-$(PKG_TARBALL_VERSION)-src
PKG_SOURCE:=alljoyn-services-$(PKG_TARBALL_VERSION)-src.tar.gz
PKG_SOURCE_URL:=https://allseenalliance.org/releases/alljoyn/$(PKG_BASE_VERSION)/
# SCons supports parallel builds but does not support make's jobserver
PKG_BUILD_PARALLEL:=$(if $(CONFIG_PKG_BUILD_USE_JOBSERVER),0,1)
PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_$(PKG_NAME)-samples
include $(INCLUDE_DIR)/package.mk
ifneq ($(CONFIG_CCACHE),)
TARGET_CC=$(TARGET_CC_NOCACHE)
TARGET_CXX=$(TARGET_CXX_NOCACHE)
endif
ALLJOYN_BINDINGS:=cpp,
ALLJOYN_BUILD_SERVICES_SAMPLES:=off
define Package/$(PKG_NAME)
TITLE:=AllJoyn $(AJ_SERVICE_NAME) service library
SECTION:=net
CATEGORY:=Network
DEPENDS:=alljoyn \
+alljoyn-about
URL:=http://www.allseenalliance.org
MAINTAINER:=AllSeen Alliance <allseen-core@lists.allseenalliance.org>
MENU:=1
endef
define Package/$(PKG_NAME)/description
AllJoyn $(AJ_SERVICE_NAME) service library.
endef
define Package/$(PKG_NAME)-samples
$(call Package/$(PKG_NAME))
TITLE+=- testing samples
DEPENDS:=$(PKG_NAME) \
+alljoyn-services_common
MENU:=0
endef
define Package/$(PKG_NAME)-samples/description
Alljoyn $(AJ_SERVICE_NAME) service library samples. (This is primarily for testing.
The contents of this package vary according which other alljoyn packages
are selected.)
endef
ifeq ($(CONFIG_DEBUG),y)
ALLJOYN_BUILD_VARIANT:=debug
else
ALLJOYN_BUILD_VARIANT:=release
endif
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/services/base/$(AJ_SERVICE)/build/openwrt/openwrt/$(ALLJOYN_BUILD_VARIANT)/dist/$(AJ_SERVICE)
TARGET_CFLAGS+=-fPIC
TARGET_CPPFLAGS+=-fPIC
ifdef CONFIG_PACKAGE_$(PKG_NAME)-samples
ifdef CONFIG_PACKAGE_alljoyn-about
ALLJOYN_BUILD_SERVICES_SAMPLES:=on
endif
endif
define Build/Configure/Default
# Override default to do nothing
endef
define Build/Compile
scons -C $(PKG_BUILD_DIR)/services/base/$(AJ_SERVICE) \
$(PKG_JOBS) \
WS=off \
CPU=openwrt \
OS=openwrt \
"BINDINGS=$(ALLJOYN_BINDINGS)" \
"BUILD_SERVICES_SAMPLES=$(ALLJOYN_BUILD_SERVICES_SAMPLES)" \
"VARIANT=$(ALLJOYN_BUILD_VARIANT)" \
BR=off \
BT=off \
ICE=off \
"TARGET_CC=$$(TARGET_CC)" \
"TARGET_CXX=$$(TARGET_CXX)" \
"TARGET_CFLAGS=$$(TARGET_CFLAGS)" \
"TARGET_CPPFLAGS=$$(TARGET_CPPFLAGS)" \
"TARGET_PATH=$$(TARGET_PATH)" \
"TARGET_LINKFLAGS=$$(TARGET_LDFLAGS)" \
"TARGET_LINK=$$(TARGET_CC)" \
"TARGET_AR=$$(TARGET_AR)" \
"TARGET_RANLIB=$$(TARGET_RANLIB)" \
"STAGING_DIR=$$(STAGING_DIR)"
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/alljoyn/$(AJ_SERVICE)
$(CP) $(PKG_INSTALL_DIR)/inc/alljoyn/$(AJ_SERVICE)/*.h $(1)/usr/include/alljoyn/$(AJ_SERVICE)
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).a $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).so $(1)/usr/lib/
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).so $(1)/usr/lib/
endef
define Package/$(PKG_NAME)-samples/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/* $(1)/usr/bin/
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
$(eval $(call BuildPackage,$(PKG_NAME)-samples))

View File

@@ -1,160 +0,0 @@
AJ_SERVICE:=onboarding
AJ_SERVICE_NAME:=onboarding
include $(TOPDIR)/rules.mk
PKG_NAME:=alljoyn-$(AJ_SERVICE)
PKG_BASE_VERSION:=14.12
PKG_PATCHLEVEL:=.00
PKG_RELEASE:=1
PKG_MD5SUM:=389c2623619281e6849da25cee7e1bb7
PKG_VERSION:=$(PKG_BASE_VERSION)$(PKG_PATCHLEVEL)
PKG_TARBALL_VERSION:=$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/alljoyn-services-$(PKG_TARBALL_VERSION)-src
PKG_SOURCE:=alljoyn-services-$(PKG_TARBALL_VERSION)-src.tar.gz
PKG_SOURCE_URL:=https://allseenalliance.org/releases/alljoyn/$(PKG_BASE_VERSION)/
# SCons supports parallel builds but does not support make's jobserver
PKG_BUILD_PARALLEL:=$(if $(CONFIG_PKG_BUILD_USE_JOBSERVER),0,1)
include $(INCLUDE_DIR)/package.mk
ifneq ($(CONFIG_CCACHE),)
TARGET_CC=$(TARGET_CC_NOCACHE)
TARGET_CXX=$(TARGET_CXX_NOCACHE)
endif
ALLJOYN_BINDINGS:=cpp,
# Due to inherited dependencies (onboarding package depends on wpa-cli package and therefore inherits its dependencies)
# the onboarding package will not be visible for selection unless the wpa-supplicant package is first selected
define Package/$(PKG_NAME)
TITLE:=AllJoyn $(AJ_SERVICE_NAME) service library
SECTION:=net
CATEGORY:=Network
DEPENDS:=alljoyn \
wpa-supplicant \
+alljoyn-about \
+alljoyn-config \
+alljoyn-services_common \
+hostapd \
+wpa-cli
URL:=http://www.allseenalliance.org
MAINTAINER:=AllSeen Alliance <allseen-core@lists.allseenalliance.org>
endef
define Package/$(PKG_NAME)/description
AllJoyn $(AJ_SERVICE_NAME) service.
endef
ifeq ($(CONFIG_DEBUG),y)
ALLJOYN_BUILD_VARIANT:=debug
else
ALLJOYN_BUILD_VARIANT:=release
endif
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/services/base/$(AJ_SERVICE)/build/openwrt/openwrt/$(ALLJOYN_BUILD_VARIANT)/dist/$(AJ_SERVICE)
TARGET_CFLAGS+=-fPIC
TARGET_CPPFLAGS+=-fPIC
TARGET_LDFLAGS+=-lpthread -lrt
define Build/Configure/Default
# Override default to do nothing
endef
define Build/Compile
scons -C $(PKG_BUILD_DIR)/services/base/$(AJ_SERVICE) \
$(PKG_JOBS) \
WS=off \
CPU=openwrt \
OS=openwrt \
"BINDINGS=$(ALLJOYN_BINDINGS)" \
"BUILD_SERVICES_SAMPLES=off" \
"VARIANT=$(ALLJOYN_BUILD_VARIANT)" \
BR=off \
BT=off \
ICE=off \
"TARGET_CC=$$(TARGET_CC)" \
"TARGET_CXX=$$(TARGET_CXX)" \
"TARGET_CFLAGS=$$(TARGET_CFLAGS)" \
"TARGET_CPPFLAGS=$$(TARGET_CPPFLAGS)" \
"TARGET_PATH=$$(TARGET_PATH)" \
"TARGET_LINKFLAGS=$$(TARGET_LDFLAGS)" \
"TARGET_LINK=$$(TARGET_CC)" \
"TARGET_AR=$$(TARGET_AR)" \
"TARGET_RANLIB=$$(TARGET_RANLIB)" \
"STAGING_DIR=$$(STAGING_DIR)"
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/alljoyn/$(AJ_SERVICE)
$(CP) $(PKG_INSTALL_DIR)/inc/alljoyn/$(AJ_SERVICE)/*.h $(1)/usr/include/alljoyn/$(AJ_SERVICE)
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).a $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).so $(1)/usr/lib/
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).so $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/onboarding-daemon $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/alljoyn-onboarding.init $(1)/etc/init.d/alljoyn-onboarding
$(INSTALL_BIN) ./files/alljoyn-onboarding-reload.init $(1)/etc/init.d/alljoyn-onboarding-reload
$(INSTALL_BIN) ./files/wifi_scan.init $(1)/etc/init.d/wifi_scan
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/alljoyn-onboarding.defaults $(1)/etc/uci-defaults/alljoyn-onboarding
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/alljoyn-onboarding.config $(1)/etc/config/alljoyn-onboarding
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) ./files/wifi_scan $(1)/usr/sbin/wifi_scan
$(INSTALL_BIN) ./files/parse_iw_wifi_scan $(1)/usr/sbin/parse_iw_wifi_scan
$(INSTALL_BIN) ./files/parse_iwlist_wifi_scan $(1)/usr/sbin/parse_iwlist_wifi_scan
$(INSTALL_BIN) ./files/wifi_mgmt $(1)/usr/sbin/wifi_mgmt
$(INSTALL_DIR) $(1)/etc/alljoyn-onboarding
$(INSTALL_CONF) ./files/alljoyn-onboarding.state $(1)/etc/alljoyn-onboarding/alljoyn-onboarding-state
$(CP) $(PKG_BUILD_DIR)/services/base/onboarding/cpp/src/OnboardingDaemon/OnboardingService.conf $(1)/etc/alljoyn-onboarding/
$(CP) $(PKG_BUILD_DIR)/services/base/onboarding/cpp/src/OnboardingDaemon/FactoryOnboardingService.conf $(1)/etc/alljoyn-onboarding/
endef
define Package/$(PKG_NAME)/postinst
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
. /etc/uci-defaults/alljoyn-onboarding
rm -f /etc/uci-defaults/alljoyn-onboarding
fi
exit 0
endef
define Package/$(PKG_NAME)/prerm
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
/etc/init.d/alljoyn-onboarding stop
/etc/init.d/alljoyn-onboarding disable
/etc/init.d/wifi_scan disable
/etc/init.d/alljoyn-onboarding-reload disable
crontab -l 2>/dev/null | sed '/\/etc\/init.d\/alljoyn-onboarding/d' | crontab -
crontab -l 2>/dev/null | sed '/\/usr\/sbin\/wifi_scan/d' | crontab -
local obswifiIndex=$(uci show /etc/config/firewall | grep obswifi | grep name | cut -d"[" -f2 | cut -c1)
uci delete firewall.@zone[$(obswifiIndex)]
uci commit firewall
uci batch <<EOF
del_list ucitrack.@alljoyn[-1].affects=alljoyn-onboarding
delete ucitrack.@alljoyn-onboarding[-1]
commit ucitrack
EOF
fi
exit 0
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@@ -1,87 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (c) 2013 - 2014, AllSeen Alliance. All rights reserved.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
START=58
RADIO_24G=
find_2_4_radio() {
local cfg=$1
#list of known wireless protocols
local validModes="11b 11g 11a 11ng 11na"
# get the current hwmode
local hwmode
config_get hwmode "$cfg" hwmode
# verify that the hwmode is one of the valid modes
local hasMode=`echo "$validModes" | grep $hwmode`
if [ -n "$hasMode" ]; then
RADIO_24G=$cfg
fi
}
APVAP_24G=
find_2_4_apvap() {
local cfg=$1
local radio=$2
local mode
config_get mode "$cfg" mode
local device
config_get device "$cfg" device
[ "$mode" = "ap" -a "$device" = "$radio" ] && \
APVAP_24G="$cfg"
}
start() {
config_load alljoyn-onboarding
local state
state=$(uci_get alljoyn-onboarding @onboarding[0] state)
[ "${state}" = "3" ] && return 0
local iface=$(cat /proc/net/wireless | grep -m 1 : | sed -e 's/:.*//' | sed -e 's/ //g')
local macaddr=$(cat /sys/class/net/$iface/address)
# save the ssid in case it gets overwritten and we need it again
uci_set alljoyn-onboarding @onboarding[0] apssid "AJ_OpenWRT ${macaddr}"
uci_commit alljoyn-onboarding
config_load wireless
config_foreach find_2_4_radio wifi-device
[ -z "${RADIO_24G}" ] && {
echo "Error: No 2.4GHz radio found"
return 1
}
config_foreach find_2_4_apvap wifi-iface ${RADIO_24G}
[ -z "${APVAP_24G}" ] && {
echo "Error: No 2.4GHz AP VAP found"
return 1
}
# Ok, now we start setting the configuration parameters
uci_set wireless ${RADIO_24G} disabled 0
uci_set wireless ${RADIO_24G} channel 6
uci_set wireless ${APVAP_24G} ssid "AJ_OpenWRT ${macaddr}"
uci_commit wireless
wifi
# Add other appropriate tasks when device is not fully configured
}

View File

@@ -1,15 +0,0 @@
# Option Values:
#
# option apssid The access point name as seen by the onboarder application.
# Note: In order for Alljoyn to detect the access point the name must start with prefix 'AJ_'
# option apencryption The cypher mode
# For the full list refer to http://wiki.openwrt.org/doc/uci/wireless#wpa.modes
# Example - WPA2 would be: option apencryption 'psk2+tkip+ccmp'
# option apkey Cypher key for connecting to the access point
# option aphidden Determines whether the softAp will be hidden or broadcast. Default is 0 - not hidden
config onboarding
option apssid 'AJ_OpenWRT'
option apencryption 'none'
option apkey ''
option aphidden '0'

View File

@@ -1,33 +0,0 @@
#! /bin/sh
local hasOnboarding=$(uci get ucitrack.@alljoyn-onboarding[-1] 2> /dev/null)
if [ -z "$hasOnboarding" ]; then
uci batch <<EOF
add ucitrack alljoyn-onboarding
set ucitrack.@alljoyn-onboarding[-1].init=alljoyn-onboarding
add_list ucitrack.@alljoyn[-1].affects=alljoyn-onboarding
commit ucitrack
EOF
fi
uci batch <<EOF
set wireless.@wifi-device[-1].disabled=0
set wireless.@wifi-iface[-1].disabled=0
commit wireless
EOF
local hasObswifi=$(uci show /etc/config/firewall | grep obswifi)
if [ -z "$hasObswifi" ]; then
uci batch <<EOF
add firewall zone
set firewall.@zone[-1].name=obswifi
add_list firewall.@zone[-1].network='obswifi'
set firewall.@zone[-1].input=ACCEPT
set firewall.@zone[-1].output=ACCEPT
set firewall.@zone[-1].forward=ACCEPT
commit firewall
EOF
fi
/etc/init.d/alljoyn-onboarding enable
/etc/init.d/wifi_scan enable
/etc/init.d/alljoyn-onboarding-reload enable
crontab -l 2>/dev/null | sed '/\/etc\/init.d\/alljoyn-onboarding/d' | echo '*/1 * * * * /etc/init.d/alljoyn-onboarding poll_connection' | crontab -
/etc/init.d/cron enable
exit 0

View File

@@ -1,199 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (c) 2013 - 2014, AllSeen Alliance. All rights reserved.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
. /usr/sbin/wifi_mgmt
START=66
SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
CONFIGFILE=/etc/alljoyn-onboarding/OnboardingService.conf
FACTORYCONFIGFILE=/etc/alljoyn-onboarding/FactoryOnboardingService.conf
EXTRA_COMMANDS="state error connect softap offboard configure validate reset retry poll_connection"
EXTRA_HELP=<<EOF
state Get onboarding state
error Get onboarding error
connect Connect to AP with provided configuration
softap Disconnect from AP and enable soft AP
offboard softap + wipe configuration
configure Configure device with personal AP credentials
validate Validate the provided configuration
reset Reset the radio
retry Enter SoftAP mode temporarily to allow reconfig
poll_connection Poll the status of the connection
EOF
STATE_NOTCONFIGURED=0
STATE_CONFIGURED=1
STATE_VALIDATING=2
STATE_VALIDATED=3
STATE_ERROR=4
STATE_RETRY=5
boot() {
local obswifi=$(uci get network.obswifi)
if [ -z "$obswifi" ]; then
uci set network.obswifi=interface
uci set network.obswifi.proto=dhcp
uci commit network
/etc/init.d/network reload
fi
start
}
start() {
cache_state
cache_error
connect
service_start /usr/bin/onboarding-daemon --config-file=$CONFIGFILE --factory-config-file=$FACTORYCONFIGFILE
}
stop() {
service_stop /usr/bin/onboarding-daemon
}
state() {
return $(uci get -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].state)
}
error() {
return $(uci get -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].lasterrorcode)
}
connect() {
local state="$(uci get -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].state)"
if [ ${state} -eq $STATE_NOTCONFIGURED ]; then
return
fi
if [ ${state} -eq $STATE_CONFIGURED ] || [ ${state} -eq $STATE_ERROR ]; then
validate
return
fi
if [ ${state} -eq $STATE_VALIDATING ]; then
retries=2
else
retries=$(uci get -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].connect_retry_max)
fi
local status=$ERROR_NONE
while [ $retries -gt 0 ]; do
wifi_connect
sleep 2
wifi_connect_status
status=$?
echo "status: $status"
if [ ${status} -eq $ERROR_NONE ]; then
set_state $STATE_VALIDATED
return $status
else
retries=$((--retries))
fi
done
if [ ${state} -eq $STATE_VALIDATED ] || [ ${state} -eq $STATE_RETRY ]; then
if [ $(ps -w | grep "/etc/init.d/alljoyn-onboarding retry" | grep -v "grep" | wc -l) -eq 0 ]; then
/etc/init.d/alljoyn-onboarding retry &
status=$((status+8)) # set a bit saying we are in retry
fi
elif [ ${state} -eq ${STATE_VALIDATING} ]; then
set_state $STATE_ERROR
softap
fi
return $status
}
offboard() {
set_state $STATE_NOTCONFIGURED
softap
uci delete alljoyn-onboarding.@onboarding[0].ssid
uci delete alljoyn-onboarding.@onboarding[0].encryption
uci delete alljoyn-onboarding.@onboarding[0].key
uci commit alljoyn-onboarding
set_error $ERROR_NONE "Unconfigured"
}
softap() {
wifi_softap
}
reset() {
wifi_reset
}
retry() {
echo "STATE_RETRY"
set_state $STATE_RETRY
local retry_duration="$(uci get -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].config_retry_duration)"
softap
sleep $retry_duration
local state="$(uci get -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].state)"
if [ ${state} -eq $STATE_RETRY ]; then
/etc/init.d/alljoyn-onboarding connect &
fi
}
configure() {
local codeoption="-p"
if [ "$2" = "WEP" ]; then
codeoption="-k"
fi
wifi_configure -s "$1" -a "$2" $codeoption "$3"
set_state $STATE_CONFIGURED
}
validate() {
set_state $STATE_VALIDATING
connect
}
set_state() {
uci set -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].state=$1
uci commit -c /etc/alljoyn-onboarding alljoyn-onboarding-state
cache_state $1
}
cache_state(){
local state="$(uci get -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].state)"
printf '%d\n' "$state" > /tmp/state/alljoyn-onboarding
}
cache_error() {
local code=$(uci get -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].lasterrorcode)
local msg=$(uci get -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].lasterrormsg)
printf '%s\n%s' "$code" "$msg" > /tmp/state/alljoyn-onboarding-lasterror
}
poll_connection() {
local state="$(uci get -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].state)"
if [ ${state} -eq $STATE_VALIDATED ]; then
wifi_connect_status
local status=$?
if [ ${status} -ne $ERROR_NONE ]; then
## check state again in case it changed since last get
state="$(uci get -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].state)"
if [ ${state} -ne $STATE_VALIDATED ]; then
return
fi
/etc/init.d/alljoyn-onboarding connect &
fi
fi
}

View File

@@ -1,6 +0,0 @@
config onboarding
option state '0'
option lasterrorcode '0'
option lasterrormsg 'Unconfigured'
option config_retry_duration '180'
option connect_retry_max '2'

View File

@@ -1,89 +0,0 @@
#!/bin/sh
# Copyright (c) 2014, AllSeen Alliance. All rights reserved.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
device=`iw dev | grep Interface | cut -f 2 -s -d" "`
# Sometimes right after boot, the device is not ready yet
if [ -n $device ]; then
iw $device scan |
grep -e "^BSS" -e "signal:" -e "SSID:" -e "capability:" -e "RSN:" -e "WPA:" -e "Pairwise ciphers" -e "Authentication suites" |
{
while read -r line; do
case "$line" in
BSS* )
## Handling a new SSID. Print out previously processed SSID only if it is defined.
## Note the different syntax based on WPA/WPA2 VS Open or WEP
if [ "$enc" == "Open" ] || [ "$enc" == "WEP" ]; then
printf "%s\t%s\t%s\n" "$quality" "$enc" "$ssid"
elif [ -n "$ssid" ]; then
printf "%s\t%s-%s-%s-%s\t%s\n" "$quality" "$enc" "$ccmp" "$tkip" "$psk" "$ssid"
fi
## Initialize the variables
ssid=""
enc="Open"
ccmp=""
tkip=""
psk=""
quality=""
;;
SSID:* )
## Set the ssid variable
ssid=$(echo "$line" | sed s/"SSID: "//)
;;
signal:* )
## Set signal quality variable
quality=$(echo "$line" | sed s/"signal: "//)
;;
capability:* )
## Encryption is on. We assume it's WEP by default, if we later find out it's WPA or WPA2 we override it
if [ $(echo $line | grep "Privacy" | wc -l) -ne 0 ]; then
enc="WEP"
fi
;;
RSN:* )
## Set Encryption to be WPA2
enc="WPA2"
;;
WPA* )
enc="WPA"
;;
"* Pairwise ciphers:"* )
## Set the appropriate cipher variables
if [ $(echo $line | grep "CCMP" | wc -l) -ne 0 ]; then
ccmp="CCMP"
fi
if [ $(echo $line | grep "TKIP" | wc -l) -ne 0 ]; then
tkip="TKIP"
fi
;;
"* Authentication suites:"* )
## Set the appropriate Authentication Suite variable
if [ $(echo $line | grep "PSK" | wc -l) -ne 0 ]; then
psk="PSK";
fi
;;
* ) ;;
esac
done
if [ "$enc" == "Open" ] || [ "$enc" == "WEP" ]; then
printf "%s\t%s\t%s\n" "$quality" "$enc" "$ssid"
elif [ -n "$ssid" ]; then
printf "%s\t%s-%s-%s-%s\t%s\n" "$quality" "$enc" "$ccmp" "$tkip" "$psk" "$ssid"
fi
}
fi

View File

@@ -1,83 +0,0 @@
#!/bin/sh
# Copyright (c) 2014, AllSeen Alliance. All rights reserved.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
iwlist scanning 2> /dev/null |
grep -e "Quality=" -e "ESSID:" -e "Encryption key:on" -e "IE:" -e "Pairwise Ciphers" -e "Authentication Suites" |
{
while read -r line; do
case "$line" in
ESSID:\"* )
## Handling a new SSID. Print out previously processed SSID only if it is defined.
## Note the different syntax based on WPA/WPA2 VS Open or WEP
if [ "$enc" == "Open" ] || [ "$enc" == "WEP" ]; then
printf "%s\t%s\t%s\n" "$quality" "$enc" "$ssid"
elif [ -n "$ssid" ]; then
printf "%s\t%s-%s-%s-%s\t%s\n" "$quality" "$enc" "$ccmp" "$tkip" "$psk" "$ssid"
fi
## Initialize the variables
ssid=$(echo "${line%?}" | sed s/ESSID:\"//)
enc="Open"
ccmp=""
tkip=""
psk=""
quality=""
;;
Quality=* )
## Set signal quality variables
quality=$(echo "$line" | sed s/.*"Signal level="// | sed s/" dBm".*/" dBm"/)
;;
Encryption* )
## Encryption is on. We assume it's WEP by default, if we later find out it's WPA or WPA2 we override it
enc="WEP"
;;
IE:* )
## Set Encryption to be WPA or WPA2
case "$line" in
*WPA2* )
enc="WPA2"
;;
*WPA* )
enc="WPA"
;;
esac
;;
Pairwise* )
## Set the appropriate cipher variables
if [ $(echo $line | grep "CCMP" | wc -l) -ne 0 ]; then
ccmp="CCMP"
fi
if [ $(echo $line | grep "TKIP" | wc -l) -ne 0 ]; then
tkip="TKIP"
fi
;;
Authentication* )
## Set the appropriate Authentication Suite variable
if [ $(echo $line | grep "PSK" | wc -l) -ne 0 ]; then
psk="PSK";
fi
;;
* ) ;;
esac
done
if [ "$enc" == "Open" ] || [ "$enc" == "WEP" ]; then
printf "%s\t%s\t%s\n" "$quality" "$enc" "$ssid"
elif [ -n "$ssid" ]; then
printf "%s\t%s-%s-%s-%s\t%s\n" "$quality" "$enc" "$ccmp" "$tkip" "$psk" "$ssid"
fi
}

View File

@@ -1,337 +0,0 @@
#!/bin/sh
# Copyright (c) 2013 - 2014, AllSeen Alliance. All rights reserved.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
. /lib/config/uci.sh
. /usr/share/libubox/jshn.sh
DEBUG=
ERROR_NONE=0
ERROR_UNREACHABLE=1
ERROR_PROTOCOL=2
ERROR_UNAUTHORIZED=3
ERROR_GENERAL=4
WPA_CLI() {
local iface=$1;shift
local opt
case ${iface} in
global) opt="-g /var/run/wpa_supplicant-${iface}" ;;
*) opt="-p /var/run/wpa_supplicant-${iface} -i ${iface}";;
esac
if [ -n "${DEBUG}" ]; then
echo wpa_cli ${opt} "$@" >&2
wpa_cli ${opt} "$@" || exit 2
return 0
fi
wpa_cli ${opt} "$@" >/dev/null 2>&1 || exit 2
}
wifi_connect() {
local ssid=$(uci get alljoyn-onboarding.@onboarding[0].ssid)
local encryption=$(uci get alljoyn-onboarding.@onboarding[0].encryption)
local key=$(uci get alljoyn-onboarding.@onboarding[0].key)
if [ "$encryption" = "wep" ]; then
local getwepkey="uci get alljoyn-onboarding.@onboarding[0].key$key"
uci set wireless.@wifi-iface[0].key$key="$($getwepkey)"
fi
uci set wireless.@wifi-iface[0].mode=sta
uci set wireless.@wifi-iface[0].network=obswifi
uci set wireless.@wifi-iface[0].ssid="$ssid"
uci set wireless.@wifi-iface[0].key="$key"
uci set wireless.@wifi-iface[0].encryption=$encryption
uci delete wireless.@wifi-iface[0].hidden
uci commit wireless
wifi
# when in station mode, set the scan_wifi cron job to run every hour
/etc/init.d/cron stop
sed -i '/\/usr\/sbin\/wifi_scan/d' /etc/crontabs/root
echo '1 * * * * /usr/sbin/wifi_scan' >> /etc/crontabs/root
/etc/init.d/cron start
}
wifi_softap() {
local ssid=$(uci get alljoyn-onboarding.@onboarding[0].apssid)
local encryption=$(uci get alljoyn-onboarding.@onboarding[0].apencryption)
local key=$(uci get alljoyn-onboarding.@onboarding[0].apkey)
local hidden=$(uci get alljoyn-onboarding.@onboarding[0].aphidden)
uci set wireless.@wifi-iface[0].mode=ap
uci set wireless.@wifi-iface[0].network=lan
uci set wireless.@wifi-iface[0].ssid="$ssid"
uci set wireless.@wifi-iface[0].key="$key"
uci set wireless.@wifi-iface[0].encryption=$encryption
uci set wireless.@wifi-iface[0].hidden=$hidden
uci commit wireless
wifi
# when in soft ap mode, set the scan_wifi cron job to run every 15 minutes
/etc/init.d/cron stop
sed -i '/\/usr\/sbin\/wifi_scan/d' /etc/crontabs/root
echo '*/15 * * * * /usr/sbin/wifi_scan' >> /etc/crontabs/root
/etc/init.d/cron start
}
wifi_reset() {
wifi
}
wifi_configure_commit() {
uci set alljoyn-onboarding.@onboarding[0].ssid="$1"
uci set alljoyn-onboarding.@onboarding[0].encryption="$2"
if [ "$2" = "wep" ]; then
uci set alljoyn-onboarding.@onboarding[0].key="$5"
uci set alljoyn-onboarding.@onboarding[0].key$5="$4"
else
uci set alljoyn-onboarding.@onboarding[0].key="$3"
fi
uci commit alljoyn-onboarding
}
wifi_connect_status() {
ifstatus=$(ifstatus obswifi)
json_load "$ifstatus"
json_get_var iface device
local timeout=4
local result=$ERROR_UNREACHABLE
local conn_state=0
if [ -z $iface ]; then
echo "Device not defined for obswifi" >&2
set_error $ERROR_UNREACHABLE "Unreachable"
return $result
fi
while [ ${timeout} -gt 0 ]; do
sleep 1
ctrl_iface=$(grep ctrl_interface /var/run/wpa_supplicant-${iface}.conf | sed s/ctrl_interface=//)
if [ -z "${ctrl_iface}" ]; then
conn_state=$(wpa_cli -i ${iface} status 2>/dev/null | grep wpa_state | cut -d= -f2)
else
conn_state=$(wpa_cli -i ${iface} -p ${ctrl_iface} status 2>/dev/null | grep wpa_state | cut -d= -f2)
fi
echo ${conn_state} >&2
if [ "${conn_state}" = "COMPLETED" ]; then
result=$ERROR_NONE
set_error $ERROR_NONE "Validated"
return $result
elif [ "${conn_state}" = "SCANNING" ]; then
result=$ERROR_UNREACHABLE
set_error $ERROR_UNREACHABLE "Unreachable"
elif [ "${conn_state}" = "4WAY_HANDSHAKE" ]; then
set_error $ERROR_UNAUTHORIZED "Unauthorized - 4WAY_HANDSHAKE timeout"
result=$ERROR_UNAUTHORIZED
elif [ "${conn_state}" = "DISCONNECTED" ]; then
set_error $ERROR_UNAUTHORIZED "Unauthorized - DISCONNECTED"
result=$ERROR_UNAUTHORIZED
else
result=$ERROR_PROTOCOL
set_error $ERROR_PROTOCOL "Unsupported protocol"
echo "wpa_cli returned unknown status" >&2
fi
timeout=$((--timeout))
done
echo "Timeout --> unreachable" >&2
return $result
}
showhelp() {
cat << EOF
$0 -s <ssid> -a <auth>
[-p <passphrase>] [-k key] [-i index] [ -t timeout ] [ -d ]
Mandatory parameters:
-s <ssid>: Connect to SSID <ssid>
-a <auth>: Use authentication <auth>, where <auth> can be one of:
"open": No authentication
"wep": WEP authentication
"psk": WPA authentication
"psk2": WPA2 authentication
Optional parameters:
-p <passphrase>: (WEP or WPA only) Set the WEP (string) or WPA passphrase
-k <key>: (WEP only) Set the key (hex key only, either 5 or 13 bytes len)
-i <index>: (WEP only) Set the key index (1-4)
-t <timeout>: Set the connection timeout (in seconds) - default=4
-d : enable debug
-h : print this help
Return value:
0: Connection Success
1: Connection Failed
2: Error
EOF
}
check_params() {
local ssid=$1
local auth=$2
local psk=$3
local key=$4
local index=$5
if [ -z "${auth}" ] || [ -z "${ssid}" ]; then
echo "Error:ssid or authentication not found" >&2
return 1
fi
# Using passphrase and/or key and/or index in Open mode is inconsistent
if [ "${auth}" = "open" ]; then
if [ -n "${key}" -o -n "${index}" -o -n "${psk}" ]; then
echo "Open mode can't be used with passphrase/key/index" >&2
return 1
fi
fi
# If wep is used, make sure we also got a key & its index
if [ "${auth}" = "wep" ]; then
if [ -z "${key}" ]; then
echo "In WEP, please specify the key and optionally, the index" >&2
return 1
fi
fi
# Having a key and/or index with non-WEP encryption is inconsistent
if [ "${auth}" != "wep" ]; then
if [ -n "${key}" -o -n "${index}" ]; then
echo "Index/Key can't be used with non-WEP authentication " >&2
return 1
fi
fi
# If wpa is used, make sure we also got a passphrase
case "$auth" in
*psk*)
if [ -z "${psk}" ]; then
echo "In WPA, please specify a passphrase" >&2
return 1
fi
if [ $(expr length "${psk}") -lt 8 ]; then
echo "In WPA, please specify a passphrase of size at least 8" >&2
return 1
fi
if [ $(expr length "${psk}") -eq 64 ]; then
local i=0
while [ $i -lt 64 ]; do
char=${psk:$i:1}
case "$char" in
[a-fA-F0-9] );;
* )
echo "In WPA, please specify an ASCII passphrase of size less than 64 or a Hex passphrase of size 64" >&2
return 1;;
esac
i=$((i+1))
done
elif [ $(expr length "${psk}") -gt 64 ]; then
echo "In WPA, please specify an ASCII passphrase of size less than 64 or a Hex passphrase of size 64" >&2
return 1
fi
;;
*)
esac
return 0
}
wifi_configure() {
# Process arguments
local ssid auth psk key index
while [ -n "$1" ];do
case "$1" in
-s) ssid="$2"; shift;;
-a) auth="$2"; shift
if [ "${auth}" = "OPEN" ]; then
auth="none"
fi
if [ "${auth}" = "WEP" ]; then
auth="wep"
fi
case "$auth" in
WPA2*)
auth="psk2+tkip+ccmp"
;;
WPA*)
auth="psk+tkip+ccmp"
;;
esac
if [ "${auth}" = "WPS" ]; then
auth="psk"
fi
[ ${auth} = "none" ] || [ ${auth} = "wep" ] || [ ${auth} = "psk+tkip+ccmp" ] || [ ${auth} = "psk2+tkip+ccmp" ] || {
echo "Invalid authentication \"${auth}\"" >&2
echo "Valid authentication values are \"none\", \"wep\", \"psk+tkip+ccmp\", \"psk2+tkip+ccmp\"" >&2
showhelp
exit 2;
};;
-p) psk="$2"; shift;;
-k) key="$2"; shift;;
-i) index="$2"; shift
if [ ! ${index} -ge 1 ] && [ ! ${index} -le 4 ]; then
echo "Invalid index \"${index}\"" >&2
echo "Valid index values are \"1\", \"2\", \"3\", \"4\"" >&2
showhelp
exit 2
fi;;
-t) timeout="$2"; shift;;
-d) DEBUG=1;;
-h) showhelp; exit 2;;
*)
echo "Invalid option: -${OPTARG}" >&2
showhelp
exit 2
;;
esac
shift
done
if [ "${auth}" = "wep" ]; then
if [ -z "${index}" ]; then
index=1
echo "Defaulting index to 1" >&2
fi
fi
# Perform sanity checks on the script arguments
check_params "${ssid}" "${auth}" "${psk}" "${key}" "${index}" || {
showhelp
exit 2
}
wifi_configure_commit "${ssid}" "${auth}" "${psk}" "${key}" "${index}"
}
set_error() {
uci set -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].lasterrorcode=$1
uci set -c /etc/alljoyn-onboarding alljoyn-onboarding-state.@onboarding[0].lasterrormsg="$2"
uci commit -c /etc/alljoyn-onboarding alljoyn-onboarding-state
printf '%s\n%s' "$1" "$2" > /tmp/state/alljoyn-onboarding-lasterror
}

View File

@@ -1,34 +0,0 @@
# Copyright (c) 2014, AllSeen Alliance. All rights reserved.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
findPid=$(pgrep /usr/sbin/wifi_scan)
if [ -z $findPid ]; then
## Get the scan results based on method available
hasIw=$(which iw)
hasIwList=$(which iwlist)
if [ -n "$hasIw" ]; then
result=$(/usr/sbin/parse_iw_wifi_scan)
elif [ -n "$hasIwList" ]; then
result=$(/usr/sbin/parse_iwlist_wifi_scan)
fi
## Sort the results based on signal strength and print it to the file
if [ -n "$result" ]; then
printf "$result" | sort -n -r | awk '{sep="";for (i=4;i<=NF;i++) {printf "%s%s",sep, $i;sep=" "}; printf "\t"$3"\n"}' | sort | uniq > /tmp/wifi_scan_results
fi
fi

View File

@@ -1,26 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (c) 2013 - 2014, AllSeen Alliance. All rights reserved.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
START=61
boot() {
# Schedule the script to refresh the results with a cron job
/etc/init.d/cron stop
sed -i '/\/usr\/sbin\/wifi_scan/d' /etc/crontabs/root
echo '*/15 * * * * /usr/sbin/wifi_scan' >> /etc/crontabs/root
/etc/init.d/cron start
}

View File

@@ -1,104 +0,0 @@
AJ_SERVICE:=sample_apps
AJ_SERVICE_NAME:=sample_apps
include $(TOPDIR)/rules.mk
PKG_NAME:=alljoyn-$(AJ_SERVICE)
PKG_BASE_VERSION:=14.12
PKG_PATCHLEVEL:=.00
PKG_RELEASE:=1
PKG_MD5SUM:=389c2623619281e6849da25cee7e1bb7
PKG_VERSION:=$(PKG_BASE_VERSION)$(PKG_PATCHLEVEL)
PKG_TARBALL_VERSION:=$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/alljoyn-services-$(PKG_TARBALL_VERSION)-src
PKG_SOURCE:=alljoyn-services-$(PKG_TARBALL_VERSION)-src.tar.gz
PKG_SOURCE_URL:=https://allseenalliance.org/releases/alljoyn/$(PKG_BASE_VERSION)/
# SCons supports parallel builds but does not support make's jobserver
PKG_BUILD_PARALLEL:=$(if $(CONFIG_PKG_BUILD_USE_JOBSERVER),0,1)
PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
ifneq ($(CONFIG_CCACHE),)
TARGET_CC=$(TARGET_CC_NOCACHE)
TARGET_CXX=$(TARGET_CXX_NOCACHE)
endif
ALLJOYN_BINDINGS:=cpp,
ALLJOYN_BUILD_SERVICES_SAMPLES:=on
define Package/$(PKG_NAME)
TITLE:=AllJoyn services $(AJ_SERVICE_NAME) - sample applications
SECTION:=net
CATEGORY:=Network
DEPENDS:=alljoyn \
+alljoyn-about \
+alljoyn-config \
+alljoyn-controlpanel \
+alljoyn-notification \
+alljoyn-services_common
URL:=http://www.allseenalliance.org
MAINTAINER:=AllSeen Alliance <allseen-core@lists.allseenalliance.org>
endef
define Package/$(PKG_NAME)/description
AllJoyn services $(AJ_SERVICE_NAME) sample applications - includes ServerSample and ACServerSample.
endef
ifeq ($(CONFIG_DEBUG),y)
ALLJOYN_BUILD_VARIANT:=debug
else
ALLJOYN_BUILD_VARIANT:=release
endif
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/services/base/$(AJ_SERVICE)/build/openwrt/openwrt/$(ALLJOYN_BUILD_VARIANT)/dist/$(AJ_SERVICE)
TARGET_CFLAGS+=-fPIC
TARGET_CPPFLAGS+=-fPIC
define Build/Configure/Default
# Override default to do nothing
endef
define Build/Compile
scons -C $(PKG_BUILD_DIR)/services/base/$(AJ_SERVICE) \
$(PKG_JOBS) \
WS=off \
CPU=openwrt \
OS=openwrt \
"BINDINGS=$(ALLJOYN_BINDINGS)" \
"BUILD_SERVICES_SAMPLES=$(ALLJOYN_BUILD_SERVICES_SAMPLES)" \
"VARIANT=$(ALLJOYN_BUILD_VARIANT)" \
BR=off \
BT=off \
ICE=off \
"TARGET_CC=$$(TARGET_CC)" \
"TARGET_CXX=$$(TARGET_CXX)" \
"TARGET_CFLAGS=$$(TARGET_CFLAGS)" \
"TARGET_CPPFLAGS=$$(TARGET_CPPFLAGS)" \
"TARGET_PATH=$$(TARGET_PATH)" \
"TARGET_LINKFLAGS=$$(TARGET_LDFLAGS)" \
"TARGET_LINK=$$(TARGET_CC)" \
"TARGET_AR=$$(TARGET_AR)" \
"TARGET_RANLIB=$$(TARGET_RANLIB)" \
"STAGING_DIR=$$(STAGING_DIR)" \
"ALL=1"
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/* $(1)/usr/bin/
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/* $(1)/usr/bin/
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@@ -1,97 +0,0 @@
AJ_SERVICE:=services_common
AJ_SERVICE_NAME:=Services Common
include $(TOPDIR)/rules.mk
PKG_NAME:=alljoyn-$(AJ_SERVICE)
PKG_BASE_VERSION:=14.12
PKG_PATCHLEVEL:=.00
PKG_RELEASE:=1
PKG_MD5SUM:=389c2623619281e6849da25cee7e1bb7
PKG_VERSION:=$(PKG_BASE_VERSION)$(PKG_PATCHLEVEL)
PKG_TARBALL_VERSION:=$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/alljoyn-services-$(PKG_TARBALL_VERSION)-src
PKG_SOURCE:=alljoyn-services-$(PKG_TARBALL_VERSION)-src.tar.gz
PKG_SOURCE_URL:=https://allseenalliance.org/releases/alljoyn/$(PKG_BASE_VERSION)/
# SCons supports parallel builds but does not support make's jobserver
PKG_BUILD_PARALLEL:=$(if $(CONFIG_PKG_BUILD_USE_JOBSERVER),0,1)
include $(INCLUDE_DIR)/package.mk
ifneq ($(CONFIG_CCACHE),)
TARGET_CC=$(TARGET_CC_NOCACHE)
TARGET_CXX=$(TARGET_CXX_NOCACHE)
endif
ALLJOYN_BINDINGS:=cpp,
ALLJOYN_BUILD_SERVICES_SAMPLES:=off
define Package/$(PKG_NAME)
TITLE:=AllJoyn $(AJ_SERVICE_NAME) service library
SECTION:=net
CATEGORY:=Network
DEPENDS:=alljoyn
URL:=http://www.allseenalliance.org
MAINTAINER:=AllSeen Alliance <allseen-core@lists.allseenalliance.org>
endef
define Package/$(PKG_NAME)/description
AllJoyn $(AJ_SERVICE_NAME) service library.
endef
ifeq ($(CONFIG_DEBUG),y)
ALLJOYN_BUILD_VARIANT:=debug
else
ALLJOYN_BUILD_VARIANT:=release
endif
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/services/base/$(AJ_SERVICE)/build/openwrt/openwrt/$(ALLJOYN_BUILD_VARIANT)/dist/$(AJ_SERVICE)
TARGET_CFLAGS+=-fPIC
TARGET_CPPFLAGS+=-fPIC
define Build/Configure/Default
# Override default to do nothing
endef
define Build/Compile
scons -C $(PKG_BUILD_DIR)/services/base/$(AJ_SERVICE) \
$(PKG_JOBS) \
WS=off \
CPU=openwrt \
OS=openwrt \
"BINDINGS=$(ALLJOYN_BINDINGS)" \
"BUILD_SERVICES_SAMPLES=$(ALLJOYN_BUILD_SERVICES_SAMPLES)" \
"VARIANT=$(ALLJOYN_BUILD_VARIANT)" \
BR=off \
BT=off \
ICE=off \
"TARGET_CC=$$(TARGET_CC)" \
"TARGET_CXX=$$(TARGET_CXX)" \
"TARGET_CFLAGS=$$(TARGET_CFLAGS)" \
"TARGET_CPPFLAGS=$$(TARGET_CPPFLAGS)" \
"TARGET_PATH=$$(TARGET_PATH)" \
"TARGET_LINKFLAGS=$$(TARGET_LDFLAGS)" \
"TARGET_LINK=$$(TARGET_CC)" \
"TARGET_AR=$$(TARGET_AR)" \
"TARGET_RANLIB=$$(TARGET_RANLIB)" \
"STAGING_DIR=$$(STAGING_DIR)"
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/alljoyn/$(AJ_SERVICE)
$(CP) $(PKG_INSTALL_DIR)/inc/alljoyn/$(AJ_SERVICE)/*.h $(1)/usr/include/alljoyn/$(AJ_SERVICE)
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).a $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).so $(1)/usr/lib/
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/liballjoyn_$(AJ_SERVICE).so $(1)/usr/lib/
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@@ -1,301 +0,0 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=alljoyn
PKG_BASE_VERSION:=14.12
PKG_PATCHLEVEL:=a
PKG_RELEASE:=1
PKG_MD5SUM:=1435d8611a26bfde115a771ab7cd3d74
PKG_VERSION:=$(PKG_BASE_VERSION)$(PKG_PATCHLEVEL)
PKG_TARBALL_VERSION:=$(PKG_BASE_VERSION).00$(PKG_PATCHLEVEL)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_TARBALL_VERSION)-src
PKG_SOURCE:=$(PKG_NAME)-$(PKG_TARBALL_VERSION)-src.tar.gz
PKG_SOURCE_URL:=https://allseenalliance.org/releases/alljoyn/$(PKG_BASE_VERSION)/
# SCons supports parallel builds but does not support make's jobserver
PKG_BUILD_PARALLEL:=$(if $(CONFIG_PKG_BUILD_USE_JOBSERVER),0,1)
PKG_CONFIG_DEPENDS:= \
CONFIG_DEBUG \
CONFIG_PACKAGE_alljoyn-c \
CONFIG_PACKAGE_alljoyn-about \
CONFIG_PACKAGE_alljoyn-samples
include $(INCLUDE_DIR)/package.mk
ifneq ($(CONFIG_CCACHE),)
TARGET_CC=$(TARGET_CC_NOCACHE)
TARGET_CXX=$(TARGET_CXX_NOCACHE)
endif
define Package/alljoyn/Default
SECTION:=net
CATEGORY:=Network
DEPENDS:=+libopenssl +libpthread +librt +libstdcpp
URL:=http://www.allseenalliance.org
MAINTAINER:=AllSeen Alliance <allseen-core@lists.allseenalliance.org>
endef
define Package/alljoyn
$(call Package/alljoyn/Default)
TITLE:=AllJoyn Peer-to-Peer networking
MENU:=1
endef
define Package/alljoyn/description
AllJoyn is a daemon and application framework for developing
ad hoc peer-to-peer applications. This includes the run-time
daemon and C++ library.
endef
define Package/alljoyn-non-gw-config
$(call Package/alljoyn/Default)
TITLE:=AllJoyn - alternate non-Gateway Config
DEPENDS:=alljoyn
endef
define Package/alljoyn-non-gw-config/description
Alternate AllJoyn configuration with defaults suitable for
non-Gateway devices. Do not install this on devices with a
network interface connected to an insecure network such as
the Internet.
endef
define Package/alljoyn-c
$(call Package/alljoyn/Default)
TITLE:=AllJoyn - C binding
DEPENDS:=alljoyn
endef
define Package/alljoyn-c/description
AllJoyn C binding. This provides a C library for building
AllJoyn programs in C. This is just a C callable wrapper
to the C++ library.
endef
define Package/alljoyn-about
$(call Package/alljoyn/Default)
TITLE:=AllJoyn - About service library (deprecated)
DEPENDS:=alljoyn
endef
define Package/alljoyn-about/description
AllJoyn About services library. This library is deprecated. The functionality
provided by About has been integrated into liballjoyn with a simpler API. This
library will continue to be supported into 2015 and will be removed in 2016.
endef
define Package/alljoyn-samples
$(call Package/alljoyn/Default)
TITLE:=AllJoyn - testing samples
DEPENDS:=alljoyn \
+PACKAGE_alljoyn-about:alljoyn-about
endef
define Package/alljoyn-samples/description
Alljoyn samples. (This is primarily for testing. The contents of this
package vary according which other alljoyn packages are selected.)
endef
ALLJOYN_BINDINGS:=cpp,
ALLJOYN_SERVICES:=
ALLJOYN_BUILD_SERVICES_SAMPLES:=off
ifdef CONFIG_PACKAGE_alljoyn-c
ALLJOYN_BINDINGS+=c,
endif
ifdef CONFIG_PACKAGE_alljoyn-about
ALLJOYN_SERVICES+=about,
endif
ifeq ($(CONFIG_DEBUG),y)
ALLJOYN_BUILD_VARIANT:=debug
else
ALLJOYN_BUILD_VARIANT:=release
endif
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/build/openwrt/openwrt/$(ALLJOYN_BUILD_VARIANT)/dist
TARGET_CFLAGS+=-fPIC
TARGET_CPPFLAGS+=-fPIC
define Build/Configure
# Override default to do nothing
endef
define Build/Compile
scons -C $(PKG_BUILD_DIR) \
$(PKG_JOBS) \
WS=off \
CPU=openwrt \
OS=openwrt \
"BINDINGS=$(ALLJOYN_BINDINGS)" \
"SERVICES=$(ALLJOYN_SERVICES)" \
"BUILD_SERVICES_SAMPLES=$(ALLJOYN_BUILD_SERVICES_SAMPLES)" \
"VARIANT=$(ALLJOYN_BUILD_VARIANT)" \
BR=off \
ICE=off \
POLICYDB=on \
"TARGET_CC=$$(TARGET_CC)" \
"TARGET_CXX=$$(TARGET_CXX)" \
"TARGET_CFLAGS=$$(TARGET_CFLAGS)" \
"TARGET_CPPFLAGS=$$(TARGET_CPPFLAGS)" \
"TARGET_PATH=$$(TARGET_PATH)" \
"TARGET_LINKFLAGS=$$(TARGET_LDFLAGS)" \
"TARGET_LINK=$$(TARGET_CC)" \
"TARGET_AR=$$(TARGET_AR)" \
"TARGET_RANLIB=$$(TARGET_RANLIB)" \
"STAGING_DIR=$$(STAGING_DIR)"
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/include/alljoyn
$(INSTALL_DIR) $(1)/usr/include/qcc
$(INSTALL_DIR) $(1)/usr/include/qcc/posix
$(CP) $(PKG_INSTALL_DIR)/cpp/inc/alljoyn/*.h $(1)/usr/include/alljoyn/
$(CP) $(PKG_INSTALL_DIR)/cpp/inc/qcc/*.h $(1)/usr/include/qcc/
$(CP) $(PKG_INSTALL_DIR)/cpp/inc/qcc/posix/*.h $(1)/usr/include/qcc/posix/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/cpp/lib/liballjoyn.a $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/cpp/lib/liballjoyn.so $(1)/usr/lib/
ifdef CONFIG_PACKAGE_alljoyn-about
$(INSTALL_DIR) $(1)/usr/include/alljoyn/about
$(CP) $(PKG_INSTALL_DIR)/cpp/inc/alljoyn/about/*.h $(1)/usr/include/alljoyn/about
$(CP) $(PKG_INSTALL_DIR)/cpp/lib/liballjoyn_about.a $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/cpp/lib/liballjoyn_about.so $(1)/usr/lib/
endif
ifdef CONFIG_PACKAGE_alljoyn-c
$(INSTALL_DIR) $(1)/usr/include/alljoyn_c
$(CP) $(PKG_INSTALL_DIR)/c/inc/alljoyn_c/*.h $(1)/usr/include/alljoyn_c/
$(CP) $(PKG_INSTALL_DIR)/c/lib/liballjoyn_c.a $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/c/lib/liballjoyn_c.so $(1)/usr/lib/
endif
endef
define Package/alljoyn/conffiles
/etc/alljoyn/alljoyn.conf
/etc/config/alljoyn
endef
define Package/alljoyn-non-gw-config/conffiles
/etc/config/alljoyn
endef
define Package/alljoyn/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/alljoyn-daemon $(1)/usr/bin
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/cpp/lib/liballjoyn.so $(1)/usr/lib/
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/alljoyn.init $(1)/etc/init.d/alljoyn
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/alljoyn.defaults $(1)/etc/uci-defaults/alljoyn
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/alljoyn.config $(1)/etc/config/alljoyn
$(INSTALL_DIR) $(1)/etc/alljoyn
$(INSTALL_CONF) ./files/alljoyn.conf $(1)/etc/alljoyn/alljoyn.conf
endef
define Package/alljoyn-non-gw-config/install
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/alljoyn-non-gw.config $(1)/etc/config/alljoyn
endef
define Package/alljoyn-c/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/c/lib/liballjoyn_c.so $(1)/usr/lib/
endef
define Package/alljoyn-about/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/cpp/lib/liballjoyn_about.so $(1)/usr/lib/
endef
define Package/alljoyn-samples/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/advtunnel $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/aes_ccm $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/bastress $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/bastress2 $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/bbclient $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/bbjitter $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/bbjoin $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/bbservice $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/bbsig $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/bignum $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/compression $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/keystore $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/marshal $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/names $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/ns $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/rawclient $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/rawservice $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/remarshal $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/rsa $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/sessions $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/socktest $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/srp $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/unpack $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/samples/AboutClient $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/samples/AboutService $(1)/usr/bin/
ifdef CONFIG_PACKAGE_alljoyn-about
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/samples/sample_rule_app $(1)/usr/bin/
endif
endef
define Package/alljoyn/postinst
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
. /etc/uci-defaults/alljoyn
rm -f /etc/uci-defaults/alljoyn
fi
exit 0
endef
define Package/alljoyn/prerm
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
/etc/init.d/alljoyn stop
/etc/init.d/alljoyn disable
uci batch <<EOF
del_list ucitrack.@network[-1].affects=alljoyn
delete ucitrack.@alljoyn[-1]
commit ucitrack
EOF
fi
exit 0
endef
define Package/alljoyn-non-gw-config/preinst
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
echo 'Saving original alljoyn config file to alljoyn-orig'
mv /etc/config/alljoyn /etc/config/alljoyn-orig
fi
exit 0
endef
define Package/alljoyn-non-gw-config/postrm
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
if [ -e /etc/config/alljoyn-orig ]; then
echo 'Restoring original alljoyn config file from alljoyn-orig'
mv /etc/config/alljoyn-orig /etc/config/alljoyn
fi
fi
exit 0
endef
$(eval $(call BuildPackage,alljoyn))
$(eval $(call BuildPackage,alljoyn-non-gw-config))
$(eval $(call BuildPackage,alljoyn-c))
$(eval $(call BuildPackage,alljoyn-about))
$(eval $(call BuildPackage,alljoyn-samples))

View File

@@ -1,25 +0,0 @@
config transport 'unix'
option enable '1'
option path 'alljoyn'
option abstract '1'
config transport 'ip'
option enable '1'
option max_incomplete_conn '16'
option max_complete_conn '96'
option bus_port '9955'
option auth_timeout '20000'
option advertise_daemon '1'
option all_networks '1'
list networks
config transport 'slap'
option enable '0'
option path '/dev/ttyUSB0'
option baud 115200
option databits 8
option parity 'none'
option stopbits 1
config daemon 'daemon'
option user 'nobody'

View File

@@ -1,38 +0,0 @@
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<!--
Copyright (c) 2014, AllSeen Alliance. All rights reserved.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-->
<busconfig>
<type>alljoyn</type>
<fork/>
<syslog/>
<!-- Default limits -->
<limit name="auth_timeout">20000</limit>
<limit name="max_incomplete_connections">16</limit>
<limit name="max_completed_connections">96</limit>
<limit name="max_untrusted_clients">96</limit>
<flag name="restrict_untrusted_clients">false</flag>
<!-- Include configuration file generated from /etc/config/alljoyn -->
<include>/var/etc/alljoyn.conf</include>
<!-- Include Gateway Agent policy rules configuration -->
<includedir ignore_missing="yes">/etc/alljoyn/gwagent</includeidr>
</busconfig>

View File

@@ -1,25 +0,0 @@
config transport 'unix'
option enable '1'
option path 'alljoyn'
option abstract '1'
config transport 'ip'
option enable '1'
option max_incomplete_conn '16'
option max_complete_conn '96'
option bus_port '9955'
option auth_timeout '20000'
option advertise_daemon '1'
option all_networks '0'
list networks 'lan'
config transport 'slap'
option enable '0'
option path '/dev/ttyUSB0'
option baud 115200
option databits 8
option parity 'none'
option stopbits 1
config daemon 'daemon'
option user 'nobody'

View File

@@ -1,9 +0,0 @@
#! /bin/sh
uci batch <<EOF
add ucitrack alljoyn
set ucitrack.@alljoyn[-1].init=alljoyn
add_list ucitrack.@network[-1].affects=alljoyn
commit ucitrack
EOF
/etc/init.d/alljoyn enable
exit 0

View File

@@ -1,170 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (c) 2013-2015, AllSeen Alliance. All rights reserved.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
START=65
SERVICE_PID_FILE=/var/run/alljoyn.pid
CONFIGFILE="/etc/alljoyn/alljoyn.conf"
GENCONFIGFILE="/var/etc/alljoyn.conf"
check() {
local flag
config_get_bool flag "$1" "$2" 0
test "$flag" == "1"
return $?
}
process_unix_transport() {
if check unix enable; then
local path
local abstract
config_get path unix path "alljoyn"
config_get_bool abstract unix abstract "1"
if [ -n "$abstract" ]; then
path="abstract=$path"
else
path="path=$path"
fi
export ${NO_EXPORT:+-n} listen_specs="${listen_specs}
<listen>unix:${path}</listen>"
fi
}
process_ip_network() {
local network="$1"
local port="$2"
local ifname
config_get ifname "$network" ifname
if [ -n "$ifname" ]; then
export ${NO_EXPORT:+-n} listen_specs="${listen_specs}
<listen>tcp:iface=${ifname},port=${port}</listen>
<listen>udp:iface=${ifname},port=${port}</listen>"
fi
}
process_ip_transport() {
if check ip enable; then
local port
if check ip advertise_daemon; then
export ${NO_EXPORT:+-n} ip_advertise_daemon="<property name=\"router_advertisement_prefix\">org.alljoyn.BusNode.</property>"
fi
config_get port ip bus_port 9955
if check ip all_networks; then
export ${NO_EXPORT:+-n} listen_specs="${listen_specs}
<listen>tcp:iface=*,port=${port}</listen>
<listen>udp:iface=*,port=${port}</listen>"
else
config_load network
config_load alljoyn # loading the network config clobbers the alljoyn config vars
config_list_foreach ip networks process_ip_network "${port}"
fi
config_get ip_max_incomplete_conn ip max_incomplete_conn "$ip_max_incomplete_conn"
config_get ip_max_complete_conn ip max_complete_conn "$ip_max_complete_conn"
config_get ip_auth_timeout ip auth_timeout "$ip_auth_timeout"
fi
}
process_slap_transport() {
if check slap enable; then
local path
local baud
config_get path slap path "/dev/ttyUSB0"
config_get baud slap baud "115200"
config_get databits slap databits "8"
config_get parity slap parity "none"
config_get stopbits slap stopbits "1"
export ${NO_EXPORT:+-n} listen_specs="${listen_specs}
<listen>slap:type=uart;dev=${path};baud=${baud};databits=${databits};parity=${parity};stopbits=${stopbits}</listen>"
fi
}
process_switch_user() {
local user
config_get user daemon user "root"
if [ "$user" != "root" ]; then
export ${NO_EXPORT:+-n} switch_user="<user>${user}</user>"
fi
}
generate_conf_file() {
local listen_specs=""
local ip_max_incomplete_conn=16
local ip_max_complete_conn=64
local ip_auth_timeout=20000
local ip_networks=""
local ip_advertise_daemon=""
local switch_user=""
rm -f $GENCONFIGFILE
include /lib/network
config_load alljoyn
process_unix_transport
process_ip_transport
process_slap_transport
process_switch_user
mkdir -p $(dirname $GENCONFIGFILE)
cat > $GENCONFIGFILE <<EOF
<busconfig>
<pidfile>${SERVICE_PID_FILE}</pidfile>
${switch_user}
${listen_specs}
${ip_advertise_daemon}
<limit name="auth_timeout">${ip_auth_timeout}</limit>
<limit name="max_incomplete_connections">${ip_max_incomplete_conn}</limit>
<limit name="max_completed_connections">${ip_max_complete_conn}</limit>
<limit name="max_untrusted_clients">${ip_max_complete_conn}</limit>
</busconfig>
EOF
}
start() {
generate_conf_file
if [ -e $CONFIGFILE ]; then
service_start /usr/bin/alljoyn-daemon --config-file=$CONFIGFILE
fi
}
stop() {
service_stop /usr/bin/alljoyn-daemon
}

View File

@@ -1,65 +0,0 @@
This repository is designated to serve as a feed for OpenWrt
(http://openwrt.org) based systems. As such, the organization, management,
and usage of this repository will be different from the other source
repositories hosted by the AllSeen Alliance.
Most notable of these differences is that the master branch only contains this
readme file. Package definitions will only exist in branches whos name
corresponds to code names for OpenWrt releases. At the time of the initial
commit of this readme file, there will be 2 such branches: attitude_adjustment
and barrier_breaker. As the OpenWrt project develops and creates new
releases, new corresponding branches will be created.
The reason for tracking package definitions on a per OpenWrt release basis is
due to the fact that AllJoyn packages depend on OpenWrt packages which may
change from release to release. This also allows us to retire support for
obsolete versions of OpenWrt in the future without breaking others who may
still be using/building the obsolete versions.
To use this feed in an OpenWrt build environment, follow these instructions:
1. Copy feeds.conf.default to feeds.conf (if not already done):
cp feeds.conf.default feeds.conf
2. Add the following feeds.conf (replace <openwrt_release> with the
appropriate branch that corresponds to the OpenWrt release you are building):
src-git alljoyn git://git.allseenalliance.org/gerrit/core/openwrt_feed;<openwrt_release>
# For Attitude Adjustment
src-git alljoyn git://git.allseenalliance.org/gerrit/core/openwrt_feed;attitude_adjustment
# For Barrier Breaker
src-git alljoyn git://git.allseenalliance.org/gerrit/core/openwrt_feed;barrier_breaker
3. Update the feed information:
./scripts/feeds update -a
4. Add the the packages from the AllJoyn feed to build system:
./scripts feeds install -a -p alljoyn
5. Enable AllJoyn in the build:
make menuconfig
Networking --->
< > alljoyn --->
< > alljoyn-about
< > alljoyn-c
< > alljoyn-config
< > alljoyn-config-samples
< > alljoyn-controlpanel
< > alljoyn-controlpanel-samples
< > alljoyn-notification
< > alljoyn-notification-samples
< > alljoyn-onboarding
< > alljoyn-onboarding-samples
< > alljoyn-sample_apps
< > alljoyn-samples
< > alljoyn-service_common

View File

@@ -1,51 +0,0 @@
#
# Copyright (C) 2013 Inteno
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ami
PKG_VERSION:=1.0.0
PKG_RELEASE:=1
#PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
#STAMP_PREPARED := $(STAMP_PREPARED)_$(call confvar,CONFIG_MTD_REDBOOT_PARTS)
include $(INCLUDE_DIR)/package.mk
target=$(firstword $(subst -, ,$(BOARD)))
TARGET_LDFLAGS+= \
-Wl,-rpath-link=$(STAGING_DIR)/usr/lib \
-Wl,-rpath-link=$(STAGING_DIR)/lib -luci -lubus -lubox -lpthread
TARGET_CFLAGS += $(FPIC) -Dtarget_$(target)=1 -Wall
MAKE_FLAGS += TARGET="$(target)"
define Package/ami
CATEGORY:=Utilities
DEPENDS:= +libuci +libubox +ubus
TITLE:=Asterisk management interface listener
endef
define Package/ami/description
Application that listen on the asterisk management interface to handle the leds
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
$(TARGET_CONFIGURE_OPTS) LINUX_DIR=$(LINUX_DIR) LDFLAGS="$(TARGET_LDFLAGS)" CFLAGS="$(TARGET_CFLAGS) -I$(LINUX_DIR)/include -I$(STAGING_DIR)/usr/include"
endef
define Package/ami/install
$(INSTALL_DIR) $(1)/sbin
$(CP) ./files/* $(1)/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ami_tool $(1)/sbin/
endef
$(eval $(call BuildPackage,ami))

View File

@@ -1,30 +0,0 @@
#!/bin/sh /etc/rc.common
. /lib/functions.sh
START=99
SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
boot() {
start
}
start() {
service_start /sbin/ami_tool
}
stop() {
service_stop /sbin/ami_tool
}
restart() {
stop
start
}

View File

@@ -1,26 +0,0 @@
# Makefile for Asterisk management interface listener application
CC = gcc
MAKEDEPEND = makedepend
CDEBUG = -g
CFLAGS = ${CDEBUG} ${INCL} -Wall
LDFLAGS = ${CDEBUG}
LIBDIR =
LOCLIBS =
LIBS = ${LOCLIBS} ${SYSLIBS}
OBJS = ami_tool.o ami_connection.o ucix.o
SRCS = ami_tool.c ami_connection.c ucix.c
LIBSRCS =
ISRCS = ami_tool.h ami_connection.h ucix.h
ALLSRCS = ${SRCS} ${ISRCS} ${LIBSRCS}
all: ami_tool
ami_tool: ${OBJS}
${CC} ${LDFLAGS} -o ami_tool ${OBJS} ${LIBDIR} ${LIBS}
clean:
rm -f ami_tool ${OBJS}
depend:
${MAKEDEPEND} ${INCL} ${SRCS} ${LIBSRCS}

View File

@@ -1,832 +0,0 @@
#include <assert.h>
#include <errno.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <netdb.h>
#include <sys/socket.h>
#include <unistd.h>
#include "ami_connection.h"
typedef enum ami_message {
UNKNOWN_MESSAGE,
LOGIN_MESSAGE,
EVENT_MESSAGE,
RESPONSE_MESSAGE
} ami_message;
/*
* message_frame: String defining message border
* buffer: Buffer to parse
* framed_message: Pointer to framed message (mallocd)
* buffer_read: Bytes read from buffer in previous run
*/
static ami_message parse_buffer(char *message_frame, char *buffer, char **framed_message, int *buffer_read)
{
//Skip bytes already read
buffer = &buffer[*buffer_read];
if (strlen(buffer) == 0) {
return UNKNOWN_MESSAGE;
}
//Locate message frame
char *message_end = strstr(buffer, message_frame);
if (!message_end) {
//Could not find message frame, use left over
//data in next call to parse_buffer
return UNKNOWN_MESSAGE;
}
//Found a message boundry
int message_length = message_end - buffer;
//printf("Framed message:\n[%s]\n\n", *framed_message);
//Update byte counter
*buffer_read += message_length + strlen(message_frame);
//Find out what type of message this is
ami_message message_type;
if (!strncmp(buffer, "Asterisk Call Manager", 21)) {
//printf("Login prompt detected\n");
message_type = LOGIN_MESSAGE;
} else if(!strncmp(buffer, "Event", 5)) {
//printf("Event detected: ");
message_type = EVENT_MESSAGE;
} else if(!strncmp(buffer, "Response", 8)) {
//printf("Response detected: ");
message_type = RESPONSE_MESSAGE;
} else {
//printf("Unknown event: ");
return UNKNOWN_MESSAGE;
}
*framed_message = malloc(message_length +1);
strncpy(*framed_message, buffer, message_length);
(*framed_message)[message_length] = '\0';
return message_type;
}
/*
* Find the type on an event and advance the idx buffer pointer
* to the beginning of the event.
*/
static ami_event_type get_event_type(char* buf, int* idx) {
int i = 0;
if (!memcmp(buf, "RegistryEntry", 13)) {
i +=13;
while((buf[i] == '\n') || (buf[i] == '\r'))
i++;
*idx = i;
return REGISTRY_ENTRY;
} else if (!memcmp(buf, "Registry", 8)) {
i +=8;
while((buf[i] == '\n') || (buf[i] == '\r'))
i++;
*idx = i;
return REGISTRY;
} else if (!memcmp(buf, "RegistrationsComplete", 4)) {
i +=21;
while((buf[i] == '\n') || (buf[i] == '\r'))
i++;
*idx = i;
return REGISTRATIONS_COMPLETE;
} else if (!memcmp(buf, "BRCM", 4)) {
i +=8;
while((buf[i] == '\n') || (buf[i] == '\r'))
i++;
*idx = i;
return BRCM;
} else if (!memcmp(buf, "ChannelReload", 13)) {
i +=8;
while((buf[i] == '\n') || (buf[i] == '\r'))
i++;
*idx = i;
return CHANNELRELOAD;
} else if (!memcmp(buf, "FullyBooted", 11)) {
i +=11;
while((buf[i] == '\n') || (buf[i] == '\r'))
i++;
*idx = i;
return FULLYBOOTED;
} else if (!memcmp(buf, "VarSet", 6)) {
i +=6;
while((buf[i] == '\n') || (buf[i] == '\r'))
i++;
*idx = i;
return VARSET;
} // else if() handle other events
while(buf[i] || i > AMI_BUFLEN) {
if (buf[i] == '\n') {
break;
}
i++;
}
*idx = i;
printf("Unhandled event\n%s\n", buf);
return UNKNOWN_EVENT;
}
static char *trim_whitespace(char *str)
{
char *end;
while (isspace(*str)) {
str++;
}
if(*str == 0) {
return str;
}
end = str + strlen(str) - 1;
while(end > str && isspace(*end)) {
end--;
}
*(end+1) = 0;
return str;
}
ami_event parse_registry_event(char* buf)
{
ami_event event;
event.type = REGISTRY;
event.registry_event = malloc(sizeof(registry_event));
event.registry_event->status = REGISTRY_UNKNOWN_EVENT;
event.registry_event->account_name = NULL;
char* domain = strstr(buf, "Domain: ");
if (domain) {
domain += 8; //Increment pointer to start of domain name
int len = 0;
while (domain[len] && !isspace(domain[len])) {
len++;
}
char* account_name = calloc(len + 1, sizeof(char));
strncpy(account_name, domain, len);
event.registry_event->account_name = account_name;
printf("Found domain: %s of length %d\n", account_name, len);
}
else {
printf("Warning: No domain found in Registry event\n");
}
char* status = NULL;
if ((status = strstr(buf, "Status: Request Sent"))) {
event.registry_event->status = REGISTRY_REQUEST_SENT_EVENT;
}
else if ((status = strstr(buf, "Status: Unregistered"))) {
event.registry_event->status = REGISTRY_UNREGISTERED_EVENT;
}
else if ((status = strstr(buf, "Status: Registered"))) {
event.registry_event->status = REGISTRY_REGISTERED_EVENT;
}
else {
printf("Warning: No status found in Registry event\n");
}
return event;
}
ami_event parse_registry_entry_event(char* buf)
{
ami_event event;
memset(&event, 0, sizeof(event));
event.type = REGISTRY_ENTRY;
event.registry_entry_event = (registry_entry_event*)malloc(sizeof(registry_entry_event));
event.registry_entry_event->host = 0;
event.registry_entry_event->port = 0;
event.registry_entry_event->username = 0;
event.registry_entry_event->domain = 0;
event.registry_entry_event->refresh = 0;
event.registry_entry_event->state = 0;
event.registry_entry_event->registration_time = 0;
char* host_start = strstr(buf, "Host:");
if (host_start) {
//Found host
host_start += 6; //Advance to start of content
char* host_end = strstr(host_start, "\r\n");
if (host_end) {
//Found end of host
int host_len = host_end - host_start;
event.registry_entry_event->host = (char*)calloc(host_len + 1, 1);
strncpy(event.registry_entry_event->host, host_start, host_len);
}
}
char* port_start = strstr(buf, "Port:");
if (port_start) {
//Found port
port_start += 6; //Advance to start of content
event.registry_entry_event->port = strtol(port_start, NULL, 10);
}
char* username_start = strstr(buf, "Username:");
if (username_start) {
//Found username
username_start += 10; //Advance to start of content
char* username_end = strstr(username_start, "\r\n");
if (username_end) {
//Found end of username
int username_len = username_end - username_start;
event.registry_entry_event->username = (char*)calloc(username_len + 1, 1);
strncpy(event.registry_entry_event->username, username_start, username_len);
}
}
char* domain_start = strstr(buf, "Domain:");
if (domain_start) {
//Found domain
domain_start += 8; //Advance to start of content
char* domain_end = strstr(domain_start, "\r\n");
if (domain_end) {
//Found end of domain
int domain_len = domain_end - domain_start;
event.registry_entry_event->domain = (char*)calloc(domain_len + 1, 1);
strncpy(event.registry_entry_event->domain, domain_start, domain_len);
}
}
char* domain_port_start = strstr(buf, "DomainPort:");
if (domain_port_start) {
//Found port
domain_port_start += 12; //Advance to start of content
event.registry_entry_event->port = strtol(domain_port_start, NULL, 10);
}
char* refresh_start = strstr(buf, "Refresh:");
if (refresh_start) {
//Found refresh interval
refresh_start += 9; //Advance to start of content
event.registry_entry_event->refresh = strtol(refresh_start, NULL, 10);
}
char* state_start = strstr(buf, "State:");
if (state_start) {
//Found state
state_start += 7; //Advance to start of content
char* state_end = strstr(state_start, "\r\n");
if (state_end) {
//Found end of state
int state_len = state_end - state_start;
event.registry_entry_event->state = (char*)calloc(state_len + 1, 1);
strncpy(event.registry_entry_event->state, state_start, state_len);
}
}
char* registration_time_start = strstr(buf, "RegistrationTime:");
if (registration_time_start) {
//Found reg timestamp
registration_time_start += 18; //Advance to start of content
event.registry_entry_event->registration_time = strtol(registration_time_start, NULL, 10);
}
return event;
}
ami_event parse_brcm_event(char* buf)
{
ami_event event;
memset(&event, 0, sizeof(event));
event.type = BRCM;
event.brcm_event = malloc(sizeof(brcm_event));
event.brcm_event->type = BRCM_UNKNOWN_EVENT;
char* event_type = NULL;
char parse_buffer[AMI_BUFLEN];
char delimiter = ' ';
char *value;
if ((event_type = strstr(buf, "Status: "))) {
event.brcm_event->type = BRCM_STATUS_EVENT;
strncpy(parse_buffer, event_type + 8, AMI_BUFLEN);
parse_buffer[AMI_BUFLEN -1] = '\0';
//strcpy(parse_buffer, event_type + 8);
value = strtok(parse_buffer, &delimiter);
if (value && !strcmp(value, "OFF")) {
event.brcm_event->status.off_hook = 1;
}
else if (value && !strcmp(value, "ON")) {
event.brcm_event->status.off_hook = 0;
}
else {
printf("Warning: No/Unknown status in brcm status event\n");
}
value = strtok(NULL, &delimiter);
if (value) {
event.brcm_event->status.line_id = strtol(value, NULL, 10);
}
else {
printf("Warning: No/Unknown line id in brcm status event\n");
event.brcm_event->status.line_id = 0;
}
}
else if ((event_type = strstr(buf, "State: "))) {
event.brcm_event->type = BRCM_STATE_EVENT;
strncpy(parse_buffer, event_type + 7, AMI_BUFLEN);
parse_buffer[AMI_BUFLEN -1] = '\0';
//strcpy(parse_buffer, event_type + 7);
value = strtok(parse_buffer, &delimiter);
if (value) {
value = trim_whitespace(value);
event.brcm_event->state.state = calloc(strlen(value) + 1, sizeof(char));
strcpy(event.brcm_event->state.state, value);
}
else {
printf("Warning: No state in brcm state event\n");
event.brcm_event->state.state = NULL;
}
value = strtok(NULL, &delimiter);
if (value) {
event.brcm_event->state.line_id = strtol(value, NULL, 10);
}
else {
printf("Warning: No line_id in brcm state event\n");
event.brcm_event->state.line_id = -1;
}
value = strtok(NULL, &delimiter);
if (value) {
event.brcm_event->state.subchannel_id = strtol(value, NULL, 10);
}
else {
printf("Warning: No subchannel_id in brcm state event\n");
event.brcm_event->state.subchannel_id = -1;
}
}
else if ((event_type = strstr(buf, "Module unload"))) {
event.brcm_event->type = BRCM_MODULE_EVENT;
event.brcm_event->module_loaded = 0;
}
else if ((event_type = strstr(buf, "Module load"))) {
event.brcm_event->type = BRCM_MODULE_EVENT;
event.brcm_event->module_loaded = 1;
}
return event;
}
ami_event parse_varset_event(char* buf)
{
int len;
ami_event event;
memset(&event, 0, sizeof(event));
event.type = VARSET;
event.varset_event = malloc(sizeof(varset_event));
char* channel = strstr(buf, "Channel: ");
if (channel) {
channel += 9; //Increment pointer to start of channel
len = 0;
while (channel[len] && !isspace(channel[len])) {
len++;
}
event.varset_event->channel = calloc(len + 1, sizeof(char));
strncpy(event.varset_event->channel, channel, len);
}
else {
printf("Warning: No Channel in varset event\n");
event.varset_event->channel = NULL;
}
char* variable = strstr(buf, "Variable: ");
if (variable) {
variable += 10; //Increment pointer to start of variable
len = 0;
while (variable[len] && !isspace(variable[len])) {
len++;
}
event.varset_event->variable = calloc(len + 1, sizeof(char));
strncpy(event.varset_event->variable, variable, len);
}
else {
printf("Warning: No Variable in varset event\n");
event.varset_event->variable = NULL;
}
char* value = strstr(buf, "Value: ");
if (value) {
value += 7; //Increment pointer to start of value
len = 0;
while (value[len] && !isspace(value[len])) {
len++;
}
event.varset_event->value = calloc(len + 1, sizeof(char));
strncpy(event.varset_event->value, value, len);
}
else {
printf("Warning: No Value in varset event\n");
event.varset_event->value = NULL;
}
return event;
}
ami_event parse_channel_reload_event(char* buf) {
ami_event event;
memset(&event, 0, sizeof(event));
event.type = CHANNELRELOAD;
event.channel_reload_event = malloc(sizeof(channel_reload_event));
char* result;
if ((result = strstr(buf, "ChannelType: SIP"))) {
event.channel_reload_event->channel_type = CHANNELRELOAD_SIP_EVENT;
}
else {
printf("Warning: unknown channel in ChannelReload event\n");
event.channel_reload_event->channel_type = CHANNELRELOAD_UNKNOWN_EVENT;
}
return event;
}
ami_event parse_fully_booted_event(char* buf) {
ami_event event;
memset(&event, 0, sizeof(event));
event.type = FULLYBOOTED;
return event;
}
void ami_free_event(ami_event event) {
switch (event.type) {
case REGISTRY:
free(event.registry_event->account_name);
free(event.registry_event);
break;
case BRCM:
if (event.brcm_event->type == BRCM_STATE_EVENT) {
free(event.brcm_event->state.state);
}
free(event.brcm_event);
break;
case CHANNELRELOAD:
free(event.channel_reload_event);
break;
case VARSET:
free(event.varset_event->channel);
free(event.varset_event->value);
free(event.varset_event->variable);
free(event.varset_event);
break;
case REGISTRY_ENTRY:
free(event.registry_entry_event->host);
free(event.registry_entry_event->domain);
free(event.registry_entry_event->state);
free(event.registry_entry_event->username);
free(event.registry_entry_event);
break;
case FULLYBOOTED:
case LOGIN:
case DISCONNECT:
case REGISTRATIONS_COMPLETE:
/* no event data to free */
break;
case UNKNOWN_EVENT:
break;
default:
printf("WARNING: Unhandled event type, can't free (may leak)\n");
break;
}
}
static void ami_handle_event(ami_connection* con, char* message)
{
int idx = 0;
ami_event_type type = get_event_type(message, &idx);
ami_event event;
memset(&event, 0, sizeof(event));
switch(type) {
case BRCM:
event = parse_brcm_event(&message[idx]);
break;
case CHANNELRELOAD:
event = parse_channel_reload_event(&message[idx]);
break;
case FULLYBOOTED:
event = parse_fully_booted_event(&message[idx]);
break;
case VARSET:
event = parse_varset_event(&message[idx]);
break;
case REGISTRY:
event = parse_registry_event(&message[idx]);
break;
case REGISTRY_ENTRY:
event = parse_registry_entry_event(&message[idx]);
break;
case REGISTRATIONS_COMPLETE:
/*
* Probably not needed.
* (this happens after all registry entry events have been received)
* Event: RegistrationsComplete
* EventList: Complete
* ListItems: 1
*/
event.type = REGISTRATIONS_COMPLETE;
break;
case UNKNOWN_EVENT:
default:
event.type = UNKNOWN_EVENT;
break;
}
//Let client handle the event
if (con->event_callback) {
con->event_callback(con, event);
}
ami_free_event(event);
}
static void ami_send_action(ami_connection* con, ami_action* action) {
if (con->current_action) {
printf("ERROR: Attempt to send AMI action, but there is already an action pending\n");
return;
}
con->current_action = action;
write(con->sd, action->message, strlen(action->message));
}
static void ami_handle_response(ami_connection* con, char* message)
{
ami_action* current = con->current_action;
assert(current);
ami_action* next = current->next_action;
con->current_action = NULL;
if (next) {
ami_send_action(con, next);
}
if (current->callback) {
current->callback(con, message);
}
free(current);
}
static void queue_action(ami_connection* con, ami_action* action)
{
action->next_action = NULL;
if (con->current_action) {
ami_action* a = con->current_action;
while(a->next_action) {
a = a->next_action;
}
a->next_action = action;
}
else {
ami_send_action(con, action);
}
}
/*
* PUBLIC FUNCTION IMPLEMENTATIONS
*/
ami_connection* ami_init(ami_event_cb on_event) {
ami_connection* con;
con = calloc(1, sizeof(*con));
con->connected = 0;
con->sd = -1;
bzero(con->message_frame, sizeof(con->message_frame));
memset(con->left_over, 0, AMI_BUFLEN * 2 + 1);
con->current_action = NULL;
con->event_callback = on_event;
return con;
}
int ami_connect(ami_connection* con, const char* hostname, const char* portno)
{
ami_disconnect(con);
int result = 0;
strncpy(con->message_frame, MESSAGE_FRAME_LOGIN, MESSAGE_FRAME_LEN);
struct addrinfo *host;
int err = getaddrinfo(hostname, portno, NULL, &host);
if (err) {
fprintf(stderr, "Unable to connect to AMI: %s\n", gai_strerror(err));
con->connected = 0;
return result;
}
con->sd = socket(AF_INET, SOCK_STREAM, 0);
int res = connect(con->sd, host->ai_addr, host->ai_addrlen);
if (res == 0) {
//printf("Connected to AMI\n");
con->connected = 1;
result = 1;
}
else {
fprintf(stderr, "Unable to connect to AMI: %s\n", strerror(errno));
con->connected = 0;
result = 0;
}
freeaddrinfo(host);
return result;
}
void ami_disconnect(ami_connection* con)
{
if (con->connected) {
close(con->sd);
con->sd = -1;
con->connected = 0;
//Let client know about disconnect
ami_event event;
memset(&event, 0, sizeof(event));
event.type = DISCONNECT;
con->event_callback(con, event);
}
}
void ami_free(ami_connection* con) {
ami_disconnect(con);
free(con);
}
/*
* Called by client when ami_connection has new data to process
*/
void ami_handle_data(ami_connection* con)
{
//printf("Handling data on AMI connection\n");
int idx = 0; //buffer position
char* message = NULL;
char buf[AMI_BUFLEN * 2 + 1];
//Read data from ami
memset(buf, 0, AMI_BUFLEN * 2 + 1);
if (read(con->sd, buf, AMI_BUFLEN-1) <= 0) {
ami_disconnect(con); //we have been disconnected
return;
}
//Concatenate left over data with newly read
if (strlen(con->left_over)) {
char tmp[AMI_BUFLEN * 2 + 1];
strcpy(tmp, con->left_over);
strcat(tmp, buf);
strcpy(buf, tmp);
con->left_over[0] = '\0';
}
ami_message message_type = UNKNOWN_MESSAGE;
ami_event event;
memset(&event, 0, sizeof(event));
while(idx < strlen(buf)) {
message_type = parse_buffer(con->message_frame, buf, &message, &idx);
if (message_type == UNKNOWN_MESSAGE) {
break;
}
switch (message_type) {
case LOGIN_MESSAGE:
//Send login event to client (time to log in...)
event.type = LOGIN;
con->event_callback(con, event);
ami_free_event(event);
break;
case EVENT_MESSAGE:
ami_handle_event(con, message + 7);
break;
case RESPONSE_MESSAGE:
ami_handle_response(con, message);
break;
default:
printf("Unknown data from AMI: %s\n", message);
break;
}
free(message);
}
//store remaining buffer until next packet is read
if (idx < strlen(buf)) {
strcpy(con->left_over, &buf[idx]);
}
}
/*
* ACTIONS
* Send an Action to AMI. We expect a response to this, so its possible to provide
* a callback that will be executed when a response is retrieved. There can only
* be one action pending at a time. If one is already pending, any new attempts
* will be ignored.
*/
/*
* Send command to reload sip channel.
* CHANNELRELOAD event will be received when reload is completed.
*
* Example response:
* "Response: Follows
* Privilege: Command
* --END COMMAND--"
*/
void ami_send_sip_reload(ami_connection* con, ami_response_cb on_response) {
//printf("Queueing Action: ami_send_sip_reload\n");
ami_action* action = malloc(sizeof(ami_action));
action->callback = on_response;
sprintf(action->message,"Action: Command\r\nCommand: sip reload\r\n\r\n");
queue_action(con, action);
}
/*
* Send username and password to AMI
*
* Example response:
* "Response: Success
* Message: Authentication accepted"
*/
void ami_send_login(ami_connection* con, char* username, char* password, ami_response_cb on_response)
{
//printf("Queueing Action: ami_send_login\n");
strncpy(con->message_frame, MESSAGE_FRAME, MESSAGE_FRAME_LEN); //Login sent, now there's always <CR><LF><CR><LR> after a message
ami_action* action = malloc(sizeof(ami_action));
action->callback = on_response;
sprintf(action->message,"Action: Login\r\nUsername: %s\r\nSecret: %s\r\n\r\n", username, password);
queue_action(con, action);
}
/*
* Request an indication on if BRCM module is loaded or not
*
* Example response:
* "Response: Follows
* Privilege: Command
* --END COMMAND--"
*/
void ami_send_brcm_module_show(ami_connection* con, ami_response_cb on_response) {
//printf("Queueing Action: ami_send_brcm_module_show\n");
ami_action* action = malloc(sizeof(ami_action));
action->callback = on_response;
sprintf(action->message, "Action: Command\r\nCommand: module show like chan_brcm\r\n\r\n");
queue_action(con, action);
}
/*
* Request an indication on the port configuration
*
* Example response:
* "Response: Success
* Message:
* FXS 2
* DECT 4"
*/
void ami_send_brcm_ports_show(ami_connection* con, ami_response_cb on_response) {
//printf("Queueing Action: ami_send_brcm_ports_show\n");
ami_action* action = malloc(sizeof(ami_action));
action->callback = on_response;
sprintf(action->message, "Action: BRCMPortsShow\r\n\r\n");
queue_action(con, action);
}
/*
* Request SIP Registry information
* (response is a simple message, then the registry events
* follow separately, one per registered account)
* Example response:
* Response: Success
* EventList: start
* Message: Registrations will follow
*
* Event: RegistryEntry
* Host: sip0
* Port: 5060
* Username: 0510409896
* Domain: 62.80.209.10
* DomainPort: 5060
* Refresh: 5385
* State: Registered
* RegistrationTime: 1401282865
*
* Event: RegistrationsComplete
* EventList: Complete
* ListItems: 1
*/
void ami_send_sip_show_registry(ami_connection* con, ami_response_cb on_response) {
ami_action* action = (ami_action*)malloc(sizeof(ami_action));
action->callback = on_response;
sprintf(action->message, "Action: SIPshowregistry\r\n\r\n");
queue_action(con, action);
}

View File

@@ -1,131 +0,0 @@
/*
* ami_connection.h
*
* Manage connections to AMI.
*
* Callbacks in client code will be called when events or responses have been received
* from AMI. There is no event loop built in, client should call ami_handle_data whenever
* new data is available on the connections filedescriptor.
*/
#define MESSAGE_FRAME "\r\n\r\n"
#define MESSAGE_FRAME_LOGIN "\r\n"
#define MESSAGE_FRAME_LEN 5
#define AMI_BUFLEN 512
typedef struct {
enum {
BRCM_UNKNOWN_EVENT,
BRCM_STATUS_EVENT,
BRCM_STATE_EVENT,
BRCM_MODULE_EVENT
} type;
struct {
int line_id;
int off_hook;
} status;
struct {
int line_id;
int subchannel_id;
char* state;
} state;
int module_loaded;
} brcm_event;
typedef struct {
char* account_name;
enum {
REGISTRY_UNKNOWN_EVENT,
REGISTRY_REQUEST_SENT_EVENT,
REGISTRY_UNREGISTERED_EVENT,
REGISTRY_REGISTERED_EVENT
} status;
} registry_event;
typedef struct {
char* host; //Account name (e.g. sip0)
int port; //5060
char* username; //0510409896
char* domain; //62.80.209.10
int domain_port; //5060
int refresh; //Refresh interval, 285
char* state; //Registration state Registered
int registration_time; //Registration timestamp, 1401282865
} registry_entry_event;
typedef struct {
enum {
CHANNELRELOAD_UNKNOWN_EVENT,
CHANNELRELOAD_SIP_EVENT
} channel_type;
} channel_reload_event;
typedef struct {
char* channel;
char* variable;
char* value;
} varset_event;
typedef enum ami_event_type {
LOGIN,
REGISTRY,
REGISTRY_ENTRY,
REGISTRATIONS_COMPLETE,
BRCM,
CHANNELRELOAD,
FULLYBOOTED,
VARSET,
DISCONNECT,
UNKNOWN_EVENT,
} ami_event_type;
typedef struct ami_event {
ami_event_type type;
brcm_event* brcm_event;
registry_event* registry_event;
registry_entry_event* registry_entry_event;
channel_reload_event* channel_reload_event;
varset_event* varset_event;
} ami_event;
typedef struct ami_connection ami_connection;
typedef struct ami_action ami_action;
typedef void (*ami_event_cb) (ami_connection* con, ami_event event);
typedef void (*ami_response_cb) (ami_connection* con, char* buf);
/*
* Holds data related to an AMI connection
*/
struct ami_connection {
int connected; //ami_connection is connected to asterisk
int sd;
char message_frame[MESSAGE_FRAME_LEN];
char left_over[AMI_BUFLEN * 2 + 1];
ami_event_cb event_callback;
ami_action* current_action;
};
ami_connection* ami_init(ami_event_cb on_event);
int ami_connect(ami_connection* con, const char* hostname, const char* portno);
void ami_disconnect(ami_connection* con);
void ami_free(ami_connection* con);
/*
* Call when new data is available
*/
void ami_handle_data(ami_connection* con);
/*
* Actions
*/
struct ami_action {
char message[AMI_BUFLEN];
ami_response_cb callback;
ami_action* next_action;
};
void ami_send_sip_reload(ami_connection* con, ami_response_cb on_response);
void ami_send_login(ami_connection* con, char*username, char* password, ami_response_cb on_response);
void ami_send_brcm_module_show(ami_connection* con, ami_response_cb on_response);
void ami_send_brcm_ports_show(ami_connection* con, ami_response_cb on_response);
void ami_send_sip_show_registry(ami_connection* con, ami_response_cb on_response);

File diff suppressed because it is too large Load Diff

View File

@@ -1,250 +0,0 @@
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <netdb.h>
#include <sys/socket.h>
#include <unistd.h>
#include <time.h>
#include <arpa/inet.h>
//For dynamic firewall support
#define IPTABLES_CHAIN "zone_wan_input"
#define IPTABLES_BIN "iptables"
#define IPTABLES_FILE "/etc/firewall.sip"
#ifdef USE_IPV6
#define IP6TABLES_BIN "ip6tables"
#define IP6TABLES_FILE "/etc/firewall6.sip"
#endif
#define ECHO_BIN "echo"
#define UCI_BIN "uci"
#define UCI_VOICE_PACKAGE "voice_client"
#ifndef NI_MAXHOST
#define NI_MAXHOST 65
#endif
#define MAX_IP_LIST_LENGTH 20
#define RTP_RANGE_START_DEFAULT 10000
#define RTP_RANGE_END_DEFAULT 20000
#define BUFLEN 512
typedef struct IP
{
int family;
char addr[NI_MAXHOST];
} IP;
typedef enum AMI_STATE {
DISCONNECTED, //Not connected to AMI
CONNECTED, //Connected to AMI
LOGGED_IN, //Logged in to AMI
READY //Ready to handle all events
} AMI_STATE;
AMI_STATE state;
typedef enum LED_STATE
{
LS_OK,
LS_NOTICE,
LS_ALERT,
LS_ERROR,
LS_OFF,
LS_UNKNOWN
} LED_STATE;
#define MAX_LED_STATE 10
typedef struct LED_STATE_MAP
{
LED_STATE state;
char str[MAX_LED_STATE];
} LED_STATE_MAP;
static const LED_STATE_MAP led_states[] =
{
{LS_OK, "ok"},
{LS_NOTICE, "notice"},
{LS_ALERT, "alert"},
{LS_ERROR, "error"},
{LS_OFF, "off"},
{LS_UNKNOWN, "-"},
};
typedef enum LED_NAME
{
LN_DSL,
LN_WIFI,
LN_WPS,
LN_LAN,
LN_STATUS,
LN_DECT,
LN_TV,
LN_USB,
LN_WAN,
LN_INTERNET,
LN_VOICE1,
LN_VOICE2,
LN_ECO,
LN_ALL,
LN_UNKNOWN
} LED_NAME;
#define MAX_LED_NAME 13
typedef struct LED_NAME_MAP
{
LED_NAME name;
char str[MAX_LED_NAME];
} LED_NAME_MAP;
static const LED_NAME_MAP led_names[] =
{
{LN_DSL, "led.dsl"},
{LN_WIFI, "led.wifi"},
{LN_WPS, "led.wps"},
{LN_LAN, "led.lan"},
{LN_STATUS, "led.status"},
{LN_DECT, "led.dect"},
{LN_TV, "led.tv"},
{LN_USB, "led.usb"},
{LN_WAN, "led.wan"},
{LN_INTERNET, "led.internet"},
{LN_VOICE1, "led.voice1"},
{LN_VOICE2, "led.voice2"},
{LN_ECO, "led.eco"},
{LN_ALL, "All"},
{LN_UNKNOWN, "-"}
};
typedef struct LED_CURRENT_STATE_MAP
{
LED_NAME name;
LED_STATE state;
} LED_CURRENT_STATE_MAP;
static LED_CURRENT_STATE_MAP led_current_states[] =
{
{LN_VOICE1, LS_UNKNOWN},
{LN_VOICE2, LS_UNKNOWN},
{LN_UNKNOWN, LS_UNKNOWN}
};
//These are used to map SIP peer name to a port
//CPE may be configured to share the same SIP-account for several ports or to use individual accounts
typedef enum BRCM_PORT
{
PORT_BRCM0 = 0,
PORT_BRCM1,
PORT_BRCM2,
PORT_BRCM3,
PORT_BRCM4,
PORT_BRCM5,
PORT_ALL,
PORT_UNKNOWN
} BRCM_PORT;
typedef struct SUBCHANNEL
{
char state[80];
} SUBCHANNEL;
#define MAX_PORT_NAME 10
typedef struct PORT_MAP
{
char name[MAX_PORT_NAME];
BRCM_PORT port;
int off_hook;
SUBCHANNEL sub[2]; //TODO define for number of subchannels?
struct ubus_object *ubus_object;
} PORT_MAP;
static PORT_MAP brcm_ports[] =
{
{"brcm0", PORT_BRCM0, 0, { {"ONHOOK"}, {"ONHOOK"} }, NULL },
{"brcm1", PORT_BRCM1, 0, { {"ONHOOK"}, {"ONHOOK"} }, NULL },
{"brcm2", PORT_BRCM2, 0, { {"ONHOOK"}, {"ONHOOK"} }, NULL },
{"brcm3", PORT_BRCM3, 0, { {"ONHOOK"}, {"ONHOOK"} }, NULL },
{"brcm4", PORT_BRCM4, 0, { {"ONHOOK"}, {"ONHOOK"} }, NULL },
{"brcm5", PORT_BRCM5, 0, { {"ONHOOK"}, {"ONHOOK"} }, NULL },
//Add other ports here as needed
{"port_all", PORT_ALL, 0, { {"ONHOOK"}, {"ONHOOK"} }, NULL },
{"-", PORT_UNKNOWN, 0, { {"ONHOOK"}, {"ONHOOK"} }, NULL },
};
typedef enum SIP_ACCOUNT_ID
{
SIP_ACCOUNT_0 = 0,
SIP_ACCOUNT_1,
SIP_ACCOUNT_2,
SIP_ACCOUNT_3,
SIP_ACCOUNT_4,
SIP_ACCOUNT_5,
SIP_ACCOUNT_6,
SIP_ACCOUNT_7,
SIP_ACCOUNT_UNKNOWN
} SIP_ACCOUNT_ID;
#define MAX_ACCOUNT_NAME 10
typedef struct SIP_ACCOUNT
{
SIP_ACCOUNT_ID id;
char name[MAX_ACCOUNT_NAME];
} SIP_ACCOUNT;
static const SIP_ACCOUNT sip_accounts[] = {
{SIP_ACCOUNT_0, "sip0"},
{SIP_ACCOUNT_1, "sip1"},
{SIP_ACCOUNT_2, "sip2"},
{SIP_ACCOUNT_3, "sip3"},
{SIP_ACCOUNT_4, "sip4"},
{SIP_ACCOUNT_5, "sip5"},
{SIP_ACCOUNT_6, "sip6"},
{SIP_ACCOUNT_7, "sip7"},
{SIP_ACCOUNT_UNKNOWN, "-"}
};
#define MAX_SIP_PEERS 10
#define MAX_SIP_PEER_NAME 10
#define MAX_SIP_PEER_USERNAME 128
#define MAX_SIP_PEER_DOMAIN 128
#define MAX_SIP_PEER_STATE 128
typedef struct SIP_PEER
{
SIP_ACCOUNT account;
int sip_registry_request_sent; //Bool indicating if we have sent a registration request
int sip_registry_registered; //Bool indicating if we are registered or not
time_t sip_registry_time; //The time when we received the registry event
IP ip_list[MAX_IP_LIST_LENGTH]; //IP addresses of the sip registrar
int ip_list_length; //Number of addresses
//Info from sip show registry
int port; //The port we are connected to
char username[MAX_SIP_PEER_USERNAME]; //Our username
char domain[MAX_SIP_PEER_DOMAIN]; //The domain we are registered on
int domain_port; //The domain port
int refresh; //Refresh interval for this registration
char state[MAX_SIP_PEER_STATE]; //Registration state e.g. Registered
time_t registration_time; //Registration timestamp, 1401282865
struct ubus_object *ubus_object;
} SIP_PEER;
/*
* Struct that stores configuration for a LED
*/
typedef struct {
LED_STATE state;
LED_NAME name;
int num_ports;
PORT_MAP** ports; //Array of pointers to brcm ports that govern this leds state
int num_peers;
SIP_PEER** peers;//Array of pointers to sip peers that govern this leds state
} Led;
void init_sip_peers();
void manage_leds();
void manage_led(LED_NAME led, LED_STATE state);
LED_STATE get_led_state(Led* led);
void configure_leds();
void free_led_config();

View File

@@ -1,208 +0,0 @@
/*-
* Copyright (c) 2011 Felix Fietkau <nbd@openwrt.org>
* Copyright (c) 2010 Isilon Systems, Inc.
* Copyright (c) 2010 iX Systems, Inc.
* Copyright (c) 2010 Panasas, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice unmodified, this list of conditions, and the following
* disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _LINUX_LIST_H_
#define _LINUX_LIST_H_
#include <stddef.h>
#include <stdbool.h>
#define prefetch(x)
#ifndef container_of
#define container_of(ptr, type, member) \
({ \
const typeof(((type *) NULL)->member) *__mptr = (ptr); \
(type *) ((char *) __mptr - offsetof(type, member)); \
})
#endif
struct list_head {
struct list_head *next;
struct list_head *prev;
};
#define LIST_HEAD_INIT(name) { &(name), &(name) }
#undef LIST_HEAD
#define LIST_HEAD(name) struct list_head name = LIST_HEAD_INIT(name)
static inline void
INIT_LIST_HEAD(struct list_head *list)
{
list->next = list->prev = list;
}
static inline bool
list_empty(const struct list_head *head)
{
return (head->next == head);
}
static inline bool
list_is_first(const struct list_head *list,
const struct list_head *head)
{
return list->prev == head;
}
static inline bool
list_is_last(const struct list_head *list,
const struct list_head *head)
{
return list->next == head;
}
static inline void
_list_del(struct list_head *entry)
{
entry->next->prev = entry->prev;
entry->prev->next = entry->next;
}
static inline void
list_del(struct list_head *entry)
{
_list_del(entry);
entry->next = entry->prev = NULL;
}
static inline void
_list_add(struct list_head *_new, struct list_head *prev,
struct list_head *next)
{
next->prev = _new;
_new->next = next;
_new->prev = prev;
prev->next = _new;
}
static inline void
list_del_init(struct list_head *entry)
{
_list_del(entry);
INIT_LIST_HEAD(entry);
}
#define list_entry(ptr, type, field) container_of(ptr, type, field)
#define list_first_entry(ptr, type, field) list_entry((ptr)->next, type, field)
#define list_last_entry(ptr, type, field) list_entry((ptr)->prev, type, field)
#define list_for_each(p, head) \
for (p = (head)->next; p != (head); p = p->next)
#define list_for_each_safe(p, n, head) \
for (p = (head)->next, n = p->next; p != (head); p = n, n = p->next)
#define list_for_each_entry(p, h, field) \
for (p = list_first_entry(h, typeof(*p), field); &p->field != (h); \
p = list_entry(p->field.next, typeof(*p), field))
#define list_for_each_entry_safe(p, n, h, field) \
for (p = list_first_entry(h, typeof(*p), field), \
n = list_entry(p->field.next, typeof(*p), field); &p->field != (h);\
p = n, n = list_entry(n->field.next, typeof(*n), field))
#define list_for_each_entry_reverse(p, h, field) \
for (p = list_last_entry(h, typeof(*p), field); &p->field != (h); \
p = list_entry(p->field.prev, typeof(*p), field))
#define list_for_each_prev(p, h) for (p = (h)->prev; p != (h); p = p->prev)
#define list_for_each_prev_safe(p, n, h) for (p = (h)->prev, n = p->prev; p != (h); p = n, n = p->prev)
static inline void
list_add(struct list_head *_new, struct list_head *head)
{
_list_add(_new, head, head->next);
}
static inline void
list_add_tail(struct list_head *_new, struct list_head *head)
{
_list_add(_new, head->prev, head);
}
static inline void
list_move(struct list_head *list, struct list_head *head)
{
_list_del(list);
list_add(list, head);
}
static inline void
list_move_tail(struct list_head *entry, struct list_head *head)
{
_list_del(entry);
list_add_tail(entry, head);
}
static inline void
_list_splice(const struct list_head *list, struct list_head *prev,
struct list_head *next)
{
struct list_head *first;
struct list_head *last;
if (list_empty(list))
return;
first = list->next;
last = list->prev;
first->prev = prev;
prev->next = first;
last->next = next;
next->prev = last;
}
static inline void
list_splice(const struct list_head *list, struct list_head *head)
{
_list_splice(list, head, head->next);
}
static inline void
list_splice_tail(struct list_head *list, struct list_head *head)
{
_list_splice(list, head->prev, head);
}
static inline void
list_splice_init(struct list_head *list, struct list_head *head)
{
_list_splice(list, head, head->next);
INIT_LIST_HEAD(list);
}
static inline void
list_splice_tail_init(struct list_head *list, struct list_head *head)
{
_list_splice(list, head->prev, head);
INIT_LIST_HEAD(list);
}
#endif /* _LINUX_LIST_H_ */

View File

@@ -1,204 +0,0 @@
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Copyright (C) 2008 John Crispin <blogic@openwrt.org>
*/
#include <string.h>
#include <stdlib.h>
#include <uci_config.h>
#include <uci.h>
#include "ucix.h"
static struct uci_ptr ptr;
static inline int ucix_get_ptr(struct uci_context *ctx, const char *p, const char *s, const char *o, const char *t)
{
memset(&ptr, 0, sizeof(ptr));
ptr.package = p;
ptr.section = s;
ptr.option = o;
ptr.value = t;
return uci_lookup_ptr(ctx, &ptr, NULL, true);
}
struct uci_context* ucix_init(const char *config_file)
{
struct uci_context *ctx = uci_alloc_context();
uci_add_delta_path(ctx, "/var/state");
if(uci_load(ctx, config_file, NULL) != UCI_OK)
{
printf("%s/%s is missing or corrupt\n", ctx->savedir, config_file);
return NULL;
}
return ctx;
}
struct uci_context* ucix_init_path(const char *path, const char *config_file)
{
struct uci_context *ctx = uci_alloc_context();
if(path)
uci_set_confdir(ctx, path);
if(uci_load(ctx, config_file, NULL) != UCI_OK)
{
printf("%s/%s is missing or corrupt\n", ctx->savedir, config_file);
return NULL;
}
return ctx;
}
void ucix_cleanup(struct uci_context *ctx)
{
uci_free_context(ctx);
}
void ucix_save(struct uci_context *ctx)
{
uci_set_savedir(ctx, "/tmp/.uci/");
uci_save(ctx, NULL);
}
void ucix_save_state(struct uci_context *ctx)
{
uci_set_savedir(ctx, "/var/state/");
uci_save(ctx, NULL);
}
int ucix_get_option_list(struct uci_context *ctx, const char *p,
const char *s, const char *o, struct list_head *l)
{
struct uci_element *e = NULL;
if(ucix_get_ptr(ctx, p, s, o, NULL))
return 1;
if (!(ptr.flags & UCI_LOOKUP_COMPLETE))
return 1;
e = ptr.last;
switch (e->type)
{
case UCI_TYPE_OPTION:
switch(ptr.o->type) {
case UCI_TYPE_LIST:
uci_foreach_element(&ptr.o->v.list, e)
{
struct ucilist *ul = malloc(sizeof(struct ucilist));
ul->val = strdup((e->name)?(e->name):(""));
list_add_tail(&ul->list, l);
}
break;
default:
break;
}
break;
default:
return 1;
}
return 0;
}
const char* ucix_get_option(struct uci_context *ctx, const char *p, const char *s, const char *o)
{
struct uci_element *e = NULL;
const char *value = NULL;
if(ucix_get_ptr(ctx, p, s, o, NULL))
return NULL;
if (!(ptr.flags & UCI_LOOKUP_COMPLETE))
return NULL;
e = ptr.last;
switch (e->type)
{
case UCI_TYPE_SECTION:
value = uci_to_section(e)->type;
break;
case UCI_TYPE_OPTION:
switch(ptr.o->type) {
case UCI_TYPE_STRING:
value = ptr.o->v.string;
break;
default:
value = NULL;
break;
}
break;
default:
return 0;
}
return value;
}
int ucix_get_option_int(struct uci_context *ctx, const char *p, const char *s, const char *o, int def)
{
const char *tmp = ucix_get_option(ctx, p, s, o);
int ret = def;
if (tmp)
ret = atoi(tmp);
return ret;
}
void ucix_add_section(struct uci_context *ctx, const char *p, const char *s, const char *t)
{
if(ucix_get_ptr(ctx, p, s, NULL, t))
return;
uci_set(ctx, &ptr);
}
void ucix_add_option(struct uci_context *ctx, const char *p, const char *s, const char *o, const char *t)
{
if(ucix_get_ptr(ctx, p, s, o, (t)?(t):("")))
return;
uci_set(ctx, &ptr);
}
void ucix_add_option_int(struct uci_context *ctx, const char *p, const char *s, const char *o, int t)
{
char tmp[64];
snprintf(tmp, 64, "%d", t);
ucix_add_option(ctx, p, s, o, tmp);
}
void ucix_del(struct uci_context *ctx, const char *p, const char *s, const char *o)
{
if(!ucix_get_ptr(ctx, p, s, o, NULL))
uci_delete(ctx, &ptr);
}
void ucix_revert(struct uci_context *ctx, const char *p, const char *s, const char *o)
{
if(!ucix_get_ptr(ctx, p, s, o, NULL))
uci_revert(ctx, &ptr);
}
void ucix_for_each_section_type(struct uci_context *ctx,
const char *p, const char *t,
void (*cb)(const char*, void*), void *priv)
{
struct uci_element *e;
if(ucix_get_ptr(ctx, p, NULL, NULL, NULL))
return;
uci_foreach_element(&ptr.p->sections, e)
if (!strcmp(t, uci_to_section(e)->type))
cb(e->name, priv);
}
int ucix_commit(struct uci_context *ctx, const char *p)
{
if(ucix_get_ptr(ctx, p, NULL, NULL, NULL))
return 1;
return uci_commit(ctx, &ptr.p, false);
}

View File

@@ -1,54 +0,0 @@
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Copyright (C) 2008 John Crispin <blogic@openwrt.org>
*/
#ifndef _UCI_H__
#define _UCI_H__
#include "list.h"
struct ucilist {
struct list_head list;
char *val;
};
struct uci_context* ucix_init(const char *config_file);
struct uci_context* ucix_init_path(const char *path, const char *config_file);
void ucix_cleanup(struct uci_context *ctx);
void ucix_save(struct uci_context *ctx);
void ucix_save_state(struct uci_context *ctx);
const char* ucix_get_option(struct uci_context *ctx,
const char *p, const char *s, const char *o);
int ucix_get_option_list(struct uci_context *ctx, const char *p,
const char *s, const char *o, struct list_head *l);
int ucix_get_option_int(struct uci_context *ctx,
const char *p, const char *s, const char *o, int def);
void ucix_add_section(struct uci_context *ctx,
const char *p, const char *s, const char *t);
void ucix_add_option(struct uci_context *ctx,
const char *p, const char *s, const char *o, const char *t);
void ucix_add_option_int(struct uci_context *ctx,
const char *p, const char *s, const char *o, int t);
int ucix_commit(struct uci_context *ctx, const char *p);
void ucix_revert(struct uci_context *ctx,
const char *p, const char *s, const char *o);
void ucix_del(struct uci_context *ctx, const char *p,
const char *s, const char *o);
void ucix_for_each_section_type(struct uci_context *ctx,
const char *p, const char *t,
void (*cb)(const char*, void*), void *priv);
#endif

View File

@@ -1,6 +1,6 @@
config ANYFI_CONTROLLER
string "Controller IP or FQDN"
depends PACKAGE_anyfi
depends on PACKAGE_anyfi
help
The default IP address or fully qualified domain name (FQDN)
of the Controller that should manage the Anyfi.net software.

View File

@@ -1,803 +0,0 @@
#
# Copyright (C) 2008-2012 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=asterisk18-mod
PKG_VERSION:=1.8.10.1
PKG_SOURCE_VERSION:=8d5a855296f61391d0166b66b11e4e6055fd86c6
PKG_SOURCE_PROTO:=git
ifeq ($(CONFIG_BCM_OPEN),y)
PKG_SOURCE_URL:=http://ihgsp.inteno.se/git/asterisk-aa
else
PKG_SOURCE_URL:=git@ihgsp.inteno.se:asterisk-aa
endif
PKG_RELEASE:=$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION)-$(PKG_RELEASE).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/ltqtapi.mk
include $(INCLUDE_DIR)/package.mk
define Package/asterisk18-mod/Default
SUBMENU:=Telephony
SECTION:=net
CATEGORY:=Network
URL:=http://www.asterisk.org/
endef
define Package/asterisk18-mod/Default/description
Asterisk is a complete PBX in software. It provides all of the features
you would expect from a PBX and more. Asterisk does voice over IP in three
protocols, and can interoperate with almost all standards-based telephony
equipment using relatively inexpensive hardware.
endef
define Package/asterisk18-mod
$(call Package/asterisk18-mod/Default)
TITLE:=Complete open source PBX, v1.8x
MENU:=1
DEPENDS:= +natalie-dect-h +PACKAGE_bcmkernel:bcmkernel +PACKAGE_bcmopen:bcmopen +libopenssl +libncurses +libpopt +libpthread +uci +ubus +zlib @!TARGET_avr32
endef
define Package/asterisk18-mod/description
$(call Package/asterisk18-mod/Default/description)
endef
define Package/asterisk18-mod-sounds
$(call Package/asterisk18-mod/Default)
TITLE:=Sound files
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-sounds/description
$(call Package/asterisk18-mod/Default/description)
This package contains sound files for Asterisk.
endef
define Package/asterisk18-mod-voicemail
$(call Package/asterisk18-mod/Default)
TITLE:=Voicemail support
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-voicemail/description
$(call Package/asterisk18-mod/Default/description)
This package contains voicemail related modules for Asterisk.
endef
define Package/asterisk18-mod-app-transfer
$(call Package/asterisk18-mod/Default)
TITLE:=Call transfer support
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-app-transfer/description
$(call Package/asterisk18-mod/Default/description)
This package contains the call transfer support module for Asterisk.
endef
define Package/asterisk18-mod-app-softhangup
$(call Package/asterisk18-mod/Default)
TITLE:=SoftHangup application
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-app-softhangup/description
$(call Package/asterisk18-mod/Default/description)
This package contains the SoftHangup support module for Asterisk.
endef
define Package/asterisk18-mod-app-meetme
$(call Package/asterisk18-mod/Default)
TITLE:=conferencing support
DEPENDS:= asterisk18-mod +dahdi-tools-libtonezone +dahdi
endef
define Package/asterisk18-mod-app-meetme/description
$(call Package/asterisk18-mod/Default/description)
This package provides the MeetMe application driver Conferencing support to
Asterisk.
endef
define Package/asterisk18-mod-chan-iax2
$(call Package/asterisk18-mod/Default)
TITLE:=IAX support
DEPENDS:= asterisk18-mod +asterisk18-res-crypto
endef
define Package/asterisk18-mod-chan-iax2/description
$(call Package/asterisk18-mod/Default/description)
This package provides IAX support to
Asterisk.
endef
define Package/asterisk18-mod-cdr
$(call Package/asterisk18-mod/Default)
TITLE:=CDR support
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-cdr/description
$(call Package/asterisk18-mod/Default/description)
This package provides Call Detail Record support to
Asterisk.
endef
define Package/asterisk18-mod-res-musiconhold
$(call Package/asterisk18-mod/Default)
TITLE:=MOH support
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-res-musiconhold/description
$(call Package/asterisk18-mod/Default/description)
This package provides Music On Hold support to
Asterisk.
endef
define Package/asterisk18-mod-res-voice
$(call Package/asterisk18-mod/Default)
TITLE:=Voice client/pbx support
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-res-voice/description
$(call Package/asterisk18-mod/Default/description)
This package provides Voice Client/pbx support to
Asterisk.
endef
define Package/asterisk18-mod-res-srtp
$(call Package/asterisk18-mod/Default)
TITLE:=SRTP support
DEPENDS:= asterisk18-mod libsrtp +asterisk18-mod-res-crypto
endef
define Package/asterisk18-mod-res-srtp/description
$(call Package/asterisk18-mod/Default/description)
This package provides SRTP support to
Asterisk.
endef
define Package/asterisk18-mod-res-stun
$(call Package/asterisk18-mod/Default)
TITLE:=STUN support
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-app-queue
$(call Package/asterisk18-mod/Default)
TITLE:=Queue support
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-chan-gtalk
$(call Package/asterisk18-mod/Default)
TITLE:=GTalk support
DEPENDS:= asterisk18-mod +libiksemel
endef
define Package/asterisk18-mod-chan-gtalk/description
$(call Package/asterisk18-mod/Default/description)
This package provides the channel chan_gtalk and res_jabber for GTalk
support to Asterisk.
endef
define Package/asterisk18-mod-chan-mobile
$(call Package/asterisk18-mod/Default)
TITLE:=Mobile channel support
DEPENDS:= asterisk18-mod +bluez-libs
endef
define Package/asterisk18-mod-chan-mobile/description
$(call Package/asterisk18-mod/Default/description)
This package provides the channel chan_mobile support to Asterisk.
endef
define Package/asterisk18-mod-res-timing-timerfd
$(call Package/asterisk18-mod/Default)
TITLE:= Timerfd Timing Interface
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-res-timing-pthread
$(call Package/asterisk18-mod/Default)
TITLE:= pthread Timing Interface
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-res-fax
$(call Package/asterisk18-mod/Default)
TITLE:=Generic FAX Resource for FAX technology resource modules
DEPENDS:= asterisk18-mod +asterisk18-mod-res-timing-pthread
endef
define Package/asterisk18-mod-res-fax-spandsp
$(call Package/asterisk18-mod/Default)
TITLE:=Spandsp T.38 and G.711 FAX Resource
DEPENDS:= asterisk18-mod +asterisk18-mod-res-fax +libspandsp
endef
define Package/asterisk18-mod-chan-mgcp
$(call Package/asterisk18-mod/Default)
TITLE:=MGCP channel support
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-chan-mgcp/description
$(call Package/asterisk18-mod/Default/description)
This package provides the channel chan_mgcp support to Asterisk.
endef
define Package/asterisk18-mod-chan-skinny
$(call Package/asterisk18-mod/Default)
TITLE:=Skinny channel support
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-chan-skinny/description
$(call Package/asterisk18-mod/Default/description)
This package provides the channel chan_skinny support to Asterisk.
endef
define Package/asterisk18-mod-chan-brcm
$(call Package/asterisk18-mod/Default)
TITLE:=Broadcom channel support
DEPENDS:= asterisk18-mod
endef
define Package/asterisk18-mod-chan-brcm/description
$(call Package/asterisk18-mod/Default/description)
This package provides the channel chan_brcm support to Asterisk.
endef
define Package/asterisk18-mod-curl
$(call Package/asterisk18-mod/Default)
TITLE:=CURL support
DEPENDS:= asterisk18-mod +libcurl
endef
define Package/asterisk18-mod-curl/description
$(call Package/asterisk18-mod/Default/description)
This package provides CURL
support to Asterisk.
endef
define Package/asterisk18-mod-mysql
$(call Package/asterisk18-mod/Default)
TITLE:=MySQL support
DEPENDS:= asterisk18-mod +PACKAGE_asterisk18-mysql:libmysqlclient
endef
define Package/asterisk18-mod-mysql/description
$(call Package/asterisk18-mod/Default/description)
This package provides MySQL
support to Asterisk.
endef
define Package/asterisk18-mod-chan-lantiq
$(call Package/asterisk18-mod/Default)
TITLE:=Lantiq TAPI support
DEPENDS:= asterisk18-mod $(LTQ_TAPI_DEPENDS)
URL:=http://git.nanl.de/?p=asterisk_channel_lantiq.git
MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
endef
define Package/asterisk18-mod-chan-lantiq/description
$(call Package/asterisk18-mod/Default/description)
This package provides the channel chan_lantiq support to Asterisk.
endef
CONFIGURE_ARGS+= \
--without-inotify
ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-mod-app-meetme),)
CONFIGURE_ARGS+= \
--with-dahdi="$(STAGING_DIR)/usr"
else
CONFIGURE_ARGS+= \
--without-dahdi
endif
ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-mod-chan-gtalk),)
CONFIGURE_ARGS+= \
--with-gnutls="$(STAGING_DIR)/usr" \
--with-iksemel="$(STAGING_DIR)/usr"
SITE_VARS+= \
ac_cv_lib_iksemel_iks_start_sasl=yes \
ac_cv_lib_gnutls_gnutls_bye=yes
else
CONFIGURE_ARGS+= \
--without-gnutls \
--without-iksemel
endif
ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-mod-curl),)
CONFIGURE_ARGS+= \
--with-curl="$(STAGING_DIR)/usr"
else
CONFIGURE_ARGS+= \
--without-curl
endif
ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-mod-mysql),)
CONFIGURE_ARGS+= \
--with-mysqlclient="$(STAGING_DIR)/usr/bin"
else
CONFIGURE_ARGS+= \
--without-mysqlclient
endif
ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-mod-res-fax-spandsp),)
CONFIGURE_ARGS+= \
--with-spandsp="$(STAGING_DIR)/usr"
else
CONFIGURE_ARGS+= \
--without-spandsp
endif
ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-mod-chan-mobile),)
CONFIGURE_ARGS+= \
--with-bluetooth="$(STAGING_DIR)/usr"
else
CONFIGURE_ARGS+= \
--without-bluetooth
endif
ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk18-mod-res-srtp),)
CONFIGURE_ARGS+= \
--with-srtp="$(STAGING_DIR)/usr"
else
CONFIGURE_ARGS+= \
--without-srtp
endif
ifeq ($(CONFIG_TARGET_IBOARDID),"D301")
EXTRA_CFLAGS += -DNTR_SUPPORT
endif
CONFIGURE_ARGS+= \
--without-curses \
--with-gsm=internal \
--without-cap \
--without-gtk \
--without-gtk2 \
--without-isdnnet \
--without-kde \
--without-misdn \
--without-nbs \
--with-ncurses="$(STAGING_DIR)/usr" \
--without-netsnmp \
--without-newt \
--without-odbc \
--without-ogg \
--without-osptk \
--with-popt="$(STAGING_DIR)/usr" \
--without-pri \
--without-qt \
--without-radius \
--without-sdl \
--without-suppserv \
--without-tds \
--without-termcap \
--without-tinfo \
--without-vorbis \
--without-vpb \
--with-z="$(STAGING_DIR)/usr" \
--with-sounds-cache="$(DL_DIR)" \
--disable-xmldoc
EXTRA_CFLAGS+= $(TARGET_CPPFLAGS)
EXTRA_LDFLAGS+= $(TARGET_LDFLAGS)
define Build/Prepare
$(call Build/Prepare/Default)
ifneq ($(CONFIG_TARGET_lantiq),)
$(CP) ./src-lantiq/* $(PKG_BUILD_DIR)/
endif
endef
define Build/Configure
-rm $(PKG_BUILD_DIR)/menuselect.makeopts
$(call Build/Configure/Default,,$(SITE_VARS))
endef
define Build/Compile
$(MAKE) -C "$(PKG_BUILD_DIR)" \
include/asterisk/version.h \
include/asterisk/buildopts.h defaults.h \
makeopts.embed_rules
ASTCFLAGS="$(EXTRA_CFLAGS) -DLOW_MEMORY" \
ASTLDFLAGS="$(EXTRA_LDFLAGS)" \
$(MAKE) -C "$(PKG_BUILD_DIR)" \
ASTVARLIBDIR="/usr/lib/asterisk" \
ASTDATADIR="/usr/lib/asterisk" \
ASTKEYDIR="/usr/lib/asterisk" \
ASTDBDIR="/usr/lib/asterisk" \
NOISY_BUILD="1" \
DEBUG="" \
OPTIMIZE="" \
DESTDIR="$(PKG_INSTALL_DIR)" \
all install samples
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/asterisk-1.8/include/asterisk/
$(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk/*.h $(1)/usr/include/asterisk-1.8/include/asterisk/
$(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk.h $(1)/usr/include/asterisk-1.8/include/
endef
define Package/asterisk18-mod/conffiles
/etc/asterisk/asterisk.conf
/etc/asterisk/modules.conf
/etc/asterisk/extensions.conf
/etc/asterisk/sip.conf
/etc/asterisk/sip_notify.conf
/etc/asterisk/features.conf
/etc/asterisk/indications.conf
/etc/asterisk/logger.conf
/etc/asterisk/manager.conf
/etc/asterisk/rtp.conf
/etc/default/asterisk
/etc/init.d/asterisk
endef
define Package/asterisk18-mod/install
$(INSTALL_DIR) $(1)/etc/asterisk/ssl
for f in asterisk extensions features \
indications logger manager modules \
sip sip_notify rtp; do \
$(CP) $(PKG_INSTALL_DIR)/etc/asterisk/$$$$f.conf $(1)/etc/asterisk/ ; \
done
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
for f in app_dial app_echo app_playback app_macro \
chan_sip res_rtp_asterisk res_rtp_multicast \
codec_ulaw codec_gsm \
format_gsm format_pcm format_wav format_wav_gsm \
pbx_config \
func_strings func_timeout func_callerid func_logic; do \
$(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \
done
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/asterisk $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/default
$(INSTALL_DATA) ./files/asterisk.default $(1)/etc/default/asterisk
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/asterisk.init $(1)/etc/init.d/asterisk
endef
define Package/asterisk18-mod-sounds/install
$(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/en/* $(1)/usr/lib/asterisk/sounds/
rm -f $(1)/usr/lib/asterisk/sounds/vm-*
rm -f $(1)/usr/lib/asterisk/sounds/conf-*
endef
define Package/asterisk18-mod-voicemail/conffiles
/etc/asterisk/voicemail.conf
endef
define Package/asterisk18-mod-voicemail/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/voicemail.conf $(1)/etc/asterisk/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/*voicemail.so $(1)/usr/lib/asterisk/modules/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_adsi.so $(1)/usr/lib/asterisk/modules/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_smdi.so $(1)/usr/lib/asterisk/modules/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/en/vm-*.gsm $(1)/usr/lib/asterisk/sounds/
endef
define Package/asterisk18-mod-app-meetme/conffiles
/etc/asterisk/meetme.conf
endef
define Package/asterisk18-mod-app-meetme/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/meetme.conf $(1)/etc/asterisk/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_meetme.so $(1)/usr/lib/asterisk/modules/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/en/conf-*.gsm $(1)/usr/lib/asterisk/sounds/
endef
define Package/asterisk18-mod-chan-iax2/conffiles
/etc/asterisk/iax.conf
/etc/asterisk/iaxprov.conf
endef
define Package/asterisk18-mod-cdr/conffiles
/etc/asterisk/cdr.conf
/etc/asterisk/cdr_custom.conf
/etc/asterisk/cdr_manager.conf
/etc/asterisk/cdr_odbc.conf
/etc/asterisk/cdr_pgsql.conf
/etc/asterisk/cdr_tds.conf
endef
define Package/asterisk18-mod-res-musiconhold/conffiles
/etc/asterisk/musiconhold.conf
endef
define Package/asterisk18-mod-chan-iax2/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/iax.conf $(1)/etc/asterisk/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/iaxprov.conf $(1)/etc/asterisk/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_iax2.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-cdr/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/cdr*.conf $(1)/etc/asterisk/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/*cdr*.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-res-musiconhold/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/musiconhold.conf $(1)/etc/asterisk/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_musiconhold.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-res-voice/install
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_voice.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-chan-gtalk/conffiles
/etc/asterisk/gtalk.conf
/etc/asterisk/jabber.conf
endef
define Package/asterisk18-mod-chan-gtalk/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/gtalk.conf $(1)/etc/asterisk/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/jabber.conf $(1)/etc/asterisk/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_gtalk.so $(1)/usr/lib/asterisk/modules/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_jabber.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-chan-mobile/conffiles
/etc/asterisk/chan_mobile.conf
endef
define Package/asterisk18-mod-chan-mobile/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/chan_mobile.conf $(1)/etc/asterisk/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_mobile.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-res-timing-timerfd/install
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_timing_timerfd.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-res-timing-pthread/install
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_timing_pthread.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-res-fax/conffiles
/etc/asterisk/res_fax.conf
endef
define Package/asterisk18-mod-res-fax/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/res_fax.conf $(1)/etc/asterisk/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_fax.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-res-fax-spandsp/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_fax_spandsp.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-chan-mgcp/conffiles
/etc/asterisk/mgcp.conf
endef
define Package/asterisk18-mod-chan-mgcp/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/mgcp.conf $(1)/etc/asterisk/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_mgcp.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-chan-skinny/conffiles
/etc/asterisk/skinny.conf
endef
define Package/asterisk18-mod-chan-skinny/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/skinny.conf $(1)/etc/asterisk/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_skinny.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-chan-brcm/conffiles
/etc/asterisk/brcm.conf
endef
define Package/asterisk18-mod-chan-brcm/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/brcm.conf $(1)/etc/asterisk/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_brcm.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-curl/install
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/func_curl.so $(1)/usr/lib/asterisk/modules/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_curl.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-app-transfer/install
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_transfer.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-app-softhangup/install
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_softhangup.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-mysql/conffiles
/etc/asterisk/app_mysql.conf
/etc/asterisk/res_config_mysql.conf
/etc/asterisk/cdr_mysql.conf
endef
define Package/asterisk18-mod-mysql/install
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/app_mysql.conf $(1)/etc/asterisk/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/res_config_mysql.conf $(1)/etc/asterisk/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/cdr_mysql.conf $(1)/etc/asterisk/
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_mysql.so $(1)/usr/lib/asterisk/modules/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/cdr_mysql.so $(1)/usr/lib/asterisk/modules/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_config_mysql.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-chan-lantiq/conffiles
/etc/asterisk/lantiq.conf
endef
define Package/asterisk18-mod-chan-lantiq/install
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_DIR) $(1)/etc/asterisk
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/lantiq.conf $(1)/etc/asterisk/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_lantiq.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-res-srtp/install
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_srtp.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-res-stun/install
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_stun_monitor.so $(1)/usr/lib/asterisk/modules/
endef
define Package/asterisk18-mod-app-queue/install
$(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_queue.so $(1)/usr/lib/asterisk/modules/
endef
define Buildasterisk18-modModuleTemplate
define Package/asterisk18-mod-$(subst _,-,$(1))
$$(call Package/asterisk18-mod/Default)
TITLE:=$(2) support
DEPENDS:= asterisk18-mod $(4)
endef
define Package/asterisk18-mod-$(subst _,-,$(1))/description
$$(call Package/asterisk18-mod/Default/description)
This package provides support $(3) in Asterisk.
endef
define Package/asterisk18-mod-$(subst _,-,$(1))/install
$(INSTALL_DIR) $$(1)/usr/lib/asterisk/modules
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$(1).so $$(1)/usr/lib/asterisk/modules/
endef
$$(eval $$(call BuildPackage,asterisk18-mod-$(subst _,-,$(1))))
endef
$(eval $(call BuildPackage,asterisk18-mod))
$(eval $(call BuildPackage,asterisk18-mod-voicemail))
$(eval $(call BuildPackage,asterisk18-mod-sounds))
$(eval $(call BuildPackage,asterisk18-mod-app-meetme))
$(eval $(call BuildPackage,asterisk18-mod-app-transfer))
$(eval $(call BuildPackage,asterisk18-mod-app-softhangup))
$(eval $(call BuildPackage,asterisk18-mod-chan-iax2))
$(eval $(call BuildPackage,asterisk18-mod-cdr))
$(eval $(call BuildPackage,asterisk18-mod-res-musiconhold))
$(eval $(call BuildPackage,asterisk18-mod-res-voice))
$(eval $(call BuildPackage,asterisk18-mod-chan-gtalk))
$(eval $(call BuildPackage,asterisk18-mod-chan-mobile))
$(eval $(call BuildPackage,asterisk18-mod-res-fax))
$(eval $(call BuildPackage,asterisk18-mod-res-fax-spandsp))
$(eval $(call BuildPackage,asterisk18-mod-res-timing-timerfd))
$(eval $(call BuildPackage,asterisk18-mod-res-timing-pthread))
$(eval $(call BuildPackage,asterisk18-mod-chan-mgcp))
$(eval $(call BuildPackage,asterisk18-mod-chan-skinny))
$(eval $(call BuildPackage,asterisk18-mod-chan-brcm))
$(eval $(call BuildPackage,asterisk18-mod-curl))
$(eval $(call BuildPackage,asterisk18-mod-mysql))
$(eval $(call BuildPackage,asterisk18-mod-chan-lantiq))
$(eval $(call BuildPackage,asterisk18-mod-res-srtp))
$(eval $(call BuildPackage,asterisk18-mod-res-stun))
$(eval $(call BuildPackage,asterisk18-mod-app-queue))
$(eval $(call Buildasterisk18-modModuleTemplate,app_authenticate,Authenticate,support for executing arbitrary authenticate commands))
$(eval $(call Buildasterisk18-modModuleTemplate,app_chanisavail,Channel availability check,support for checking if a channel is available))
$(eval $(call Buildasterisk18-modModuleTemplate,app_chanspy,Channel listen in,support for listening in on any channel))
$(eval $(call Buildasterisk18-modModuleTemplate,app_directed_pickup,Directed call pickup,support for directed call pickup))
$(eval $(call Buildasterisk18-modModuleTemplate,app_exec,Exec application,support for application execution))
$(eval $(call Buildasterisk18-modModuleTemplate,app_minivm,Minimal voicemail system,a voicemail system in small building blocks working together based on the Comedian Mail voicemail system))
$(eval $(call Buildasterisk18-modModuleTemplate,app_readexten,Extension to variable,a trivial application to read an extension into a variable))
$(eval $(call Buildasterisk18-modModuleTemplate,app_read,Variable read,a trivial application to read a variable))
$(eval $(call Buildasterisk18-modModuleTemplate,app_sayunixtime,Say Unix time,an application to say Unix time))
$(eval $(call Buildasterisk18-modModuleTemplate,app_sms,SMS,SMS support (ETSI ES 201 912 protocol 1)))
$(eval $(call Buildasterisk18-modModuleTemplate,app_stack,Stack applications, stack applications Gosub Return etc., +asterisk18-res-agi))
$(eval $(call Buildasterisk18-modModuleTemplate,app_system,System exec,support for executing system commands))
$(eval $(call Buildasterisk18-modModuleTemplate,app_talkdetect,File playback with audio detect,for file playback with audio detect))
$(eval $(call Buildasterisk18-modModuleTemplate,app_waituntil,Sleep,support sleeping until the given epoch))
$(eval $(call Buildasterisk18-modModuleTemplate,app_while,While loop,a while loop implementation))
$(eval $(call Buildasterisk18-modModuleTemplate,chan_agent,Agents proxy channel, an implementation of agents proxy channel))
$(eval $(call Buildasterisk18-modModuleTemplate,chan_local,Local proxy channel, an implementation of local proxy channel))
$(eval $(call Buildasterisk18-modModuleTemplate,codec_alaw,Signed linear to alaw translation,translation between signed linear and alaw codecs))
$(eval $(call Buildasterisk18-modModuleTemplate,codec_ulaw,Signed linear to ulaw translation,translation between signed linear and ulaw codecs))
$(eval $(call Buildasterisk18-modModuleTemplate,codec_a_mu,Alaw to ulaw translation,translation between alaw and ulaw codecs))
$(eval $(call Buildasterisk18-modModuleTemplate,codec_g722,G.722,a high bit rate 48/56/64Kbps ITU standard codec))
$(eval $(call Buildasterisk18-modModuleTemplate,codec_g726,Signed linear to G.726 translation,translation between signed linear and ITU G.726-32kbps codecs))
$(eval $(call Buildasterisk18-modModuleTemplate,codec_ilbc,iLBC,internet Low Bitrate Codec))
$(eval $(call Buildasterisk18-modModuleTemplate,codec_gsm,GSM,GSM codec))
$(eval $(call Buildasterisk18-modModuleTemplate,format_g726,G.726,support for headerless G.726 16/24/32/40kbps data format))
$(eval $(call Buildasterisk18-modModuleTemplate,format_g729,G.729,support for raw headerless G729 data))
$(eval $(call Buildasterisk18-modModuleTemplate,format_sln,Raw slinear format,support for raw slinear format))
$(eval $(call Buildasterisk18-modModuleTemplate,format_sln16,Raw slinear 16 format,support for Raw slinear 16 format))
$(eval $(call Buildasterisk18-modModuleTemplate,func_db,Database interaction,functions for interaction with the database))
$(eval $(call Buildasterisk18-modModuleTemplate,func_devstate,Blinky lights control,functions for manually controlled blinky lights))
$(eval $(call Buildasterisk18-modModuleTemplate,func_vmcount,vmcount dialplan,a vmcount dialplan function))
$(eval $(call Buildasterisk18-modModuleTemplate,func_extstate,Hinted extension state,retrieving the state of a hinted extension for dialplan control))
$(eval $(call Buildasterisk18-modModuleTemplate,func_global,Global variable,global variable dialplan functions))
$(eval $(call Buildasterisk18-modModuleTemplate,func_shell,Shell,support for shell execution))
$(eval $(call Buildasterisk18-modModuleTemplate,pbx_ael,Asterisk Extension Logic,support for symbolic Asterisk Extension Logic))
$(eval $(call Buildasterisk18-modModuleTemplate,res_ael_share,Shareable AEL code,support for shareable AEL code mainly between internal and external modules))
$(eval $(call Buildasterisk18-modModuleTemplate,pbx_spool,Call Spool,outgoing call spool support))
$(eval $(call Buildasterisk18-modModuleTemplate,res_agi,Asterisk Gateway Interface,support for the Asterisk Gateway Interface extension))
$(eval $(call Buildasterisk18-modModuleTemplate,res_crypto,Provide Crypto,Cryptographic Signature capability))
$(eval $(call Buildasterisk18-modModuleTemplate,app_alarmreceiver,Alarm receiver,Central Station Alarm receiver for Ademco Contact ID))
$(eval $(call Buildasterisk18-modModuleTemplate,app_setcallerid,Set callerid,support for setting callerid))
$(eval $(call Buildasterisk18-modModuleTemplate,app_verbose,Verbose logging,Verbose logging application))
$(eval $(call Buildasterisk18-modModuleTemplate,func_channel,Channel info,Channel info dialplan function))
$(eval $(call Buildasterisk18-modModuleTemplate,func_blacklist,Blacklist on callerid,looking up the callerid number and see if it is blacklisted))
$(eval $(call Buildasterisk18-modModuleTemplate,app_originate,Originate a call,originating an outbound call and connecting it to a specified extension or application))
$(eval $(call Buildasterisk18-modModuleTemplate,func_uri,URI encoding and decoding,Encodes and decodes URI-safe strings))
$(eval $(call Buildasterisk18-modModuleTemplate,app_disa,Direct Inward System Access,Direct Inward System Access))
$(eval $(call Buildasterisk18-modModuleTemplate,app_senddtmf,Send DTMF digits,Sends arbitrary DTMF digits))
$(eval $(call Buildasterisk18-modModuleTemplate,func_cut,CUT function,CUT function))
$(eval $(call Buildasterisk18-modModuleTemplate,res_clioriginate,Calls via CLI,Originate calls via the CLI))
$(eval $(call Buildasterisk18-modModuleTemplate,app_mixmonitor,Record a call and mix the audio,record a call and mix the audio during the recording))
$(eval $(call Buildasterisk18-modModuleTemplate,app_playtones,Playtones application,play a tone list))
$(eval $(call Buildasterisk18-modModuleTemplate,app_record,Record sound file,to record a sound file))

View File

@@ -1,4 +0,0 @@
## startup options for /etc/init.d/asterisk
ENABLE_ASTERISK="yes"
OPTIONS=""

View File

@@ -1,51 +0,0 @@
#!/bin/sh /etc/rc.common
START=98
STOP=10
USE_PROCD=1
NAME=asterisk
PROG=/usr/sbin/asterisk
DEFAULT=/etc/default/asterisk
init_asterisk() {
[ -f $DEFAULT ] && . $DEFAULT
[ -d /var/run/asterisk ] || mkdir -p /var/run/asterisk
[ -d /var/log/asterisk ] || mkdir -p /var/log/asterisk
[ -d /var/spool/asterisk ] || mkdir -p /var/spool/asterisk
# does the board have a fxs relay?
local fxsRelayGpio=$(db -q get hw.board.fxsRelayGpio)
if [ "$fxsRelayGpio" != "" ]; then
/sbin/brcm_fw_tool set -x $fxsRelayGpio -p 1
fi
}
service_triggers() {
procd_add_reload_trigger voice_client
}
start_service() {
init_asterisk
procd_open_instance
procd_set_param command "$PROG" -f
procd_set_param respawn
procd_close_instance
# service_start /usr/sbin/asterisk
}
reload_service() {
asterisk -rx "core reload"
asterisk -rx "dialplan reload"
asterisk -rx "brcm reload"
}
restart() {
reload
}
stop_service() {
service_stop /usr/sbin/asterisk
}

View File

@@ -1,50 +0,0 @@
#
# Copyright (C) 2006-2009 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=bcmhotproxy
PKG_RELEASE:=13
PKG_BUILD_DIR := $(KERNEL_BUILD_DIR)/$(PKG_NAME)
STAMP_PREPARED := $(STAMP_PREPARED)_$(call confvar,CONFIG_MTD_REDBOOT_PARTS)
include $(INCLUDE_DIR)/package.mk
define Package/bcmhotproxy
SECTION:=utils
CATEGORY:=Base system
TITLE:=Daemon That feeds broadcom driver calls to hotplug2
endef
define Package/bcmhotproxy/description
This package contains a Daemon that will listen to link events from broadcoms adsl driver and etherent driver and proxy them to hotplug
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
$(CP) ./files/* $(PKG_BUILD_DIR)/
endef
target=$(firstword $(subst -, ,$(BOARD)))
MAKE_FLAGS += TARGET="$(target)"
TARGET_CFLAGS += -Dtarget_$(target)=1 -Wall
define Package/bcmhotproxy/install
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_DIR) $(1)/etc/
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/etc/init.d/* $(1)/etc/init.d/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bcmhotproxy $(1)/sbin/
endef
$(eval $(call BuildPackage,bcmhotproxy))

View File

@@ -1,20 +0,0 @@
#!/bin/sh /etc/rc.common
START=15
STOP=95
USE_PROCD=1
NAME=bcmhotproxy
PROG=/sbin/bcmhotproxy
start_service() {
procd_open_instance
procd_set_param command "$PROG"
procd_set_param respawn
procd_close_instance
}
stop() {
service_stop /sbin/bcmhotproxy
}

View File

@@ -1,8 +0,0 @@
CC = gcc
CFLAGS += -Wall
obj = bcmhotproxy.o brcmdaemon.o
bcmhotproxy: $(obj) $(obj.$(TARGET))
clean:
rm -f *.o

View File

@@ -1,139 +0,0 @@
/*
* bcmhotproxy -- a proxy to send messages from broadcom drivers to userspace
*
* Copyright (C) 2012-2013 Inteno Broadband Technology AB. All rights reserved.
*
* Author: Strhuan Blomquist
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*/
#include "bcmhotproxy.h"
int netlink_init() {
int sock_fd;
sock_fd=socket(PF_NETLINK, SOCK_RAW, NETLINK_BRCM_MONITOR);
if(sock_fd<0)
return -1;
return sock_fd;
}
int hotplug_call(struct hotplug_arg arg)
{
char str[512];
int ret;
memset(str, '\0', sizeof(512));
syslog(LOG_INFO, "ACTION=%s INTERFACE=%s /sbin/hotplug-call %s", arg.action,arg.inteface,arg.subsystem);
sprintf(str, "ACTION=%s INTERFACE=%s /sbin/hotplug-call %s",arg.action,arg.inteface,arg.subsystem);
ret=system(str);
return ret;
}
hotplug_arg createargumetstruct(char *hotplugmsg)
{
hotplug_arg arg;
char argumets[3][20];
char * pch;
int x=0;
pch = strtok (hotplugmsg," ");
while (pch != NULL){
strcpy(argumets[x],pch);
pch = strtok (NULL, " ");
x++;
}
strncpy(arg.action,argumets[0],sizeof(arg.action));
strncpy(arg.inteface,argumets[1],sizeof(arg.action));
strncpy(arg.subsystem,argumets[2],sizeof(arg.action));
return arg;
}
int netlink_bind(int sock_fd) {
struct sockaddr_nl src_addr;
memset(&src_addr, 0, sizeof(src_addr));
src_addr.nl_family = AF_NETLINK;
src_addr.nl_pid = getpid(); /* self pid */
src_addr.nl_groups = 1; //multicast Group
bind(sock_fd, (struct sockaddr*)&src_addr,sizeof(src_addr));
if (bind(sock_fd, (struct sockaddr*)&src_addr,sizeof(src_addr))) {
close(sock_fd);
return -1;
}
return sock_fd;
}
int dispatcher() {
struct sockaddr_nl dest_addr;
struct nlmsghdr *nlh = NULL;
struct iovec iov;
struct msghdr msg;
hotplug_arg arg;
int sock_fd;
/* Initlize the netlink socket */
sock_fd=netlink_init();
if (sock_fd == -1) {
fprintf(stderr, "Unable to Intitlize netlink socket.\n");
exit(1);
}
/* Bind the netlink socket */
sock_fd=netlink_bind(sock_fd);
if (sock_fd == -1) {
fprintf(stderr, "Unable to Listen to netlink socket.\n");
exit(1);
}
/* destination address to listen to */
nlh = (struct nlmsghdr *)malloc(NLMSG_SPACE(MAX_PAYLOAD));
memset(nlh, 0, NLMSG_SPACE(MAX_PAYLOAD));
nlh->nlmsg_len = NLMSG_SPACE(MAX_PAYLOAD);
nlh->nlmsg_pid = getpid();
nlh->nlmsg_flags = 0;
/* Fill the netlink message header */
iov.iov_base = (void *)nlh;
iov.iov_len = nlh->nlmsg_len;
msg.msg_name = (void *)&dest_addr;
msg.msg_namelen = sizeof(dest_addr);
msg.msg_iov = &iov;
msg.msg_iovlen = 1;
/* Read message from kernel */
while(1){
recvmsg(sock_fd, &msg, 0);
switch (nlh->nlmsg_type)
{
case MSG_NETLINK_BRCM_WAKEUP_MONITOR_TASK:
case MSG_NETLINK_BRCM_LINK_STATUS_CHANGED:
/*process the message */
fprintf(stderr, "No Handle\n");
break;
case MSG_NETLINK_BRCM_LINK_HOTPLUG:
arg=createargumetstruct((char *)NLMSG_DATA(nlh));
if(hotplug_call(arg)){
fprintf(stderr, "Unable to call hotplug.\n");
}
break;
default:
fprintf(stderr, "Unknown type\n");
break;
}
}
close(sock_fd);
return 0;
}

View File

@@ -1,28 +0,0 @@
#ifndef BCMHOTPROXY_H
#define BCMHOTPROXY_H 1
#include <sys/socket.h>
#include <linux/netlink.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <syslog.h>
#define MSG_NETLINK_BRCM_WAKEUP_MONITOR_TASK 0X1000
#define MSG_NETLINK_BRCM_LINK_STATUS_CHANGED 0X2000
#define MSG_NETLINK_BRCM_LINK_HOTPLUG 0X3000
#define MAX_PAYLOAD 1024 /* maximum payload size*/
#ifndef NETLINK_BRCM_MONITOR
#define NETLINK_BRCM_MONITOR 25
#endif
typedef struct hotplug_arg hotplug_arg;
struct hotplug_arg
{
char action[20];
char inteface[20];
char subsystem[20];
};
#endif

View File

@@ -1,153 +0,0 @@
#include "brcmdaemon.h"
/**************************************************************************
Function: Print Usage
Description:
Output the command-line options for this daemon.
Params:
@argc - Standard argument count
@argv - Standard argument array
Returns:
returns void always
**************************************************************************/
void PrintUsage(int argc, char *argv[]) {
if (argc >=1) {
printf("Usage: %s -h -n\n", argv[0]);
printf(" Options: \n");
printf(" -ntDon't fork off as a daemon.\n");
printf(" -htShow this help screen.\n");
printf("\n");
}
}
/**************************************************************************
Function: signal_handler
Description:
This function handles select signals that the daemon may
receive. This gives the daemon a chance to properly shut
down in emergency situations. This function is installed
as a signal handler in the 'main()' function.
Params:
@sig - The signal received
Returns:
returns void always
**************************************************************************/
void signal_handler(int sig) {
switch(sig) {
case SIGHUP:
syslog(LOG_WARNING, "Received SIGHUP signal.");
break;
case SIGTERM:
syslog(LOG_WARNING, "Received SIGTERM signal.");
break;
default:
syslog(LOG_WARNING, "Unhandled signal (%d) %s", strsignal(sig));
break;
}
}
/**************************************************************************
Function: main
Description:
The c standard 'main' entry point function.
Params:
@argc - count of command line arguments given on command line
@argv - array of arguments given on command line
Returns:
returns integer which is passed back to the parent process
**************************************************************************/
int main(int argc, char *argv[]) {
#if defined(DEBUG)
int daemonize = 0;
#else
int daemonize = 0;
#endif
// Setup signal handling before we start
signal(SIGHUP, signal_handler);
signal(SIGTERM, signal_handler);
signal(SIGINT, signal_handler);
signal(SIGQUIT, signal_handler);
int c;
while( (c = getopt(argc, argv, "nh|help")) != -1) {
switch(c){
case 'h':
PrintUsage(argc, argv);
exit(0);
break;
case 'n':
daemonize = 0;
break;
default:
PrintUsage(argc, argv);
exit(0);
break;
}
}
syslog(LOG_INFO, "%s daemon starting up", DAEMON_NAME);
// Setup syslog logging - see SETLOGMASK(3)
#if defined(DEBUG)
setlogmask(LOG_UPTO(LOG_DEBUG));
openlog(DAEMON_NAME, LOG_CONS | LOG_NDELAY | LOG_PERROR | LOG_PID, LOG_USER);
#else
setlogmask(LOG_UPTO(LOG_INFO));
openlog(DAEMON_NAME, LOG_CONS, LOG_USER);
#endif
/* Our process ID and Session ID */
pid_t pid, sid;
if (daemonize) {
syslog(LOG_INFO, "starting the daemonizing process");
/* Fork off the parent process */
pid = fork();
if (pid < 0) {
exit(EXIT_FAILURE);
}
/* If we got a good PID, then
we can exit the parent process. */
if (pid > 0) {
exit(EXIT_SUCCESS);
}
/* Change the file mode mask */
umask(0);
/* Create a new SID for the child process */
sid = setsid();
if (sid < 0) {
/* Log the failure */
exit(EXIT_FAILURE);
}
/* Change the current working directory */
if ((chdir("/")) < 0) {
/* Log the failure */
exit(EXIT_FAILURE);
}
/* Close out the standard file descriptors */
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
}
dispatcher();
syslog(LOG_INFO, "%s daemon exiting", DAEMON_NAME);
exit(0);
}

View File

@@ -1,17 +0,0 @@
#ifndef BRCMDAEMON_H
#define BRCMDAEMON_H 1
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <syslog.h>
#include <string.h>
#include <assert.h>
#include <signal.h>
#define DAEMON_NAME "brcmnetlink"
#define PID_FILE "/var/run/brcmnetlink.pid"
#endif

View File

@@ -1,231 +0,0 @@
#
# Copyright (C) 2006-2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# update this based on the Broadcom SDK version, 4.14L.04 -> 414040
BRCM_SDK_VERSION:=414040
ifeq ($(CONFIG_BCM_OPEN),y)
$(error "OPEN SDK compile not tested with this kernel!")
endif
PKG_NAME:=bcmkernel-3.4
PKG_VERSION:=$(BRCM_SDK_VERSION)
PKG_RELEASE:=1
PKG_SOURCE_URL:=git@iopsys.inteno.se:bcmkernel-4.14L.04
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=8216815ced065e527681a079ad0e17fbb007baec
PKG_SOURCE:=$(PKG_NAME)-$(BRCM_SDK_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(BRCM_SDK_VERSION)
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/image.mk
include $(INCLUDE_DIR)/kernel.mk
export CONFIG_BCM_CHIP_ID
export CONFIG_BCM_KERNEL_PROFILE
export CONFIG_SECURE_BOOT_CFE
BCM_BS_PROFILE = $(shell echo $(CONFIG_BCM_KERNEL_PROFILE) | sed s/\"//g)
BCM_KERNEL_VERSION:=3.4.11-rt19
BCM_SDK_VERSION:=bcm963xx
RSTRIP:=true
define Package/bcmkernel/removevoice
touch $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/endpointdd.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/endpointdd.ko
endef
ifeq ($(CONFIG_BCM_ENDPOINT_MODULE),y)
define Package/bcmkernel/removevoice
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/endpointdd.ko
endef
endif
define Package/bcmkernel/removei2c
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/i2c*
endef
ifeq ($(CONFIG_BCM_I2C),y)
define Package/bcmkernel/removei2c
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/i2c*
endef
endif
define Package/bcmkernel/install
$(INSTALL_DIR) $(1)/lib/bcm
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/etc/adsl
$(INSTALL_DIR) $(1)/etc/wlan
$(INSTALL_DIR) $(1)/etc/cms_entity_info.d
# Install header files
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/codec
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/casCtl/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/LinuxUser
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/shared/opensource/include/bcm963xx
$(CP) -r $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/shared/opensource/include/bcm963xx/* $(STAGING_DIR)/usr/include/bcm963xx/shared/opensource/include/bcm963xx
$(CP) -r $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/bcmdrivers/opensource/include/bcm963xx/* $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgTypes.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgTypes.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfg.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfg.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfgCustom.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfgCustom.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgLogCfgCustom.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgLogCfgCustom.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgLog.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgLog.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/countryArchive.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/countryArchive.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgCountry.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgCountry.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/casCtl/inc/casCtl.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/casCtl/inc/casCtl.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/codec/codec.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/codec/codec.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/endpt/inc/endpt.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc/endpt.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/endpt/inc/vrgEndpt.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc/vrgEndpt.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/LinuxUser/bosTypesLinuxUser.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/LinuxUser/bosTypesLinuxUser.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosMutex.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosMutex.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSpinlock.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSpinlock.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosMsgQ.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosMsgQ.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosCritSect.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosCritSect.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTypes.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTypes.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTime.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTime.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSem.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSem.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosCfgCustom.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosCfgCustom.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosIpAddr.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosIpAddr.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTimer.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTimer.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosError.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosError.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosLog.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosLog.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSleep.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSleep.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosMisc.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosMisc.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosCfg.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosCfg.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosEvent.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosEvent.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTask.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTask.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosUtil.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosUtil.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosInit.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosInit.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSocket.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSocket.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosFile.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosFile.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvSlic.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvSlic.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvApm.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvApm.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvCas.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvCas.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvTypes.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvTypes.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/bcmdrivers/broadcom/include/bcm963xx/endptvoicestats.h $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx/endptvoicestats.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/bcmdrivers/broadcom/include/bcm963xx/endpointdrv.h $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx/endpointdrv.h
echo "#define BCM_SDK_VERSION $(BRCM_SDK_VERSION)" > $(STAGING_DIR)/usr/include/bcm_sdk_version.h
# create symlink to kernel build directory
rm -f $(BUILD_DIR)/bcmkernel
ln -sfn $(PKG_SOURCE_SUBDIR) $(BUILD_DIR)/bcmkernel
# Install binaries
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/bin/* $(1)/usr/sbin/
rm -f $(1)/usr/sbin/dhcp6c
rm -f $(1)/usr/sbin/dhcp6s
rm -f $(1)/usr/sbin/dhcpc
rm -f $(1)/usr/sbin/dhcpd
rm -f $(1)/usr/sbin/dnsproxy
rm -f $(1)/usr/sbin/httpd
rm -f $(1)/usr/sbin/openssl
rm -f $(1)/usr/sbin/racoon
rm -f $(1)/usr/sbin/ripd
rm -f $(1)/usr/sbin/send_cms_msg
rm -f $(1)/usr/sbin/sshd
rm -f $(1)/usr/sbin/ssk
rm -f $(1)/usr/sbin/telnetd
rm -f $(1)/usr/sbin/tr64c
rm -f $(1)/usr/sbin/tr69c
rm -f $(1)/usr/sbin/ubi*
rm -f $(1)/usr/sbin/udhcpd
rm -f $(1)/usr/sbin/upnp
rm -f $(1)/usr/sbin/upnpd
rm -f $(1)/usr/sbin/vodsl
rm -f $(1)/usr/sbin/wlmngr
rm -f $(1)/usr/sbin/zebra
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/cms_entity_info.d/eid_bcm_kthreads.txt $(1)/etc/cms_entity_info.d/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/cms_entity_info.d/symbol_table.txt $(1)/etc/cms_entity_info.d/
# Install libraries
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/* $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/gpl/* $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/private/* $(1)/usr/lib/
mv $(1)/usr/lib/ld-uClibc.so.0 $(1)/lib/bcm/
mv $(1)/usr/lib/libc.so.0 $(1)/lib/bcm/
mv $(1)/usr/lib/libdl.so.0 $(1)/lib/bcm/
mv $(1)/usr/lib/libgcc_s.so.1 $(1)/lib/bcm/
mv $(1)/usr/lib/libpthread.so.0 $(1)/lib/bcm/
rm -f $(1)/usr/lib/libcrypt.so.0
rm -f $(1)/usr/lib/libm.so.0
rm -f $(1)/usr/lib/libutil.so.0
rm -f $(1)/usr/lib/libcms_boardctl.so
rm -f $(1)/usr/lib/libcms_msg.so
rm -f $(1)/usr/lib/libcms_util.so
rm -f $(1)/usr/lib/libcrypto.so.0.9.7
rm -f $(1)/usr/lib/libssl.so.0.9.7
rm -f $(1)/usr/lib/libnvram.so
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/public/* $(1)/usr/lib/
rm -rf $(1)/usr/lib/modules
rm -rf $(1)/usr/lib/private
rm -rf $(1)/usr/lib/public
rm -rf $(1)/usr/lib/gpl
# Install kernel modules
rm -rf $(1)/lib/modules/$(BCM_KERNEL_VERSION)/*
mkdir -p $(1)/lib/
mkdir -p $(1)/lib/modules/
mkdir -p $(1)/lib/modules/$(BCM_KERNEL_VERSION)/
mkdir -p $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/modules/$(BCM_KERNEL_VERSION)/extra/* $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/
find $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/modules/$(BCM_KERNEL_VERSION)/kernel/ -name *.ko -exec cp {} $(1)/lib/modules/$(BCM_KERNEL_VERSION)/ \;
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/wlan/*_map.bin $(1)/etc/wlan
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/telephonyProfiles.d $(1)/etc/
# rm -rf $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bcm_usb.ko
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/kernel/linux-3.4rt/vmlinux $(KDIR)/vmlinux.bcm.elf
$(KERNEL_CROSS)strip --remove-section=.note --remove-section=.comment $(KDIR)/vmlinux.bcm.elf
$(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -O binary $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/kernel/linux-3.4rt/vmlinux $(KDIR)/vmlinux.bcm
# bootloader nor
# cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_rom/bcm9$(CONFIG_BCM_CHIP_ID)_cfe.w $(KDIR)/bcm_bootloader_cfe.w
# ram part of the bootloader for nand boot
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_ram/cfe$(CONFIG_BCM_CHIP_ID).bin $(KDIR)/cferam.001
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_rom/cfe$(CONFIG_BCM_CHIP_ID)_nand.v $(KDIR)/cfe$(CONFIG_BCM_CHIP_ID)_nand.v
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/cfe/ $(KDIR)/cfe
# dd if=$(KDIR)/vmlinux.bcm.elf of=$(KDIR)/vmlinux.bcm bs=4096 count=1
# $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux.elf
$(call Package/bcmkernel/removevoice,$(1))
$(call Package/bcmkernel/removei2c,$(1))
endef

View File

@@ -1,266 +0,0 @@
#
# Copyright (C) 2006-2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# update this based on the Broadcom SDK version, 4.16L.02 -> 416020
# 4.16L.02A -> 416021
BRCM_SDK_VERSION:=416021
ifeq ($(CONFIG_BCM_OPEN),y)
$(error "OPEN SDK compile not tested with this kernel!")
endif
PKG_NAME:=bcmkernel-3.4
PKG_VERSION:=$(BRCM_SDK_VERSION)
PKG_RELEASE:=1
PKG_SOURCE_URL:=git@iopsys.inteno.se:bcmkernel-4.16L.02A
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=00e673bd751d19059cb3ed5fd2dbf3831a7e0401
PKG_SOURCE:=$(PKG_NAME)-$(BRCM_SDK_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(BRCM_SDK_VERSION)
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/image.mk
include $(INCLUDE_DIR)/kernel.mk
export CONFIG_BCM_CHIP_ID
export CONFIG_BCM_KERNEL_PROFILE
export CONFIG_SECURE_BOOT_CFE
BCM_BS_PROFILE = $(shell echo $(CONFIG_BCM_KERNEL_PROFILE) | sed s/\"//g)
BCM_KERNEL_VERSION:=3.4.11-rt19
BCM_SDK_VERSION:=bcm963xx
RSTRIP:=true
define Package/bcmkernel/removevoice
touch $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/endpointdd.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/endpointdd.ko
endef
ifeq ($(CONFIG_BCM_ENDPOINT_MODULE),y)
define Package/bcmkernel/removevoice
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/endpointdd.ko
endef
endif
define Package/bcmkernel/removesound
touch $(1)/lib/modules/$(BCM_KERNEL_VERSION)/snd
touch $(1)/lib/modules/$(BCM_KERNEL_VERSION)/soundcore.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/snd*
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/soundcore.ko
endef
ifeq ($(BCM_USBSOUND_MODULES),y)
define Package/bcmkernel/removesound
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/snd*
endef
endif
define Package/bcmkernel/removei2c
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/i2c*
endef
ifeq ($(CONFIG_BCM_I2C),y)
define Package/bcmkernel/removei2c
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/i2c*
endef
endif
define Package/bcmkernel/removebluetooth
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bluetooth.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bnep.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/btusb.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/rfcomm.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/hci_uart.ko
endef
ifeq ($(CONFIG_BCM_BLUETOOTH),y)
define Package/bcmkernel/removebluetooth
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bluetooth.ko etc...
endef
endif
define Package/bcmkernel/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/etc/adsl
$(INSTALL_DIR) $(1)/etc/wlan
$(INSTALL_DIR) $(1)/etc/cms_entity_info.d
# Install header files
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/codec
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/casCtl/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/LinuxUser
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/shared/opensource/include/bcm963xx
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/userspace/private/apps/vodsl/voip/inc
$(CP) -r $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/shared/opensource/include/bcm963xx/* $(STAGING_DIR)/usr/include/bcm963xx/shared/opensource/include/bcm963xx
$(CP) -r $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/bcmdrivers/opensource/include/bcm963xx/* $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgTypes.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgTypes.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfg.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfg.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfgCustom.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfgCustom.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgLogCfgCustom.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgLogCfgCustom.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgLog.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgLog.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/countryArchive.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/countryArchive.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgCountry.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgCountry.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/casCtl/inc/casCtl.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/casCtl/inc/casCtl.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/codec/codec.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/codec/codec.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/endpt/inc/endpt.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc/endpt.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/endpt/inc/vrgEndpt.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc/vrgEndpt.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/LinuxUser/bosTypesLinuxUser.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/LinuxUser/bosTypesLinuxUser.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosMutex.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosMutex.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSpinlock.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSpinlock.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosMsgQ.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosMsgQ.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosCritSect.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosCritSect.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTypes.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTypes.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTime.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTime.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSem.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSem.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosCfgCustom.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosCfgCustom.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosIpAddr.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosIpAddr.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTimer.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTimer.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosError.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosError.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosLog.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosLog.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSleep.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSleep.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosMisc.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosMisc.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosCfg.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosCfg.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosEvent.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosEvent.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTask.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTask.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosUtil.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosUtil.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosInit.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosInit.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSocket.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSocket.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosFile.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosFile.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvSlic.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvSlic.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvApm.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvApm.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvCas.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvCas.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvTypes.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvTypes.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/bcmdrivers/broadcom/include/bcm963xx/endptvoicestats.h $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx/endptvoicestats.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/bcmdrivers/broadcom/include/bcm963xx/endpointdrv.h $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx/endpointdrv.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/userspace/private/apps/vodsl/voip/inc/tpProfiles.h $(STAGING_DIR)/usr/include/bcm963xx/userspace/private/apps/vodsl/voip/inc
echo "#define BCM_SDK_VERSION $(BRCM_SDK_VERSION)" > $(STAGING_DIR)/usr/include/bcm_sdk_version.h
# create symlink to kernel build directory
rm -f $(BUILD_DIR)/bcmkernel
ln -sfn $(PKG_SOURCE_SUBDIR) $(BUILD_DIR)/bcmkernel
# Install binaries
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/bin/* $(1)/usr/sbin/
rm -f $(1)/usr/sbin/dhcp6c
rm -f $(1)/usr/sbin/dhcp6s
rm -f $(1)/usr/sbin/dhcpc
rm -f $(1)/usr/sbin/dhcpd
rm -f $(1)/usr/sbin/dnsproxy
rm -f $(1)/usr/sbin/httpd
rm -f $(1)/usr/sbin/openssl
rm -f $(1)/usr/sbin/racoon
rm -f $(1)/usr/sbin/ripd
rm -f $(1)/usr/sbin/send_cms_msg
rm -f $(1)/usr/sbin/sshd
rm -f $(1)/usr/sbin/ssk
rm -f $(1)/usr/sbin/telnetd
rm -f $(1)/usr/sbin/tr64c
rm -f $(1)/usr/sbin/tr69c
rm -f $(1)/usr/sbin/ubi*
rm -f $(1)/usr/sbin/udhcpd
rm -f $(1)/usr/sbin/upnp
rm -f $(1)/usr/sbin/upnpd
rm -f $(1)/usr/sbin/vodsl
rm -f $(1)/usr/sbin/wlmngr
rm -f $(1)/usr/sbin/zebra
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/cms_entity_info.d/eid_bcm_kthreads.txt $(1)/etc/cms_entity_info.d/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/cms_entity_info.d/symbol_table.txt $(1)/etc/cms_entity_info.d/
# Install libraries
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/* $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/gpl/* $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/private/* $(1)/usr/lib/
rm -f $(1)/usr/lib/ld-uClibc.so.0
rm -f $(1)/usr/lib/libc.so.0
rm -f $(1)/usr/lib/libdl.so.0
rm -f $(1)/usr/lib/libgcc_s.so.1
rm -f $(1)/usr/lib/libpthread.so.0
rm -f $(1)/usr/lib/libm.so.0
rm -f $(1)/usr/lib/libutil.so.0
rm -f $(1)/usr/lib/libcms_boardctl.so
rm -f $(1)/usr/lib/libcms_msg.so
rm -f $(1)/usr/lib/libcms_util.so
rm -f $(1)/usr/lib/libnvram.so
rm -f $(1)/usr/lib/libcrypt.so.0
rm -f $(1)/usr/lib/libcrypto.so
ln -s /usr/lib/libcrypto.so.1.0.0 $(1)/usr/lib/libcrypto.so
rm -f $(1)/usr/lib/libcrypto.so.0.9.7
ln -s /usr/lib/libcrypto.so.1.0.0 $(1)/usr/lib/libcrypto.so.0.9.7
rm -f $(1)/usr/lib/libssl.so
ln -s /usr/lib/libssl.so.1.0.0 $(1)/usr/lib/libssl.so
rm -f $(1)/usr/lib/libssl.so.0.9.7
ln -s /usr/lib/libssl.so.1.0.0 $(1)/usr/lib/libssl.so.0.9.7
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/public/* $(1)/usr/lib/
rm -rf $(1)/usr/lib/modules
rm -rf $(1)/usr/lib/private
rm -rf $(1)/usr/lib/public
rm -rf $(1)/usr/lib/gpl
# Install kernel modules
rm -rf $(1)/lib/modules/$(BCM_KERNEL_VERSION)/*
mkdir -p $(1)/lib/
mkdir -p $(1)/lib/modules/
mkdir -p $(1)/lib/modules/$(BCM_KERNEL_VERSION)/
mkdir -p $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/modules/$(BCM_KERNEL_VERSION)/extra/* $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/
find $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/modules/$(BCM_KERNEL_VERSION)/kernel/ -name *.ko -exec cp {} $(1)/lib/modules/$(BCM_KERNEL_VERSION)/ \;
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/wlan/* $(1)/etc/wlan
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/telephonyProfiles.d $(1)/etc/
# rm -rf $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bcm_usb.ko
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/kernel/linux-3.4rt/vmlinux $(KDIR)/vmlinux.bcm.elf
$(KERNEL_CROSS)strip --remove-section=.note --remove-section=.comment $(KDIR)/vmlinux.bcm.elf
$(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -O binary $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/kernel/linux-3.4rt/vmlinux $(KDIR)/vmlinux.bcm
# bootloader nor
# cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_rom/bcm9$(CONFIG_BCM_CHIP_ID)_cfe.w $(KDIR)/bcm_bootloader_cfe.w
# ram part of the bootloader for nand boot
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_ram/cfe$(CONFIG_BCM_CHIP_ID).bin $(KDIR)/cferam.001
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_rom/cfe$(CONFIG_BCM_CHIP_ID)_nand.v $(KDIR)/cfe$(CONFIG_BCM_CHIP_ID)_nand.v
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/cfe/ $(KDIR)/cfe
# dd if=$(KDIR)/vmlinux.bcm.elf of=$(KDIR)/vmlinux.bcm bs=4096 count=1
# $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux.elf
$(call Package/bcmkernel/removevoice,$(1))
$(call Package/bcmkernel/removesound,$(1))
# $(call Package/bcmkernel/removei2c,$(1))
endef

View File

@@ -1,278 +0,0 @@
#
# Copyright (C) 2006-2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# update this based on the Broadcom SDK version, 4.16L.03 -> 416030
BRCM_SDK_VERSION:=416030
ifneq ($(CONFIG_BCM_OPEN),y)
PKG_NAME:=bcmkernel-3.4
PKG_VERSION:=$(BRCM_SDK_VERSION)
PKG_RELEASE:=1
PKG_SOURCE_URL:=git@iopsys.inteno.se:bcmkernel-4.16L.03
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=205c1d7bdd24388e0bae8c2883ac83ca0b1e5458
PKG_SOURCE:=$(PKG_NAME)-$(BRCM_SDK_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
endif
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(BRCM_SDK_VERSION)
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/image.mk
include $(INCLUDE_DIR)/kernel.mk
export CONFIG_BCM_CHIP_ID
export CONFIG_BCM_CFE_PASSWORD
export CONFIG_BCM_KERNEL_PROFILE
export CONFIG_SECURE_BOOT_CFE
BCM_BS_PROFILE = $(shell echo $(CONFIG_BCM_KERNEL_PROFILE) | sed s/\"//g)
BCM_KERNEL_VERSION:=3.4.11-rt19
BCM_SDK_VERSION:=bcm963xx
RSTRIP:=true
define Package/bcmkernel/removevoice
touch $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/endpointdd.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/endpointdd.ko
endef
ifeq ($(CONFIG_BCM_ENDPOINT_MODULE),y)
define Package/bcmkernel/removevoice
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/endpointdd.ko
endef
endif
define Package/bcmkernel/removesound
touch $(1)/lib/modules/$(BCM_KERNEL_VERSION)/snd
touch $(1)/lib/modules/$(BCM_KERNEL_VERSION)/soundcore.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/snd*
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/soundcore.ko
endef
ifeq ($(BCM_USBSOUND_MODULES),y)
define Package/bcmkernel/removesound
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/snd*
endef
endif
define Package/bcmkernel/removei2c
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/i2c*
endef
ifeq ($(CONFIG_BCM_I2C),y)
define Package/bcmkernel/removei2c
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/i2c*
endef
endif
define Package/bcmkernel/removebluetooth
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bluetooth.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bnep.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/btusb.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/rfcomm.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/hci_uart.ko
endef
ifeq ($(CONFIG_BCM_BLUETOOTH),y)
define Package/bcmkernel/removebluetooth
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bluetooth.ko etc...
endef
endif
define Package/bcmkernel/install
$(INSTALL_DIR) $(1)/lib
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/etc/adsl
$(INSTALL_DIR) $(1)/etc/wlan
$(INSTALL_DIR) $(1)/etc/cms_entity_info.d
# Install header files
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/codec
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/casCtl/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/LinuxUser
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/shared/opensource/include/bcm963xx
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/userspace/private/apps/vodsl/voip/inc
$(CP) -r $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/shared/opensource/include/bcm963xx/* $(STAGING_DIR)/usr/include/bcm963xx/shared/opensource/include/bcm963xx
$(CP) -r $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/bcmdrivers/opensource/include/bcm963xx/* $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgTypes.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgTypes.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfg.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfg.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfgCustom.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfgCustom.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgLogCfgCustom.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgLogCfgCustom.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgLog.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgLog.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/countryArchive.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/countryArchive.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgCountry.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgCountry.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/casCtl/inc/casCtl.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/casCtl/inc/casCtl.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/codec/codec.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/codec/codec.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/endpt/inc/endpt.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc/endpt.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/endpt/inc/vrgEndpt.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc/vrgEndpt.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/LinuxUser/bosTypesLinuxUser.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/LinuxUser/bosTypesLinuxUser.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosMutex.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosMutex.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSpinlock.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSpinlock.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosMsgQ.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosMsgQ.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosCritSect.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosCritSect.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTypes.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTypes.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTime.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTime.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSem.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSem.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosCfgCustom.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosCfgCustom.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosIpAddr.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosIpAddr.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTimer.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTimer.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosError.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosError.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosLog.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosLog.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSleep.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSleep.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosMisc.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosMisc.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosCfg.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosCfg.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosEvent.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosEvent.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTask.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTask.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosUtil.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosUtil.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosInit.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosInit.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSocket.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSocket.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosFile.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosFile.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvSlic.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvSlic.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvApm.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvApm.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvCas.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvCas.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvTypes.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvTypes.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/bcmdrivers/broadcom/include/bcm963xx/endptvoicestats.h $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx/endptvoicestats.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/bcmdrivers/broadcom/include/bcm963xx/endpointdrv.h $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx/endpointdrv.h
ifneq ($(CONFIG_BCM_OPEN),y)
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/userspace/private/apps/vodsl/voip/inc/tpProfiles.h $(STAGING_DIR)/usr/include/bcm963xx/userspace/private/apps/vodsl/voip/inc
endif
echo "#define BCM_SDK_VERSION $(BRCM_SDK_VERSION)" > $(STAGING_DIR)/usr/include/bcm_sdk_version.h
# create symlink to kernel build directory
rm -f $(BUILD_DIR)/bcmkernel
ln -sfn $(PKG_SOURCE_SUBDIR) $(BUILD_DIR)/bcmkernel
# Install binaries
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/bin/* $(1)/usr/sbin/
rm -f $(1)/usr/sbin/dhcp6c
rm -f $(1)/usr/sbin/dhcp6s
rm -f $(1)/usr/sbin/dhcpc
rm -f $(1)/usr/sbin/dhcpd
rm -f $(1)/usr/sbin/dnsproxy
rm -f $(1)/usr/sbin/httpd
rm -f $(1)/usr/sbin/openssl
rm -f $(1)/usr/sbin/racoon
rm -f $(1)/usr/sbin/ripd
rm -f $(1)/usr/sbin/send_cms_msg
rm -f $(1)/usr/sbin/sshd
rm -f $(1)/usr/sbin/ssk
rm -f $(1)/usr/sbin/telnetd
rm -f $(1)/usr/sbin/tr64c
rm -f $(1)/usr/sbin/tr69c
rm -f $(1)/usr/sbin/ubi*
rm -f $(1)/usr/sbin/udhcpd
rm -f $(1)/usr/sbin/upnp
rm -f $(1)/usr/sbin/upnpd
rm -f $(1)/usr/sbin/vodsl
rm -f $(1)/usr/sbin/wlmngr
rm -f $(1)/usr/sbin/zebra
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/cms_entity_info.d/eid_bcm_kthreads.txt $(1)/etc/cms_entity_info.d/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/cms_entity_info.d/symbol_table.txt $(1)/etc/cms_entity_info.d/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/init.d/bcm-base-drivers.sh $(1)/lib/
if [ -a $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/rdpa_init.sh ]; then $(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/rdpa_init.sh $(1)/etc/; fi;
# Install libraries
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/* $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/gpl/* $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/private/* $(1)/usr/lib/
rm -f $(1)/usr/lib/ld-uClibc.so.0
rm -f $(1)/usr/lib/libc.so.0
rm -f $(1)/usr/lib/libdl.so.0
rm -f $(1)/usr/lib/libgcc_s.so.1
rm -f $(1)/usr/lib/libpthread.so.0
rm -f $(1)/usr/lib/libm.so.0
rm -f $(1)/usr/lib/libutil.so.0
rm -f $(1)/usr/lib/libcms_boardctl.so
rm -f $(1)/usr/lib/libcms_msg.so
rm -f $(1)/usr/lib/libcms_util.so
rm -f $(1)/usr/lib/libnvram.so
rm -f $(1)/usr/lib/libcrypt.so.0
rm -f $(1)/usr/lib/libbcm_crc.so
rm -f $(1)/usr/lib/libbcm_flashutil.so
rm -f $(1)/usr/lib/libcrypto.so
ln -s /usr/lib/libcrypto.so.1.0.0 $(1)/usr/lib/libcrypto.so
rm -f $(1)/usr/lib/libcrypto.so.0.9.7
ln -s /usr/lib/libcrypto.so.1.0.0 $(1)/usr/lib/libcrypto.so.0.9.7
rm -f $(1)/usr/lib/libssl.so
ln -s /usr/lib/libssl.so.1.0.0 $(1)/usr/lib/libssl.so
rm -f $(1)/usr/lib/libssl.so.0.9.7
ln -s /usr/lib/libssl.so.1.0.0 $(1)/usr/lib/libssl.so.0.9.7
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/public/* $(1)/usr/lib/
$(CP) --remove-destination $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/public/* $(1)/usr/lib/
rm -rf $(1)/usr/lib/modules
rm -rf $(1)/usr/lib/private
rm -rf $(1)/usr/lib/public
rm -rf $(1)/usr/lib/gpl
# Install kernel modules
rm -rf $(1)/lib/modules/$(BCM_KERNEL_VERSION)/*
mkdir -p $(1)/lib/modules/
mkdir -p $(1)/lib/modules/$(BCM_KERNEL_VERSION)/
mkdir -p $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/modules/$(BCM_KERNEL_VERSION)/extra/* $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/
#cp -r $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/modules/$(BCM_KERNEL_VERSION)/kernel/ $(1)/lib/modules/$(BCM_KERNEL_VERSION)/
find $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/modules/$(BCM_KERNEL_VERSION)/kernel/ -name *.ko -exec cp {} $(1)/lib/modules/$(BCM_KERNEL_VERSION)/ \;
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/wlan/* $(1)/etc/wlan
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/telephonyProfiles.d $(1)/etc/
# rm -rf $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bcm_usb.ko
# Alternative DECT modules taken from the Natalie package and if that is not selected, no DECT modules should be loaded
rm -f $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/dect.ko
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/kernel/linux-3.4rt/vmlinux $(KDIR)/vmlinux.bcm.elf
$(KERNEL_CROSS)strip --remove-section=.note --remove-section=.comment $(KDIR)/vmlinux.bcm.elf
$(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -O binary $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/kernel/linux-3.4rt/vmlinux $(KDIR)/vmlinux.bcm
# bootloader nor
# cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_rom/bcm9$(CONFIG_BCM_CHIP_ID)_cfe.w $(KDIR)/bcm_bootloader_cfe.w
# ram part of the bootloader for nand boot
if [ -a $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_ram/cfe$(CONFIG_BCM_CHIP_ID).bin ]; then cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_ram/cfe$(CONFIG_BCM_CHIP_ID).bin $(KDIR)/cferam.001; fi;
if [ -a $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_ram/cfe$(CONFIG_BCM_CHIP_ID)ram.bin ]; then cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_ram/cfe$(CONFIG_BCM_CHIP_ID)ram.bin $(KDIR)/cferam.001; fi;
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_rom/cfe$(CONFIG_BCM_CHIP_ID)_nand.v $(KDIR)/cfe$(CONFIG_BCM_CHIP_ID)_nand.v
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/cfe/ $(KDIR)/cfe
# dd if=$(KDIR)/vmlinux.bcm.elf of=$(KDIR)/vmlinux.bcm bs=4096 count=1
# $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux.elf
$(call Package/bcmkernel/removevoice,$(1))
$(call Package/bcmkernel/removesound,$(1))
# $(call Package/bcmkernel/removei2c,$(1))
endef

View File

@@ -1,268 +0,0 @@
#
# Copyright (C) 2006-2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# update this based on the Broadcom SDK version, 4.16L.04 -> 416040
BRCM_SDK_VERSION:=416040
ifneq ($(CONFIG_BCM_OPEN),y)
PKG_NAME:=bcmkernel-3.4
PKG_VERSION:=$(BRCM_SDK_VERSION)
PKG_RELEASE:=1
PKG_SOURCE_URL:=git@iopsys.inteno.se:bcmkernel
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=963801c26cf4c86c53952a28e806cc233e5b62be
PKG_SOURCE:=$(PKG_NAME)-$(BRCM_SDK_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
endif
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(BRCM_SDK_VERSION)
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/image.mk
include $(INCLUDE_DIR)/kernel.mk
export CONFIG_BCM_CHIP_ID
export CONFIG_BCM_CFE_PASSWORD
export CONFIG_BCM_KERNEL_PROFILE
export CONFIG_SECURE_BOOT_CFE
BCM_BS_PROFILE = $(shell echo $(CONFIG_BCM_KERNEL_PROFILE) | sed s/\"//g)
BCM_KERNEL_VERSION:=3.4.11-rt19
BCM_SDK_VERSION:=bcm963xx
RSTRIP:=true
define Package/bcmkernel/removevoice
touch $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/endpointdd.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/endpointdd.ko
endef
ifeq ($(CONFIG_BCM_ENDPOINT_MODULE),y)
define Package/bcmkernel/removevoice
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/endpointdd.ko
endef
endif
define Package/bcmkernel/removesound
touch $(1)/lib/modules/$(BCM_KERNEL_VERSION)/snd
touch $(1)/lib/modules/$(BCM_KERNEL_VERSION)/soundcore.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/snd*
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/soundcore.ko
endef
ifeq ($(BCM_USBSOUND_MODULES),y)
define Package/bcmkernel/removesound
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/snd*
endef
endif
define Package/bcmkernel/removei2c
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/i2c*
endef
ifeq ($(CONFIG_BCM_I2C),y)
define Package/bcmkernel/removei2c
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/i2c*
endef
endif
define Package/bcmkernel/removebluetooth
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bluetooth.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bnep.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/btusb.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/rfcomm.ko
rm $(1)/lib/modules/$(BCM_KERNEL_VERSION)/hci_uart.ko
endef
ifeq ($(CONFIG_BCM_BLUETOOTH),y)
define Package/bcmkernel/removebluetooth
echo not removing $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bluetooth.ko etc...
endef
endif
define Package/bcmkernel/install
$(INSTALL_DIR) $(1)/lib
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/etc/adsl
$(INSTALL_DIR) $(1)/etc/wlan
$(INSTALL_DIR) $(1)/etc/cms_entity_info.d
# Install header files
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/codec
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/casCtl/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/LinuxUser
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/shared/opensource/include/bcm963xx
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/bcm963xx/userspace/private/apps/vodsl/voip/inc
$(CP) -r $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/shared/opensource/include/bcm963xx/* $(STAGING_DIR)/usr/include/bcm963xx/shared/opensource/include/bcm963xx
$(CP) -r $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/bcmdrivers/opensource/include/bcm963xx/* $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgTypes.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgTypes.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfg.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfg.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfgCustom.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgCountryCfgCustom.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgLogCfgCustom.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgLogCfgCustom.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgLog.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgLog.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/countryArchive.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/countryArchive.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/inc/vrgCountry.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc/vrgCountry.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/casCtl/inc/casCtl.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/casCtl/inc/casCtl.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/codec/codec.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/codec/codec.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/endpt/inc/endpt.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc/endpt.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/voice_res_gw/endpt/inc/vrgEndpt.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc/vrgEndpt.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/LinuxUser/bosTypesLinuxUser.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/LinuxUser/bosTypesLinuxUser.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosMutex.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosMutex.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSpinlock.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSpinlock.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosMsgQ.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosMsgQ.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosCritSect.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosCritSect.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTypes.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTypes.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTime.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTime.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSem.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSem.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosCfgCustom.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosCfgCustom.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosIpAddr.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosIpAddr.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTimer.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTimer.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosError.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosError.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosLog.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosLog.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSleep.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSleep.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosMisc.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosMisc.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosCfg.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosCfg.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosEvent.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosEvent.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosTask.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosTask.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosUtil.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosUtil.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosInit.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosInit.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosSocket.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosSocket.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_common/bos/publicInc/bosFile.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/bosFile.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvSlic.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvSlic.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvApm.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvApm.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvCas.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvCas.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/xChange/dslx_common/xchg_drivers/inc/xdrvTypes.h $(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc/xdrvTypes.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/bcmdrivers/broadcom/include/bcm963xx/endptvoicestats.h $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx/endptvoicestats.h
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/bcmdrivers/broadcom/include/bcm963xx/endpointdrv.h $(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx/endpointdrv.h
ifneq ($(CONFIG_BCM_OPEN),y)
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/userspace/private/apps/vodsl/voip/inc/tpProfiles.h $(STAGING_DIR)/usr/include/bcm963xx/userspace/private/apps/vodsl/voip/inc
endif
echo "#define BCM_SDK_VERSION $(BRCM_SDK_VERSION)" > $(STAGING_DIR)/usr/include/bcm_sdk_version.h
# create symlink to kernel build directory
rm -f $(BUILD_DIR)/bcmkernel
ln -sfn $(PKG_SOURCE_SUBDIR) $(BUILD_DIR)/bcmkernel
# Install binaries
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/bin/* $(1)/usr/sbin/
rm -f $(1)/usr/sbin/dhcp6c
rm -f $(1)/usr/sbin/dhcp6s
rm -f $(1)/usr/sbin/dhcpc
rm -f $(1)/usr/sbin/dhcpd
rm -f $(1)/usr/sbin/dnsproxy
rm -f $(1)/usr/sbin/httpd
rm -f $(1)/usr/sbin/openssl
rm -f $(1)/usr/sbin/racoon
rm -f $(1)/usr/sbin/ripd
rm -f $(1)/usr/sbin/send_cms_msg
rm -f $(1)/usr/sbin/sshd
rm -f $(1)/usr/sbin/ssk
rm -f $(1)/usr/sbin/telnetd
rm -f $(1)/usr/sbin/tr64c
rm -f $(1)/usr/sbin/tr69c
rm -f $(1)/usr/sbin/ubi*
rm -f $(1)/usr/sbin/udhcpd
rm -f $(1)/usr/sbin/upnp
rm -f $(1)/usr/sbin/upnpd
rm -f $(1)/usr/sbin/vodsl
rm -f $(1)/usr/sbin/wlmngr
rm -f $(1)/usr/sbin/zebra
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/cms_entity_info.d/eid_bcm_kthreads.txt $(1)/etc/cms_entity_info.d/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/cms_entity_info.d/symbol_table.txt $(1)/etc/cms_entity_info.d/
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/init.d/bcm-base-drivers.sh $(1)/lib/
sed -i '/bcm_usb\.ko/d' $(1)/lib/bcm-base-drivers.sh
sed -i 's|/kernel/.*/|/|' $(1)/lib/bcm-base-drivers.sh
if [ -a $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/rdpa_init.sh ]; then $(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/rdpa_init.sh $(1)/etc/; fi;
# Install libraries
$(CP) $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/* $(1)/usr/lib/
rm -f $(1)/usr/lib/ld-uClibc.so.0
rm -f $(1)/usr/lib/libc.so.0
rm -f $(1)/usr/lib/libdl.so.0
rm -f $(1)/usr/lib/libgcc_s.so.1
rm -f $(1)/usr/lib/libpthread.so.0
rm -f $(1)/usr/lib/libm.so.0
rm -f $(1)/usr/lib/libutil.so.0
rm -f $(1)/usr/lib/libcrypt.so.0
rm -f $(1)/usr/lib/libcrypto.so
ln -s /usr/lib/libcrypto.so.1.0.0 $(1)/usr/lib/libcrypto.so
rm -f $(1)/usr/lib/libcrypto.so.0.9.7
ln -s /usr/lib/libcrypto.so.1.0.0 $(1)/usr/lib/libcrypto.so.0.9.7
rm -f $(1)/usr/lib/libssl.so
ln -s /usr/lib/libssl.so.1.0.0 $(1)/usr/lib/libssl.so
rm -f $(1)/usr/lib/libssl.so.0.9.7
ln -s /usr/lib/libssl.so.1.0.0 $(1)/usr/lib/libssl.so.0.9.7
rm -rf $(1)/usr/lib/modules
rm -rf $(1)/usr/lib/private
rm -rf $(1)/usr/lib/public
rm -rf $(1)/usr/lib/gpl
# Install kernel modules
rm -rf $(1)/lib/modules/$(BCM_KERNEL_VERSION)/*
mkdir -p $(1)/lib/modules/$(BCM_KERNEL_VERSION)/
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/modules/$(BCM_KERNEL_VERSION)/extra $(1)/lib/modules/$(BCM_KERNEL_VERSION)/
#cp -r $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/modules/$(BCM_KERNEL_VERSION)/kernel $(1)/lib/modules/$(BCM_KERNEL_VERSION)/
find $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/lib/modules/$(BCM_KERNEL_VERSION)/kernel/ -name *.ko -exec cp {} $(1)/lib/modules/$(BCM_KERNEL_VERSION)/ \;
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/wlan/* $(1)/etc/wlan
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/$(BCM_BS_PROFILE)/fs/etc/telephonyProfiles.d $(1)/etc/
# rm -rf $(1)/lib/modules/$(BCM_KERNEL_VERSION)/bcm_usb.ko
# Alternative DECT modules taken from the Natalie package and if that is not selected, no DECT modules should be loaded
rm -f $(1)/lib/modules/$(BCM_KERNEL_VERSION)/extra/dect.ko
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/kernel/linux-3.4rt/vmlinux $(KDIR)/vmlinux.bcm.elf
$(KERNEL_CROSS)strip --remove-section=.note --remove-section=.comment $(KDIR)/vmlinux.bcm.elf
$(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -O binary $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/kernel/linux-3.4rt/vmlinux $(KDIR)/vmlinux.bcm
# bootloader nor
# cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_rom/bcm9$(CONFIG_BCM_CHIP_ID)_cfe.w $(KDIR)/bcm_bootloader_cfe.w
# ram part of the bootloader for nand boot
if [ -a $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_ram/cfe$(CONFIG_BCM_CHIP_ID).bin ]; then cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_ram/cfe$(CONFIG_BCM_CHIP_ID).bin $(KDIR)/cferam.001; fi;
if [ -a $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_ram/cfe$(CONFIG_BCM_CHIP_ID)ram.bin ]; then cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_ram/cfe$(CONFIG_BCM_CHIP_ID)ram.bin $(KDIR)/cferam.001; fi;
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/cfe/build/broadcom/bcm63xx_rom/cfe$(CONFIG_BCM_CHIP_ID)_nand.v $(KDIR)/cfe$(CONFIG_BCM_CHIP_ID)_nand.v
cp -R $(PKG_BUILD_DIR)/$(BCM_SDK_VERSION)/targets/cfe/ $(KDIR)/cfe
# dd if=$(KDIR)/vmlinux.bcm.elf of=$(KDIR)/vmlinux.bcm bs=4096 count=1
# $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux.elf
$(call Package/bcmkernel/removevoice,$(1))
$(call Package/bcmkernel/removesound,$(1))
# $(call Package/bcmkernel/removei2c,$(1))
endef

View File

@@ -1,97 +0,0 @@
menu "Profile and CFE"
depends on PACKAGE_bcmkernel
config BCM_OPEN
bool
prompt "Build package for Public SDK"
default n
help
Set this to build an package using a release tarball with the proprietary components removed.
choice
prompt "Broadcom SDK version"
default BRCM_SDK_VER_416030
help
Version of the Broadcom SDK to use.
config BRCM_SDK_VER_414040
bool
prompt "bcmkernel-4.14L.04"
config BRCM_SDK_VER_416021
bool
prompt "bcmkernel-4.16L.02A"
config BRCM_SDK_VER_416030
bool
prompt "bcmkernel-4.16L.03"
config BRCM_SDK_VER_416040
bool
prompt "bcmkernel-4.16L.04"
endchoice
config BCM_KERNEL_PROFILE
string
prompt "Broadcom kernel profile"
default "96368GWV"
help
Profile to build the broadcom software with, 96368GWV, 963268GWV, 96362GWV, 96816GWV, 96816OV
config BCM_CFE_PASSWORD
string
prompt "Broadcom cfe password"
default ""
config BCM_CHIP_ID
string
prompt "Broadcom chip id"
default "6368"
help
Chip id to build the cfe with, 6328|6362|6368|6816|63268
config BCM_BLNAND
string
prompt "Broadcom boot loader nand"
default "0"
help
Set this to 1 to build a boot loader for nand flash
config BCM_ENDPOINT_MODULE
bool
prompt "Broadcom endpoint voice FXS support"
default y
help
Set this to include the endpoint module in image
config BCM_USBSOUND_MODULES
bool
prompt "Broadcom USB audio support"
default n
help
Set this to include sound support modules in image
config BCM_I2C
bool
prompt "Broadcom I2C support"
default n
help
Set this to include the i2c modules in image
config BCM_BLUETOOTH
bool
prompt "Broadcom Bluetooth support"
default n
help
Set this to include the Bluetooth modules in image
config SECURE_BOOT_CFE
prompt "Secure boot CFE"
bool
endmenu

View File

@@ -1,64 +0,0 @@
#
# Primary/common bcmkernel makefile for all versions of Broadcom SDKs
#
include $(TOPDIR)/rules.mk
define Package/bcmkernel
SECTION:=net
CATEGORY:=Base system
TITLE:=Broadcom sdk 3.4 kernel
URL:=
MENU:=1
endef
define Package/bcmkernel/description
Broadcom kernel and userspace, compiled with the broadcom supplied tool-chain.
endef
define Package/bcmkernel/config
source "$(SOURCE)/Config.in"
endef
# Include SDK version specific makefile based on config selection
ifeq ($(CONFIG_ARCH),)
include $(TOPDIR)/.config
endif
ifeq ($(CONFIG_BCM_OPEN),y)
PKG_NAME:=bcmopen
PKG_VERSION:=consumer
PKG_RELEASE:=1
TARGET_VERSION=$(shell echo $(CONFIG_TARGET_VERSION) | sed s/\"//g)
TARGET_IBOARDID=$(shell echo $(CONFIG_TARGET_IBOARDID) | sed s/\"//g)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).$(TARGET_VERSION).$(TARGET_IBOARDID).tar.gz
PKG_SOURCE_URL:=http://ihgsp.inteno.se/ihgsp/consumer/
endif
ifeq ($(CONFIG_BRCM_SDK_VER_414040),y)
include ./414040.mk
else ifeq ($(CONFIG_BRCM_SDK_VER_416021),y)
include ./416021.mk
else ifeq ($(CONFIG_BRCM_SDK_VER_416030),y)
include ./416030.mk
else ifeq ($(CONFIG_BRCM_SDK_VER_416040),y)
include ./416040.mk
else
# Make 'make menuconfig' work even though no SDK version specified
PKG_VERSION:=none
include $(INCLUDE_DIR)/package.mk
endif
# hack to be able to compile just the userspace part.
# TOPDIR=$PWD make -C package/bcmkernel userspace
userspace:
$(call Build/Compile/Default, userspace)
$(eval $(call BuildPackage,bcmkernel))

View File

@@ -1,17 +0,0 @@
#
# Copyright (C) 2010 Vertical Communications
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
config EXTROOT_SETTLETIME
int
prompt "Settle time for root block device (s)" if PACKAGE_block-mount
default 20
help
This is the amount of time, in seconds, to wait for the block device
the root filesystem is on to become available, after the kernel that
modules for the rootfs and device are loaded.

View File

@@ -1,70 +0,0 @@
#
# Copyright (C) 2006-2012 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=block-mount-old
PKG_VERSION:=0.2.0
PKG_RELEASE:=9
include $(INCLUDE_DIR)/package.mk
define Package/block-mount-old/Default
SECTION:=base
CATEGORY:=Base system
endef
define Package/block-mount-old
$(call Package/block-mount-old/Default)
TITLE:=Block device mounting and checking
DEPENDS:= +blkid +swap-utils
MENU:=1
endef
define Package/block-mount-old/description
Scripts used to mount and check block devices (filesystems and swap), as well
as hotplug scripts to automount and check block devices when hotplug event (e.g.
from plugging in a device) occurs.
Also includes preinit scripts for mounting a block device as the root filesystem.
This allows one to have the root filesystem on devices other than the built in flash
device.
endef
define Package/block-mount-old/config
source "$(SOURCE)/Config.in"
endef
define Build/Compile
endef
define Package/block-mount-old/conffiles
/etc/config/fstab
endef
define Package/block-mount-old/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/fstab.init $(1)/etc/init.d/fstab
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) ./files/fstab.config $(1)/etc/config/fstab
$(INSTALL_DIR) $(1)/lib/functions/fsck
$(INSTALL_DATA) ./files/mount.sh $(1)/lib/functions/
$(INSTALL_DATA) ./files/fsck.sh $(1)/lib/functions/
$(INSTALL_DATA) ./files/block.sh $(1)/lib/functions/
$(INSTALL_DIR) $(1)/etc/hotplug.d/block
$(INSTALL_DATA) ./files/10-swap $(1)/etc/hotplug.d/block/
$(INSTALL_DATA) ./files/20-fsck $(1)/etc/hotplug.d/block/
$(INSTALL_DATA) ./files/40-mount $(1)/etc/hotplug.d/block/
$(INSTALL_DATA) ./files/extmount.sh $(1)/lib/functions/
$(INSTALL_DIR) $(1)/lib/preinit
$(INSTALL_DATA) ./files/50_determine_usb_root $(1)/lib/preinit/
#$(INSTALL_DATA) ./files/55_determine_extroot_sysupgrade $(1)/lib/preinit/
#$(INSTALL_DATA) ./files/60_pivot_usb_root $(1)/lib/preinit/
echo "extroot_settle_time=\"$(CONFIG_EXTROOT_SETTLETIME)\"" >$(1)/lib/preinit/00_extroot.conf
$(INSTALL_DIR) $(1)/overlay
endef
$(eval $(call BuildPackage,block-mount-old))

View File

@@ -1,78 +0,0 @@
#!/bin/sh
# Copyright (C) 2009-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
. /lib/functions/block.sh
blkdev=`dirname $DEVPATH`
if [ `basename $blkdev` != "block" ]; then
device=`basename $DEVPATH`
case "$ACTION" in
add)
local autoswap_from_fstab
local automount_from_fstab
local from_fstab
local anon_mount
local anon_swap
local anon_fsck
local mds_mount_device
local sds_swap_device
local sds_swap_enabled
local use_device
local do_swap=0
mount_dev_section_cb() {
mds_mount_device="$3"
}
swap_dev_section_cb() {
sds_swap_device="$2"
sds_swap_enabled="$3"
return 0
}
config_get_automount
automount_from_fstab="$from_fstab"
[ "$automount_from_fstab" -eq 1 ] && {
config_get_mount_section_by_device "/dev/$device"
}
# skip trying swap if this device is defined as a mount point
[ -z "$mds_mount_device" ] && {
config_get_autoswap
autoswap_from_fstab="$from_fstab"
[ "$autoswap_from_fstab" -eq 1 ] && {
config_get_swap_section_by_device "/dev/$device"
use_device="$sds_swap_device"
do_swap="$sds_swap_enabled"
}
[ -z "$use_device" ] && [ "$anon_swap" -eq 1 ] && {
use_device="/dev/$device" && do_swap=1
}
}
[ -n "$use_device" ] && [ "$do_swap" -eq 1 ] && {
grep -q "$use_device" /proc/swaps || grep -q "$use_device" /proc/mounts || {
swapon "$use_device"
}
}
reset_dev_section_cb
;;
remove)
grep -q "/dev/$device" /proc/swaps && {
swapoff "/dev/$device"
}
;;
esac
fi

View File

@@ -1,83 +0,0 @@
#!/bin/sh
# Copyright (C) 2009-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
. /lib/functions/block.sh
. /lib/functions/fsck.sh
blkdev=`dirname $DEVPATH`
if [ `basename $blkdev` != "block" ]; then
device=`basename $DEVPATH`
case "$ACTION" in
add)
local from_fstab
local anon_mount
local anon_swap
local anon_fsck
local mds_mount_target
local mds_mount_device
local mds_mount_fstype
local mds_mount_enabled_fsck
local sds_swap_device
local use_device
local do_fsck=0
local fsck_type
local autoswap_from_fstab
local automount_from_fstab
local hotplug_blkid_fstype_match
mount_dev_section_cb() {
mds_mount_device="$3"
mds_mount_fstype="$4"
mds_mount_enabled_fsck="$7"
}
swap_dev_section_cb() {
sds_swap_device="$2"
return 0
}
config_get_automount
automount_from_fstab="$from_fstab"
[ "$automount_from_fstab" -eq 1 ] && {
config_get_mount_section_by_device "/dev/$device"
use_device="$mds_mount_device"
[ "$mds_mount_enabled_fsck" -eq 1 ] && {
do_fsck=1
fsck_type="$mds_mount_fstype"
}
}
[ -z "$use_device" ] && {
config_get_autoswap
autoswap_from_fstab="$from_fstab"
[ "$autoswap_from_fstab" -eq 1 ] && {
config_get_swap_section_by_device "/dev/$device"
use_device="$sds_swap_device" && do_fsck=0
}
}
grep -q "/dev/$device" /proc/swaps || grep -q "/dev/$device" /proc/mounts || {
[ "$anon_fsck" -eq 1 ] && [ -z "$use_device" ] && {
use_device="/dev/$device" && do_fsck=1 && mds_mount_fstype="" && hotplug_blkid_fstype_match=0
}
}
[ "$do_fsck" -eq 1 ] && {
libmount_fsck "$use_device" "$fsck_type" "$do_fsck"
}
reset_dev_section_cb
;;
esac
fi

View File

@@ -1,107 +0,0 @@
#!/bin/sh
# Copyright (C) 2009-2012 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
. /lib/functions/block.sh
blkdev=`dirname $DEVPATH`
if [ `basename $blkdev` != "block" ]; then
device=`basename $DEVPATH`
mountpoint=`sed -ne "s|^[^ ]*/$device ||; T; s/ .*//p" /proc/self/mounts`
# Determine mount path
usbno=$(echo $DEVPATH | awk -F'/' '{print$7}')
case "$usbno" in
*:*) usbno=$(echo $DEVPATH | awk -F'/' '{print$6}') ;;
esac
mnfct="$(cat /sys/bus/usb/devices/$usbno/manufacturer | sed 's/ //g')"
prdct="$(cat /sys/bus/usb/devices/$usbno/product | sed 's/ //g')"
mnthd="${mnfct:-$prdct}"
serial="$(cat /sys/bus/usb/devices/$usbno/serial | sed 's/ //g')"
case "$ACTION" in
add)
local from_fstab
local anon_mount
local anon_swap
local anon_fsck
local mds_mount_target
local mds_mount_device
local mds_mount_fstype
local sds_swap_device
local use_device
local do_fsck=0
local fsck_type
local autoswap_from_fstab
local automount_from_fstab
mount_dev_section_cb() {
mds_mount_target="$2"
mds_mount_device="$3"
mds_mount_fstype="$4"
mds_mount_enabled="$6"
}
swap_dev_section_cb() {
sds_swap_device="$2"
return 0
}
config_get_automount
automount_from_fstab="$from_fstab"
[ "$automount_from_fstab" -eq 1 ] && {
config_get_mount_section_by_device "/dev/$device"
use_device="$mds_mount_device"
[ "$mds_mount_enabled" -eq 1 ] && {
if [ -n "$mds_mount_target" ]; then
grep -q "/dev/$device" /proc/swaps || grep -q "/dev/$device" /proc/mounts || {
( mkdir -p "$mds_mount_target" && mount "$mds_mount_target" ) 2>&1 | tee /proc/self/fd/2 | logger -t 'fstab'
}
else
logger -t 'fstab' "Mount enabled for $mds_mount_device but it doesn't have a defined mountpoint (target)"
fi
}
}
[ -z "$use_device" ] && {
config_get_autoswap
autoswap_from_fstab="$from_fstab"
[ "$autoswap_from_fstab" -eq 1 ] && {
config_get_swap_section_by_device "/dev/$device"
use_device="$sds_swap_device"
}
}
grep -q "/dev/$device" /proc/swaps || grep -q "/dev/$device" /proc/mounts || {
[ "$anon_mount" -eq 1 -a -z "$use_device" ] && {
case "$device" in
mtdblock*) ;;
*)
mntdir="$mnthd$serial"
( mkdir -p /mnt/$mntdir && mount /dev/$device /mnt/$mntdir -o umask=0 || ntfs-3g /dev/$device /mnt/$mntdir ) 2>&1 | tee /proc/self/fd/2 | logger -t 'fstab'
echo "/dev/$device /mnt/$mntdir" >> /var/usbmounts
[ -n "$mntdir" ] && ubus send usb 2>/dev/null
;;
esac
}
}
reset_dev_section_cb
;;
remove)
umount /dev/$device
umount $mountpoint
rm -rf $mountpoint
sed -i "/$device/ d" /var/usbmounts
[ -n "$device" ] && ubus send usb 2>/dev/null
;;
esac
fi

View File

@@ -1,65 +0,0 @@
#!/bin/sh
# Copyright (C) 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
determine_external_root() {
. /lib/functions/extmount.sh
. /lib/functions/mount.sh
local OLD_UCI_CONFIG_DIR="$UCI_CONFIG_DIR"
local OLD_PATH="$PATH"
local OLD_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
set_jffs_mp
determine_root_device
# extroot requires extroot and fstab config files, therefore
# we assume configuration is incomplete and not to be used if either of them
# is missing (for jffs versions of these files on squashfs image)
if [ "$jffs" = "/tmp/overlay" ] && [ -r "/tmp/overlay/etc/config/fstab" ]; then
UCI_CONFIG_DIR="/tmp/overlay/etc/config"
ER_IS_SQUASHFS=true
ER_OVERLAY_PREFIX="/tmp/overlay"
PATH=$ER_OVERLAY_PREFIX/sbin:$PATH
LD_LIBRARY_PATH=$ER_OVERLAY_PREFIX/usr/lib:$LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH
fi
# For squashfs on firstboot root_device will be tmpfs for the ramoverlay,
# unless there is a saved config, in which case it will be /dev/root,
# however in the case of a saved config, it won't be restored until after
# this script, so there won't be a config on the first boot after
# flashing a squashfs-based filesystem
# For ext2, ramdisk, or jffs2 root filesystems root_device is /dev/root
# For squashfs after firstboot, root filesystem is /dev/root
# We only use the config from the root or jffs if the root_device is
# /dev/root
[ "$root_device" = "/dev/root" ] && {
er_load_modules
[ -n "$extroot_settle_time" ] && [ "$extroot_settle_time" -gt 0 ] && {
sleep $extroot_settle_time
}
config_load fstab
config_foreach config_mount_by_section mount 1
ER_OVERLAY_ROM="/no-extroot"
[ "$rootfs_found" = "1" ] && grep -q ' /overlay ' /proc/mounts && {
pi_extroot_mount_success=true
pi_mount_skip_next=false
ER_OVERLAY_ROM="/overlay"
}
[ "$rootfs_found" = "1" ] && grep -q ' /rom ' /proc/mounts && {
pi_extroot_mount_success=true
pi_mount_skip_next=false
ER_OVERLAY_ROM="/rom"
}
}
UCI_CONFIG_DIR="$OLD_UCI_CONFIG_DIR"
PATH="$OLD_PATH"
LD_LIBRARY_PATH="$OLD_LD_LIBRARY_PATH"
export PATH LD_LIBRARY_PATH
}
boot_hook_add preinit_mount_root determine_external_root

View File

@@ -1,63 +0,0 @@
#!/bin/sh
# Copyright (C) 2010 Daniel Dickinson
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
check_set_md5sum() {
local er_md5sum_file
er_md5sum_file="${ER_OVERLAY_PREFIX}/.extroot.md5sum"
local er_disabled
if [ "${ER_OVERLAY_ROM}" = "/rom" ]; then
er_disabled=/tmp/whole_root-disabled
else
er_disabled=/tmp${ER_OVERLAY_ROM}-disabled
fi
local er_extroot_md5sum
if [ -f $md5sum_file ]; then
er_extroot_md5sum="$(cat $er_md5sum_file)"
fi
local er_overlay_file="${ER_OVERLAY_ROM}/etc/extroot.md5sum"
local er_extroot_overlay_md5sum
if [ -f "$er_overlay_file" ]; then
er_extroot_overlay_md5sum="$(cat $er_overlay_file)"
fi
if [ -z "$er_extroot_overlay_md5sum" ]; then
cat $er_md5sum_file >$er_overlay_file
elif [ "$er_extroot_overlay_md5sum" != "$er_extroot_md5sum" ]; then
pi_extroot_mount_success="false"
mkdir -p $er_disabled
mount --move ${ER_OVERLAY_ROM} $er_disabled
fi
}
set_jffs_md5sum() {
# We do this anytime block-extroot exists, even on the first boot with
# no extroot defined.
local er_md5sum_file
er_md5sum_file="${ER_OVERLAY_PREFIX}/.extroot.md5sum"
local er_extroot_md5sum
if [ -f $er_md5sum_file ]; then
er_extroot_md5sum="$(cat $er_md5sum_file)"
fi
if [ -z "$er_extroot_md5sum" ]; then
dd if=/dev/urandom count=32 bs=1k 2>/dev/null | md5sum | cut -f1 -d\ >$er_md5sum_file
fi
}
determine_extroot_sysupgrade() {
check_skip || set_jffs_md5sum
check_skip || [ "$pi_extroot_mount_success" != "true" ] || {
check_set_md5sum
}
}
boot_hook_add preinit_mount_root determine_extroot_sysupgrade

View File

@@ -1,27 +0,0 @@
#!/bin/sh
# Copyright (C) 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
# Determine if we are requested to mount external root
external_root_pivot() {
check_skip || [ "$pi_extroot_mount_success" != "true" ] || {
echo "switching to external rootfs"
if [ "$ER_OVERLAY_ROM" = "/overlay" ]; then
if [ "$ER_IS_SQUASHFS" = "true" ]; then
umount /tmp/overlay
fi
mount -o remount,ro / && fopivot /overlay /rom && pi_mount_skip_next=true
elif [ "$ER_OVERLAY_ROM" = "/rom" ]; then
if [ "$ER_IS_SQUASHFS" = "true" ]; then
umount /tmp/overlay
fi
mount -o remount,ro / && pivot_rom /rom /rom && pi_mount_skip_next=true
fi
}
}
boot_hook_add preinit_mount_root external_root_pivot

View File

@@ -1,264 +0,0 @@
#!/bin/sh
# Copyright 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
. /lib/functions.sh
reset_block_cb() {
mount_cb() {
dmc_mount_cfg="$1"
shift # skip optional param
dmc_target="$2"
dmc_mount_device="$3"
dmc_fstype="$4"
dmc_options="$5"
dmc_enabled="$6"
dmc_enabled_fsck="$7"
dmc_uuid="$8"
dmc_label="$9"
shift
dmc_is_rootfs="$9"
return 0
}
swap_cb() {
dsc_swap_cfg="$1"
shift # skip optional param
dsc_swap_device="$2"
dsc_enabled="$3"
dsc_uuid="$4"
dsc_label="$5"
return 0
}
}
reset_block_cb
reset_dev_section_cb() {
mount_dev_section_cb() {
dmds_mount_cfg="$1"
dmds_mount_target="$2"
dmds_mount_device="$3"
dmds_mount_fstype="$4"
dmds_mount_options="$5"
dmds_mount_enabled="$6"
dmds_mount_enabled_fsck="$7"
dmds_mount_uuid="$8"
dmds_mount_label="$9"
shift
dmds_is_rootfs="$9"
return 0
}
swap_dev_section_cb() {
dsds_swap_cfg="$1"
dsds_swap_device="$2"
dsds_swap_enabled="$3"
dsds_swap_uuid="$4"
dsds_swap_label="$5"
return 0
}
}
reset_dev_section_cb
config_get_mount() {
local gm_cfg="$1"
local gm_param="$2"
local gm_target
local gm_device
local gm_fstype
local gm_options
local gm_enabled
local gm_enabled_fsck
local gm_uuid
local gm_label
local gm_is_rootfs
config_get gm_target "$1" target
config_get gm_device "$1" device
config_get gm_fstype "$1" fstype 'auto'
config_get gm_options "$1" options 'rw'
config_get_bool gm_enabled "$1" enabled 1
config_get_bool gm_enabled_fsck "$1" enabled_fsck 0
config_get gm_uuid "$1" uuid
config_get gm_label "$1" label
config_get_bool gm_is_rootfs "$1" is_rootfs 0
mount_cb "$gm_cfg" "$gm_param" "$gm_target" "$gm_device" "$gm_fstype" "$gm_options" "$gm_enabled" "$gm_enabled_fsck" "$gm_uuid" "$gm_label" "$gm_is_rootfs"
}
config_get_swap() {
local gs_cfg="$1"
local gs_param="$2"
local gs_device
local gs_enabled
local gs_uuid
local gs_label
config_get gs_device "$1" device
config_get_bool gs_enabled "$1" enabled 1
config_get gs_uuid "$1" uuid
config_get gs_label "$1" label
swap_cb "$gs_cfg" "$gs_param" "$gs_device" "$gs_enabled" "$gs_uuid" "$gs_label"
}
config_get_automount() {
config_load fstab
config_get_bool from_fstab "automount" from_fstab 1
config_get_bool anon_mount "automount" anon_mount 1
config_get_bool anon_fsck "automount" anon_fsck 0
}
config_get_autoswap() {
config_load fstab
config_get_bool from_fstab "autoswap" from_fstab 1
config_get_bool anon_swap "autoswap" anon_swap 0
}
config_create_swap_fstab_entry() {
local device="$1"
local enabled="$2"
[ -n "$device" ] || return 0
local fstabnew
mkdir -p /var/lock
lock /var/lock/fstab.lck
fstabnew="$(mktemp -t '.fstab.XXXXXXXX')"
cat /tmp/fstab | grep -E -v "^$device[[:blank:]]" >>"$fstabnew"
[ "$enabled" -eq 1 ] && echo "$device none swap sw 0 0" >> "$fstabnew"
cat "$fstabnew" >/tmp/fstab
rm -f $fstabnew
lock -u /var/lock/fstab.lck
}
config_create_mount_fstab_entry() {
local device="$1"
local target="$2"
local fstype="$3"
local options="$4"
local enabled="$5"
options="${options:-rw}"
[ "$enabled" -eq 0 ] && options="noauto,$options"
[ -n "$target" ] || return 0
[ -n "$device" ] || return 0
local fstabnew
mkdir -p /var/lock
lock /var/lock/fstab.lck
fstabnew="$(mktemp -t '.fstab.XXXXXXXX')"
cat /tmp/fstab | grep -E -v "^$device[[:blank:]]" | grep -v "$target" >>"$fstabnew"
echo "$device $target $fstype $options 0 0" >>"$fstabnew"
cat "$fstabnew" >/tmp/fstab
rm -f $fstabnew
lock -u /var/lock/fstab.lck
}
libmount_find_token() {
local token="$1"
local value="$2"
local device
device="$(blkid -w /dev/null -c /dev/null | grep "$token=\"$value\"" | cut -f1 -d:)"
echo "$device"
}
libmount_find_device_by_id() {
local uuid="$1"
local label="$2"
local device="$3"
local cfg_device="$4"
local found_device
if [ -n "$uuid" ]; then
found_device="$(libmount_find_token "UUID" "$uuid")"
elif [ -n "$label" ]; then
found_device="$(libmount_find_token "LABEL" "$label")"
elif [ "$device" = "$cfg_device" ]; then
found_device="$device"
elif [ -z "$device" ] && [ -e "$cfg_device" ]; then
found_device="$cfg_device"
fi
[ -n "$device" ] && [ "$device" != "$found_device" ] && {
found_device=""
}
echo "$found_device"
}
config_get_mount_section_by_device() {
local msbd_device="$1"
local msbd_mount_cfg=
local msbd_target=
local msbd_mount_device=
local msbd_fstype=
local msbd_options=
local msbd_enabled=
local msbd_enabled_fsck=
local msbd_uuid=
local msbd_label=
local msbd_is_rootfs
local msbd_blkid_fstype_match=
mount_cb() {
local mc_cfg="$1"
local mc_device="$2"
shift
local mc_target="$2"
local mc_cfgdevice="$3"
local mc_fstype="$4"
local mc_uuid="$8"
local mc_label="$9"
shift
local mc_is_rootfs="$9"
local mc_found_device=""
mc_found_device="$(libmount_find_device_by_id "$mc_uuid" "$mc_label" "$mc_device" "$mc_cfgdevice")"
if [ -n "$mc_found_device" ]; then
msbd_mount_cfg="$mc_cfg"
msbd_target="$mc_target"
msbd_mount_device="$mc_found_device"
msbd_fstype="$mc_fstype"
msbd_options="$4"
msbd_enabled="$5"
msbd_enabled_fsck="$6"
msbd_uuid="$7"
msbd_label="$8"
msbd_is_rootfs="$9"
fi
return 0
}
config_foreach config_get_mount mount "$msbd_device"
[ -n "$msbd_mount_device" ] && config_create_mount_fstab_entry "$msbd_mount_device" "$msbd_target" "$msbd_fstype" "$msbd_options" "$msbd_enabled"
mount_dev_section_cb "$msbd_mount_cfg" "$msbd_target" "$msbd_mount_device" "$msbd_fstype" "$msbd_options" "$msbd_enabled" "$msbd_enabled_fsck" "$msbd_uuid" "$msbd_label" "$msbd_is_rootfs"
reset_block_cb
}
config_get_swap_section_by_device() {
local ssbd_device="$1"
local ssbd_swap_cfg=
local ssbd_swap_device=
local ssbd_enabled=
local ssbd_uuid=
local ssbd_label=
swap_cb() {
local sc_cfg="$1"
local sc_device="$2"
local sc_uuid="$5"
local sc_label="$6"
local sc_cfgdevice="$3"
local sc_found_device
sc_found_device="$(libmount_find_device_by_id "$sc_uuid" "$sc_label" "$sc_device" "$sc_cfgdevice")"
if [ -n "$sc_found_device" ]; then
ssbd_swap_cfg="$sc_cfg"
ssbd_swap_device="$sc_found_device"
ssbd_enabled="$4"
ssbd_uuid="$5"
ssbd_label="$6"
fi
return 0
}
config_foreach config_get_swap swap "$ssbd_device"
[ -n "$ssbd_swap_device" ] && config_create_swap_fstab_entry "$ssbd_swap_device" "$ssbd_enabled"
swap_dev_section_cb "$ssbd_swap_cfg" "$ssbd_swap_device" "$ssbd_enabled" "$ssbd_uuid" "$ssbd_label"
reset_block_cb
}

View File

@@ -1,37 +0,0 @@
#!/bin/sh
# Copyright (C) 2006-2011 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
determine_root_device() {
root_device="$(mount | grep ' / ' | cut -f1 -d\ | grep -v rootfs )"
}
set_jffs_mp() {
jffs="$(awk '/jffs2/ {print $2}' /proc/mounts)"
}
er_load_modules() {
mkdir -p /tmp/extroot_modules/modules.d
mkdir -p /tmp/extroot_modules/modules
cp -L /etc/modules-boot.d/* /tmp/overlay/etc/modules-boot.d/* /tmp/extroot_modules/modules.d
ln -sf /lib/modules/*/* /tmp/overlay/lib/modules/*/* /tmp/extroot_modules/modules
local modules="$(cat /tmp/extroot_modules/modules.d/* 2>/dev/null)"
cd /tmp/extroot_modules/modules && [ -n "$modules" ] && {
echo "$modules" | sed -e 's/^\([^#].*\)/insmod \.\/\1.ko/'| sh 2>&- || :
}
rm -rf /tmp/extroot_modules
}
pivot_rom() { # <new_root> <old_root>
mount -o move /proc $1/proc && \
pivot_root $1 $1$2 && {
mount -o move $2/dev /dev
mount -o move $2/tmp /tmp
mount -o move $2/sys /sys 2>&-
return 0
}
}

View File

@@ -1,34 +0,0 @@
#!/bin/sh
# Copyright 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
libmount_fsck() {
local device="$1"
local fsck_fstype="$2"
local fsck_enabled="$3"
local known_type
local found_fsck=0
grep -q "$device" /proc/swaps || grep -q "$device" /proc/mounts || {
[ -e "$device" ] && [ "$fsck_enabled" -eq 1 ] && {
for known_type in $libmount_known_fsck; do
if [ "$known_type" = "$fsck_fstype" ]; then
fsck_${known_type} "$device"
found_fsck=1
break
fi
done
if [ "$found_fsck" -ne 1 ]; then
logger -t 'fstab' "Unable to check/repair $device; no known fsck for filesystem type $fstype"
fi
}
}
}
libmount_known_fsck=""
include /lib/functions/fsck

View File

@@ -1,20 +0,0 @@
config global automount
option from_fstab 0
option anon_mount 1
config global autoswap
option from_fstab 0
option anon_swap 0
config mount
option target /mnt
option device /dev/sda1
option fstype ext4
option options rw,sync
option enabled 0
option enabled_fsck 0
config swap
option device /dev/sda2
option enabled 0

View File

@@ -1,88 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2007 OpenWrt.org
# Copyright (C) 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
START=20
EXTRA_COMMANDS="overlay_enable whole_root_enable"
EXTRA_HELP=" overlay_enable Reenable overlay rootfs. (After you fix it).
whole_root_enable Reenable whole-disk rootfs. (After you fix it)."
rootfs_enable() {
local extroot_type="$1"
if [ ! -d /tmp/${extroot_type}-disabled ]; then
echo "No disabled ${extroot_type} present (/tmp/${extroot_type}-disabled). Can't renable."
exit 1
fi
rm -f /tmp/${extroot_type}-disabled/.extroot.md5sum
rm -f /tmp/${extroot_type}-disabled/etc/extroot.md5sum
echo "Please reboot router to complete re-enabling external rootfs."
}
overlay_enable() {
rootfs_enable overlay
}
whole_root_enable() {
rootfs_enable whole_root
}
do_mount() {
local cfg="$1"
config_mount_by_section "$cfg"
}
do_swapon() {
local cfg="$1"
config_swapon_by_section "$cfg"
}
do_unmount() {
local cfg="$1"
config_get target "$cfg" target
config_get_bool enabled "$cfg" "enabled" '1'
[ -n "$target" -a "$enabled" -gt 0 ] || return 0
umount $target
}
do_swapoff() {
local cfg="$1"
config_get device "$cfg" device
config_get_bool enabled "$cfg" "enabled" '1'
[ -n "$device" -a "$enabled" -gt 0 ] && type swapoff >/dev/null || return 0
swapoff $device
}
start() {
. /lib/functions/mount.sh
config_load fstab
mkdir -p /var/lock
lock /var/lock/fstab.lck
[ -e /tmp/fstab ] || {
echo '# WARNING: this is an auto generated file, please use uci to set defined filesystems' > /tmp/fstab
}
lock -u /var/lock/fstab.lck
config_foreach do_swapon swap
config_foreach do_mount mount
config_foreach do_swapon swap # do swap a second time so that swap on filesystems is enabled
}
stop() {
. /lib/functions/mount.sh
config_load fstab
config_foreach do_unmount mount
config_foreach do_swapoff swap
swapoff -a
}

View File

@@ -1,103 +0,0 @@
#!/bin/sh
# Copyright 2010 Vertical Communications
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
. /lib/functions/block.sh
. /lib/functions/fsck.sh
config_mount_by_section() {
local cfg="$1"
local find_rootfs="$2"
mount_cb() {
local cfg="$1"
local device="$2"
shift
local target="$2"
local cfgdevice="$3"
local fstype="$4"
local options="$5"
local enabled="$6"
local enabled_fsck="$7"
local uuid="$8"
local label="$9"
shift
local is_rootfs="$9"
shift
local found_device=""
found_device="$(libmount_find_device_by_id "$uuid" "$label" "$device" "$cfgdevice")"
if [ -n "$found_device" ]; then
if [ "$find_rootfs" != "1" ] || ( [ "$is_rootfs" -eq 1 ] || [ "$target" = "/" ] || [ "$target" = "/overlay" ] ); then
[ "$enabled_fsck" -eq 1 ] && {
grep -q "$found_device" /proc/swaps || grep -q "$found_device" /proc/mounts || {
libmount_fsck "$found_device" "$fstype" "$enabled_fsck"
}
}
if [ "$find_rootfs" = "1" ]; then
if [ "$is_rootfs" -eq 1 ]; then
target=/overlay
elif [ "$target" = "/" ]; then
target=/rom
fi
else
if [ "$is_rootfs" -eq 1 ] || [ "$target" = "/overlay" ]; then
target=/tmp/overlay-disabled
elif [ "$target" = "/" ] || [ "$target" = "/rom" ]; then
target="/tmp/whole_root-disabled"
fi
fi
config_create_mount_fstab_entry "$found_device" "$target" "$fstype" "$options" "$enabled"
grep -q "$found_device" /proc/swaps || grep -q "$found_device" /proc/mounts || {
[ "$enabled" -eq 1 ] && mkdir -p "$target" && mount "$target" 2>&1 | tee /proc/self/fd/2 | logger -t 'fstab'
}
fi
fi
[ "$find_rootfs" = "1" ] && {
[ "$target" = "/overlay" ] && {
rootfs_found=1
}
[ "$target" = "/rom" ] && {
rootfs_found=1
}
}
return 0
}
config_get_mount "$cfg"
reset_block_cb
}
config_swapon_by_section() {
local cfg="$1"
swap_cb() {
local cfg="$1"
local device="$2"
local cfgdevice="$3"
local enabled="$4"
local uuid="$5"
local label="$6"
local uuid
local label
local found_device=""
found_device="$(libmount_find_device_by_id "$uuid" "$label" "$device" "$cfgdevice")"
if [ -n "$found_device" ]; then
config_create_swap_fstab_entry "$found_device" "$enabled"
grep -q "$found_device" /proc/swaps || grep -q "$found_device" /proc/mounts || {
[ "$enabled" -eq 1 ] && swapon "$found_device" | tee /proc/self/fd/2 | logger -t 'fstab'
}
fi
return 0
}
config_get_swap "$cfg"
reset_block_cb
}

View File

@@ -1,54 +0,0 @@
#
# Copyright (C) 2006-2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=brcm-h
PKG_VERSION:=1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE_URL:=git@iopsys.inteno.se:brcm-h
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=HEAD
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/image.mk
include $(INCLUDE_DIR)/kernel.mk
define Package/brcm-h
SECTION:=net
CATEGORY:=Base system
TITLE:=Broadcom header files
URL:=
endef
define Package/brcm-h/description
Broadcom header files
endef
define Package/brcm--h/install
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/brcm
$(CP) -r $(PACKAGE_BUILD_DIR)/bcm963xx/bcmdrivers/broadcom/include/bcm963xx/* $(STAGING_DIR)/usr/include/brcm \
$(CP) -r $(PACKAGE_BUILD_DIR)/bcm963xx/bcmdrivers/opensource/include/bcm963xx/* $(STAGING_DIR)/usr/include/brcm \
$(CP) -r $(PACKAGE_BUILD_DIR)/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc/* $(STAGING_DIR)/usr/include/brcm \
$(CP) -r $(PACKAGE_BUILD_DIR)/bcm963xx/xChange/dslx_common/voice_res_gw/inc/* $(STAGING_DIR)/usr/include/brcm \
$(CP) -r $(PACKAGE_BUILD_DIR)/bcm963xx/xChange/dslx_common/voice_res_gw/codec/* $(STAGING_DIR)/usr/include/brcm \
$(CP) -r $(PACKAGE_BUILD_DIR)/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/* $(STAGING_DIR)/usr/include/brcm \
$(CP) -r $(PACKAGE_BUILD_DIR)/bcm963xx/xChange/dslx_common/voice_res_gw/casCtl/inc/* $(STAGING_DIR)/usr/include/brcm \
$(CP) -r $(PACKAGE_BUILD_DIR)/bcm963xx/xChange/dslx_common/xchg_drivers/inc/* $(STAGING_DIR)/usr/include/brcm \
endef
$(eval $(call BuildPackage,brcm-h))

View File

@@ -1,53 +0,0 @@
#
# Copyright (C) 2006-2009 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
export BUILD_DIR
PKG_NAME:=brcm_fw_tool
PKG_RELEASE:=1
PKG_BUILD_DIR := $(KERNEL_BUILD_DIR)/$(PKG_NAME)
STAMP_PREPARED := $(STAMP_PREPARED)_$(call confvar,CONFIG_MTD_REDBOOT_PARTS)
include $(INCLUDE_DIR)/package.mk
define Package/brcm_fw_tool
SECTION:=utils
CATEGORY:=Base system
TITLE:=Update utility for Broadcom nand firmware images
DEPENDS:=bcmkernel
endef
define Package/brcm_fw_tool/description
This package contains an utility useful to upgrade from other firmware or
older OpenWrt releases.
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
target=$(firstword $(subst -, ,$(BOARD)))
MAKE_FLAGS += TARGET="$(target)"
TARGET_CFLAGS += -Dtarget_$(target)=1 -Wall
ifdef CONFIG_MTD_REDBOOT_PARTS
MAKE_FLAGS += FIS_SUPPORT=1
TARGET_CFLAGS += -DFIS_SUPPORT=1
endif
define Package/brcm_fw_tool/install
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/brcm_fw_tool $(1)/sbin/
endef
$(eval $(call BuildPackage,brcm_fw_tool))

View File

@@ -1,16 +0,0 @@
CC = gcc
CFLAGS += -Wall
CFLAGS += -I$(STAGING_DIR)/usr/include/bcm963xx/shared/opensource/include/bcm963xx/
CFLAGS += -I$(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx/
%.o: %.c
$(CC) -c $(CFLAGS) -o $@ $<
obj = brcm_fw_tool.o jffs2.o crc32.o
obj.brcm47xx = $(obj.brcm)
brcm_fw_tool: $(obj) $(obj.$(TARGET))
clean:
rm -f *.o jffs2

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +0,0 @@
#ifndef __mtd_h
#define __mtd_h
#include <stdbool.h>
#define JFFS2_EOF "\xde\xad\xc0\xde"
extern int quiet;
extern int mtd_replace_jffs2(const char *mtd, int fd, int ofs, const char *filename, int nand_erasesize);
#endif /* __mtd_h */

View File

@@ -1,95 +0,0 @@
/*
* COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or
* code or tables extracted from it, as desired without restriction.
*
* First, the polynomial itself and its table of feedback terms. The
* polynomial is
* X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0
*
* Note that we take it "backwards" and put the highest-order term in
* the lowest-order bit. The X^32 term is "implied"; the LSB is the
* X^31 term, etc. The X^0 term (usually shown as "+1") results in
* the MSB being 1
*
* Note that the usual hardware shift register implementation, which
* is what we're using (we're merely optimizing it by doing eight-bit
* chunks at a time) shifts bits into the lowest-order term. In our
* implementation, that means shifting towards the right. Why do we
* do it this way? Because the calculated CRC must be transmitted in
* order from highest-order term to lowest-order term. UARTs transmit
* characters in order from LSB to MSB. By storing the CRC this way
* we hand it to the UART in the order low-byte to high-byte; the UART
* sends each low-bit to hight-bit; and the result is transmission bit
* by bit from highest- to lowest-order term without requiring any bit
* shuffling on our part. Reception works similarly
*
* The feedback terms table consists of 256, 32-bit entries. Notes
*
* The table can be generated at runtime if desired; code to do so
* is shown later. It might not be obvious, but the feedback
* terms simply represent the results of eight shift/xor opera
* tions for all combinations of data and CRC register values
*
* The values must be right-shifted by eight bits by the "updcrc
* logic; the shift must be unsigned (bring in zeroes). On some
* hardware you could probably optimize the shift in assembler by
* using byte-swap instructions
* polynomial $edb88320
*/
#include <stdint.h>
const uint32_t crc32_table[256] = {
0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
0x2d02ef8dL
};

View File

@@ -1,26 +0,0 @@
#ifndef CRC32_H
#define CRC32_H
#include <stdint.h>
extern const uint32_t crc32_table[256];
/* Return a 32-bit CRC of the contents of the buffer. */
static inline uint32_t
crc32(uint32_t val, const void *ss, int len)
{
const unsigned char *s = ss;
while (--len >= 0)
val = crc32_table[(val ^ *s++) & 0xff] ^ (val >> 8);
return val;
}
static inline unsigned int crc32buf(char *buf, size_t len)
{
return crc32(0xFFFFFFFF, buf, len);
}
#endif

View File

@@ -1,350 +0,0 @@
/*
* jffs2 on-disk structure generator for mtd
*
* Copyright (C) 2008 Felix Fietkau <nbd@openwrt.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License v2
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* Based on:
* JFFS2 -- Journalling Flash File System, Version 2.
* Copyright © 2001-2007 Red Hat, Inc.
* Created by David Woodhouse <dwmw2@infradead.org>
*/
#include <sys/types.h>
#include <sys/stat.h>
#include <stdint.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <unistd.h>
#include <endian.h>
#include "jffs2.h"
#include "crc32.h"
#include "brcm_fw_tool.h"
#define PAD(x) (((x)+3)&~3)
#if BYTE_ORDER == BIG_ENDIAN
# define CLEANMARKER "\x19\x85\x20\x03\x00\x00\x00\x0c\xf0\x60\xdc\x98"
#else
# define CLEANMARKER "\x85\x19\x03\x20\x0c\x00\x00\x00\xb1\xb0\x1e\xe4"
#endif
static int last_ino = 0;
static int last_version = 0;
static char *buf = NULL;
static int ofs = 0;
static int outfd = -1;
static int mtdofs = 0;
static int target_ino = 0;
static int erasesize = 128*1024;
static void prep_eraseblock(void);
static void pad(int size)
{
if ((ofs % size == 0) && (ofs < erasesize))
return;
if (ofs < erasesize) {
memset(buf + ofs, 0xff, (size - (ofs % size)));
ofs += (size - (ofs % size));
}
ofs = ofs % erasesize;
if (ofs == 0) {
write(outfd, buf, erasesize);
mtdofs += erasesize;
}
}
static inline int rbytes(void)
{
return erasesize - (ofs % erasesize);
}
static inline void add_data(char *ptr, int len)
{
if (ofs + len > erasesize) {
pad(erasesize);
prep_eraseblock();
}
memcpy(buf + ofs, ptr, len);
ofs += len;
}
static void prep_eraseblock(void)
{
if (ofs > 0)
return;
add_data(CLEANMARKER, sizeof(CLEANMARKER) - 1);
}
static int add_dirent(const char *name, const char type, int parent)
{
struct jffs2_raw_dirent *de;
if (ofs - erasesize < sizeof(struct jffs2_raw_dirent) + strlen(name))
pad(erasesize);
prep_eraseblock();
last_ino++;
memset(buf + ofs, 0, sizeof(struct jffs2_raw_dirent));
de = (struct jffs2_raw_dirent *) (buf + ofs);
de->magic = JFFS2_MAGIC_BITMASK;
de->nodetype = JFFS2_NODETYPE_DIRENT;
de->type = type;
de->name_crc = crc32(0, name, strlen(name));
de->ino = last_ino++;
de->pino = parent;
de->totlen = sizeof(*de) + strlen(name);
de->hdr_crc = crc32(0, (void *) de, sizeof(struct jffs2_unknown_node) - 4);
de->version = last_version++;
de->mctime = 0;
de->nsize = strlen(name);
de->node_crc = crc32(0, (void *) de, sizeof(*de) - 8);
memcpy(de->name, name, strlen(name));
ofs += sizeof(struct jffs2_raw_dirent) + de->nsize;
pad(4);
return de->ino;
}
static int add_dir(const char *name, int parent)
{
struct jffs2_raw_inode ri;
int inode;
inode = add_dirent(name, IFTODT(S_IFDIR), parent);
if (rbytes() < sizeof(ri))
pad(erasesize);
prep_eraseblock();
memset(&ri, 0, sizeof(ri));
ri.magic = JFFS2_MAGIC_BITMASK;
ri.nodetype = JFFS2_NODETYPE_INODE;
ri.totlen = sizeof(ri);
ri.hdr_crc = crc32(0, &ri, sizeof(struct jffs2_unknown_node) - 4);
ri.ino = inode;
ri.mode = S_IFDIR | 0755;
ri.uid = ri.gid = 0;
ri.atime = ri.ctime = ri.mtime = 0;
ri.isize = ri.csize = ri.dsize = 0;
ri.version = 1;
ri.node_crc = crc32(0, &ri, sizeof(ri) - 8);
ri.data_crc = 0;
add_data((char *) &ri, sizeof(ri));
pad(4);
return inode;
}
static void add_file(const char *name, int parent)
{
int inode, f_offset = 0, fd;
struct jffs2_raw_inode ri;
struct stat st;
char wbuf[4096];
const char *fname;
if (stat(name, &st)) {
fprintf(stderr, "File %s does not exist\n", name);
return;
}
fname = strrchr(name, '/');
if (fname)
fname++;
else
fname = name;
inode = add_dirent(fname, IFTODT(S_IFREG), parent);
memset(&ri, 0, sizeof(ri));
ri.magic = JFFS2_MAGIC_BITMASK;
ri.nodetype = JFFS2_NODETYPE_INODE;
ri.ino = inode;
ri.mode = st.st_mode;
ri.uid = ri.gid = 0;
ri.atime = st.st_atime;
ri.ctime = st.st_ctime;
ri.mtime = st.st_mtime;
ri.isize = st.st_size;
ri.compr = 0;
ri.usercompr = 0;
fd = open(name, 0);
if (fd < 0) {
fprintf(stderr, "File %s does not exist\n", name);
return;
}
for (;;) {
int len = 0;
for (;;) {
len = rbytes() - sizeof(ri);
if (len > 128)
break;
pad(erasesize);
prep_eraseblock();
}
if (len > sizeof(wbuf))
len = sizeof(wbuf);
len = read(fd, wbuf, len);
if (len <= 0)
break;
ri.totlen = sizeof(ri) + len;
ri.hdr_crc = crc32(0, &ri, sizeof(struct jffs2_unknown_node) - 4);
ri.version = ++last_version;
ri.offset = f_offset;
ri.csize = ri.dsize = len;
ri.node_crc = crc32(0, &ri, sizeof(ri) - 8);
ri.data_crc = crc32(0, wbuf, len);
f_offset += len;
add_data((char *) &ri, sizeof(ri));
add_data(wbuf, len);
pad(4);
prep_eraseblock();
}
close(fd);
}
int mtd_replace_jffs2(const char *mtd, int fd, int ofs, const char *filename, int nand_erasesize)
{
outfd = fd;
mtdofs = ofs;
erasesize = nand_erasesize;
buf = malloc(erasesize);
target_ino = 1;
if (!last_ino)
last_ino = 1;
add_file(filename, target_ino);
pad(erasesize);
/* add eof marker, pad to eraseblock size and write the data */
add_data(JFFS2_EOF, sizeof(JFFS2_EOF) - 1);
pad(erasesize);
free(buf);
return 0;
}
void mtd_parse_jffs2data(const char *buf, const char *dir)
{
struct jffs2_unknown_node *node = (struct jffs2_unknown_node *) buf;
unsigned int ofs = 0;
while (ofs < erasesize) {
node = (struct jffs2_unknown_node *) (buf + ofs);
if (node->magic != 0x1985)
break;
ofs += PAD(node->totlen);
if (node->nodetype == JFFS2_NODETYPE_DIRENT) {
struct jffs2_raw_dirent *de = (struct jffs2_raw_dirent *) node;
/* is this the right directory name and is it a subdirectory of / */
if (*dir && (de->pino == 1) && !strncmp((char *) de->name, dir, de->nsize))
target_ino = de->ino;
/* store the last inode and version numbers for adding extra files */
if (last_ino < de->ino)
last_ino = de->ino;
if (last_version < de->version)
last_version = de->version;
}
}
}
int quiet = 0;
int mtd_write_jffs2(const char *mtd, const char *filename, const char *dir)
{
int err = -1, fdeof = 0;
if (quiet < 2)
fprintf(stderr, "Appending %s to jffs2 partition %s\n", filename, mtd);
buf = malloc(erasesize);
if (!buf) {
fprintf(stderr, "Out of memory!\n");
goto done;
}
if (!*dir)
target_ino = 1;
/* parse the structure of the jffs2 first
* locate the directory that the file is going to be placed in */
for(;;) {
struct jffs2_unknown_node *node = (struct jffs2_unknown_node *) buf;
if (read(outfd, buf, erasesize) != erasesize) {
fdeof = 1;
break;
}
mtdofs += erasesize;
if (node->magic == 0x8519) {
fprintf(stderr, "Error: wrong endianness filesystem\n");
goto done;
}
/* assume no magic == end of filesystem
* the filesystem will probably end with be32(0xdeadc0de) */
if (node->magic != 0x1985)
break;
mtd_parse_jffs2data(buf, dir);
}
if (fdeof) {
fprintf(stderr, "Error: No room for additional data\n");
goto done;
}
/* jump back one eraseblock */
mtdofs -= erasesize;
lseek(outfd, mtdofs, SEEK_SET);
ofs = 0;
if (!last_ino)
last_ino = 1;
if (!target_ino)
target_ino = add_dir(dir, 1);
add_file(filename, target_ino);
pad(erasesize);
/* add eof marker, pad to eraseblock size and write the data */
add_data(JFFS2_EOF, sizeof(JFFS2_EOF) - 1);
pad(erasesize);
err = 0;
done:
close(outfd);
if (buf)
free(buf);
return err;
}

View File

@@ -1,216 +0,0 @@
/*
* JFFS2 -- Journalling Flash File System, Version 2.
*
* Copyright (C) 2001-2003 Red Hat, Inc.
*
* Created by David Woodhouse <dwmw2@infradead.org>
*
* For licensing information, see the file 'LICENCE' in the
* jffs2 directory.
*
*
*/
#ifndef __LINUX_JFFS2_H__
#define __LINUX_JFFS2_H__
#define JFFS2_SUPER_MAGIC 0x72b6
/* You must include something which defines the C99 uintXX_t types.
We don't do it from here because this file is used in too many
different environments. */
/* Values we may expect to find in the 'magic' field */
#define JFFS2_OLD_MAGIC_BITMASK 0x1984
#define JFFS2_MAGIC_BITMASK 0x1985
#define KSAMTIB_CIGAM_2SFFJ 0x8519 /* For detecting wrong-endian fs */
#define JFFS2_EMPTY_BITMASK 0xffff
#define JFFS2_DIRTY_BITMASK 0x0000
/* Summary node MAGIC marker */
#define JFFS2_SUM_MAGIC 0x02851885
/* We only allow a single char for length, and 0xFF is empty flash so
we don't want it confused with a real length. Hence max 254.
*/
#define JFFS2_MAX_NAME_LEN 254
/* How small can we sensibly write nodes? */
#define JFFS2_MIN_DATA_LEN 128
#define JFFS2_COMPR_NONE 0x00
#define JFFS2_COMPR_ZERO 0x01
#define JFFS2_COMPR_RTIME 0x02
#define JFFS2_COMPR_RUBINMIPS 0x03
#define JFFS2_COMPR_COPY 0x04
#define JFFS2_COMPR_DYNRUBIN 0x05
#define JFFS2_COMPR_ZLIB 0x06
/* Compatibility flags. */
#define JFFS2_COMPAT_MASK 0xc000 /* What do to if an unknown nodetype is found */
#define JFFS2_NODE_ACCURATE 0x2000
/* INCOMPAT: Fail to mount the filesystem */
#define JFFS2_FEATURE_INCOMPAT 0xc000
/* ROCOMPAT: Mount read-only */
#define JFFS2_FEATURE_ROCOMPAT 0x8000
/* RWCOMPAT_COPY: Mount read/write, and copy the node when it's GC'd */
#define JFFS2_FEATURE_RWCOMPAT_COPY 0x4000
/* RWCOMPAT_DELETE: Mount read/write, and delete the node when it's GC'd */
#define JFFS2_FEATURE_RWCOMPAT_DELETE 0x0000
#define JFFS2_NODETYPE_DIRENT (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 1)
#define JFFS2_NODETYPE_INODE (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 2)
#define JFFS2_NODETYPE_CLEANMARKER (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 3)
#define JFFS2_NODETYPE_PADDING (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 4)
#define JFFS2_NODETYPE_SUMMARY (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 6)
#define JFFS2_NODETYPE_XATTR (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 8)
#define JFFS2_NODETYPE_XREF (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 9)
/* XATTR Related */
#define JFFS2_XPREFIX_USER 1 /* for "user." */
#define JFFS2_XPREFIX_SECURITY 2 /* for "security." */
#define JFFS2_XPREFIX_ACL_ACCESS 3 /* for "system.posix_acl_access" */
#define JFFS2_XPREFIX_ACL_DEFAULT 4 /* for "system.posix_acl_default" */
#define JFFS2_XPREFIX_TRUSTED 5 /* for "trusted.*" */
#define JFFS2_ACL_VERSION 0x0001
// Maybe later...
//#define JFFS2_NODETYPE_CHECKPOINT (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 3)
//#define JFFS2_NODETYPE_OPTIONS (JFFS2_FEATURE_RWCOMPAT_COPY | JFFS2_NODE_ACCURATE | 4)
#define JFFS2_INO_FLAG_PREREAD 1 /* Do read_inode() for this one at
mount time, don't wait for it to
happen later */
#define JFFS2_INO_FLAG_USERCOMPR 2 /* User has requested a specific
compression type */
/* These can go once we've made sure we've caught all uses without
byteswapping */
typedef uint32_t jint32_t;
typedef uint32_t jmode_t;
typedef uint16_t jint16_t;
struct jffs2_unknown_node
{
/* All start like this */
jint16_t magic;
jint16_t nodetype;
jint32_t totlen; /* So we can skip over nodes we don't grok */
jint32_t hdr_crc;
};
struct jffs2_raw_dirent
{
jint16_t magic;
jint16_t nodetype; /* == JFFS2_NODETYPE_DIRENT */
jint32_t totlen;
jint32_t hdr_crc;
jint32_t pino;
jint32_t version;
jint32_t ino; /* == zero for unlink */
jint32_t mctime;
uint8_t nsize;
uint8_t type;
uint8_t unused[2];
jint32_t node_crc;
jint32_t name_crc;
uint8_t name[0];
};
/* The JFFS2 raw inode structure: Used for storage on physical media. */
/* The uid, gid, atime, mtime and ctime members could be longer, but
are left like this for space efficiency. If and when people decide
they really need them extended, it's simple enough to add support for
a new type of raw node.
*/
struct jffs2_raw_inode
{
jint16_t magic; /* A constant magic number. */
jint16_t nodetype; /* == JFFS2_NODETYPE_INODE */
jint32_t totlen; /* Total length of this node (inc data, etc.) */
jint32_t hdr_crc;
jint32_t ino; /* Inode number. */
jint32_t version; /* Version number. */
jmode_t mode; /* The file's type or mode. */
jint16_t uid; /* The file's owner. */
jint16_t gid; /* The file's group. */
jint32_t isize; /* Total resultant size of this inode (used for truncations) */
jint32_t atime; /* Last access time. */
jint32_t mtime; /* Last modification time. */
jint32_t ctime; /* Change time. */
jint32_t offset; /* Where to begin to write. */
jint32_t csize; /* (Compressed) data size */
jint32_t dsize; /* Size of the node's data. (after decompression) */
uint8_t compr; /* Compression algorithm used */
uint8_t usercompr; /* Compression algorithm requested by the user */
jint16_t flags; /* See JFFS2_INO_FLAG_* */
jint32_t data_crc; /* CRC for the (compressed) data. */
jint32_t node_crc; /* CRC for the raw inode (excluding data) */
uint8_t data[0];
};
struct jffs2_raw_xattr {
jint16_t magic;
jint16_t nodetype; /* = JFFS2_NODETYPE_XATTR */
jint32_t totlen;
jint32_t hdr_crc;
jint32_t xid; /* XATTR identifier number */
jint32_t version;
uint8_t xprefix;
uint8_t name_len;
jint16_t value_len;
jint32_t data_crc;
jint32_t node_crc;
uint8_t data[0];
} __attribute__((packed));
struct jffs2_raw_xref
{
jint16_t magic;
jint16_t nodetype; /* = JFFS2_NODETYPE_XREF */
jint32_t totlen;
jint32_t hdr_crc;
jint32_t ino; /* inode number */
jint32_t xid; /* XATTR identifier number */
jint32_t xseqno; /* xref sequencial number */
jint32_t node_crc;
} __attribute__((packed));
struct jffs2_raw_summary
{
jint16_t magic;
jint16_t nodetype; /* = JFFS2_NODETYPE_SUMMARY */
jint32_t totlen;
jint32_t hdr_crc;
jint32_t sum_num; /* number of sum entries*/
jint32_t cln_mkr; /* clean marker size, 0 = no cleanmarker */
jint32_t padded; /* sum of the size of padding nodes */
jint32_t sum_crc; /* summary information crc */
jint32_t node_crc; /* node crc */
jint32_t sum[0]; /* inode summary info */
};
union jffs2_node_union
{
struct jffs2_raw_inode i;
struct jffs2_raw_dirent d;
struct jffs2_raw_xattr x;
struct jffs2_raw_xref r;
struct jffs2_raw_summary s;
struct jffs2_unknown_node u;
};
/* Data payload for device nodes. */
union jffs2_device_node {
jint16_t old;
jint32_t new;
};
#endif /* __LINUX_JFFS2_H__ */

View File

@@ -1,58 +0,0 @@
#
# Copyright (C) 2006-2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=brcminfo
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
STAMP_PREPARED := $(STAMP_PREPARED)_$(call confvar,CONFIG_MTD_REDBOOT_PARTS)
include $(INCLUDE_DIR)/package.mk
define Package/brcminfo
CATEGORY:=Utilities
TITLE:=Broadcom voice driver info utility
URL:=
DEPENDS:= bcmkernel
endef
define Package/brcminfo/description
Utility that prints information regarding voice configuration
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
target=$(firstword $(subst -, ,$(BOARD)))
MAKE_FLAGS += TARGET="$(target)"
EXTRA_CFLAGS += -DBOS_OS_LINUXUSER
EXTRA_CFLAGS += -I$(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/broadcom/include/bcm963xx/
EXTRA_CFLAGS += -I$(STAGING_DIR)/usr/include/bcm963xx/bcmdrivers/opensource/include/bcm963xx/
EXTRA_CFLAGS += -I$(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/endpt/inc/
EXTRA_CFLAGS += -I$(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/inc
EXTRA_CFLAGS += -I$(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/codec
EXTRA_CFLAGS += -I$(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_common/bos/publicInc/
EXTRA_CFLAGS += -I$(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/voice_res_gw/casCtl/inc/
EXTRA_CFLAGS += -I$(STAGING_DIR)/usr/include/bcm963xx/xChange/dslx_common/xchg_drivers/inc
TARGET_CFLAGS += -D$(CONFIG_TARGET_IBOARDID) -Dtarget_$(target)=1 -Wall
define Package/brcminfo/install
$(INSTALL_DIR) $(1)/usr/bin
cp $(PKG_BUILD_DIR)/brcminfo $(1)/usr/bin/
endef
$(eval $(call BuildPackage,brcminfo))

View File

@@ -1,15 +0,0 @@
# Makefile for brcminfo utility
%.o: %.c
$(CC) -c $(CFLAGS) -o $@ $<
OBJS = brcminfo.o
all: main
dynamic: all
main: brcminfo.o
$(CC) $(LDFLAGS) $(EXTRA_CFLAGS) -o brcminfo brcminfo.o -lm
clean:
rm -f brcminfo ${OBJS}

View File

@@ -1,92 +0,0 @@
/*
* brcminfo.c
* Minor utility that will attempt to read the number of available
* endpoints from the brcm voice driver
*/
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <endpointdrv.h>
static int endpoint_fd = -1;
static int num_fxs_endpoints = -1;
static int num_fxo_endpoints = -1;
static int num_dect_endpoints = -1;
static int num_endpoints = -1;
int vrgEndptDriverOpen(void)
{
endpoint_fd = open("/dev/bcmendpoint0", O_RDWR);
if (endpoint_fd == -1) {
return -1;
} else {
return 0;
}
}
int vrgEndptDriverClose(void)
{
int result = close(endpoint_fd);
endpoint_fd = -1;
return result;
}
static int brcm_get_endpoints_count(void)
{
ENDPOINTDRV_ENDPOINTCOUNT_PARM endpointCount;
endpointCount.size = sizeof(ENDPOINTDRV_ENDPOINTCOUNT_PARM);
if ( ioctl( endpoint_fd, ENDPOINTIOCTL_FXSENDPOINTCOUNT, &endpointCount ) != IOCTL_STATUS_SUCCESS ) {
return -1;
} else {
num_fxs_endpoints = endpointCount.endpointNum;
}
if ( ioctl( endpoint_fd, ENDPOINTIOCTL_FXOENDPOINTCOUNT, &endpointCount ) != IOCTL_STATUS_SUCCESS ) {
return -1;
} else {
num_fxo_endpoints = endpointCount.endpointNum;
}
if ( ioctl( endpoint_fd, ENDPOINTIOCTL_DECTENDPOINTCOUNT, &endpointCount ) != IOCTL_STATUS_SUCCESS ) {
return -1;
} else {
num_dect_endpoints = endpointCount.endpointNum;
}
num_endpoints = num_fxs_endpoints + num_fxo_endpoints + num_dect_endpoints;
return 0;
}
int main(int argc, char **argv)
{
int result;
result = vrgEndptDriverOpen();
if (result != 0) {
printf("Could not open endpoint driver\n");
return result;
}
result = brcm_get_endpoints_count();
if (result == 0) {
printf("DECT Endpoints:\t%d\n", num_dect_endpoints);
printf("FXS Endpoints:\t%d\n", num_fxs_endpoints);
printf("FXO Endpoints:\t%d\n", num_fxo_endpoints);
printf("All Endpoints:\t%d\n", num_endpoints);
}
else {
printf("Endpoint counting failed, maybe driver is not initialized?\n");
}
result = vrgEndptDriverClose();
if (result != 0) {
printf("Could not close endpoint driver\n");
return result;
}
return 0;
}

View File

@@ -1,51 +0,0 @@
#
# Copyright (C) 2006-2012 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=bridge-utils
PKG_RELEASE:=1
PKG_SOURCE_URL:=@SF/bridge
PKG_VERSION:=1.5
PKG_MD5SUM:=ec7b381160b340648dede58c31bb2238
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
include $(INCLUDE_DIR)/package.mk
define Package/bridge
SECTION:=net
CATEGORY:=Base system
TITLE:=Ethernet bridging configuration utility
URL:=http://bridge.sourceforge.net/
endef
define Package/bridge/description
Manage ethernet bridging: a way to connect networks together to
form a larger network.
endef
CONFIGURE_ARGS += \
--with-linux-headers="$(LINUX_DIR)" \
define Build/Prepare
$(call Build/Prepare/Default)
( cd $(PKG_BUILD_DIR) ; \
[ -f ./configure ] || { \
ln -sf configure.in configure.ac ; \
autoconf ; \
} \
)
endef
define Package/bridge/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/brctl/brctl $(1)/usr/sbin
endef
$(eval $(call BuildPackage,bridge))

View File

@@ -1,11 +0,0 @@
--- a/libbridge/Makefile.in
+++ b/libbridge/Makefile.in
@@ -5,7 +5,7 @@ AR=ar
RANLIB=@RANLIB@
CC=@CC@
-CFLAGS = -Wall -g $(KERNEL_HEADERS)
+CFLAGS = -Wall -g @CFLAGS@ $(KERNEL_HEADERS)
prefix=@prefix@
exec_prefix=@exec_prefix@

View File

@@ -1,37 +0,0 @@
#
# Copyright (C) 2006-2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=broadcom-diag
PKG_RELEASE:=10
include $(INCLUDE_DIR)/package.mk
define KernelPackage/diag
SUBMENU:=Other modules
DEPENDS:=@TARGET_brcm47xx
TITLE:=Driver for router LEDs and Buttons
FILES:=$(PKG_BUILD_DIR)/diag.ko
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
ARCH="$(LINUX_KARCH)" \
SUBDIRS="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(BUILDFLAGS)" \
modules
endef
$(eval $(call KernelPackage,diag))

View File

@@ -1,17 +0,0 @@
#
# Makefile for diag driver
#
# Copyright (C) 2005 Felix Fietkau <nbd@openwrt.org>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version
# 2 of the License, or (at your option) any later version.
#
obj-m := diag.o
ifeq ($(MAKING_MODULES),1)
-include $(TOPDIR)/Rules.make
endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,134 +0,0 @@
/*
* diag.h - GPIO interface driver for Broadcom boards
*
* Copyright (C) 2006 Mike Baker <mbm@openwrt.org>,
* Felix Fietkau <nbd@openwrt.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
#include <linux/irq.h>
#define MODULE_NAME "diag"
#define MAX_GPIO 16
#define FLASH_TIME HZ/6
enum polarity_t {
REVERSE = 0,
NORMAL = 1,
INPUT = 2,
};
enum {
PROC_BUTTON,
PROC_LED,
PROC_MODEL,
PROC_GPIOMASK
};
struct prochandler_t {
int type;
void *ptr;
};
struct button_t {
struct prochandler_t proc;
char *name;
u32 gpio;
unsigned long seen;
u8 pressed;
};
struct led_t {
struct prochandler_t proc;
char *name;
u32 gpio;
u8 polarity;
u8 flash;
u8 state;
};
struct platform_t {
char *name;
struct button_t buttons[MAX_GPIO];
u32 button_mask;
u32 button_polarity;
void (*platform_init)(void);
struct led_t leds[MAX_GPIO];
};
struct event_t {
struct work_struct wq;
unsigned long seen;
char *name, *action;
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0)
struct sk_buff *skb;
#else
char *scratch;
char *argv[4];
char *envp[7];
u8 enr, anr;
#endif
};
extern char *nvram_get(char *str);
static struct platform_t platform;
/* buttons */
static void register_buttons(struct button_t *b);
static void unregister_buttons(struct button_t *b);
static void hotplug_button(struct work_struct *work);
static irqreturn_t button_handler(int irq, void *dev_id);
/* leds */
static void register_leds(struct led_t *l);
static void unregister_leds(struct led_t *l);
static void set_led_extif(struct led_t *led);
static void led_flash(unsigned long dummy);
/* 2.4 compatibility */
#ifndef TIMER_INITIALIZER
#define TIMER_INITIALIZER(_function, _expires, _data) \
{ \
/* _expires and _data currently unused */ \
function: _function \
}
#endif
static struct timer_list led_timer = TIMER_INITIALIZER(&led_flash, 0, 0);
/* proc */
static struct proc_dir_entry *diag, *leds;
static ssize_t diag_proc_read(struct file *file, char *buf, size_t count, loff_t *ppos);
static ssize_t diag_proc_write(struct file *file, const char *buf, size_t count, loff_t *ppos);
static struct file_operations diag_proc_fops = {
read: diag_proc_read,
write: diag_proc_write
};
static struct prochandler_t proc_model = { .type = PROC_MODEL };
static struct prochandler_t proc_gpiomask = { .type = PROC_GPIOMASK };

View File

@@ -1,16 +0,0 @@
#ifndef __DIAG_GPIO_H
#define __DIAG_GPIO_H
#include <linux/interrupt.h>
#include <linux/ssb/ssb_embedded.h>
#include <linux/gpio.h>
#include <bcm47xx.h>
#define EXTIF_ADDR 0x1f000000
#define EXTIF_UART (EXTIF_ADDR + 0x00800000)
#define GPIO_TYPE_NORMAL (0x0 << 24)
#define GPIO_TYPE_EXTIF (0x1 << 24)
#define GPIO_TYPE_MASK (0xf << 24)
#endif /* __DIAG_GPIO_H */

View File

@@ -1,54 +0,0 @@
#
# Copyright (C) 2006-2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=broadcom-nvram
PKG_RELEASE:=1
PKG_BUILD_DIR := $(KERNEL_BUILD_DIR)/$(PKG_NAME)
STAMP_PREPARED := $(STAMP_PREPARED)_$(call confvar,CONFIG_MTD_REDBOOT_PARTS)
include $(INCLUDE_DIR)/package.mk
LDFLAGS+= \
-Wl,-rpath-link=$(STAGING_DIR)/usr/lib \
-Wl,-rpath-link=$(STAGING_DIR)/lib
RSTRIP:=true
define Package/bcmnvram
CATEGORY:=Libraries
TITLE:=Broadcom nvram emulator library
URL:=
DEPENDS:=PACKAGE_libuci:libuci
endef
define Package/bcmnvram/description
Broadcom nvram to uci wrapper
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
target=$(firstword $(subst -, ,$(BOARD)))
MAKE_FLAGS += TARGET="$(target)"
TARGET_CFLAGS += -Dtarget_$(target)=1 -Wall
define Package/bcmnvram/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/bin
cp $(PKG_BUILD_DIR)/libnvram.so $(1)/usr/lib/
cp $(PKG_BUILD_DIR)/uci_test $(1)/usr/bin/
endef
$(eval $(call BuildPackage,bcmnvram))

View File

@@ -1,3 +0,0 @@
config 'broadcom' 'nvram'

View File

@@ -1,23 +0,0 @@
# Makefile for broadcom nvram to uci wrapper
%.o: %.c
$(CC) -c $(CFLAGS) -o $@ $<
OBJS = nvram_emu_lib.o ucix.o main.o
all: libnvram main
dynamic: all
libnvram: nvram_emu_lib.o
$(CC) -c $(CFLAGS) $(LDFLAGS) -fPIC -o ucix_shared.o ucix.c -luci
$(CC) -c $(CFLAGS) $(LDFLAGS) -fPIC -o nvram_emu_lib.o nvram_emu_lib.c -luci
$(CC) $(LDFLAGS) -shared -Wl,-soname,libnvram.so -o libnvram.so nvram_emu_lib.o ucix_shared.o -luci
main: main.o ucix.o
$(CC) $(LDFLAGS) -o uci_test main.o ucix.o -luci
clean:
rm -f libnvram.so ucix_shared.o uci_test ${OBJS}

View File

@@ -1,30 +0,0 @@
// uci test program Copyright Benjamin Larsson 2012 <benjamin@southpole.se>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <uci.h>
#include "ucix.h"
int main(int argc, char **argv)
{
struct uci_context *ctx;
const char *ucitmp;
ctx = ucix_init("broadcom");
if(!ctx)
printf("Failed to load config file");
ucitmp = ucix_get_option(ctx, "broadcom", "nvram", "test");
printf("test = %s\n",ucitmp);
ucix_add_section(ctx, "broadcom", "nvram", "broadcom");
ucix_add_option(ctx, "broadcom", "nvram", "test", "tomte");
ucix_add_option(ctx, "broadcom", "nvram", "test2", "tomte2");
printf("Hello world\n");
ucix_commit(ctx, "broadcom");
ucitmp = ucix_get_option(ctx, "broadcom", "nvram", "test");
printf("test = %s\n",ucitmp);
ucix_cleanup(ctx);
}

View File

@@ -1,173 +0,0 @@
/** Broadcom libnvram.so compatible wrapper
*
* Copyright 2012 Benjamin Larsson <benjamin@southpole.se>
*
*/
/*
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted,
provided that the above copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
OF THIS SOFTWARE.
*/
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "uci.h"
struct uci_context *ctx = NULL;
struct uci_ptr ptr;
int nvram_inited = 0;
int nvram_debug = 0;
/** Function prototypes are taken from bcmnvram.h Copyright Broadcom Corporation.
* Only some of the nvram_* functions exposed from libnvram.so are implemented.
* get, getall, unset, set, commit
*/
/* uci does not support . in the key part, replace it with _ */
static const char * filter_dots_in_string(char *key) {
int length = 0;
int i;
length = strlen(key);
for (i=0 ; i<length ; i++) {
if (key[i] == '.')
key[i] = '_';
}
return key;
}
static void nvram_display_section(struct uci_section *s)
{
struct uci_element *e;
struct uci_option *o;
printf("%s.%s=%s\n", s->package->e.name, s->e.name, s->type);
uci_foreach_element(&s->options, e) {
o = uci_to_option(e);
printf("%s.%s.%s=%s\n", o->section->package->e.name, o->section->e.name, o->e.name, o->v.string);
}
}
void nvram_init() {
if (!nvram_inited) {
ctx = ucix_init("broadcom");
if(!ctx) {
printf("Failed to load config file \"broadcom\"\n");
return;
}
ucix_add_section(ctx, "broadcom", "nvram", "broadcom");
ucix_add_option(ctx, "broadcom", "nvram", "init", "1");
ucix_commit(ctx, "broadcom");
nvram_debug = ucix_get_option_int(ctx, "broadcom", "nvram", "debug");
nvram_inited = 1;
if (nvram_debug)
printf("nvram_init()\n");
}
}
/*
* Get the value of an NVRAM variable. The pointer returned may be
* invalid after a set.
* @param name name of variable to get
* @return value of variable or NULL if undefined
*/
const char * nvram_get(const char *name) {
const char *ucitmp;
nvram_init();
ucitmp = ucix_get_option(ctx, "broadcom", "nvram", filter_dots_in_string(name));
if (nvram_debug)
printf("%s=nvram_get(%s)\n", ucitmp, name);
return ucitmp;
}
/*
* Set the value of an NVRAM variable. The name and value strings are
* copied into private storage. Pointers to previously set values
* may become invalid. The new value may be immediately
* retrieved but will not be permanently stored until a commit.
* @param name name of variable to set
* @param value value of variable
* @return 0 on success and errno on failure
*/
int nvram_set(const char *name, const char *value) {
nvram_init();
ucix_add_option(ctx, "broadcom", "nvram", filter_dots_in_string(name), value);
ucix_commit(ctx, "broadcom");
if (nvram_debug)
printf("nvram_set(%s, %s)\n", filter_dots_in_string(name), value);
return 0;
}
/*
* Unset an NVRAM variable. Pointers to previously set values
* remain valid until a set.
* @param name name of variable to unset
* @return 0 on success and errno on failure
* NOTE: use nvram_commit to commit this change to flash.
*/
int nvram_unset(const char *name){
nvram_init();
ucix_del(ctx, "broadcom", "nvram", filter_dots_in_string(name));
ucix_commit(ctx, "broadcom");
if (nvram_debug)
printf("nvram_unset(%s)\n", filter_dots_in_string(name));
return 0;
}
/*
* Commit NVRAM variables to permanent storage. All pointers to values
* may be invalid after a commit.
* NVRAM values are undefined after a commit.
* @return 0 on success and errno on failure
*/
int nvram_commit(void){
nvram_init();
ucix_commit(ctx, "broadcom");
if (nvram_debug)
printf("nvram_commit()\n");
return 0;
}
/*
* Get all NVRAM variables (format name=value\0 ... \0\0).
* @param buf buffer to store variables
* @param count size of buffer in bytes
* @return 0 on success and errno on failure
*/
int nvram_getall(char *nvram_buf, int count) {
nvram_init();
ptr.package = "broadcom";
ptr.section = "nvram";
if (uci_lookup_ptr(ctx, &ptr, NULL, true) != UCI_OK)
return 1;
if (!(ptr.flags & UCI_LOOKUP_COMPLETE))
return 1;
nvram_display_section(ptr.s);
return 0;
}

View File

@@ -1,172 +0,0 @@
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Copyright (C) 2008 John Crispin <blogic@openwrt.org>
*/
#include <string.h>
#include <stdlib.h>
#include <uci_config.h>
#include <uci.h>
#include "ucix.h"
static struct uci_ptr ptr;
static inline int ucix_get_ptr(struct uci_context *ctx, const char *p, const char *s, const char *o, const char *t)
{
memset(&ptr, 0, sizeof(ptr));
ptr.package = p;
ptr.section = s;
ptr.option = o;
ptr.value = t;
return uci_lookup_ptr(ctx, &ptr, NULL, true);
}
struct uci_context* ucix_init(const char *config_file)
{
struct uci_context *ctx = uci_alloc_context();
uci_add_delta_path(ctx, "/var/state");
if(uci_load(ctx, config_file, NULL) != UCI_OK)
{
printf("%s/%s is missing or corrupt\n", ctx->savedir, config_file);
return NULL;
}
return ctx;
}
struct uci_context* ucix_init_path(const char *path, const char *config_file)
{
struct uci_context *ctx = uci_alloc_context();
if(path)
uci_set_confdir(ctx, path);
if(uci_load(ctx, config_file, NULL) != UCI_OK)
{
printf("%s/%s is missing or corrupt\n", ctx->savedir, config_file);
return NULL;
}
return ctx;
}
void ucix_cleanup(struct uci_context *ctx)
{
uci_free_context(ctx);
}
void ucix_save(struct uci_context *ctx)
{
uci_set_savedir(ctx, "/tmp/.uci/");
uci_save(ctx, NULL);
}
void ucix_save_state(struct uci_context *ctx)
{
uci_set_savedir(ctx, "/var/state/");
uci_save(ctx, NULL);
}
const char* ucix_get_option(struct uci_context *ctx, const char *p, const char *s, const char *o)
{
struct uci_element *e = NULL;
const char *value = NULL;
if(ucix_get_ptr(ctx, p, s, o, NULL))
return NULL;
if (!(ptr.flags & UCI_LOOKUP_COMPLETE))
return NULL;
e = ptr.last;
switch (e->type)
{
case UCI_TYPE_SECTION:
value = uci_to_section(e)->type;
break;
case UCI_TYPE_OPTION:
switch(ptr.o->type) {
case UCI_TYPE_STRING:
value = ptr.o->v.string;
break;
default:
value = NULL;
break;
}
break;
default:
return 0;
}
return value;
}
int ucix_get_option_int(struct uci_context *ctx, const char *p, const char *s, const char *o, int def)
{
const char *tmp = ucix_get_option(ctx, p, s, o);
int ret = def;
if (tmp)
ret = atoi(tmp);
return ret;
}
void ucix_add_section(struct uci_context *ctx, const char *p, const char *s, const char *t)
{
if(ucix_get_ptr(ctx, p, s, NULL, t))
return;
uci_set(ctx, &ptr);
}
void ucix_add_option(struct uci_context *ctx, const char *p, const char *s, const char *o, const char *t)
{
if(ucix_get_ptr(ctx, p, s, o, (t)?(t):("")))
return;
uci_set(ctx, &ptr);
}
void ucix_add_option_int(struct uci_context *ctx, const char *p, const char *s, const char *o, int t)
{
char tmp[64];
snprintf(tmp, 64, "%d", t);
ucix_add_option(ctx, p, s, o, tmp);
}
void ucix_del(struct uci_context *ctx, const char *p, const char *s, const char *o)
{
if(!ucix_get_ptr(ctx, p, s, o, NULL))
uci_delete(ctx, &ptr);
}
void ucix_revert(struct uci_context *ctx, const char *p, const char *s, const char *o)
{
if(!ucix_get_ptr(ctx, p, s, o, NULL))
uci_revert(ctx, &ptr);
}
void ucix_for_each_section_type(struct uci_context *ctx,
const char *p, const char *t,
void (*cb)(const char*, void*), void *priv)
{
struct uci_element *e;
if(ucix_get_ptr(ctx, p, NULL, NULL, NULL))
return;
uci_foreach_element(&ptr.p->sections, e)
if (!strcmp(t, uci_to_section(e)->type))
cb(e->name, priv);
}
int ucix_commit(struct uci_context *ctx, const char *p)
{
if(ucix_get_ptr(ctx, p, NULL, NULL, NULL))
return 1;
return uci_commit(ctx, &ptr.p, false);
}

View File

@@ -1,41 +0,0 @@
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Copyright (C) 2008 John Crispin <blogic@openwrt.org>
*/
#ifndef _UCI_H__
#define _UCI_H__
struct uci_context* ucix_init(const char *config_file);
struct uci_context* ucix_init_path(const char *path, const char *config_file);
void ucix_cleanup(struct uci_context *ctx);
void ucix_save(struct uci_context *ctx);
void ucix_save_state(struct uci_context *ctx);
const char* ucix_get_option(struct uci_context *ctx,
const char *p, const char *s, const char *o);
int ucix_get_option_int(struct uci_context *ctx,
const char *p, const char *s, const char *o, int def);
void ucix_add_section(struct uci_context *ctx,
const char *p, const char *s, const char *t);
void ucix_add_option(struct uci_context *ctx,
const char *p, const char *s, const char *o, const char *t);
void ucix_add_option_int(struct uci_context *ctx,
const char *p, const char *s, const char *o, int t);
int ucix_commit(struct uci_context *ctx, const char *p);
void ucix_revert(struct uci_context *ctx,
const char *p, const char *s, const char *o);
void ucix_del(struct uci_context *ctx, const char *p,
const char *s, const char *o);
#endif

View File

@@ -1,29 +0,0 @@
menu "Configuration"
depends on PACKAGE_compcache
config COMPCACHE_ENABLE
bool "enabled on boot"
default n
help
Enables compressed ram swap devices.
config COMPCACHE_RAM_REPORTED
string "swap space reported to kernel in kb"
default "2048"
help
This is the amount of memory that will be reported
to the kernel as swap. The real ram in use will differ,
because of lzo compression.
Example:
16 MB = 2048 KB
32 MB = 4098 KB
config COMPCACHE_BACKUP_DEV
string "Backup device for compcache"
default ""
help
Compcache will use this as a backup device for swap.
Example:
/dev/sda5
endmenu

Some files were not shown because too many files have changed in this diff Show More