Installing software in genode

Sebastian Sumpf Sebastian.Sumpf at genode-labs.com
Fri Mar 24 10:25:30 CET 2023


Hi Divya,

On 3/23/23 13:44, Divya Sharma wrote:
> hello guys,
> 
> 1) going through all the documents but facing the below error while trying to 
> run a simple "hello" program using GOA
> https://genodians.org/nfeske/2019-11-25-goa 
> <https://genodians.org/nfeske/2019-11-25-goa>
> 
> [init -> hello] Error: LD: Non-RW/RX segment
> [init -> hello] Error: LD: exception during program load: 'Linker::Invalid_file'
> [init -> hello] Error: Uncaught exception of type 'Linker::Invalid_file'

This looks like the "hello" is not an ELF. Could you send the output of

! objdump -ph var/run/hello

- of your Goa project?

> And Also language used here is quite different from c++. so is there any 
> document for that?

TCL (documentation can be found on the Internet)

> 
> 2) going through this goa document also
> http://genodians.org/nfeske/2019-12-13-goa-unix-bash 
> <http://genodians.org/nfeske/2019-12-13-goa-unix-bash> PART 1
> https://genodians.org/nfeske/2019-12-19-goa-unix-terminal 
> <https://genodians.org/nfeske/2019-12-19-goa-unix-terminal>PART 2
> https://genodians.org/nfeske/2019-12-22-goa-unix-pipes 
> <https://genodians.org/nfeske/2019-12-22-goa-unix-pipes>PART 3
> https://genodians.org/nfeske/2020-01-16-goa-publish 
> <https://genodians.org/nfeske/2020-01-16-goa-publish> Publish Package
> but didn't get it how can I generate a custom app like "we create a simple 
> window using java in windows like buttons and simple input area"
> please guide me in this area also
> 
> If the question seems foolish, please be patient with it.

In principle you could build a simple window application on Windows. You would 
have to put the generated Byte-code *.jar in a *.tar (like done for hello.tar). 
Also you would need to update or replace the classes.tar with your version  [1] 
and add the generic Java classes for the UI. This might not work because 
additional shared libraries might have to be ported. You will see. Currently 
only a subset of the standard Java modules [2] are present (extracted 
classes.tar). If I were you I would not use Goa at the moment since you will 
have to change the JDK packages or even sources, this would be a follow up in 
case you got your scenario working, but rather adjust the "java.run" for you 
purpose.

Regards,

Sebastian

