i8253 count too high,resetting

本文介绍了解决Red Hat 11虚拟机启动配置问题的方法。通过修改启动菜单选项,解决了因网络配置错误导致的启动失败问题。涉及步骤包括进入系统菜单模式、编辑启动内核参数等。
前些天初装虚拟机的时候,遇到了这样的一个错误,网上的一些朋友说改动启动菜单的选项参数即可,虽然没有解决 的问题(因为 的问题是因为错误配置了网络而导致系统在启动网络配置时出现了错误而无法继续引起的,后来 重装虚拟机才解决这个问题),但也引出了一种修改启动配置的方法, 用的是red hat 11,与red hat 9以及以前的版本还是有点细微的区别的,其方法如下:

P进入系统菜单模式

系统默认选中Fedorm Core (2.4.22-1.2.115.nptl)

们按 e进入命令修改界面

选中kernel /vmlinuz-2.4.22-1.2115.nptl ro root=LABEL =/ rhgb

e进入编辑状态

grub edit> kernel /vmlinuz-2.4.22-1.2115.nptl ro root=LABEL =/ single

回车

按b重启

Enabling swap space:

sh-2.05b#  chkconfig pcmcia off
sh-2.05b#  reboot
 
// 系统校准流程 void AD7190_SystemCalibrate(void) { if (!ad7190_state.is_initialized) AD7190_Init(); uint8_t rx_char; uint32_t start_time = HAL_GetTick(); // 获取开始时间 printf("===== System Calibration =====\r\n"); // 1. 零点校准 printf("Ensure platform is empty, then press 'z' for zero calibration...\r\n"); while(1) { if (HAL_UART_Receive(&huart1, &rx_char, 1, 100) == HAL_OK) { if(rx_char == 'z' || rx_char == 'Z') break; } // 添加超时检测 if (HAL_GetTick() - start_time > CALIBRATION_TIMEOUT) { printf("Calibration timed out\n"); return; } } // 读取32个样本,丢弃异常值 uint32_t samples[32]; int valid_count = 0; for(int i = 0; i < 32; i++) { uint32_t data = AD7190_ReadData(); // 检查数据有效性(排除异常值) if (data > 0 && data < 0xFFFFFF) { samples[valid_count++] = data; } HAL_Delay(10); } if (valid_count < 16) { printf("ERROR: Not enough valid samples for zero calibration (%d/32)\n", valid_count); return; } // 计算中值代替平均值(更抗干扰) qsort(samples, valid_count, sizeof(uint32_t), compare_uint32); ad7190_state.calib.calibration_offset = samples[valid_count / 2]; // 2. 量程校准 printf("Place 1000.0g weight, then press 'f' for full scale calibration...\r\n"); while(1) { if (HAL_UART_Receive(&huart1, &rx_char, 1, 100) == HAL_OK) { if(rx_char == 'f' || rx_char == 'F') break; } // 添加超时检测 if (HAL_GetTick() - start_time > CALIBRATION_TIMEOUT) { printf("Calibration timed out\n"); return; } } // 读取32个样本,丢弃异常值 // 读取32个样本,丢弃异常值 uint32_t F_samples[32]; int F_valid_count = 0; for(int i = 0; i < 32; i++) { uint32_t data = AD7190_ReadData(); // 检查数据有效性(排除异常值) if (data > 0 && data < 0xFFFFFF) { F_samples[F_valid_count++] = data; } HAL_Delay(10); } if (valid_count < 16) { printf("ERROR: Not enough valid samples for full scale calibration (%d/32)\n", valid_count); return; } // 计算中值代替平均值 qsort(F_samples, F_valid_count, sizeof(uint32_t), compare_uint32); uint32_t full_scale = F_samples[valid_count / 2]; // 计算校准因子(增加安全范围检查) int32_t diff = (int32_t)full_scale - (int32_t)ad7190_state.calib.calibration_offset; if (diff <= 1000) { // 1000是经验值,根据实际传感器调整 printf("ERROR: Invalid calibration difference (%ld). Too small!\n", diff); return; } if (diff > 10000000) { // 防止异常大值 printf("ERROR: Invalid calibration difference (%ld). Too large!\n", diff); return; } ad7190_state.calib.calibration_factor = 1000.0f / (float)diff; // 重置去皮值和滤波器 ad7190_state.calib.tare_value = 0.0f; KalmanFilter_Init(&ad7190_state.kf, 0.001f, 0.01f, 1.0f, 0.0f); // 保存到EEPROM // AD7190_SaveCalibrationToEEPROM(); printf("System calibration completed! Factor: %f\n", ad7190_state.calib.calibration_factor); } REFIN2 configured successfully (GPOCON: 0x00) Internal zero calibration completed AD7190 initialized successfully ===== System Calibration ===== Ensure platform is empty, then press 'z' for zero calibration... Place 1000.0g weight, then press 'f' for full scale calibration... System calibration completed! Factor: 0.004975 WARNING: Only 0/32 valid samples Weight: 0.0g WARNING: Only 0/32 valid samples Weight: 0.0g WARNING: Only 0/32 valid samples Weight: -69.0g WARNING: Only 0/32 valid samples什么原因?
08-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值