参考:https://github.com/Azure/SONiC/wiki/Porting-Guide
在device下面的installer.conf
文件中,可以为onie安装sonic提供一些额外配置文件,其中包含cmdline参数。
device/
|-- <VENDOR_NAME>/
| |-- <ONIE_PLATFORM_STRING>/
| | |-- installer.conf
在installer.conf
文件中添加ONIE_PLATFORM_EXTRA_CMDLINE_LINUX
的定义,可配置额外cmdline。
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="cma=256M@0-4G"
在onie安装sonic的时候,实际调用sonic中的sonic-buildimage/blob/master/installer/x86_64/install.sh
文件,该文件中对cmdline有如下定义:
cat <<EOF >> $grub_cfg
menuentry '$demo_grub_entry' {
search --no-floppy --label --set=root $demo_volume_label
echo 'Loading $demo_volume_label $demo_type kernel ...'
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
linux /$image_dir/boot/vmlinuz-5.10.0-8-2-amd64 root=$grub_cfg_root rw $GRUB_CMDLINE_LINUX \
net.ifnames=0 biosdevname=0 \
loop=$image_dir/$FILESYSTEM_SQUASHFS loopfstype=squashfs \
systemd.unified_cgroup_hierarchy=0 \
apparmor=1 security=apparmor varlog_size=$VAR_LOG_SIZE usbcore.autosuspend=-1 $ONIE_PLATFORM_EXTRA_CMDLINE_LINUX
echo 'Loading $demo_volume_label $demo_type initial ramdisk ...'
initrd /$image_dir/boot/initrd.img-5.10.0-8-2-amd64
}
EOF
其中apparmor=1 security=apparmor varlog_size=$VAR_LOG_SIZE usbcore.autosuspend=-1
$ONIE_PLATFORM_EXTRA_CMDLINE_LINUX 实现添加installer.conf文件中定义的额外cmdline。