{"id":21388094,"url":"https://github.com/grisp/mix_grisp","last_synced_at":"2025-09-12T07:42:55.829Z","repository":{"id":32981364,"uuid":"148630360","full_name":"grisp/mix_grisp","owner":"grisp","description":"Mix plug-in for GRiSP","archived":false,"fork":false,"pushed_at":"2025-08-18T08:22:21.000Z","size":55,"stargazers_count":5,"open_issues_count":3,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-08-18T10:15:01.739Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.grisp.org","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grisp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-09-13T11:52:17.000Z","updated_at":"2025-08-18T08:22:25.000Z","dependencies_parsed_at":"2025-07-13T15:32:35.026Z","dependency_job_id":"6508fe6d-56a3-4834-a07f-7659e61c4039","html_url":"https://github.com/grisp/mix_grisp","commit_stats":{"total_commits":16,"total_committers":3,"mean_commits":5.333333333333333,"dds":0.3125,"last_synced_commit":"d8e7b8f527ee77b148e38c9df79bcb605e32fd76"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/grisp/mix_grisp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grisp%2Fmix_grisp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grisp%2Fmix_grisp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grisp%2Fmix_grisp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grisp%2Fmix_grisp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grisp","download_url":"https://codeload.github.com/grisp/mix_grisp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grisp%2Fmix_grisp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274777673,"owners_count":25347648,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T12:15:57.371Z","updated_at":"2025-09-12T07:42:55.805Z","avatar_url":"https://github.com/grisp.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GRiSP Mix plug-in\n\nMix plug-in to build and deploy GRiSP applications for the [GRiSP board][grisp].\n\n## Summary\n\nThe package can be installed by adding `mix_grisp` to your list of dependencies\nin `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:mix_grisp, \"~\u003e 0.2.0\", only: :dev}\n  ]\nend\n```\n\n## New Project Step-By-Step\n\n### Create New Project\n\nCreate a project using Elixir default project template:\n\n    ```\n    $ mix new testex --module TestEx\n    $ cd testex\n    ```\n\n### Add Dependencies\n\nAdd the following dependencies in the project configuration `mix.exs`:\n\n    ```\n        defp deps do\n            [\n                ...\n                {:grisp, \"~\u003e 2.4\"},\n                {:mix_grisp, \"~\u003e 0.2.0\", only: :dev},\n            ]\n        end\n    ```\n\n### Configure Grisp\n\nAdd the following configuration to your project configuration `mix.exs`:\n\n    ```\n        def project do\n            [\n                ...\n                grisp: grisp(),\n                releases: releases()\n            ]\n        end\n\n        def grisp do\n            [\n                otp: [version: \"27\"],\n                deploy: [\n                    # pre_script: \"rm -rf /Volumes/GRISP/*\",\n                    # destination: \"tmp/grisp\"\n                    # post_script: \"diskutil unmount /Volumes/GRISP\",\n                ]\n            ]\n        end\n\n        def releases do\n            [\n                {:myapp,\n                    [\n                        overwrite: true,\n                        cookie: \"grisp\",\n                        include_erts: \u0026MixGrisp.Release.erts/0,\n                        steps: [\u0026MixGrisp.Release.init/1, :assemble],\n                        include_executables_for: [],\n                        strip_beams: Mix.env() == :prod\n                    ]}\n                ]\n        end\n    ```\n\nYou can uncomment the lines in the `deploy` list after setting the proper mount\npoint for your SD card if you want to deploy directly to it. The destination can be\na normal path if you want to deploy to a local directory.\n\nAdd the following boot configuration files after changing `GRISP_HOSTNAME` to\nthe hostname you want the grisp board to have, `WLAN_SSID` and `WLAN_PASSWORD`\nto the ssid and password of the WiFi network the Grisp board should connect to.\n\n    * `grisp/grisp2/common/deploy/files/grisp.ini.mustache`\n\n        ```\n        [erlang]\n        args = erl.rtems -C multi_time_warp -- -mode embedded -home . -pa . -root {{release_name}} -bindir {{release_name}}/erts-{{erts_vsn}}/bin -boot {{release_name}}/releases/{{release_version}}/start -boot_var RELEASE_LIB {{release_name}}/lib  -config {{release_name}}/releases/{{release_version}}/sys.config -s elixir start_iex -extra --no-halt\n        shell = none\n\n        [network]\n        ip_self=dhcp\n        wlan=enable\n        hostname=GRISP_HOSTNAME\n        wpa=wpa_supplicant.conf\n        ```\n\n\n    * `grisp/grisp2/common/deploy/files/wpa_supplicant.conf`\n\n        ```\n        network={\n            ssid=\"WLAN_SSID\"\n            key_mgmt=WPA-PSK\n            psk=\"WLAN_PASSWORD\"\n        }\n        ```\n\n### Add Configuration\n\nIf not generated bu Mix template, add the file `config/config.exs`:\n\n    ```\n    import Config\n    ```\n\n### Check OTP Version\n\nVerify that your default erlang version matches the one configured\n(26 in the example).\n\nThis is required because the beam files are compiled locally and need to be\ncompiled by the same version of the VM.\n\n### Get Dependencies\n\nGet all the dependencies:\n\n    ```\n    $ mix deps.get\n    ```\n\n### Deploy The Project\n\nTo deploy, use the grisp command provided by `mix_grisp`:\n\n    ```\n    $ mix grisp.deploy\n    ```\n\n### Troubleshooting\n\n#### This BEAM file was compiled for a later version of the run-time system\n\nSome bema files were compiled with a newer version of OTP, delete `_build` and\n`deps`, get the fresh dependencies (`mix deps.get`), and redeploy\n(`mix grisp.deploy`).\n\n[grisp]: https://www.grisp.org\n\n\n## Enabling Erlang Distribution\n\n\n1. Add the erlang epmd to your release to be able to run Erlang distribution on GRiSP\n\n   1. Add the following line in your deps, this will ship epmd without starting it at boot.\n\n      ```elixir\n      {:epmd, git: \"https://github.com/erlang/epmd\", ref: \"4d1a59\", runtime: false},\n      ```\n\n   2. Add epmd to the included applications so its modules are loaded at runtime\n  \n      ```elixir\n       def application do\n        [\n          extra_applications: [:logger],\n          included_applications: [:epmd]\n        ]\n      end\n      ```\n\n2. Read the GRiSP.ini chapter of the [wiki](https://github.com/grisp/grisp/wiki/Connecting-over-WiFI-and-Ethernet#grisp-ini)\n\n3. Your grisp.ini.mustache file `args` should terminate with the following flags, choose a nodename and cookie of your liking.\n    ```\n    ... -s elixir start_iex -kernel inetrc \"./erl_inetrc\" -internal_epmd epmd_sup -sname mynode -setcookie mycookie -extra --no-halt\n    ```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrisp%2Fmix_grisp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrisp%2Fmix_grisp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrisp%2Fmix_grisp/lists"}