Raspi-config 命令行

稍微多用过树莓派的朋友相信都用过raspi-config这个工具,通过它可以相对可视化的容易地改变树莓派的配置。
但是里面的有些操作假如我们想要用命令行直接运行而不想进入raspi-config那个界面,那要怎么做呢?

在这个代码里面可以看到一些细节。

很多命令都是成对出现的,比如和hostname相关的

  • raspi-config nonint get_hostnameraspi-config nonint get_hostname就是获得当前设置的hostname
  • raspi-config nonint do_hostname %s对应的就是设置hostname

设置启用I2C可以通过raspi-config nonint get_i2c 00表示开启,1表示关闭(不同的命令可能是不同的对应)。

/* Command strings */
#define GET_CAN_EXPAND "raspi-config nonint get_can_expand"
#define EXPAND_FS "raspi-config nonint do_expand_rootfs"
#define GET_HOSTNAME "raspi-config nonint get_hostname"
#define SET_HOSTNAME "raspi-config nonint do_hostname %s"
#define GET_BOOT_CLI "raspi-config nonint get_boot_cli"
#define GET_AUTOLOGIN "raspi-config nonint get_autologin"
#define SET_BOOT_CLI "raspi-config nonint do_boot_behaviour B1"
#define SET_BOOT_CLIA "raspi-config nonint do_boot_behaviour B2"
#define SET_BOOT_GUI "raspi-config nonint do_boot_behaviour B3"
#define SET_BOOT_GUIA "raspi-config nonint do_boot_behaviour B4"
#define GET_BOOT_WAIT "raspi-config nonint get_boot_wait"
#define SET_BOOT_WAIT "raspi-config nonint do_boot_wait %d"
#define GET_SPLASH "raspi-config nonint get_boot_splash"
#define SET_SPLASH "raspi-config nonint do_boot_splash %d"
#define GET_OVERSCAN "raspi-config nonint get_overscan"
#define SET_OVERSCAN "raspi-config nonint do_overscan %d"
#define GET_CAMERA "raspi-config nonint get_camera"
#define SET_CAMERA "raspi-config nonint do_camera %d"
#define GET_SSH "raspi-config nonint get_ssh"
#define SET_SSH "raspi-config nonint do_ssh %d"
#define GET_VNC "raspi-config nonint get_vnc"
#define SET_VNC "raspi-config nonint do_vnc %d"
#define GET_SPI "raspi-config nonint get_spi"
#define SET_SPI "raspi-config nonint do_spi %d"
#define GET_I2C "raspi-config nonint get_i2c"
#define SET_I2C "raspi-config nonint do_i2c %d"
#define GET_SERIAL "raspi-config nonint get_serial"
#define GET_SERIALHW "raspi-config nonint get_serial_hw"
#define SET_SERIAL "raspi-config nonint do_serial %d"
#define GET_1WIRE "raspi-config nonint get_onewire"
#define SET_1WIRE "raspi-config nonint do_onewire %d"
#define GET_RGPIO "raspi-config nonint get_rgpio"
#define SET_RGPIO "raspi-config nonint do_rgpio %d"
#define GET_PI_TYPE "raspi-config nonint get_pi_type"
#define GET_OVERCLOCK "raspi-config nonint get_config_var arm_freq /boot/config.txt"
#define SET_OVERCLOCK "raspi-config nonint do_overclock %s"
#define GET_GPU_MEM "raspi-config nonint get_config_var gpu_mem /boot/config.txt"
#define GET_GPU_MEM_256 "raspi-config nonint get_config_var gpu_mem_256 /boot/config.txt"
#define GET_GPU_MEM_512 "raspi-config nonint get_config_var gpu_mem_512 /boot/config.txt"
#define GET_GPU_MEM_1K "raspi-config nonint get_config_var gpu_mem_1024 /boot/config.txt"
#define SET_GPU_MEM "raspi-config nonint do_memory_split %d"
#define GET_HDMI_GROUP "raspi-config nonint get_config_var hdmi_group /boot/config.txt"
#define GET_HDMI_MODE "raspi-config nonint get_config_var hdmi_mode /boot/config.txt"
#define SET_HDMI_GP_MOD "raspi-config nonint do_resolution %d %d"
#define GET_WIFI_CTRY "raspi-config nonint get_wifi_country"
#define SET_WIFI_CTRY "raspi-config nonint do_wifi_country %s"
#define CHANGE_PASSWD "(echo \"%s\" ; echo \"%s\" ; echo \"%s\") | passwd"