[1] contrib/jdk_gnerated-<hash>/./src/app/jdk/bin/classes.tar
[2]
./java.base
./java.base/com
./java.base/com/sun
./java.base/com/sun/crypto
./java.base/com/sun/crypto/provider
./java.base/com/sun/java
./java.base/com/sun/java/util
./java.base/com/sun/java/util/jar
./java.base/com/sun/java/util/jar/pack
./java.base/com/sun/net
./java.base/com/sun/net/ssl
./java.base/com/sun/net/ssl/internal
./java.base/com/sun/net/ssl/internal/ssl
./java.base/com/sun/net/ssl/internal/www
./java.base/com/sun/net/ssl/internal/www/protocol
./java.base/com/sun/net/ssl/internal/www/protocol/https
./java.base/com/sun/security
./java.base/com/sun/security/cert
./java.base/com/sun/security/cert/internal
./java.base/com/sun/security/cert/internal/x509
./java.base/com/sun/security/ntlm
./java.base/java
./java.base/java/io
./java.base/java/lang
./java.base/java/lang/annotation
./java.base/java/lang/invoke
./java.base/java/lang/module
./java.base/java/lang/ref
./java.base/java/lang/reflect
./java.base/java/math
./java.base/java/net
./java.base/java/net/spi
./java.base/java/nio
./java.base/java/nio/channels
./java.base/java/nio/channels/spi
./java.base/java/nio/charset
./java.base/java/nio/charset/spi
./java.base/java/nio/file
./java.base/java/nio/file/attribute
./java.base/java/nio/file/spi
./java.base/java/security
./java.base/java/security/acl
./java.base/java/security/cert
./java.base/java/security/interfaces
./java.base/java/security/spec
./java.base/java/text
./java.base/java/text/spi
./java.base/java/time
./java.base/java/time/chrono
./java.base/java/time/format
./java.base/java/time/temporal
./java.base/java/time/zone
./java.base/java/util
./java.base/java/util/concurrent
./java.base/java/util/concurrent/atomic
./java.base/java/util/concurrent/locks
./java.base/java/util/function
./java.base/java/util/jar
./java.base/java/util/regex
./java.base/java/util/spi
./java.base/java/util/stream
./java.base/java/util/zip
./java.base/javax
./java.base/javax/crypto
./java.base/javax/crypto/interfaces
./java.base/javax/crypto/spec
./java.base/javax/net
./java.base/javax/net/ssl
./java.base/javax/security
./java.base/javax/security/auth
./java.base/javax/security/auth/callback
./java.base/javax/security/auth/login
./java.base/javax/security/auth/spi
./java.base/javax/security/auth/x500
./java.base/javax/security/cert
./java.base/jdk
./java.base/jdk/internal
./java.base/jdk/internal/jimage
./java.base/jdk/internal/jimage/decompressor
./java.base/jdk/internal/jmod
./java.base/jdk/internal/jrtfs
./java.base/jdk/internal/loader
./java.base/jdk/internal/logger
./java.base/jdk/internal/math
./java.base/jdk/internal/misc
./java.base/jdk/internal/module
./java.base/jdk/internal/org
./java.base/jdk/internal/org/objectweb
./java.base/jdk/internal/org/objectweb/asm
./java.base/jdk/internal/org/objectweb/asm/commons
./java.base/jdk/internal/org/objectweb/asm/signature
./java.base/jdk/internal/org/objectweb/asm/tree
./java.base/jdk/internal/org/objectweb/asm/tree/analysis
./java.base/jdk/internal/org/objectweb/asm/util
./java.base/jdk/internal/org/xml
./java.base/jdk/internal/org/xml/sax
./java.base/jdk/internal/org/xml/sax/helpers
./java.base/jdk/internal/perf
./java.base/jdk/internal/ref
./java.base/jdk/internal/reflect
./java.base/jdk/internal/util
./java.base/jdk/internal/util/jar
./java.base/jdk/internal/util/xml
./java.base/jdk/internal/util/xml/impl
./java.base/jdk/internal/vm
./java.base/jdk/internal/vm/annotation
./java.base/jdk/internal/vm/cds
./java.base/jdk/internal/vm/cds/resources
./java.base/META-INF
./java.base/META-INF/services
./java.base/sun
./java.base/sun/invoke
./java.base/sun/invoke/empty
./java.base/sun/invoke/util
./java.base/sun/launcher
./java.base/sun/launcher/resources
./java.base/sun/net
./java.base/sun/net/dns
./java.base/sun/net/ext
./java.base/sun/net/ftp
./java.base/sun/net/ftp/impl
./java.base/sun/net/idn
./java.base/sun/net/sdp
./java.base/sun/net/smtp
./java.base/sun/net/spi
./java.base/sun/net/util
./java.base/sun/net/www
./java.base/sun/net/www/content
./java.base/sun/net/www/content/text
./java.base/sun/net/www/http
./java.base/sun/net/www/protocol
./java.base/sun/net/www/protocol/file
./java.base/sun/net/www/protocol/ftp
./java.base/sun/net/www/protocol/http
./java.base/sun/net/www/protocol/http/ntlm
./java.base/sun/net/www/protocol/https
./java.base/sun/net/www/protocol/jar
./java.base/sun/net/www/protocol/jmod
./java.base/sun/net/www/protocol/jrt
./java.base/sun/net/www/protocol/mailto
./java.base/sun/nio
./java.base/sun/nio/ch
./java.base/sun/nio/cs
./java.base/sun/nio/fs
./java.base/sun/reflect
./java.base/sun/reflect/annotation
./java.base/sun/reflect/generics
./java.base/sun/reflect/generics/factory
./java.base/sun/reflect/generics/parser
./java.base/sun/reflect/generics/reflectiveObjects
./java.base/sun/reflect/generics/repository
./java.base/sun/reflect/generics/scope
./java.base/sun/reflect/generics/tree
./java.base/sun/reflect/generics/visitor
./java.base/sun/reflect/misc
./java.base/sun/security
./java.base/sun/security/action
./java.base/sun/security/internal
./java.base/sun/security/internal/interfaces
./java.base/sun/security/internal/spec
./java.base/sun/security/jca
./java.base/sun/security/pkcs
./java.base/sun/security/pkcs10
./java.base/sun/security/pkcs12
./java.base/sun/security/provider
./java.base/sun/security/provider/certpath
./java.base/sun/security/provider/certpath/ssl
./java.base/sun/security/rsa
./java.base/sun/security/ssl
./java.base/sun/security/timestamp
./java.base/sun/security/tools
./java.base/sun/security/tools/keytool
./java.base/sun/security/util
./java.base/sun/security/validator
./java.base/sun/security/x509
./java.base/sun/text
./java.base/sun/text/bidi
./java.base/sun/text/normalizer
./java.base/sun/text/resources
./java.base/sun/text/resources/cldr
./java.base/sun/text/spi
./java.base/sun/util
./java.base/sun/util/calendar
./java.base/sun/util/cldr
./java.base/sun/util/locale
./java.base/sun/util/locale/provider
./java.base/sun/util/logging
./java.base/sun/util/resources
./java.base/sun/util/resources/cldr
./java.base/sun/util/spi
./jdk.httpserver
./jdk.httpserver/com
./jdk.httpserver/com/sun
./jdk.httpserver/com/sun/net
./jdk.httpserver/com/sun/net/httpserver
./jdk.httpserver/com/sun/net/httpserver/spi
./jdk.httpserver/sun
./jdk.httpserver/sun/net
./jdk.httpserver/sun/net/httpserver


