1
1
mirror of https://github.com/NixOS/mobile-nixos.git synced 2024-12-01 11:43:55 +03:00
mobile-nixos/devices/qemu-x86_64/default.nix
2018-06-23 18:47:00 -04:00

77 lines
2.3 KiB
Nix

{ config, lib, pkgs, ... }:
with import ../../modules/initrd-order.nix;
let
# This device description is a bit configurable through
# mobile options...
# Enabling the splash changes some settings.
splash = config.mobile.boot.stage-1.splash.enable;
kernel = pkgs.linuxPackages_4_16.kernel;
device_info = (lib.importJSON ../postmarketOS-devices.json).qemu-amd64;
modules = [
# Disk images
"ata_piix"
"sd_mod"
# Networking
"e1000"
# Keyboard
"hid_generic"
"pcips2" "atkbd" "i8042"
# x86 RTC needed by the stage 2 init script.
"rtc_cmos"
];
MODES = {
"800x600x16" = { vga = "788"; width = 800; height = 600; depth = 16; };
"1024x786x16" = { vga = "791"; width = 1024; height = 768; depth = 16; };
"1024x786x32" = { vga = "0x344"; width = 1024; height = 768; depth = 32; };
"1280x1024x16" = { vga = "794"; width = 1280; height = 1024; depth = 16; };
"1280x720x16" = { vga = "0x38d"; width = 1280; height = 720; depth = 16; };
"1280x720x24" = { vga = "0x38e"; width = 1280; height = 720; depth = 24; };
"1280x720x32" = { vga = "0x38f"; width = 1280; height = 720; depth = 32; };
"1920x1080x16" = { vga = "0x390"; width = 1920; height = 1080; depth = 16; };
"1920x1080x24" = { vga = "0x391"; width = 1920; height = 1080; depth = 24; };
"1920x1080x32" = { vga = "0x392"; width = 1920; height = 1080; depth = 32; };
};
MODE = MODES."1280x720x32";
in
{
mobile.device.name = "qemu-x86_64";
mobile.device.info = device_info // {
# TODO : make kernel part of options.
inherit kernel;
kernel_cmdline = device_info.kernel_cmdline
+ " vga=${MODE.vga}"
# TODO : make cmdline configurable outside device.info (device.info would be used for device-specifics only)
+ lib.optionalString splash " quiet vt.global_cursor_default=0"
;
};
mobile.hardware = {
soc = "generic-x86_64";
screen = {
inherit (MODE) height width;
};
ram = 512;
};
mobile.system.type = "kernel-initrd";
mobile.boot.stage-1 = {
redirect-log.targets = lib.mkIf (splash != true) [ "/dev/tty0" ];
init = (lib.mkOrder BEFORE_READY_INIT ''
echo "cmdline:"
cat /proc/cmdline
echo "Hi there from /init!"
'');
kernel = {
modular = true;
inherit modules;
};
};
}