{"id":21597233,"url":"https://github.com/kkkgo/vlmcsd","last_synced_at":"2025-05-16T08:04:57.568Z","repository":{"id":37549773,"uuid":"93187598","full_name":"kkkgo/vlmcsd","owner":"kkkgo","description":"🔑Portable open-source KMS Emulator in C","archived":false,"fork":false,"pushed_at":"2024-01-06T16:07:45.000Z","size":43521,"stargazers_count":1081,"open_issues_count":1,"forks_count":310,"subscribers_count":50,"default_branch":"master","last_synced_at":"2025-04-08T19:24:12.881Z","etag":null,"topics":["emulated-kms-servers","kms","vlmcsd"],"latest_commit_sha":null,"homepage":"https://forums.mydigitallife.net/threads/emulated-kms-servers-on-non-windows-platforms.50234/","language":"C","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kkkgo.png","metadata":{"files":{"readme":"README.compile-and-pre-built-binaries","changelog":"ChangeLog","contributing":null,"funding":null,"license":null,"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":"2017-06-02T17:11:00.000Z","updated_at":"2025-04-06T12:25:10.000Z","dependencies_parsed_at":"2025-04-01T16:27:02.124Z","dependency_job_id":null,"html_url":"https://github.com/kkkgo/vlmcsd","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kkkgo%2Fvlmcsd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kkkgo%2Fvlmcsd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kkkgo%2Fvlmcsd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kkkgo%2Fvlmcsd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kkkgo","download_url":"https://codeload.github.com/kkkgo/vlmcsd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254493378,"owners_count":22080126,"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","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":["emulated-kms-servers","kms","vlmcsd"],"created_at":"2024-11-24T18:08:21.883Z","updated_at":"2025-05-16T08:04:52.558Z","avatar_url":"https://github.com/kkkgo.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"Compilation and pre-built binaries FAQ\n======================================\n\nWhat is the best pre-built binary for my system or device?\n----------------------------------------------------------\n\nNone. The best binary is compiled by yourself using a toolchain that is\noptimized for your system or device in every respect.\n\n\nHow do I compile my own binary?\n-------------------------------\n\nOn a full blown desktop system this is relativly easy. If not already done so,\ninstall a C compiler (e.g. gcc or clang) through your packet manager, e.g.\n\"sudo apt-get install gcc\" (Debian/Ubuntu) or \"sudo yum install gcc\"\n(RedHat/Fedora).\n\nThen cd to your vlmcsd directory and type \"make\". vlmcs and vlmcsd will\nbe built right away for your local system.\n\nIf you installed gcc and it is not the default compiler for your OS or\ndistribution, you may need to type \"make CC=gcc\" to explicitly select a\nspecific C compiller.\n\n\nHow do I compile a binary for my embedded device?\n-------------------------------------------------\n\nWhat you need is cross-compiling toolchain for your device. It consists of a\nC compiler, libraries, header files and some tools (called binutils). The\ntoolchain must match the device in processor architecture, endianess, ABI,\nlibrary and header files version, library configuration, ...\n\nIf the endianess or ABI differs or the version of some library between\ntoolchain and device differs too much, the resulting binary does not run\non your device.\n\nOnce you have a proper toolchain (probably found on the Internet for download),\nunpack it to any directory and type\n\n     \"make CC=/path/to/toolchain/bindir/c-compiler-binary\"\n\nBuilding vlmcsd for using a cross-compiling toolchain is as easy as building\nvlmcsd for your local machine. The only question is, whether this you have\na toolchain that actually matches your device.\n\nWhenever you change any parameter of the make command line, you must \"clean\"\nthe source directory from intermediate files and output from previous runs\nof make. You can do so by typeing \"make clean\" or force make to behave as if\nthe directory were clean by adding -B to the command line, e.g.\n\n     \"make -B CC=/path/to/toolchain/bindir/c-compiler-binary\"\n\n\nI have downloaded several promising toolchains for my device but they all\ndon't work. Can I create my own toolchain?\n-------------------------------------------------------------------------\n\nYou can use tools like buildroot or OpenWRT. Both are able to create toolchains\nfor many embedded devices. But this is out of the scope of this document.\nIf you are unable to walk through thousands of configuration options and make\nthe right choice, you may probably want to try the pre-built binaries.\n\n\nHow to choose a pre-built binary?\n---------------------------------\n\nThe directory structure for the binaries is\n\nbinaries\n+\n+--\u003coperating system\u003e\n   +\n   +--\u003ccpu arch\u003e\n      +\n      +--\u003cendianess\u003e (omitted if CPU or OS does not allow multi-endianess)\n         +\n         +--\u003cC-library\u003e\n\n\u003cC-library\u003e can also be \"static\". That means no special library is required.\nStatic binaries are much bigger and need more RAM than dynamic binaries but\nare more likely to run on your system. Use a static binary only, if none of\nthe dynmic binaries run.\n\nDon't get confused when a binary is named after an OS or a specific device,\ne.g. the name contains \"openwrt\", \"tomato\" or \"Fritzbox\". This does not mean\nthat the binary will run only on that OS or on that device. It is a hint only\nwhere I got or built the toolchain from.\n\n\nHow to determine the endianess of my system?\n--------------------------------------------\n\n- All Intel CPUs (x86, x32, x64) are little-endian only\n- Windows is little-endian only even if the CPU support big-endian\n- big-endian ARM is extremely uncommon. You can safely assume little-endian\n- little-endian PowerPC virtually does not exist since only newer POWER7\n  and POWER8 CPUs support it. Always assume big-endian.\n- For MIPS both little-endian and big-endian are common. Most Broadcomm and\n  TI chips run little-endian. Most Atheros and Ikanos CPUs run big-endian.\n\nTry typing\n     echo -n I | od -o | awk 'FNR==1{ print substr($2,6,1)}'\n\nThis returns 1 for little-endian systems and 0 for big-endian systems. However\nsome devices do not have the od command and thus this method won't work.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkkkgo%2Fvlmcsd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkkkgo%2Fvlmcsd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkkkgo%2Fvlmcsd/lists"}