GithubHelp home page GithubHelp logo

Comments (11)

jclehner avatar jclehner commented on June 8, 2024

Hi Josip,

regarding telnet: does the modem actually reboot, or does it crash? If it reboots, did you disconnect the coax cable? If not, the reboot might be caused by your ISP.

Also, please post the output of ls from the CM_Console> and CM> prompts. To switch to CM>, use the su command (password is "ubeecable" for your device).

from bcm2-utils.

jstjep00 avatar jstjep00 commented on June 8, 2024

Do you think I should disconnect the router from coax cable and then try to configure it for open telnet connection? Now when you mention it, it might have crashed instead of rebooted.

CM_Console> ls

!               ?               REM             call            cd             
dir             find_command    help            history         instances      
ls              man             pwd             sleep           syntax         
system_time     usage           
----
exit            reset           set             show            
switchCpuConsole                
----
[cm] [emta] [ethernet] [ftpLite] [pingHelper] [power] [system] [thermal] 

CM_Console> su

Password:  () [] ubeecable
Proceed with caution!
Type 'exit' to return.

CM_Console> ls

!               ?               REM             call            cd             
dir             find_command    help            history         instances      
ls              man             pwd             sleep           syntax         
system_time     usage           
----
con_high        cpuLoad         cpuUtilization  exit            mbufShow       
memShow         mutex_debug     ping            read_memory     reset          
routeShow       run_app         shell           socket_debug    stackShow      
taskDelete      taskInfo        taskPrioritySet taskResume      taskShow       
taskSuspend     taskSuspendAll  taskTrace       usfsShow        version        
write_memory    zone            
----
[CmRgMsgPipe] [HeapManager] [HostDqm] [avs] [cm_hal] [docsis_ctl] [dtp] 
[embedded_target] [emta] [event_log] [fam] [flash] [forwarder] [ftpLite] 
[ip_hal] [itc_hal] [msgLog] [non-vol] [pingHelper] [power] [snmp] [snoop] 
[spectrum_analyzer] [thermal] 

CM> 

from bcm2-utils.

jstjep00 avatar jstjep00 commented on June 8, 2024

Tried to enable telnet by changing the configs in CM/NonVol/User Interface NonVol> prompt and then restart the remote access server, still nothing.

from bcm2-utils.

jclehner avatar jclehner commented on June 8, 2024

Do you think I should disconnect the router from coax cable and then try to configure it for open telnet connection?

Yes, since your telnet settings might be overriden by your ISP's DOCSIS config file as soon as the modem registers on the provider's network.

I also notice that your device does have support for /flash/ commands, so there's an issue with bcm2dump somewhere. Please re-run with -L log.txt, and post the log file, i.e.:

$ bcm2dump -L log.txt -vv dump 192.168.0.1,ubee,ubee flash image1 image1.bin

from bcm2-utils.

jstjep00 avatar jstjep00 commented on June 8, 2024

That seems like it solved the issue with telnet staying closed. It stays open now, but a different issue than before came up:

