龙芯平台常用启动参数 #
增加串口 #
console=ttyS0,115200 earlycon=uart,mmio,0x1fe001e0
注意:
console即是指控制台输出,ttyS0是龙芯默认的串口终端, 波特率是115200.earlycon是用来打印早期acpi初始化过程的参数, 在使用dts传参时可能不可用.
核数限制 #
nr_cpus=3 maxcpus=3
多核调度限制 #
isolcpus=0-1,3-5
示例可以使0,1,3,4,5核不参与调度, 即被孤立.
禁用SMP #
nosmp
串口调试休眠 #
no_console_suspend
在s3和s4的过程中, 串口将打印执行流程.
设置替代初始化进程 #
rdinit=/sbin/my_init
init=/sbin/my_init
减少内核启动时的输出 #
quiet
设置日志级别 #
loglevel=3
设置根文件系统所在设备 #
root=/dev/sda3
加载ramdisk #
initrd=/path/to/initrd.img
设置PCI属性 #
如禁用msi
pci=nomsi
设置挂载参数 #
mount_param=noatime
设置SELinux启用 #
selinux=1
禁用gpu驱动 #
gsgpu.LG100_support=0
使能lsdc驱动 #
lsdc.modeset=1
内核参数查询 #
龙芯系统支持的内核启动参数可以使用如下命令查看:
cat System.map-4.19.0-19-loongson-3 | grep "__setup_str_" | sed 's/.*__setup_str_//g'
这些启动参数涵盖了Linux内核启动时可以配置的众多方面,从初始化行为到硬件配置。下面是这些参数的一些简要说明及使用样例, 具体以内核源码为准.
初始化相关
initcall_blacklist: 禁止特定的初始化回调函数。 使用示例:
initcall_blacklist=my_initcall
rdinit_setup: 设置替代初始化进程。 使用示例:
rdinit=/sbin/my_init
init_setup: 设置初始化进程。 使用示例:
init=/sbin/my_init
loglevel: 设置日志级别。 使用示例:
loglevel=3
quiet_kernel: 减少内核启动时的输出。 使用示例:
quiet
debug_kernel: 开启内核调试。 使用示例:
debug
set_reset_devices: 设置需要重置的设备列表。 使用示例:
reset_devices=pci0000:00/0000:00:01.0
root_delay_setup: 设置在尝试挂载根文件系统之前等待的时间。 使用示例:
root_delay=10
fs_names_setup: 设置文件系统名称。 使用示例:
fs_names=xfs,ext4
root_data_setup: 设置根文件系统的数据。 使用示例:
root_data=root=/dev/sda1 ro
rootwait_setup: 设置是否等待根文件系统可用。 使用示例:
rootwait
root_dev_setup: 设置根设备。 使用示例:
root=/dev/sda1
readwrite: 标记根文件系统为可读写。 使用示例:
rw
readonly: 标记根文件系统为只读。 使用示例:
ro
load_ramdisk: 加载ramdisk。 使用示例:
initrd=/path/to/initrd.img
no_initrd: 不使用initrd。 使用示例:
no_initrd
retain_initrd_param: 保留initrd参数。 使用示例:
retain_initrd_param
lpj_setup: 设置每秒的循环数(loops per jiffy)。 使用示例:
lpj=5000000
early_parse_memmap: 早期解析内存映射。 使用示例:
early_parse_memmap
early_parse_mem: 早期解析内存参数。 使用示例:
early_parse_mem
loongson_syscall_disable: 禁用特定的Loongson系统调用。 使用示例:
loongson_syscall_disable=1
rd_size_early: 设置早期的根设备大小。 使用示例:
rd_size_early=512M
rd_start_early: 设置早期的根设备起始位置。 使用示例:
rd_start_early=1024
early_initrd: 设置早期的initrd。 使用示例:
early_initrd=/path/to/early-initrd.img
debug_alt: 启用备用调试选项。 使用示例:
debug_alt
set_pv_time: 设置PV(Para-virtualized)时间。 使用示例:
set_pv_time
set_pv_ipi: 设置PV IPI(Interrupt Request)。 使用示例:
set_pv_ipi
coredump_filter_setup: 设置core dump过滤器。 使用示例:
coredump_filter=0x00000000
oops_setup: 设置Oops异常处理。 使用示例:
oops=panic
mitigations_parse_cmdline: 解析命令行中的缓解措施。 使用示例:
mitigations=auto
strict_iomem: 启用严格的I/O内存管理。 使用示例:
strict_iomem=1
reserve_setup: 预留内存区域。 使用示例:
reserve=128M
file_caps_disable: 禁用文件能力。 使用示例:
file_caps_disabled
setup_print_fatal_signals: 设置打印致命信号。 使用示例:
print_fatal_signals=1
reboot_setup: 设置重启行为。 使用示例:
reboot=k
setup_schedstats: 设置调度统计。 使用示例:
schedstats
setup_relax_domain_level: 设置放松域级别。 使用示例:
relax_domain_level=1
sched_debug_setup: 设置调度调试。 使用示例:
sched_debug
housekeeping_isolcpus_setup: 设置隔离CPU。 使用示例:
isolcpus=0-3
housekeeping_nohz_full_setup: 设置完全nohz(no-Hertz)行为。 使用示例:
nohz_full
mem_sleep_default_setup: 设置内存睡眠默认行为。 使用示例:
mem_sleep_default=deep
nohibernate_setup: 禁用休眠。 使用示例:
nohibernate
resumedelay_setup: 设置恢复延迟。 使用示例:
resumedelay=10
resumewait_setup: 设置恢复等待时间。 使用示例:
resumewait=5
hibernate_setup: 设置休眠行为。 使用示例:
resume=/dev/mapper/my-swap
resume_setup: 设置恢复行为。 使用示例:
resume=/dev/mapper/my-swap
resume_offset_setup: 设置恢复偏移。 使用示例:
resume_offset=1024
noresume_setup: 禁用恢复。 使用示例:
noresume
keep_bootcon_setup: 保持引导控制台设置。 使用示例:
keep_bootcon
console_suspend_disable: 禁用控制台挂起。 使用示例:
console_suspend_disable
console_setup: 设置控制台。 使用示例:
console=ttyS0,115200
console_msg_format_setup: 设置控制台消息格式。 使用示例:
console_msg_format=%t %l %u: %m
ignore_loglevel_setup: 忽略日志级别设置。 使用示例:
ignore_loglevel
log_buf_len_setup: 设置日志缓冲区长度。 使用示例:
log_buf_len=16M
control_devkmsg: 控制/dev/kmsg。 使用示例:
devkmsg=on
irq_affinity_setup: 设置中断亲和性。 使用示例:
irqaffinity=balanced
setup_forced_irqthreads: 强制使用IRQ线程。 使用示例:
forced_irqthread
irqpoll_setup: 设置IRQ轮询模式。 使用示例:
irqpoll
irqfixup_setup: 设置IRQ修复。 使用示例:
irqfixup
noirqdebug_setup: 禁用IRQ调试。 使用示例:
noirqdebug
early_cma: 设置早期CMA(Contiguous Memory Allocator)。 使用示例:
early_cma=128M
setup_io_tlb_npages: 设置I/O TLB(Translation Lookaside Buffer)页面数量。 使用示例:
io_tlb_npages=128
setup_hrtimer_hres: 设置高分辨率定时器。 使用示例:
hrtimer_hres=1
ntp_tick_adj_setup: 设置NTP时钟调整。 使用示例:
ntp_tick_adj=1
boot_override_clock: 覆盖时钟。 使用示例:
boot_override_clock
boot_override_clocksource: 覆盖时钟源。 使用示例:
boot_override_clocksource=pit
skew_tick: 设置skew tick。 使用示例:
skew_tick
setup_tick_nohz: 设置nohz(no-Hertz)行为。 使用示例:
tick_nohz=1
maxcpus: 设置最大CPU数量。 使用示例:
maxcpus=8
nrcpus: 设置CPU数量。 使用示例:
nrcpus=4
nosmp: 禁用SMP(Symmetric Multi-Processing)。 使用示例:
nosmp
cgroup_disable: 禁用cgroup。 使用示例:
cgroup_disable
cgroup_no_v1: 禁用cgroup v1。 使用示例:
cgroup_no_v1
audit_backlog_limit_set: 设置审计队列限制。 使用示例:
audit_backlog_limit=1024
audit_enable: 启用审计。 使用示例:
audit=1
hung_task_panic_setup: 设置Hung Task Panic行为。 使用示例:
hung_task_panic
softlockup_all_cpu_backtrace_setup: 设置Soft Lockup All CPU Backtrace。 使用示例:
softlockup_all_cpu_backtrace
nosoftlockup_setup: 禁用软锁死检测。 使用示例:
nosoftlockup
nowatchdog_setup: 禁用Watchdog。 使用示例:
nowatchdog
softlockup_panic_setup: 设置Soft Lockup Panic行为。 使用示例:
softlockup_panic
delayacct_setup_disable: 禁用Delay Account。 使用示例:
delayacct_disable
set_graph_max_depth_function: 设置图的最大深度。 使用示例:
graph_max_depth_function=10
set_graph_notrace_function: 设置不跟踪函数。 使用示例:
graph_notrace_function=my_function
set_graph_function: 设置跟踪函数。 使用示例:
graph_function=my_function
set_ftrace_filter: 设置ftrace过滤器。 使用示例:
ftrace_filter=my_function
set_ftrace_notrace: 设置ftrace不跟踪。 使用示例:
ftrace_notrace=my_function
set_tracing_thresh: 设置跟踪阈值。 使用示例:
tracing_thresh=1
set_buf_size: 设置缓冲区大小。 使用示例:
buf_size=16K
set_tracepoint_printk: 设置tracepoint printk。 使用示例:
tracepoint_printk=1
set_trace_boot_clock: 设置跟踪启动时钟。 使用示例:
trace_boot_clock=1
set_trace_boot_options: 设置跟踪启动选项。 使用示例:
trace_boot_options=trace
boot_alloc_snapshot: 设置启动分配快照。 使用示例:
boot_alloc_snapshot=1
stop_trace_on_warning: 设置在警告时停止跟踪。 使用示例:
stop_trace_on_warning
set_ftrace_dump_on_oops: 设置在Oops时转储ftrace。 使用示例:
ftrace_dump_on_oops
set_cmdline_ftrace: 设置命令行ftrace。 使用示例:
cmdline_ftrace=1
enable_stacktrace: 启用栈跟踪。 使用示例:
enable_stacktrace
setup_trace_event: 设置跟踪事件。 使用示例:
trace_event=my_event
setup_elfcorehdr: 设置ELF Core Header。 使用示例:
elfcorehdr
set_hashdist: 设置哈希分布。 使用示例:
hashdist=1
cmdline_parse_movablecore: 解析movablecore命令行。 使用示例:
movablecore=1
cmdline_parse_kernelcore: 解析kernelcore命令行。 使用示例:
kernelcore=1
setup_numa_zonelist_order: 设置NUMA区域列表顺序。 使用示例:
numa_zonelist_order=node,zone
set_mminit_loglevel: 设置内存初始化日志级别。 使用示例:
mminit_loglevel=2
percpu_alloc_setup: 设置per-CPU分配。 使用示例:
percpu_alloc=1
setup_slab_nomerge: 设置slab不合并。 使用示例:
slab_nomerge
slub_nomerge: 设置SLUB不合并。 使用示例:
slub_nomerge
disable_randmaps: 禁用随机映射。 使用示例:
disable_randmaps
cmdline_parse_stack_guard_gap: 解析堆栈保护间隙。 使用示例:
stack_guard_gap=16
early_memblock: 设置早期内存块。 使用示例:
early_memblock=1
hugetlb_default_setup: 设置 HugeTLB 默认配置。 使用示例:
hugetlb_default=always
hugetlb_nrpages_setup: 设置 HugeTLB 页面数量。 使用示例:
hugetlb_nrpages=128
setup_numabalancing: 设置NUMA平衡。 使用示例:
numabalancing=1
early_page_poison_param: 设置早期页面中毒参数。 使用示例:
early_page_poison=1
setup_slub_memcg_sysfs: 设置SLUB memcg sysfs。 使用示例:
slub_memcg_sysfs
setup_slub_min_objects: 设置SLUB最小对象数量。 使用示例:
slub_min_objects=128
setup_slub_max_order: 设置SLUB最大顺序。 使用示例:
slub_max_order=6
setup_slub_min_order: 设置SLUB最小顺序。 使用示例:
slub_min_order=3
cmdline_parse_movable_node: 解析movable node命令行。 使用示例:
movable_node=1
setup_memhp_default_state: 设置内存热插拔默认状态。 使用示例:
memhp_default_state=off
parse_memtest: 解析内存测试命令行参数。 使用示例:
memtest=on
setup_transparent_hugepage: 设置透明 Huge Page。 使用示例:
transparent_hugepage=always
enable_swap_account: 启用交换分区会计。 使用示例:
swapaccount=1
cgroup_memory: 设置cgroup内存。 使用示例:
cgroup_memory=1
set_dhash_entries: 设置dhash entries。 使用示例:
dhash_entries=1024
set_ihash_entries: 设置ihash entries。 使用示例:
ihash_entries=1024
set_mphash_entries: 设置mphash entries。 使用示例:
mphash_entries=1024
set_mhash_entries: 设置mhash entries。 使用示例:
mhash_entries=1024
choose_lsm: 选择LSM(Linux Security Module)。 使用示例:
choose_lsm=selinux
checkreqprot_setup: 设置检查请求保护。 使用示例:
checkreqprot=1
selinux_enabled_setup: 设置SELinux启用。 使用示例:
selinux=1
enforcing_setup: 设置强制模式。 使用示例:
enforcing=1
tomoyo_trigger_setup: 设置Tomoyo触发器。 使用示例:
tomoyo_trigger=1
tomoyo_loader_setup: 设置Tomoyo加载器。 使用示例:
tomoyo_loader=1
apparmor_enabled_setup: 设置AppArmor启用。 使用示例:
apparmor=1
integrity_audit_setup: 设置完整性审计。 使用示例:
integrity=1
ca_keys_setup: 设置CA密钥。 使用示例:
ca_keys=/etc/ssl/certs/ca-certificates.crt
elevator_setup: 设置电梯算法。 使用示例:
elevator=cfq
force_gpt_fn: 设置强制GPT功能。 使用示例:
force_gpt_fn=1
ddebug_setup_query: 设置ddebug查询。 使用示例:
ddebug=on
pci_setup: 设置PCI。 使用示例:
pci=nomsi
pcie_port_pm_setup: 设置PCIe端口PM。 使用示例:
pcie_port_pm=1
pcie_port_setup: 设置PCIe端口。 使用示例:
pcie_port=1
pcie_aspm_disable: 禁用PCIe ASPM。 使用示例:
pcie_aspm=off
pcie_pme_setup: 设置PCIe PME。 使用示例:
pcie_pme=1
no_scroll: 禁用滚动。 使用示例:
no_scroll
text_mode: 设置文本模式。 使用示例:
text
video_setup: 设置视频。 使用示例:
video=vesafb:mode=1024x768
fb_console_setup: 设置帧缓冲控制台。 使用示例:
fbcon=map:vesa
acpi_force_32bit_fadt_addr: 强制使用32位FADT地址。 使用示例:
acpi_force_32bit_fadt_addr
acpi_force_table_verification_setup: 设置ACPI表验证。 使用示例:
acpi_force_table_verification
acpi_parse_apic_instance: 解析APIC实例。 使用示例:
acpi_parse_apic_instance
osi_setup: 设置OSI(Operating System Identification)。 使用示例:
osi=Linux
acpi_disable_return_repair: 禁用ACPI返回修复。 使用示例:
acpi_disable_return_repair
acpi_no_static_ssdt_setup: 禁用静态SSDT。 使用示例:
acpi_no_static_ssdt
acpi_enforce_resources_setup: 设置ACPI资源强制。 使用示例:
acpi_enforce_resources
acpi_no_auto_serialize_setup: 禁用ACPI自动序列化。 使用示例:
acpi_no_auto_serialize
acpi_os_name_setup: 设置ACPI OS名称。 使用示例:
acpi_os_name=Linux
setup_acpi_rsdp: 设置ACPI RSDP。 使用示例:
acpi_rsdp=1
acpi_backlight: 设置ACPI背光。 使用示例:
acpi_backlight=vendor
acpi_irq_balance_set: 设置ACPI IRQ平衡。 使用示例:
acpi_irq_balance=1
acpi_irq_nobalance_set: 设置ACPI IRQ不平衡。 使用示例:
acpi_irq_nobalance=1
acpi_irq_pci: 设置ACPI IRQ PCI。 使用示例:
acpi_irq_pci=1
acpi_irq_isa: 设置ACPI IRQ ISA。 使用示例:
acpi_irq_isa=1
acpi_gpe_set_masked_gpes: 设置ACPI GPE屏蔽。 使用示例:
acpi_gpe_masked_gpes=1
disable_acpi_watchdog: 禁用ACPI Watchdog。 使用示例:
disable_acpi_watchdog
disable_acpi_memory_hotplug: 禁用ACPI内存热插拔。 使用示例:
disable_acpi_memory_hotplug
pnp_setup_reserve_mem: 设置PNP预留内存。 使用示例:
pnp_setup_reserve_mem
pnp_setup_reserve_io: 设置PNP预留I/O。 使用示例:
pnp_setup_reserve_io
pnp_setup_reserve_dma: 设置PNP预留DMA。 使用示例:
pnp_setup_reserve_dma
pnp_setup_reserve_irq: 设置PNP预留IRQ。 使用示例:
pnp_setup_reserve_irq
pnpacpi_setup: 设置PNP ACPI。 使用示例:
pnpacpi_setup
sysrq_always_enabled_setup: 设置sysrq始终启用。 使用示例:
sysrq_always_enabled
param_setup_earlycon: 设置早期控制台参数。 使用示例:
earlycon
parse_trust_cpu: 解析信任CPU参数。 使用示例:
trust_cpu
iommu_set_def_domain_type: 设置默认IOMMU域类型。 使用示例:
iommu_set_def_domain_type=1
la_iommu_setup: 设置LA IOMMU。 使用示例:
la_iommu=1
deferred_probe_timeout_setup: 设置延迟探测超时。 使用示例:
deferred_probe_timeout=10
mount_param: 设置挂载参数。 使用示例:
mount_param=noatime
pd_ignore_unused_setup: 设置PD忽略未使用。 使用示例:
pd_ignore_unused
stmmac_cmdline_opt: 设置STMMAC命令行选项。 使用示例:
stmmac_cmdline_opt=1
cpuidle_sysfs_setup: 设置CPUidle sysfs。 使用示例:
cpuidle_sysfs=1
efivar_ssdt_setup: 设置EFI变量SSDT。 使用示例:
efivar_ssdt=1
parse_efi_cmdline: 解析EFI命令行。 使用示例:
parse_efi_cmdline=1
setup_noefi: 设置无EFI。 使用示例:
noefi
parse_ras_param: 解析RAS参数。 使用示例:
parse_ras_param=1
netdev_boot_setup: 设置网络设备引导。 使用示例:
netdev_boot_setup=1
set_thash_entries: 设置THash entries。 使用示例:
thash_entries=1024
set_tcpmhash_entries: 设置TCP mhash entries。 使用示例:
tcpmhash_entries=1024
set_uhash_entries: 设置UHash entries。 使用示例:
uhash_entries=1024
debug_boot_weak_hash_enable: 启用弱哈希调试。 使用示例:
debug_boot_weak_hash_enable
这些参数覆盖了从低级别的硬件配置到高级别的系统行为。根据你的具体需求,你可以使用这些参数来微调内核的启动过程和配置。
模块参数查看 #
可以用如下命令:
root@loongson-pc:/lib/modules/4.19.0-19-loongson-3# modinfo kernel/drivers/gpu/drm/gsgpu/gpu/gsgpu.ko
......
name: gsgpu
parm: LG100_support:LG100 support (1 = enabled (default), 0 = disabled (int)
......