龙芯平台常用启动参数 #
增加串口 #
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)
......