> Thanks and Regards
> Divya.
> 
> 
> On Fri, Mar 17, 2023 at 2:50 PM Martin Stein <martin.stein at genode-labs.com 
> <mailto:martin.stein at genode-labs.com>> wrote:
> 
>     Hi Divya,
> 
>     There is the "DEPOT" env variable for gems/run/sculpt.run that can be
>     used for equipping your Sculpt with a TAR archive of packages you
>     reference in the deploy config (see depot_archive in gems/run/sculpt.run
>     and [5]).
> 
>     You most likely want to use the GOA tool [1-3] in order to bring your C
>     program to Sculpt. Of course, there is also the alternative of
>     publishing your own program from your Genode repo using the depot
>     tooling [4], but it requires more Genode-specific knowledge.
> 
>     I hope this helped?
> 
>     Cheers,
>     Martin
> 
>     [1] https://genodians.org/nfeske/2019-11-25-goa
>     <https://genodians.org/nfeske/2019-11-25-goa>
>     [2] https://genodians.org/nfeske/2020-05-27-autoconf-git
>     <https://genodians.org/nfeske/2020-05-27-autoconf-git>
>     [3] https://github.com/nfeske/goa <https://github.com/nfeske/goa>
>     [4] https://genode.org/documentation/developer-resources/package_management
>     <https://genode.org/documentation/developer-resources/package_management>
>     [5]
>     https://genode.org/documentation/release-notes/22.02#Framework_for_special-purpose_Sculpt-based_operating_systems <https://genode.org/documentation/release-notes/22.02#Framework_for_special-purpose_Sculpt-based_operating_systems>
> 
>     On 16.03.23 08:24, Divya Sharma wrote:
>      > hello everyone,
>      >
>      > 1) thanks for the suggestion, but the thing is we build genode for arm
>      > (virt_qemu) and currently, we are unable to configure nic driver, so
>      > there is no network, but in the above article, we need to fetch and
>      > download packages from repos.
>      >
>      > so is it possible to run a third party without the internet?
>      >
>      > 2) how to run a simple C program on an even on top of the GENODE x86 system?
>      >
>      > Thanks & regards
>      > Divya
>      >
>      > On Wed, Mar 8, 2023 at 8:43 AM John J. Karcher
>      > <devuser at alternateapproach.com <mailto:devuser at alternateapproach.com>
>     <mailto:devuser at alternateapproach.com <mailto:devuser at alternateapproach.com>>>
>      > wrote:
>      >
>      >     On 3/6/23 12:12, Divya Sharma wrote:
>      >     > Hello Genodian,
>      >     >
>      >     > How to install special-purpose software/Apps in genode?
>      >     > Like we create/install the software in windows.
>      >     > Please suggest some document
>      >
>      >     As you can imagine, due to Genode's more secure design, the software
>      >     installation process is somewhat different than traditional OSes.  One
>      >     of the main differences is that everything is broken into smaller
>      >     components (rather than large, monolithic packages), which you are free
>      >     to configure in various combinations as you see fit.
>      >
>      >     A couple of times a year, they release pre-built Sculpt disk images,
>      >     and
>      >     along with these they include a nice step-by-step introduction to using
>      >     the system.  The latest of these is at:
>      >
>      > https://genode.org/documentation/articles/sculpt-22-10
>     <https://genode.org/documentation/articles/sculpt-22-10>
>      >
>      >     This covers installing various software components, as well as how to
>      >     use other basic features of the system.
>      >
>      >     I hope this helps!
>      >
>      >       Happy Sculpting!
>      >
>      >        John J. Karcher
>      > devuser at alternateapproach.com <mailto:devuser at alternateapproach.com>
>     <mailto:devuser at alternateapproach.com <mailto:devuser at alternateapproach.com>>
>      >
>      >     _______________________________________________
>      >     Genode users mailing list
>      > users at lists.genode.org <mailto:users at lists.genode.org>
>     <mailto:users at lists.genode.org <mailto:users at lists.genode.org>>
>      > https://lists.genode.org/listinfo/users
>     <https://lists.genode.org/listinfo/users>
>      >
>      >
>      > _______________________________________________
>      > Genode users mailing list
>      > users at lists.genode.org <mailto:users at lists.genode.org>
>      > https://lists.genode.org/listinfo/users
>     <https://lists.genode.org/listinfo/users>
>      >
> 
>     _______________________________________________
>     Genode users mailing list
>     users at lists.genode.org <mailto:users at lists.genode.org>
>     https://lists.genode.org/listinfo/users
>     <https://lists.genode.org/listinfo/users>
> 
> 
> _______________________________________________
> Genode users mailing list
> users at lists.genode.org
> https://lists.genode.org/listinfo/users

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth







More information about the users mailing list