Hi,

Sorry for the delayed response. You’re right that finding example code in the 
boards directory isn’t always easy. I plan to update the patch soon and will 
try to make the documentation more understandable through this update.
Thank you for your valuable feedback.

Best regards,
Jianyu Wang

________________________________
发件人: Sebastien Lorquet <[email protected]>
发送时间: 2025年10月23日 18:53
收件人: [email protected]
主题: Re: 答复: [External Mail]Re: NuttX and Android System Init

[外部邮件] 此邮件来源于小米公司外部,请谨慎处理。若对邮件安全性存疑,请将邮件转发给[email protected]进行反馈

Hello again

Documentation is always a good start, it could have more examples and
current status about actually supported features, and differences with
the android documentation pointed elsewhere.

It is not always fun to dig useful example code in the boards dir,
beginners will hate it and may not even think about that.

Sebastien


On 10/23/25 12:37, Sebastien Lorquet wrote:
> Hello
>
> I reviewed your code and I find it very cool.
>
> You did a great job on implementing some quite compact and efficient
> code.
>
> I like that you did not try to implement properties that look like the
> most complex and probably less usefull stuff of this whole thing. If
> you do want to implement properties, please make sure that this part
> is entirely optional and the code still can be built without it.
>
> However, this init thing is rather specific for complex systems with
> several services. It must absolutely be kept optional and not forced
> on small systems.
>
>
> Documentation of this program is absolutely a requirement to make it
> shine to its proper value, I think it is so useful and a nice addition
> to NuttX that it must be improved as much as possible so people can
> use it easily without struggles.
>
> I actually see myself trying to use this in one of our products. It
> solves many use cases we had to deal with, including services with
> dependencies, stuff to do after net is initialized, test modes, etc.
>
> I support the inclusion of this app once the naming problems are
> addressed. I have no additional added value here, I already made a
> proposal of a new top directory in apps to support system
> initialization programs, because system/init is a bit too generic.
>
>
> When I get the occasion I will try to evaluate it and make it work on
> a nucleo based stm32h7 board.
>
>
> Sebastien
>
>
> On 10/22/25 07:07, 王健宇 wrote:
>> Dear All,
>> Thank you, and hello everyone. Please allow me to add some
>> (potentially redundant) information as follows:
>>
>>    1.
>> Reasons for adding this module: As Tomek helped supplement earlier,
>> the main considerations include code size (the shell module is not
>> always required) and daemon management (such as status monitoring and
>> restarting of services).
>>    2.
>> Reasons for naming it "init": From a functional perspective, this
>> module is used for system initialization. Referring to Linux
>> distributions and Android, modules with similar functions are
>> generally named "systemd" or "init".
>>    3.
>> Regarding NuttX’s support for multiple init entry points: I conducted
>> a simple filter using the command find boards/ -name defconfig |
>> xargs grep INIT_ENTRYPOINT | cut -d ':' -f 2- | sort -u, and it turns
>> out this is indeed the case. However, not all of their logic is used
>> for system initialization. For example,
>> CONFIG_INIT_ENTRYPOINT="hello_main" and
>> CONFIG_INIT_ENTRYPOINT="ostest_main". The well-known and excellent
>> NSH supports almost all system initialization functions;
>> unfortunately, it lacks daemon management. Moreover, in scenarios
>> where code size is a critical concern, NSH may be somewhat bulky.
>> Therefore, we might need a dedicated module for system initialization.
>>    4.
>> About the module’s implementation: This module is a new
>> implementation and not a port of Android Init. During the development
>> process, I studied the source code of the excellent Android Init, but
>> this module is more streamlined and compatible with most syntax of
>> the Android Init Language.
>>
>> Personally, from a functional perspective, I tend to use
>> apps/system/init and CONFIG_SYSTEM_INIT. However, if you have more
>> comprehensive considerations, options like apps/android/init and
>> CONFIG_ANDROID_INIT are also acceptable to me.
>>
>>
>> Best regards,
>>
>> Jianyu Wang
>>
>> ________________________________
>> 发件人: Tomek CEDRO <[email protected]>
>> 发送时间: 2025年10月22日 11:37:31
>> 收件人: [email protected]
>> 主题: [External Mail]Re: NuttX and Android System Init
>>
>> [外部邮件]
>> 此邮件来源于小米公司外部,请谨慎处理。若对邮件安全性存疑,请将邮件转发给[email protected]进行反馈
>>
>>
>> Okay Jianyu Wang, author of the Android System Init in NuttX code,
>> joined the dev@ mailing list, welcome, below is the discussion history
>> as read from the bottom up direction :-)
>> Tomek
>>
>> On Tue, Oct 21, 2025 at 11:18 PM Tomek CEDRO <[email protected]> wrote:
>>> Okay I have provided feedback from the dev@ list to the gh prs and
>>> here comes the reply ;-)
>>>
>>> The main advantages of this Android System Init on NuttX:
>>> * it is custom trimmed down code implementing android system init
>>> compatible functionality.
>>> * it can run as standalone app that replaces nsh.
>>> * it provides ~10x smaller footprint over nsh.
>>>
>>> I invited Wang to join discussion here on the mailing list :-)
>>>
>>> There may be use cases for this. My proposition is to move all Android
>>> related stuff to apps/android that is apps/android/system/init and
>>> apps/android/fastboot. Also to rename kconfig variables so instead
>>> CONFIG_SYSTEM_SYSTEM it will be CONFIG_ANDROID_SYSTEM or similar? What
>>> do you think folks? :-)
>>>
>>> Thanks :-)
>>> Tomek
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Tue, Oct 21, 2025 at 8:29 AM Luchian Mihai
>>> <[email protected]> wrote:
>>>> Hi Tomek,
>>>>
>>>> I am already more present in the project overall.
>>>> I usually leave comments rather than start reviews (regarding PRs).
>>>>
>>>> There are already comments on Pull Request for the documentation.
>>>> This subject that I've raised was more suited for the mailing list. It
>>>> reaches more of the community overall.
>>>>
>>>> More input than mine is needed if we want a resolution.
>>>>
>>>> Cheers,
>>>> Mihai
>>>>
>>>> On Tue, 21 Oct 2025 at 02:17, Tomek CEDRO <[email protected]> wrote:
>>>>
>>>>> Yeah, it is good to have a choice, maybe someone will find this
>>>>> solution useful and better fit for some applications, but.. we can
>>>>> already see some confusion with all different system / init
>>>>> solutions,
>>>>> so we should clearly distinguish the naming and functional separation
>>>>> (system system init does not say anything at all), and better
>>>>> documentation right from start (like Alan already requested and
>>>>> Luchian noted).
>>>>>
>>>>> Luchian noticed a common but important problem - one person who
>>>>> create
>>>>> some solution does not create good (or any) documentation right from
>>>>> start and then anyone who touches the solution needs to reinvent the
>>>>> wheel, what is tremendous waste of time and resources. I am sometimes
>>>>> dropped into such rabbit hole in various projects and it takes weeks
>>>>> or months to understand what is going on :D Good point! Luchian could
>>>>> you please provide feedback on the Pull Requests too?
>>>>>
>>>>> Thanks! :-)
>>>>> Tomek
>>>>>
>>>>>
>>>>> On Tue, Oct 21, 2025 at 1:00 AM Alan C. Assis <[email protected]>
>>>>> wrote:
>>>>>> Hi Luchian,
>>>>>> that is what I suggested in the Documentation: before saying what
>>>>>> Android
>>>>>> System Init is, the documentation needs to explain what it is
>>>>>> solving on
>>>>>> NuttX.
>>>>>>
>>>>>> More important than that: starts explaining the existing
>>>>>> solutions and
>>>>> when
>>>>>> to use them.
>>>>>>
>>>>>> As Xiang commented in the PR, their initial plan was to implement
>>>>> SystemV,
>>>>>> but it was more complex (and probably bigger).
>>>>>>
>>>>>> So Android System Init could be more beneficial for someone
>>>>>> implemented
>>>>>> deep embedded system with NuttX.
>>>>>>
>>>>>> But I didn't give up trying to get the SystemV Init
>>>>>> implementation from
>>>>>> Google, maybe someone there could help us.
>>>>>>
>>>>>> BR,
>>>>>>
>>>>>> Alan
>>>>>>
>>>>>> On Monday, October 20, 2025, Luchian Mihai
>>>>>> <[email protected]>
>>>>> wrote:
>>>>>>> Hello all,
>>>>>>>
>>>>>>> This might stir the waters a bit, but I think it needs to be said.
>>>>>>>
>>>>>>> I know Alan already pointed out the need for docs in the PR
>>>>>>> comments,
>>>>> but
>>>>>>> just the documentation is not enough.
>>>>>>>
>>>>>>> I think we (the community) or the PMC should be more assertive
>>>>> regarding
>>>>>>> these kinds of features.
>>>>>>> Why do we need another init system? What does this new init system
>>>>> solve?
>>>>>>> What should happen with the previous ones?
>>>>>>> Do not get me wrong, I am not against this new init system, I am in
>>>>> favour.
>>>>>>> While NuttX excels in posix compliance as a single standard, a
>>>>>>> lot of
>>>>> other
>>>>>>> things lack unity.
>>>>>>> Lacking a "default" way of doing things ends up in "hidden
>>>>>>> features",
>>>>> or
>>>>>>> rather, features
>>>>>>> that are used and known by a set of people.
>>>>>>>
>>>>>>> There is also support for fastboot and adb, so the android init
>>>>>>> system
>>>>>>> makes sense,
>>>>>>> but I see nothing that explains why they are present in the first
>>>>> place.
>>>>>>> Did they solve something, some time ago? Is the NuttX project
>>>>>>> aligning
>>>>> with
>>>>>>> the android tooling?
>>>>>>>
>>>>>>> I would like to point out my experience as a new contributor. It
>>>>>>> took
>>>>> me a
>>>>>>> few months to get the hang of how the thing should be done,
>>>>>>> or at least what the majority agrees. There are board examples that
>>>>> differ,
>>>>>>> but neither are wrong also.
>>>>>>> The system initialization is the same, I've read documentation
>>>>>>> about
>>>>> `exec`
>>>>>>> and `posix_spawn` and `task_create`,
>>>>>>> and I am writing docs about the flat, protected, kernel build.
>>>>>>> Yet, I
>>>>> still
>>>>>>> did not find the "NuttX way to leave" the kernel.
>>>>>>> And here we have another init system.
>>>>>>>
>>>>>>> For me this just feels more of a feature creep than a milestone,
>>>>>>> sorry.
>>>>>>>
>>>>>>> It's hard to market (from my own experience) NuttX as anything
>>>>>>> other
>>>>> than
>>>>>>> "high quality code" if it takes days to
>>>>>>> figure out the solution (out of the existing few) for a specific
>>>>> problem.
>>>>>>> I suggest defining the expectations about this PR, and make a
>>>>>>> separate
>>>>>>> documentation page.
>>>>>>> Is something that NuttX wants to adopt going forward, that is
>>>>>>> great.
>>>>>>> Will it help only part of the community, that is also great.
>>>>>>> The only thing I ask is to make that as obvious as possible, it's
>>>>> tiring to
>>>>>>> "unravel the NuttX lore" from the mailing list.
>>>>>>>
>>>>>>> Cheers,
>>>>>>> Mihai
>>>>>>>
>>>>>>> On Mon, 20 Oct 2025 at 19:09, Tomek CEDRO <[email protected]> wrote:
>>>>>>>
>>>>>>>> well. :-(
>>>>>>>>
>>>>>>>> On Mon, Oct 20, 2025 at 3:02 PM Alan C. Assis <[email protected]>
>>>>> wrote:
>>>>>>>>> +1
>>>>>>>>>
>>>>>>>>> It is better to use the right naming.
>>>>>>>>>
>>>>>>>>> Fitbit implemented support for System V on NuttX and promised to
>>>>> donate
>>>>>>>> it,
>>>>>>>>> but after Google acquired them, none contribution came from them.
>>>>>>>>>
>>>>>>>>> Google also used NuttX on ARA Project, but no single code line
>>>>>>>>> was
>>>>>>>>> submitted to the NuttX mainline.
>>>>>>>>>
>>>>>>>>> BR,
>>>>>>>>>
>>>>>>>>> Alan
>>>>>>>>>
>>>>>>>>> On Mon, Oct 20, 2025 at 8:07 AM Tomek CEDRO <[email protected]>
>>>>> wrote:
>>>>>>>>>> Hello world :-)
>>>>>>>>>>
>>>>>>>>>> There is a very interesting and useful PR by @JianyuWang0623
>>>>>>>>>> that
>>>>>>> adds
>>>>>>>>>> support for Android System Init functionality to NuttX [1][2]
>>>>> with
>>>>>>>>>> working example on qemu [3]. This is alternative to SystemV Init
>>>>> and
>>>>>>>>>> probably other init designs. Please help in reviewing the change
>>>>> :-)
>>>>>>>>>> My only concern is naming convention here because just "system"
>>>>> and
>>>>>>>>>> "system init" is used (i.e. CONFIG_SYSTEM_INIT,
>>>>>>> CONFIG_SYSTEM_SYSTEM).
>>>>>>>>>> This may be a bit confusing because we do not know what init
>>>>> system
>>>>>>>>>> standard is used and we silently assume Android. My proposition
>>>>> is to
>>>>>>>>>> use "Android System Init" naming convention (i.e.
>>>>>>>>>> CONFIG_SYSTEM_ANDROID_INIT or something like that), so things
>>>>>>>>>> are
>>>>>>>>>> self-explanatory, and other init systems may be used when
>>>>> necessary
>>>>>>> in
>>>>>>>>>> future without confusion. I am not insisting here and will
>>>>> follow the
>>>>>>>>>> community choice.
>>>>>>>>>>
>>>>>>>>>> Please let us know what you think :-)
>>>>>>>>>>
>>>>>>>>>> Thanks :-)
>>>>>>>>>> Tomek
>>>>>>>>>>
>>>>>>>>>> [1] https://github.com/apache/nuttx-apps/pull/3192
>>>>>>>>>> [2] https://github.com/apache/nuttx/pull/17215
>>>>>>>>>> [3] https://github.com/apache/nuttx/pull/17215
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
>>>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
>>>>>
>>>
>>>
>>> --
>>> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
>>
>>
>> --
>> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
>> #/******本邮件及其附件含有小米公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件!
>> This e-mail and its attachments contain confidential information from
>> XIAOMI, which is intended only for the person or entity whose address
>> is listed above. Any use of the information contained herein in any
>> way (including, but not limited to, total or partial disclosure,
>> reproduction, or dissemination) by persons other than the intended
>> recipient(s) is prohibited. If you receive this e-mail in error,
>> please notify the sender by phone or email immediately and delete
>> it!******/#
#/******本邮件及其附件含有小米公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件!
 This e-mail and its attachments contain confidential information from XIAOMI, 
which is intended only for the person or entity whose address is listed above. 
Any use of the information contained herein in any way (including, but not 
limited to, total or partial disclosure, reproduction, or dissemination) by 
persons other than the intended recipient(s) is prohibited. If you receive this 
e-mail in error, please notify the sender by phone or email immediately and 
delete it!******/#

Reply via email to