{"id":21367292,"url":"https://github.com/robang74/isar-nvidia-debian","last_synced_at":"2026-05-15T21:02:49.028Z","repository":{"id":61094522,"uuid":"542737080","full_name":"robang74/isar-nvidia-debian","owner":"robang74","description":"Build with ISAR an evaluation image based on Debian 11 (bullseye) selecting from nVidia GPU support (515.65.07) up to a graphic developing enviroment with the full nVidia software stack (11.7.1) running a standard debian kernel","archived":false,"fork":false,"pushed_at":"2023-07-27T11:16:36.000Z","size":296,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"devel","last_synced_at":"2025-09-20T10:43:52.798Z","etag":null,"topics":["debian","isar","nvidia","nvidia-cuda","nvidia-docker","nvidia-smi"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robang74.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2022-09-28T18:29:58.000Z","updated_at":"2025-01-06T01:00:24.000Z","dependencies_parsed_at":"2025-03-16T08:11:06.147Z","dependency_job_id":"ba8fb7db-0dab-4130-a1fc-1e0f5d800f7f","html_url":"https://github.com/robang74/isar-nvidia-debian","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/robang74/isar-nvidia-debian","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robang74%2Fisar-nvidia-debian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robang74%2Fisar-nvidia-debian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robang74%2Fisar-nvidia-debian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robang74%2Fisar-nvidia-debian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robang74","download_url":"https://codeload.github.com/robang74/isar-nvidia-debian/tar.gz/refs/heads/devel","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robang74%2Fisar-nvidia-debian/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33080361,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T20:25:35.270Z","status":"ssl_error","status_checked_at":"2026-05-15T20:25:34.732Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["debian","isar","nvidia","nvidia-cuda","nvidia-docker","nvidia-smi"],"created_at":"2024-11-22T07:18:34.572Z","updated_at":"2026-05-15T21:02:48.990Z","avatar_url":"https://github.com/robang74.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"ISAR debian image generator\n===========================\n\nBuild with ISAR an evaluation image based on Debian 11 (bullseye) selecting from\nnVidia GPU support (515.65.07) up to a graphic developing environment with the\nfull nVidia software stack (11.7.1) running a standard debian kernel\n\n\nSupport\n-------\n\nThis project is mainteind by Roberto A. Foglietta \u003croberto.foglietta@gmail.com\u003e\n\n\nAbout\n-----\n\nThe generated images run on x86 systems and the complete one includes a nVidia\nfull software stack for developing, debugging and tuning AI applications on the\ntop of the Debian 11 (bullseye) with a Gnome 3 and a dedicated Eclipse GUI:\n\n- EFI boot in a separate VFAT partition\n- Debian 11 operative system in EXT4 or BTRFS partition\n- application for networking, system maintenance and basic developing tools\n- CUDA libraries runtime and development, nVidia tuning and debugging tools\n- Gnome 3 desktop graphic environment with nVidia Eclipse devel interface\n\nThe size of the complete image is about 9.1 GB and it is supposed to run on bare\nhardware with a supported nVidia GPU dedicated for computational tasks and an\nintegrated primary graphic card for visualisation.\n\nThe most interesting others 2 images that can be created with this project are:\n\n- build-me: the basic-os with the docker-ce for isar build\n- nvdocker: the basic-os with the nvidia-docker2 + driver\n\nThe build-me is a 1.1 GB image that installed into a 120GB SSD/USB device can\nrun the ISAR environment in order to build every image in the full list.\nThese images do not contain any software from nVidia but just the ISAR tools.\n\nThe nvdocker is a 1.3 GB image that installed into a 120GB SSD/USB device can\nrun the AI applications into containers available in the nVidia catalog.\n\n\nRationale\n---------\n\nAn equivalent result can be obtained installing a Debian 11, adding the nVidia\nrepositories dedicated to the developers and the other one dedicated to the\ndocker runtime, then installing the `cuda-demo-suite-11-7` and `nvidia-docker2`\npackages.\n\nThe most sensitive difference between these two approaches is that the ISAR\nimage contains the open-source driver while the apt installed the closed-source.\n\nIn fact, this project is a proof-of-concept that shows how to add the open-source\nnVidia driver in a Debian 11 system integrating it with the proprietary full\nsoftware stack without violating the licence and being able to redistribute\nthe image, at least for some usages allowed by the licences (\\*).\n\n- https://opensource.stackexchange.com/questions/10082/geforce-nvidia-driver-license-for-commerical-use\n\nThis project aims to provide a way to deliver a system with nVidia full stack\nsoftware installed which is legally distributable also for commercial uses.\n\n- https://www.nvidia.com/en-us/drivers/unix\n\nIn fact, up today (515.76) the .run archive that contains the driver and the\nCUDA libraries is licenced in a way for which two essential operations are not\npermitted:\n\n- §2.1.2 does not allow the compilation essential for deliver a binary driver\n- §2.1.3 does not allow to repackage the .run content in many .deb packages\n\nThis project works around these limitations using the open-source driver\n\n- https://github.com/NVIDIA/open-gpu-kernel-modules\n\nin order to not violate the §2.1.2 and installing the nVidia software from their\npublic repositories without changing the .deb packages content and removing just\nfew dependencies - which are just text fields into a .deb architecture and have\nnothing to do with the content delivered aka package metadata, only - allows to\navoid installing the closed-source driver and the related packages.\n\nThis allows also to choose a complete different kernel version respect the\none delivered with the Debian 11 and compile it by an ISAR recipe applying\na custom configuration and patches like this one:\n\n- https://lore.kernel.org/lkml/20220921063638.2489-1-kprateek.nayak@amd.com\n\nthat unlock AMD Ryzen CPUs a more +51% of computation power lost due to an old bug.\n\n(\\*) **Legal notes**\n\n- no any warranty is granted and further license changes might happen. \n- debian legal ml https://lists.debian.org/debian-legal/2022/10/msg00004.html\n\n\nVirtual disk `build me` download\n--------------------------------\n\nEveryone without any authentication can download this virtual machine:\n\n- isar-buildme-vm.ova.7z.001 (140 MB)\n    - http://www.linuxteam.org/files/isar-buildme-vm.ova.7z.001\n\n- isar-buildme-vm.ova.7z.002 (139 MB)\n    - http://www.linuxteam.org/files/isar-buildme-vm.ova.7z.002\n\nwhich the integrity could be verified with these two different hashes:\n\n- md5sum 58526f014134073752b9c75cc53a0e4a isar-buildme-vm.ova.7z.001\n- md5sum 034b332027a4a413710c317c96f0436c isar-buildme-vm.ova.7z.002\n\n- sha1sum 59ed71725d1e32af8d16b974b62e0254f08a7dfe isar-buildme-vm.ova.7z.001\n- sha1sum 0b23641110ae0012a6c2742b7296a6d1fe61d7b7 isar-buildme-vm.ova.7z.002\n\nand let every Microsoft Windows user to build its own image using a virtual\nmachine like Oracle VirtualBox. Please note that in the VM settings you should\nactivate the EUFI boot (Settings, System, Enable EFI (special OSes only).\n\nThe virtual machine is accessible also by SSH using every client:\n\n\tssh -p2022 -o StrictHostKeyChecking=no root@localhost (password root)\n\nThe first action to do is to change the passwords for users: root and debraf\n\nYou might want to install the VirtualBox drivers to activate the shared folder\n\n    /home/debraf/vbox-guest-inst-by-apt.sh # for the network installation\n\n    /home/debraf/vbox-guest-inst-by-sr0.sh # for the installation by cdrom\n\nThe first time to access the local apt cache `sudo apt update` is needed\n\n\nDependencies\n------------\n\nA GNU/Linux host with docker or podman installed\n\n\tsudo apt install docker.io |XOR| docker-ce |XOR| podman\n\nUser account with permissions to run docker\n\n\tsudo usermod -aG docker $USER \u0026\u0026 newgrp docker\n\n\nBuilding and other commands\n---------------------------\n\nYou can load the repository shell profile in this way:\n\n\tsource .profile\n\nto laod the git functions and local scripts aliases\n\n\tbuild, clean, wicinst, wicshell, wicqemu\n\nOtherwise you can use this by command line:\n\n58526f014134073752b9c75cc53a0e4a  isar-buildme-vm.ova.7z.001\n034b332027a4a413710c317c96f0436c  isar-buildme-vm.ova.7z.002\n59ed71725d1e32af8d16b974b62e0254f08a7dfe  isar-buildme-vm.ova.7z.001\n0b23641110ae0012a6c2742b7296a6d1fe61d7b7  isar-buildme-vm.ova.7z.002\n\t./build.sh [ $BBTARGET | $IMAGE ]\n\nThe Bitbake target could be any recipe.\n\nHowever, to create an image you should choose one of these:\n\n\t./build.sh -h\n\nIt will show a list like this, in which the first field is the target:\n\n- basic-os: a debian 11 with some system/networking tools\n- build-me: the basic-os with the docker-ce for isar build\n- basicdev: the basic-os with the basic development tools\n- nvdocker: the basic-os with the nvidia-docker2 + driver\n- complete: the basicdev + nvdocker + Gnome3 + CUDA devel\n\nThe complete update images list lives in recipes-core/images/README.txt\n\nAfter having created an image you can chroot into it running this command\n\n\t./wicshell.sh\n\nThen you can clean the ISAR project with command\n\n\t./clean.sh isar\n\nor to clean quite everything in build but not downloads, this command\n\n\t./clean.sh all\n\nthe build/downloads folder is precious because it takes time to download again\n\n\nInstalling\n----------\n\nYou can find the image with this command\n\n\timgfile=$(find build/ -name eval-image-\\*.wic 2\u003e/dev/null)\n\nand install it with one of these two\n\n\tsudo dd if=${imgfile} of=/dev/${USBDISK} bs=1M status=progress\n\nor, if bmap-tools are installed,\n\n\tsudo bmaptool copy ${imgfile} /dev/${USBDISK}\n\non some system bmaptool fails to work, then simply deinstall it\n\nThe best way is to use this script\n\n\tsudo ./wicinst.sh /dev/${USBDISK}\n\nWith the script you can also transform your image in a VMDK file:\n\n\t./wicinst.sh vmdk:image.vmdk [$disk_size_in_gigabytes]\n\nthis requires qemu-img installing the qemu-utils deb package and\nthe last paramenter indicates the size in GB of the virtual disk\n\n\nExample\n-------\n\nFor example to create the `build me` vmdk 100 GiB image:\n\n\tsource .profile\n\tclean all\n\tbuild.sh build-me\n\twicinst vmdk:image-buildme-vm.vmdk 100\n\nthen in `docs/vm` there is the template to create the OVA package\n\n\tmakeova [$filename].ova [$disk_size_in_gigabyte] \n\ndo the magic to create the OVA archive in the top folder or this\n\n\twicinst ovaf:image-buildme-vm.ova 100\n\nwhich do the same using `makeova.sh` but with `wicinst` syntax\n\n\nProxy configure\n---------------\n\n\tsudo -s\n\tapt update \u0026\u0026 apt install -y squid squid-purge squidview ufw\n\tsed -i \"s,^\\(acl localnet src .*\\),#\\\\1,\" /etc/squid/squid.conf\n\n\tcat \u003e/etc/profile.d/squid_proxy_vars.sh \u003c\u003cEOF\n\texport no_proxy=localhost,$(hostname -s),127.0.0.0/8,::1\n\texport ftp_proxy=http://127.0.0.1:3128/\n\texport https_proxy=http://127.0.0.1:3128/\n\texport http_proxy=http://127.0.0.1:3128/\n\tEOF\n\tsource /etc/profile.d/squid_proxy_vars.sh\n\n\tmkdir -p /etc/systemd/system/docker.service.d\n\tipaddr=$(ip -4 -o a s dev docker0 | awk '{sub(\"/..\",\"\",$4); print $4}')\n\tcat \u003e/etc/systemd/system/docker.service.d/http-proxy.conf \u003c\u003cEOF\n\t[Service]\n\tEnvironment=\"HTTP_PROXY=${http_proxy/127.0.0.1/$ipaddr}\"\n\tEnvironment=\"HTTPS_PROXY=${https_proxy/127.0.0.1/$ipaddr}\"\n\tEnvironment=\"NO_PROXY=$no_proxy\"\n\tEnvironment=\"http_proxy=${http_proxy/127.0.0.1/$ipaddr}\"\n\tEnvironment=\"https_proxy=${https_proxy/127.0.0.1/$ipaddr}\"\n\tEnvironment=\"no_proxy=$not_proxy\"\n\tEOF\n\n\tcat \u003e/etc/squid/conf.d/docker.conf \u003c\u003cEOF\n\tacl dockernet src ${ipaddr/.*/}.0.0.0/8\n\thttp_access allow dockernet\n\tEOF\n\n\tufw allow squid\n\tsystemctl daemon-reload\n\tsystemctl restart docker\n\tsystemctl reload squid\n\n\nLicense\n-------\n\nAlmost all the files are under one of many FOSS licenses and the others are in\nthe public domain. Instead, the composition of these files is protected by the\nGPLv3 license under the effects of the [Copyright Act, title 17. USC §101](\nhttps://www.law.cornell.edu/uscode/text/17/101):\n\n\u003e Under the Copyright Act, a compilation [EdN: \"composition\" is used here as\nsynonym because compilation might confuse the technical reader about code\ncompiling] is defined as a \"collection and assembling of preexisting materials\nor of data [EdN: data includes source code, as well] that are selected in such\na way that the resulting work as a whole constitutes an original work of\nauthorship.\"\n\nThis means, for example, that everyone can use a single MIT licensed file or a\npart of it under the MIT license terms. Instead, using two of them or two parts\nof them implies that you are using a subset of this collection which is a\nderived work of this collection which is licensed under the GPLv3, also.\n\nThe GPLv3 license applies to the composition unless you are the original author\nof a specific unmodified file. This means that every one that can legally claim\nrights about the original files maintains its rights, obviously. Therefore the\noriginal authors do not need to undergo the GPLv3 license applied to the\ncomposition and they maintains their original right in full. Unless, they use\nthe entire composition or a part of it for which they had not the rights, \nbefore.\n\nSome files, documents, software or firmware components can make an exception to\nthe above general approach due to their specific copyright and license\nrestrictions. In doubt, follow the thumb rule of fair-use.\n\nMoreover, this project is a layer of a customised ISAR engine as defined in\nthe `kas.yml`. Some files of that project will transfered into the image thus\ntheir license also matters. Please also check the `README.md` of this\n\n- https://github.com/robang74/isar#license\n\nFor further information or requests about licensing and how to obtain a fork \nsuitable for your own business, please write to the project maintainer and\ncopyleft owner:\n\n- Roberto A. Foglietta \u003croberto.foglietta@gmail.com\u003e\n\nHave fun! \u003c3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobang74%2Fisar-nvidia-debian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobang74%2Fisar-nvidia-debian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobang74%2Fisar-nvidia-debian/lists"}