You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'd love to find ways to further strip down the Linux kernel config to remove anything not being used by v86--currently the built ISO is ~4M. I've succeeded in removing lots of unnecessary drivers and services, but there are still more things that could likely go. For example, parts of the network stack that aren't related to virtio could probably get pulled out.
I'm not an expert on kernel configuration, and if someone else has ideas, I'd love to see improvements here. For reference, here is what dmesg shows for startup:
[ 0.000000] Linux version 4.15.7 (root@1476c102ae0d) (gcc version 6.4.0 (Buildroot 2018.02)) #2 Thu Feb 7 00:19:41 UTC 2019
[ 0.000000] Disabled fast string operations
[ 0.000000] x86/fpu: x87 FPU will use FSAVE
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x0000000001ffffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
[ 0.000000] Notice: NX (Execute Disable) protection missing in CPU!
[ 0.000000] DMI not present or invalid.
[ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[ 0.000000] e820: last_pfn = 0x2000 max_arch_pfn = 0x100000
[ 0.000000] MTRR: Disabled
[ 0.000000] x86/PAT: MTRRs disabled, skipping PAT initialization too.
[ 0.000000] x86/PAT: Configuration [0-7]: WB WT UC- UC WB WT UC- UC
[ 0.000000] found SMP MP-table at [mem 0x000f3af0-0x000f3aff] mapped at [(ptrval)]
[ 0.000000] Scanning 1 areas for low memory corruption
[ 0.000000] initial memory mapped: [mem 0x00000000-0x01bfffff]
[ 0.000000] Base memory trampoline at [(ptrval)] 9b000 size 16384
[ 0.000000] ACPI: Early table checksum verification disabled
[ 0.000000] ACPI BIOS Error (bug): A valid RSDP was not found (20170831/tbxfroot-244)
[ 0.000000] 0MB HIGHMEM available.
[ 0.000000] 32MB LOWMEM available.
[ 0.000000] mapped low ram: 0 - 02000000
[ 0.000000] low ram: 0 - 02000000
[ 0.000000] tsc: Fast TSC calibration failed
[ 0.000000] tsc: Unable to calibrate against PIT
[ 0.000000] tsc: No reference (HPET/PMTIMER) available
[ 0.000000] BRK [0x01835000, 0x01835fff] PGTABLE
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000001000-0x0000000000ffffff]
[ 0.000000] Normal [mem 0x0000000001000000-0x0000000001ffffff]
[ 0.000000] HighMem empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000001000-0x000000000009efff]
[ 0.000000] node 0: [mem 0x0000000000100000-0x0000000001ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x0000000001ffffff]
[ 0.000000] On node 0 totalpages: 8094
[ 0.000000] DMA zone: 32 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 3998 pages, LIFO batch:0
[ 0.000000] Normal zone: 32 pages used for memmap
[ 0.000000] Normal zone: 4096 pages, LIFO batch:0
[ 0.000000] Reserved but unavailable: 98 pages
[ 0.000000] Using APIC driver default
[ 0.000000] Intel MultiProcessor Specification v1.4
[ 0.000000] Virtual Wire compatibility mode.
[ 0.000000] MPTABLE: OEM ID: BOCHSCPU
[ 0.000000] MPTABLE: Product ID: 0.1
[ 0.000000] MPTABLE: APIC at: 0xFEE00000
[ 0.000000] I/O APIC 0xfec00000 registers return all ones, skipping!
[ 0.000000] MPTABLE: no processors registered!
[ 0.000000] BIOS bug, MP table errors detected!...
[ 0.000000] ... disabling SMP support. (tell your hw vendor)
[ 0.000000] Local APIC disabled by BIOS -- you can enable it with "lapic"
[ 0.000000] APIC: disable apic facility
[ 0.000000] APIC: switched to apic NOOP
[ 0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[ 0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x0009ffff]
[ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000effff]
[ 0.000000] PM: Registered nosave memory: [mem 0x000f0000-0x000fffff]
[ 0.000000] e820: [mem 0x02000000-0xfffbffff] available for PCI devices
[ 0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 8030
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/bzImage root=/dev/sr0
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Initializing CPU#0
[ 0.000000] Initializing HighMem for node 0 (00000000:00000000)
[ 0.000000] Memory: 23556K/32376K available (4304K kernel code, 512K rwdata, 1840K rodata, 1184K init, 468K bss, 8820K reserved, 0K cma-reserved, 0K highmem)
[ 0.000000] virtual kernel memory layout:
[ 0.000000] fixmap : 0xfffa3000 - 0xfffff000 ( 368 kB)
[ 0.000000] cpu_entry : 0xffc00000 - 0xffc28000 ( 160 kB)
[ 0.000000] pkmap : 0xff800000 - 0xffc00000 (4096 kB)
[ 0.000000] vmalloc : 0xc2800000 - 0xff7fe000 ( 975 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc2000000 ( 32 MB)
[ 0.000000] .init : 0xc1691000 - 0xc17b9000 (1184 kB)
[ 0.000000] .data : 0xc143429a - 0xc1683180 (2363 kB)
[ 0.000000] .text : 0xc1000000 - 0xc143429a (4304 kB)
[ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok.
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 2304, nr_irqs: 32, preallocated irqs: 16
[ 0.000000] CPU 0 irqstacks, hard=(ptrval) soft=(ptrval)
[ 0.000000] Console: colour VGA+ 80x25
[ 0.000000] console [tty0] enabled
[ 0.000000] APIC: Keep in PIC mode(8259)
[ 0.000000] tsc: Fast TSC calibration failed
[ 0.010000] spurious 8259A interrupt: IRQ7.
[ 0.010000] tsc: Unable to calibrate against PIT
[ 0.010000] tsc: No reference (HPET/PMTIMER) available
[ 0.010000] tsc: Marking TSC unstable due to could not calculate TSC khz
[ 0.020000] Calibrating delay loop... 47.05 BogoMIPS (lpj=235264)
[ 0.170000] pid_max: default: 32768 minimum: 301
[ 0.180000] Security Framework initialized
[ 0.190000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.190000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.220000] Disabled fast string operations
[ 0.220000] Last level iTLB entries: 4KB 64, 2MB 64, 4MB 64
[ 0.220000] Last level dTLB entries: 4KB 64, 2MB 0, 4MB 64, 1GB 0
[ 0.220000] CPU: Intel 0f/06 (family: 0xf, model: 0x6, stepping: 0x3)
[ 0.230000] Spectre V2 : Vulnerable: Minimal generic ASM retpoline
[ 0.230000] Spectre V2 : Spectre v2 mitigation: Filling RSB on context switch
[ 0.250000] Performance Events: unsupported Netburst CPU model 6 no PMU driver, software events only.
[ 0.290000] devtmpfs: initialized
[ 0.340000] kworker/u2:0 (11) used greatest stack depth: 7204 bytes left
[ 0.340000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.340000] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.370000] RTC time: 23:07:28, date: 02/12/19
[ 0.400000] NET: Registered protocol family 16
[ 0.430000] audit: initializing netlink subsys (disabled)
[ 0.450000] audit: type=2000 audit(1550012847.430:1): state=initialized audit_enabled=0 res=1
[ 0.450000] random: fast init done
[ 0.500000] cpuidle: using governor menu
[ 0.500000] clocksource: pit: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1601818034827 ns
[ 0.560000] PCI: PCI BIOS revision 2.10 entry at 0xfdaed, last bus=0
[ 0.570000] PCI: Using configuration type 1 for base access
[ 1.730000] ACPI: Interpreter disabled.
[ 1.750000] vgaarb: loaded
[ 1.790000] SCSI subsystem initialized
[ 1.800000] libata version 3.00 loaded.
[ 1.860000] pps_core: LinuxPPS API ver. 1 registered
[ 1.860000] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[ 1.870000] PTP clock support registered
[ 1.890000] EDAC MC: Ver: 3.0.0
[ 1.910000] dmi: Firmware registration failed.
[ 1.930000] PCI: Probing PCI hardware
[ 1.930000] PCI: root bus 00: using default resources
[ 1.930000] PCI: Probing PCI hardware (bus 00)
[ 1.940000] PCI host bridge to bus 0000:00
[ 1.940000] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
[ 1.940000] pci_bus 0000:00: root bus resource [mem 0x00000000-0xffffffff]
[ 1.940000] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 1.950000] pci_bus 0000:00: scanning bus
[ 1.950000] pci 0000:00:00.0: [8086:1237] type 00 class 0x060000
[ 1.960000] pci 0000:00:00.0: calling quirk_mmio_always_on+0x0/0x9
[ 1.970000] pci 0000:00:01.0: [8086:7000] type 00 class 0x060100
[ 1.980000] pci 0000:00:06.0: [1af4:1009] type 00 class 0x000200
[ 1.980000] pci 0000:00:06.0: reg 0x10: [io 0xc000-0xc0ff]
[ 1.990000] pci 0000:00:12.0: [10de:0a20] type 00 class 0x030000
[ 1.990000] pci 0000:00:12.0: reg 0x10: [mem 0xe0000000-0xe01fffff pref]
[ 2.000000] pci 0000:00:12.0: reg 0x30: [mem 0xfeb00000-0xfeb0ffff pref]
[ 2.000000] pci 0000:00:12.0: calling efifb_fixup_resources+0x0/0x123
[ 2.000000] pci 0000:00:12.0: vgaarb: setting as boot VGA device
[ 2.000000] pci 0000:00:12.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
[ 2.010000] pci 0000:00:1e.0: [8086:7010] type 00 class 0x010180
[ 2.020000] pci 0000:00:1e.0: reg 0x10: [io 0x01f0-0x01f7]
[ 2.020000] pci 0000:00:1e.0: reg 0x14: [io 0x03f4-0x03f7]
[ 2.020000] pci 0000:00:1e.0: reg 0x20: [io 0xc100-0xc10f]
[ 2.020000] pci 0000:00:1e.0: legacy IDE quirk: reg 0x10: [io 0x01f0-0x01f7]
[ 2.020000] pci 0000:00:1e.0: legacy IDE quirk: reg 0x14: [io 0x03f6]
[ 2.020000] pci 0000:00:1e.0: legacy IDE quirk: reg 0x18: [io 0x0170-0x0177]
[ 2.020000] pci 0000:00:1e.0: legacy IDE quirk: reg 0x1c: [io 0x0376]
[ 2.040000] kworker/u2:1 (297) used greatest stack depth: 7164 bytes left
[ 2.060000] pci_bus 0000:00: fixups for bus
[ 2.060000] pci_bus 0000:00: bus scan returning with max=00
[ 2.060000] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[ 2.060000] pci 0000:00:01.0: PIIX/ICH IRQ router [8086:7000]
[ 2.060000] PCI: pci_cache_line_size set to 32 bytes
[ 2.060000] pci 0000:00:06.0: BAR 0: reserving [io 0xc000-0xc0ff flags 0x40101] (d=0, p=0)
[ 2.060000] pci 0000:00:12.0: BAR 0: reserving [mem 0xe0000000-0xe01fffff flags 0x42208] (d=0, p=0)
[ 2.060000] pci 0000:00:1e.0: BAR 0: reserving [io 0x01f0-0x01f7 flags 0x110] (d=0, p=0)
[ 2.060000] pci 0000:00:1e.0: BAR 1: reserving [io 0x03f6 flags 0x110] (d=0, p=0)
[ 2.060000] pci 0000:00:1e.0: BAR 2: reserving [io 0x0170-0x0177 flags 0x110] (d=0, p=0)
[ 2.070000] pci 0000:00:1e.0: BAR 3: reserving [io 0x0376 flags 0x110] (d=0, p=0)
[ 2.070000] pci 0000:00:1e.0: BAR 4: reserving [io 0xc100-0xc10f flags 0x40101] (d=0, p=0)
[ 2.070000] e820: reserve RAM buffer [mem 0x0009fc00-0x0009ffff]
[ 2.070000] e820: reserve RAM buffer [mem 0x02000000-0x03ffffff]
[ 2.090000] clocksource: Switched to clocksource pit
[ 3.480042] FS-Cache: Loaded
[ 3.490542] CacheFiles: Loaded
[ 3.504142] pnp: PnP ACPI: disabled
[ 3.540839] kworker/u2:2 (308) used greatest stack depth: 6972 bytes left
[ 3.960220] pci_bus 0000:00: resource 4 [io 0x0000-0xffff]
[ 3.960220] pci_bus 0000:00: resource 5 [mem 0x00000000-0xffffffff]
[ 3.960220] NET: Registered protocol family 2
[ 4.000919] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 4.000919] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 4.000919] TCP: Hash tables configured (established 1024 bind 1024)
[ 4.010619] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 4.010619] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 4.010619] NET: Registered protocol family 1
[ 4.020618] pci 0000:00:00.0: calling quirk_natoma+0x0/0x25
[ 4.020618] pci 0000:00:00.0: Limiting direct PCI/PCI transfers
[ 4.020618] pci 0000:00:00.0: calling quirk_passive_release+0x0/0x62
[ 4.033118] pci 0000:00:01.0: PIIX3: Enabling Passive Release
[ 4.033118] pci 0000:00:01.0: calling quirk_isa_dma_hangs+0x0/0x28
[ 4.033118] pci 0000:00:01.0: Activating ISA DMA hang workarounds
[ 4.033118] pci 0000:00:12.0: calling nv_msi_ht_cap_quirk_leaf+0x0/0x1b
[ 4.033118] pci 0000:00:12.0: calling pci_fixup_video+0x0/0xba
[ 4.040117] pci 0000:00:12.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]
[ 4.040117] PCI: CLS 0 bytes, default 32
[ 7.360782] platform rtc_cmos: registered platform RTC device (no PNP device found)
[ 7.389882] Scanning for low memory corruption every 60 seconds
[ 7.510476] Initialise system trusted keyrings
[ 7.510476] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[ 8.161246] 9p: Installing v9fs 9p2000 file system support
[ 8.183946] FS-Cache: Netfs '9p' registered for caching
[ 8.330941] jitterentropy: Initialization failed with host not compliant with requirements: 2
[ 8.359539] Key type asymmetric registered
[ 8.359539] Asymmetric key parser 'x509' registered
[ 8.359539] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[ 8.359539] io scheduler noop registered
[ 8.359539] io scheduler deadline registered
[ 8.370136] io scheduler cfq registered (default)
[ 8.370136] io scheduler mq-deadline registered
[ 8.370136] io scheduler kyber registered
[ 8.479932] virtio-pci 0000:00:06.0: runtime IRQ mapping not provided by arch
[ 8.479932] virtio-pci 0000:00:06.0: PCI INT A -> PIRQ 61, mask def8, excl 0000
[ 8.479932] virtio-pci 0000:00:06.0: PCI INT A -> newirq 10
[ 8.479932] PCI: setting IRQ 10 as level-triggered
[ 8.479932] virtio-pci 0000:00:06.0: found PCI INT A -> IRQ 10
[ 8.479932] virtio-pci 0000:00:06.0: virtio_pci: leaving for legacy driver
[ 8.519930] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 8.840910] serial8250: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 8.962705] Non-volatile memory driver v1.3
[ 8.990902] Linux agpgart interface v0.103
[ 9.021800] agpgart-intel 0000:00:00.0: runtime IRQ mapping not provided by arch
[ 9.420580] loop: module loaded
[ 9.450079] ata_piix 0000:00:1e.0: runtime IRQ mapping not provided by arch
[ 9.450079] ata_piix 0000:00:1e.0: version 2.13
[ 9.450079] ata_piix 0000:00:1e.0: PCI INT A not found in routing table
[ 9.510377] scsi host0: ata_piix
[ 9.530676] scsi host1: ata_piix
[ 9.560975] ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc100 irq 14
[ 9.560975] ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc108 irq 15
[ 9.630371] i8042: PNP: No PS/2 controller found.
[ 9.630371] i8042: Probing ports directly.
[ 9.646171] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 9.670769] serio: i8042 AUX port at 0x60,0x64 irq 12
[ 9.720567] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
[ 9.720567] rtc_cmos rtc_cmos: alarms up to one day, 114 bytes nvram
[ 9.745466] hidraw: raw HID events driver (C) Jiri Kosina
[ 9.870561] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[ 9.929858] Initializing XFRM netlink socket
[ 9.929858] NET: Registered protocol family 17
[ 9.940157] 9pnet: Installing 9P2000 support
[ 9.961356] Key type dns_resolver registered
[ 9.971356] mce: Unable to init MCE device (rc: -5)
[ 9.991855] ata1.00: ATAPI: v86 HD, , max MWDMA2
[ 10.017555] ata1.00: configured for MWDMA2
[ 10.023154] Using IPI Shortcut mode
[ 10.029954] scsi 0:0:0:0: CD-ROM SONY CD-ROM CDU-1000 1.1a PQ: 0 ANSI: 1 CCS
[ 10.090051] registered taskstats version 1
[ 10.090051] Loading compiled-in X.509 certificates
[ 10.120450] Magic number: 7:382:150
[ 10.120450] console [netcon0] enabled
[ 10.120450] netconsole: network logging started
[ 10.150849] Freeing unused kernel memory: 1184K
[ 10.161549] Write protecting the kernel text: 4308k
[ 10.170148] Write protecting the kernel read-only data: 1848k
[ 10.730623] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input2
[ 11.150305] mount (664) used greatest stack depth: 6876 bytes left
[ 13.919984] ip (687) used greatest stack depth: 6588 bytes left
[ 129.711799] random: crng init done
The text was updated successfully, but these errors were encountered:
I'd love to find ways to further strip down the Linux kernel config to remove anything not being used by v86--currently the built ISO is ~4M. I've succeeded in removing lots of unnecessary drivers and services, but there are still more things that could likely go. For example, parts of the network stack that aren't related to virtio could probably get pulled out.
I'm not an expert on kernel configuration, and if someone else has ideas, I'd love to see improvements here. For reference, here is what
dmesg
shows for startup:The text was updated successfully, but these errors were encountered: