Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book Readers > Amazon Kindle > Kindle Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 09-29-2013, 02:55 PM   #31
brianinmaine
Evangelist
brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.
 
brianinmaine's Avatar
 
Posts: 457
Karma: 1287375
Join Date: Jan 2013
Location: West Gardiner, Maine
Device: Touch (5.3.7)
Quote:
Originally Posted by twobob View Post
the remote-debian thing was a "bad idea" in terms of compilation.

it runs things just fine but extremely heavy traffic (caused by compilation) can lock up the device sadly
Seemed like a great idea - too bad. Maybe I'll try to set up a remote swap file instead for this kind of stuff. I'd have to do some testing to see if it's faster or not.

Also, sometimes when some of you guys give answers it seems like you are talking in another language I have so much to learn just to get on the level when I can understand what you all are talking about!

I've seen buildroot and tried installed it, but then I did 'make xconfig' and didn't know what to select? I am running my own custom kernel on my laptop right now, there are just SO MANY options to choose from? Can you explain/share your config files? They are on a git site?
brianinmaine is offline   Reply With Quote
Old 09-29-2013, 03:32 PM   #32
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
twobob at this moment is running some large compile jobs using a local swap file on the kindle.

too soon to speculate what the results may be.
(Other than the Kindle isn't smoking (yet). )

lots of information in the output of: cat /proc/vmstat
I think the main ones would be pswpin, pswpout ("Page Swap {In,Out}")

And the pswpout should be equivalent to the number of erase blocks your re-writing in the flash.
The flash's on-board controller will cycle through all available ones, and there are a lot - it may be a long time before each has been written too even once.

Like I wrote above, we will have some metrics on using an internal, flash based, swap file - soon.

PS: Geekmaster was a big fan of using the NBD driver to access a remote swap file. Details in some of his posts.

Last edited by knc1; 09-29-2013 at 03:38 PM.
knc1 is offline   Reply With Quote
Advert
Old 09-29-2013, 03:56 PM   #33
twobob
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.
 
twobob's Avatar
 
Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
Quote:
Originally Posted by brianinmaine View Post
Seemed like a great idea - too bad. Maybe I'll try to set up a remote swap file instead for this kind of stuff. I'd have to do some testing to see if it's faster or not.

Also, sometimes when some of you guys give answers it seems like you are talking in another language I have so much to learn just to get on the level when I can understand what you all are talking about!

I've seen buildroot and tried installed it, but then I did 'make xconfig' and didn't know what to select? I am running my own custom kernel on my laptop right now, there are just SO MANY options to choose from? Can you explain/share your config files? They are on a git site?
yup. What knc1 said. I just bumped a post for you about swappage (with the amend of how I run it) - NOTE: I dont care if I destroy a kindle or two in the name of progress... You might.

Also: buildrooting a kindle 3 kernel has the vast majority of the options you need on it.


Just swap arm1136jf_s for CortexA8

THumb 2

hmmmm.. gimme sec EDIT: okay that should get you going

Niluje knows this stuff inside out but that is the thrust of it.
(and knc1)
Attached Thumbnails
Click image for larger version

Name:	Selection_697.png
Views:	221
Size:	18.0 KB
ID:	112387   Click image for larger version

Name:	Selection_698.png
Views:	183
Size:	20.9 KB
ID:	112388   Click image for larger version

Name:	Selection_699.png
Views:	228
Size:	43.5 KB
ID:	112389  

Last edited by twobob; 09-29-2013 at 04:02 PM.
twobob is offline   Reply With Quote
Old 09-29-2013, 04:05 PM   #34
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 13,506
Karma: 26047202
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
Yep, for the K4/K5/PW: ARCH: arm 32bit, le; CPU: cortex-a8; FPU: neon; FPU ABI: softfp; Instruction Set: Thumb2

Unless you are about accurate backtraces, you can safely bump the GCC optimization level to -O2 .
NiLuJe is offline   Reply With Quote
Old 09-29-2013, 04:16 PM   #35
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
For the K5 (both) with the exception of programs using SIMD code, you should get better results using VFP2 for the FPU specification (the 508 has dual VFP2 co-processors) than using neon.

Some of the newer GCC versions have an "auto-vectorize" feature, but I haven't kept track of which versions have good ARM SIMD (vector) support.

Last edited by knc1; 09-29-2013 at 05:03 PM.
knc1 is offline   Reply With Quote
Advert
Old 09-29-2013, 04:27 PM   #36
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 13,506
Karma: 26047202
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
@knc1: That's vfpv3 in terms of GCC flags, IIRC.

Thanks for clarifying that, though. I had it as a possible choice in a comment, but I never bothered to bench it ;p.
NiLuJe is offline   Reply With Quote
Old 09-29-2013, 04:36 PM   #37
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
Quote:
Originally Posted by NiLuJe View Post
@knc1: That's vfpv3 in terms of GCC flags, IIRC.

Thanks for clarifying that, though. I had it as a possible choice in a comment, but I never bothered to bench it ;p.
Might be - I was typing from memory.
Anyone would be best to read the gcc on-line manual arm options descriptions.

(Then they can make their own typos. )
knc1 is offline   Reply With Quote
Old 09-29-2013, 05:58 PM   #38
twobob
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.
 
twobob's Avatar
 
Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
3 hour compilation of the most ridiculously complex app.

root@kindle:/usr/local/src/PokerTH-1.0.1-src# cat /proc/vmstat
nr_free_pages 1877
nr_inactive_anon 811
nr_active_anon 34
nr_inactive_file 47421
nr_active_file 4899
nr_unevictable 0
nr_mlock 0
nr_anon_pages 785
nr_mapped 685
nr_file_pages 52544
nr_dirty 3706
nr_writeback 0
nr_slab_reclaimable 2467
nr_slab_unreclaimable 1156
nr_page_table_pages 261
nr_unstable 0
nr_bounce 0
nr_vmscan_write 48910
nr_writeback_temp 0
pgpgin 2447857
pgpgout 2067216
pswpin 6376
pswpout 33043
pgalloc_dma 1315218
pgalloc_normal 4687178
pgalloc_movable 0
pgfree 6004292
pgactivate 413375
pgdeactivate 1065840
pgfault 6823807
pgmajfault 17259
pgrefill_dma 384646
pgrefill_normal 736266
pgrefill_movable 0
pgsteal_dma 222540
pgsteal_normal 571762
pgsteal_movable 0
pgscan_kswapd_dma 205506
pgscan_kswapd_normal 544616
pgscan_kswapd_movable 0
pgscan_direct_dma 107361
pgscan_direct_normal 248259
pgscan_direct_movable 0
pginodesteal 5052
slabs_scanned 357888
kswapd_steal 585212
kswapd_inodesteal 72054
pageoutrun 7581
allocstall 3024
pgrotated 26801
unevictable_pgs_culled 2058
unevictable_pgs_scanned 0
unevictable_pgs_rescued 2163
unevictable_pgs_mlocked 2313
unevictable_pgs_munlocked 2163
unevictable_pgs_cleared 0
unevictable_pgs_stranded 0
unevictable_pgs_mlockfreed 0
twobob is offline   Reply With Quote
Old 09-29-2013, 06:26 PM   #39
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
Code:
pswpin 6376
pswpout 33043
With about 1 million erase blocks, I don't think erasing 33,000 of them, once each, is going to shorten your Kindle's life span a noticeable amount.
knc1 is offline   Reply With Quote
Old 09-29-2013, 06:28 PM   #40
twobob
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.
 
twobob's Avatar
 
Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
excellent - thanks!

should mention I had the framework - and X utterly stopped for this escapade.
twobob is offline   Reply With Quote
Old 09-30-2013, 10:50 AM   #41
brianinmaine
Evangelist
brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.
 
brianinmaine's Avatar
 
Posts: 457
Karma: 1287375
Join Date: Jan 2013
Location: West Gardiner, Maine
Device: Touch (5.3.7)
Quote:
Originally Posted by twobob View Post
excellent - thanks!

should mention I had the framework - and X utterly stopped for this escapade.
How big was the swap you made? Do you think it helped or will you try the same test without swap?


Also:
I have a chroot on my debian laptop of the arm version of debian with qemu on it so I can chroot into it. If I specify:
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
during builds, isn't this the same thing as compiling on the Kindle? Can I 'force the chroot to pretend to be a Kindle? This would allow me to have as much space as I want and a MUCH faster processor..
brianinmaine is offline   Reply With Quote
Old 09-30-2013, 11:08 AM   #42
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
Quote:
Originally Posted by brianinmaine View Post
How big was the swap you made? Do you think it helped or will you try the same test without swap?


Also:
I have a chroot on my debian laptop of the arm version of debian with qemu on it so I can chroot into it. If I specify:
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
during builds, isn't this the same thing as compiling on the Kindle? Can I 'force the chroot to pretend to be a Kindle? This would allow me to have as much space as I want and a MUCH faster processor..
He used a 256Mbyte swap file.

You should not have to specify --build --host or --target inside of the chroot being run under QEMU.
Just be sure you start QEMU with the matching processor emulation.

Yes, you can have more (and faster - the flash is slow to write) space than you can on a Kindle.

Of course, depending on the horsepower of your host, you might even reach (or beat) the same emulated speed as that which is natural to a K5.

Under QEMU, you will probably need at least a 2.5Ghz, quad-core machine.

If really serious, you probably want to use OVP rather than QEMU:
http://www.ovpworld.org/
knc1 is offline   Reply With Quote
Old 09-30-2013, 11:18 AM   #43
brianinmaine
Evangelist
brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.brianinmaine ought to be getting tired of karma fortunes by now.
 
brianinmaine's Avatar
 
Posts: 457
Karma: 1287375
Join Date: Jan 2013
Location: West Gardiner, Maine
Device: Touch (5.3.7)
This is what I did:
Code:
To be able to chroot into a target file system, the qemu emulator for the target CPU needs to be accessible from inside the chroot jail. For this to work, you need first to install the qemu-user-static package:

# apt-get install qemu-user-static
You cannot use the dynamically linked qemu because the host libraries will not be accessible from inside the chroot.

Next, copy the emulator for the target architecture to the path registered by binfmt-support. For example, for an ARM target file system, you need to do the following:

# cp /usr/bin/qemu-arm-static /target_fs/usr/bin
You should now be able to chroot into the file system:

# chroot /target_fs/
seems pretty quick, not like loading a regular Debian in a virtual machine?
brianinmaine is offline   Reply With Quote
Old 09-30-2013, 11:30 AM   #44
twobob
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.
 
twobob's Avatar
 
Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
Quote:
Originally Posted by brianinmaine View Post
This is what I did:
Code:
To be able to chroot into a target file system, the qemu emulator for the target CPU needs to be accessible from inside the chroot jail. For this to work, you need first to install the qemu-user-static package:

# apt-get install qemu-user-static
You cannot use the dynamically linked qemu because the host libraries will not be accessible from inside the chroot.

Next, copy the emulator for the target architecture to the path registered by binfmt-support. For example, for an ARM target file system, you need to do the following:

# cp /usr/bin/qemu-arm-static /target_fs/usr/bin
You should now be able to chroot into the file system:

# chroot /target_fs/
seems pretty quick, not like loading a regular Debian in a virtual machine?

I'm gonna try this now.
twobob is offline   Reply With Quote
Old 09-30-2013, 11:43 AM   #45
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
You still have to get the start-up command line passed to QEMU correct for the Kindle model processor your emulating.
(Which is doable, just missing from Brian's post.)

See the "qemu sub-tree" of the Buildroot distribution for examples.

And if your starting QEMU in 'system' mode (not running its own kernel, but using your host's kernel) -
Keep in mind that QEMU is just re-directing system calls to your host's linux kernel.
Which, sometimes, means your host needs to be running the same kernel version (to get the system calls to match the emulated system).

- - - - -

Yes, I know, the water is getting deeper and the current stronger - - but its all doable - just swim harder.
knc1 is offline   Reply With Quote
Reply


Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Compiling for Lubuntu (regarding compiling instructions) jgratero Sigil 5 07-15-2012 07:54 PM
Cross compiling for the Kindle - wrong glibc version ninjageckoattack Kindle Developer's Corner 14 02-25-2012 04:44 PM
cross compiling links dent Kindle Developer's Corner 1 02-07-2011 08:42 AM
cross-compiling gstreamer for the kindle3 dent Kindle Developer's Corner 9 02-04-2011 08:39 AM
Problems compiling unkilbeeg Sigil 1 09-13-2009 01:49 PM


All times are GMT -4. The time now is 09:45 PM.


MobileRead.com is a privately owned, operated and funded community.