bcm2dump v0.9.4-115-gb70bb4b
telnet: received command 253,33
telnet: received command 251,3
telnet: received command 251,1
==> (empty)
==> 'Broadcom Corporation Embedded BFC Telnet Server (c) 2000-2008'
==> (empty)
==> 'WARNING:  Access allowed by authorized users only.'
==> (empty)
==> 'Login:'
detected interface: bfc
<== 'ubee'
==> 'ubee'
==> 'Password:'
<== 'ubee'
<== ''
==> 'RG>'
==> 'RG_Console>'
==> 'RG_Console> Lease with clientId: htype=0, value=0c b9 37 19 eb c6 Ip address: 192.168.0.10 has been offered to client!'
==> (empty)
==> 'RG_Console>'
<== ''
==> 'RG_Console>'
<== ''
==> 'RG_Console>'
==> 'RG_Console>'
adjusting dump params: 0x80010000,4 -> 0x80010000,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x80010000'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x80010000'
read_chunk_impl: consuming lines
==> (empty)
==> '80010000: 1242006e  00000000  0c0041f4  24040001 | .B.n......A.$...'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x80624d91,14 -> 0x80624d90,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x80624d90'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x80624d90'
read_chunk_impl: consuming lines
==> (empty)
==> '80624d90: 3c058054  0c48a683  24a5a140  10000011 | <..T.H..$..@....'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x80624d91,8 -> 0x80624d90,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x80624d90'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x80624d90'
read_chunk_impl: consuming lines
==> (empty)
==> '80624d90: 3c058054  0c48a683  24a5a140  10000011 | <..T.H..$..@....'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x8070244c,9 -> 0x8070244c,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x8070244c'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x8070244c'
read_chunk_impl: consuming lines
==> (empty)
==> '8070244c: 14620011  24040007  0c0213bd  26040030 | .b..$.......&..0'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x807023d4,7 -> 0x807023d4,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x807023d4'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x807023d4'
read_chunk_impl: consuming lines
==> (empty)
==> '807023d4: 8fb20008  8fb10004  8fb00000  03e00008 | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x80eb8a91,8 -> 0x80eb8a90,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x80eb8a90'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x80eb8a90'
read_chunk_impl: consuming lines
==> (empty)
==> '80eb8a90: 00000000  24c6ffff  04c3fff2  8ca20000 | ....$...........'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x80f89da0,11 -> 0x80f89da0,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x80f89da0'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x80f89da0'
read_chunk_impl: consuming lines
==> (empty)
==> '80f89da0: afa00038  00408021  3c0281d0  8c43c1f0 | ...8.@.!<....C..'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x82f00014,6 -> 0x82f00014,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x82f00014'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x82f00014'
read_chunk_impl: consuming lines
==> (empty)
==> '82f00014: ffffffff  ffffffff  ffffffff  ffffffff | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x809864d9,11 -> 0x809864d8,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x809864d8'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x809864d8'
read_chunk_impl: consuming lines
==> (empty)
==> '809864d8: 13c00005  0220b021  92430005  92020006 | ..... .!.C......'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x83e05bb8,11 -> 0x83e05bb8,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x83e05bb8'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x83e05bb8'
read_chunk_impl: consuming lines
==> (empty)
==> '83e05bb8: ffffffff  ffffffff  ffffffff  ffffffff | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x80dc48d0,3 -> 0x80dc48d0,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x80dc48d0'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x80dc48d0'
read_chunk_impl: consuming lines
==> (empty)
==> '80dc48d0: a2000001  8e240000  a6000002  a6000004 | .....$..........'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x83f8a9ac,5 -> 0x83f8a9ac,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x83f8a9ac'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x83f8a9ac'
read_chunk_impl: consuming lines
==> (empty)
==> '83f8a9ac: ffffffff  ffffffff  ffffffff  ffffffff | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x810a4390,12 -> 0x810a4390,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x810a4390'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x810a4390'
read_chunk_impl: consuming lines
==> (empty)
==> '810a4390: afbf0000  8c820028  24850014  01003821 | .......($.....8!'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x83f8e8a8,6 -> 0x83f8e8a8,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x83f8e8a8'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x83f8e8a8'
read_chunk_impl: consuming lines
==> (empty)
==> '83f8e8a8: ffffffff  ffffffff  ffffffff  ffffffff | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x83f8ea40,10 -> 0x83f8ea40,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x83f8ea40'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x83f8ea40'
read_chunk_impl: consuming lines
==> (empty)
==> '83f8ea40: ffffffff  ffffffff  ffffffff  ffffffff | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x83f8ecc8,13 -> 0x83f8ecc8,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x83f8ecc8'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x83f8ecc8'
read_chunk_impl: consuming lines
==> (empty)
==> '83f8ecc8: ffffffff  ffffffff  ffffffff  ffffffff | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 32 0x81082fa8'
==> 'RG_Console> /system/diag readmem -s 4 -n 32 0x81082fa8'
read_chunk_impl: consuming lines
==> (empty)
==> '81082fa8: 8fbf0018  8fb50014  8fb40010  8fb3000c | ................'
==> '2164797368: 2410807304  2410741764  2410676224  65011720 | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x81083440,29 -> 0x81083440,32
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 32 0x81083440'
==> 'RG_Console> /system/diag readmem -s 4 -n 32 0x81083440'
read_chunk_impl: consuming lines
==> (empty)
==> '81083440: 24420001  ae020014  72231002  00441821 | $B......r#...D.!'
==> '2164798544: 2411659272  2410741764  2410676224  06295585 | .............`.!'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x812df0e5,24 -> 0x812df0e4,32
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 32 0x812df0e4'
==> 'RG_Console> /system/diag readmem -s 4 -n 32 0x812df0e4'
read_chunk_impl: consuming lines
==> (empty)
==> '812df0e4: 02010002  01000000  30820000  54726965 | ........0...Trie'
==> '2167271668: 1679818752  542458960  544239474  1953702007 | d .. UDP ports w'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x83f8f188,10 -> 0x83f8f188,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x83f8f188'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x83f8f188'
read_chunk_impl: consuming lines
==> (empty)
==> '83f8f188: ffffffff  ffffffff  ffffffff  ffffffff | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x814e8eac,10 -> 0x814e8eac,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x814e8eac'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x814e8eac'
read_chunk_impl: consuming lines
==> (empty)
==> '814e8eac: 2e352e31  2e312e35  00000000  72674970 | .5.1.1.5....rgIp'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x814e953c,10 -> 0x814e953c,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x814e953c'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x814e953c'
read_chunk_impl: consuming lines
==> (empty)
==> '814e953c: 2e372e32  2e322e33  2e300000  70726f78 | .7.2.2.3.0..prox'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x85f00014'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x85f00014'
read_chunk_impl: consuming lines
==> (empty)
==> '85f00014: ffffffff  ffffffff  ffffffff  ffffffff | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x85f00014'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x85f00014'
read_chunk_impl: consuming lines
==> (empty)
==> '85f00014: ffffffff  ffffffff  ffffffff  ffffffff | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x83f8e618,14 -> 0x83f8e618,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x83f8e618'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x83f8e618'
read_chunk_impl: consuming lines
==> (empty)
==> '83f8e618: ffffffff  ffffffff  ffffffff  ffffffff | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
adjusting dump params: 0x85f00014,6 -> 0x85f00014,16
read_chunk_impl: calling do_read_chunk
<== '/system/diag readmem -s 4 -n 16 0x85f00014'
==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x85f00014'
read_chunk_impl: consuming lines
==> (empty)
==> '85f00014: ffffffff  ffffffff  ffffffff  ffffffff | ................'
read_chunk_impl: done reading lines
==> (empty)
==> 'RG_Console>'
<== ''
==> 'RG_Console>'
==> 'RG_Console> [00:02:47 01/01/1970] [HttpServerThread] BcmEcosSocket::Accept:  (BcmSocket) ERROR - INVALID_SOCKET: 353'
<== 'switchCpuConsole'
==> '[00:02:47 01/01/1970] [HttpServerThread] BcmRgHttpServerThread::WaitForConnection:  (HttpServerThread) ERROR - Accept() returned an invalid socket handle!!'
==> '[00:02:47 01/01/1970] [Telnet Thread] BcmEcosSocket::Accept:  (BcmSocket) ERROR - INVALID_SOCKET: 353'
==> 'accept error'
==> 'switchCpuConsole'
==> (empty)
==> 'Switching console to CM'
==> 'Wait 500 ms for the telnet server to start on the other CPU'
==> 'Switch to the other console completed'
==> '=Ubee= switch fAnnexMode'
==> 'Scanning (pattern) DS Channel at 529000000 Hz...'
==> '=Ubee= switch fAnnexMode'
==> '--------------------------------------'
==> 'Scanning (pattern) DS Channel at 552000000 Hz...'
==> '=Ubee= switch fAnnexMode'
==> 'Scanning (pattern) DS Channel at 544000000 Hz...'
==> '=Ubee= switch fAnnexMode'
==> 'Scanning (pattern) DS Channel at 536000000 Hz...'
==> 'CM>'
<== ''
==> 'CM> =Ubee= switch fAnnexMode'
==> 'Scanning (pattern) DS Channel at 528000000 Hz...'
==> '=Ubee= switch fAnnexMode'
==> '--------------------------------------'
==> 'Scanning (pattern) DS Channel at 551000000 Hz...'
==> '=Ubee= switch fAnnexMode'
==> 'Scanning (pattern) DS Channel at 543000000 Hz...'
==> 'CM>'
==> 'CM> =Ubee= switch fAnnexMode'
==> 'Scanning (pattern) DS Channel at 535000000 Hz...'
<== '/version'
==> '=Ubee= switch fAnnexMode'
==> 'Scanning (pattern) DS Channel at 527000000 Hz...'
==> '=Ubee= switch fAnnexMode'
==> '--------------------------------------'
==> 'Scanning (pattern) DS Channel at 550000000 Hz...'
==> '=Ubee= switch fAnnexMode'
==> 'Scanning (pattern) DS Channel at 542000000 Hz...'
profile auto-detection failed
<== '/exit'
==> '=Ubee= switch fAnnexMode'

error: cannot create non-ram rwx object without a profile

context:
  ==> 'RG_Console>'
  <== '/system/diag readmem -s 4 -n 16 0x85f00014'
  ==> 'RG_Console> /system/diag readmem -s 4 -n 16 0x85f00014'
  ==> (empty)
  ==> '85f00014: ffffffff  ffffffff  ffffffff  ffffffff | ................'
  ==> (empty)
  ==> 'RG_Console>'
  <== ''
  ==> 'RG_Console>'
  ==> 'RG_Console> [00:02:47 01/01/1970] [HttpServerThread] BcmEcosSocket::Accept:  (BcmSocket) ERROR - INVALID_SOCKET: 353'
  <== 'switchCpuConsole'
  ==> '[00:02:47 01/01/1970] [HttpServerThread] BcmRgHttpServerThread::WaitForConnection:  (HttpServerThread) ERROR - Accept() returned an invalid socket handle!!'
  ==> '[00:02:47 01/01/1970] [Telnet Thread] BcmEcosSocket::Accept:  (BcmSocket) ERROR - INVALID_SOCKET: 353'
  ==> 'accept error'
  ==> 'switchCpuConsole'
  ==> (empty)
  ==> 'Switching console to CM'
  ==> 'Wait 500 ms for the telnet server to start on the other CPU'
  ==> 'Switch to the other console completed'
  ==> '=Ubee= switch fAnnexMode'
  ==> 'Scanning (pattern) DS Channel at 529000000 Hz...'
  ==> '=Ubee= switch fAnnexMode'
  ==> '--------------------------------------'
  ==> 'Scanning (pattern) DS Channel at 552000000 Hz...'
  ==> '=Ubee= switch fAnnexMode'
  ==> 'Scanning (pattern) DS Channel at 544000000 Hz...'
  ==> '=Ubee= switch fAnnexMode'
  ==> 'Scanning (pattern) DS Channel at 536000000 Hz...'
  ==> 'CM>'
  <== ''
  ==> 'CM> =Ubee= switch fAnnexMode'
  ==> 'Scanning (pattern) DS Channel at 528000000 Hz...'
  ==> '=Ubee= switch fAnnexMode'
  ==> '--------------------------------------'
  ==> 'Scanning (pattern) DS Channel at 551000000 Hz...'
  ==> '=Ubee= switch fAnnexMode'
  ==> 'Scanning (pattern) DS Channel at 543000000 Hz...'
  ==> 'CM>'
  ==> 'CM> =Ubee= switch fAnnexMode'
  ==> 'Scanning (pattern) DS Channel at 535000000 Hz...'
  <== '/version'
  ==> '=Ubee= switch fAnnexMode'
  ==> 'Scanning (pattern) DS Channel at 527000000 Hz...'
  ==> '=Ubee= switch fAnnexMode'
  ==> '--------------------------------------'
  ==> 'Scanning (pattern) DS Channel at 550000000 Hz...'
  ==> '=Ubee= switch fAnnexMode'
  ==> 'Scanning (pattern) DS Channel at 542000000 Hz...'
  <== '/exit'
  ==> '=Ubee= switch fAnnexMode'

from bcm2-utils.

jclehner avatar jclehner commented on June 8, 2024

Retry with the latest commits. If that still doesn't work, re-run bcm2dump with -P evw32c!

from bcm2-utils.

jstjep00 avatar jstjep00 commented on June 8, 2024

It worked!! thank you very much :)

from bcm2-utils.

jclehner avatar jclehner commented on June 8, 2024

Without -P evw32c?

from bcm2-utils.

shuaigai2020 avatar shuaigai2020 commented on June 8, 2024

Hi Jstjep00:
how do you enable the telnet . i have a ubee product , but i always can not enable the telnet by cm config file though i make the GW online , i can not access any broadcom private mib , so i think my telnet enable configuration was ignored when GW register to CMTS . as i can not telnet , so i can not lunch the bcm2dump binary .
can you share some experience to me ?
thanks

from bcm2-utils.

shuaigai2020 avatar shuaigai2020 commented on June 8, 2024

from bcm2-utils.

shuaigai2020 avatar shuaigai2020 commented on June 8, 2024

Hi jclehner:
do you have the Ubee product all mib files ?

from bcm2-utils.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.