Input Signal Out of Range 问题 、RTL8111/8168B .....驱动问题

本文介绍如何使用台式机配置RedHat Enterprise Linux 5作为服务器,包括解决显示器信号范围问题及安装网卡驱动的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想用自己的台式机搞个服务器,系统架构是X86,操作系统选用 REDHAT企业版LINUX5
安装系统基本正常,但是在屏幕上出现:
Input Signal Out of Range
解决:
在命令行里输入:setup
选择X configuration -> hardware面板 ->MonitorType configuration 里面选择合适的显示器及其分辨率。我自己就选择的是LCD 1024*768
查看/etc/X11/xorg.conf,部分内容如下:
[color=black][b]
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 16
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768" "800x600" "720x400" "640x480" "640x400"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1024x768" "800x600" "720x400" "640x480" "640x400"
EndSubSection
EndSection
[/b]
[/color]
如果不一致,最好手动添加。


重启后就没问题了。


发现不能上网,通过命令
lsmood和lspci
发现没有加载网卡驱动模块,于是准备安装网卡驱动
查看网卡信息:
kudzu --probe --class=network
我机器的网卡是:RTL8111/8168B PCI Express Gigabit Ethernet controller
驱动下载地址:[url]http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false[/url]

把下载的r8168驱动文件拷贝到某一目录下,最好放在tmp目录:解压命令
bzip2 -d r8168-8.013.00.tar.bz2
tar -xvf r8168-8.013.00.tar
或者直接(tar jxvf r8168-8.013.00.tar.bz2)
进入该加压后的目录:
cd r8168-8.013.00
然后执行命令:
make clean modules

确出现如下错误:
# make clean modules
make -C src/ clean
make[1]: Entering directory `/root/Desktop/r8168-8.013.00/src'
rm -rf *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags .tmp_versions Module.symvers Modules.symvers *.order
make[1]: Leaving directory `/root/Desktop/r8168-8.013.00/src'
make -C src/ modules
make[1]: Entering directory `/root/Desktop/r8168-8.013.00/src'
make -C /lib/modules/2.6.18-92.el5/build SUBDIRS=/root/Desktop/r8168-8.013.00/src modules
make: Entering an unknown directory
make: *** /lib/modules/2.6.18-92.el5/build: .....
make: Leaving an unknown directory
make[1]: *** [modules] error 2
make[1]: Leaving directory `/root/Desktop/r8168-8.013.00/src'
make: *** [modules] error 2

应该是没有安装kernel-devel等一些包
使用命令rpm -qa | grep kernel
如果装全了,会显示如下几个包:
kernel-xen-devel-2.6.18-8.el5
kernel-devel-2.6.18-8.el5
kernel-2.6.18-8.el5
kernel-xen-2.6.18-8.el5
kernel-headers-2.6.18-8.el5

我系统只有上述其中2个。立刻挂在CDROOM,就在redhat enterprise Linux 5.0第一个ISO的Server文件目录下可以找到对应的,将缺少的3个rpm包拷贝到tmp目录下 然后执行
rpm -ivh ******.rpm : 分别安装那3个包

查看有无gcc环境,因为要编译源码,所要需要gcc
在终端里输入gcc,如果显示 no input files,则证明系统已经有gcc环境,如果没有,请自行安装即可。

接下来:
执行清除网卡驱动命令、安装网卡模块命令:make clean modules
安装:make install
挂接:depmod –a
挂载驱动:insmod src/r8168.ko
输入命令查看挂载是否成功:
lsmod | grep r8168
如果输出信息,则证明已经成功。reboot OK
`timescale 1ns / 1ps module tb_frequency_meter_top(); // 输入信号 reg clk_50M; // 50MHz系统时钟 reg signal_in; // 被测信号输入 reg reset_n; // 异步复位(低有效) reg range_sel; // 量程选择(0:低频 1:高频) // 输出信号 wire [6:0] seg; // 七段数码管段选 wire [5:0] sel; // 数码管位选 wire [1:0] unit; // 单位指示(00:Hz, 01:kHz, 10:MHz) // 测试端口 wire clk_10Hz_test; wire clk_1MHz_test; wire [23:0] freq_count_test; wire [23:0] period_count_test; wire [23:0] display_value_test; // 实例化被测设计 frequency_meter_top uut ( .clk_50M(clk_50M), .signal_in(signal_in), .reset_n(reset_n), .range_sel(range_sel), .seg(seg), .sel(sel), .unit(unit), // 测试端口 .clk_10Hz_test(clk_10Hz_test), .clk_1MHz_test(clk_1MHz_test), .freq_count_test(freq_count_test), .period_count_test(period_count_test), .display_value_test(display_value_test) ); // 生成50MHz系统时钟 always #10 clk_50M = ~clk_50M; // 20ns周期 = 50MHz // 测试序列 initial begin // 初始化信号 clk_50M = 0; signal_in = 0; reset_n = 0; range_sel = 0; // 复位系统 #100; reset_n = 1; #100; $display("Starting simulation at time %0t ns", $time); // 测试1:低频信号测量 (1kHz) $display("\n=== Test 1: Low frequency measurement (1kHz) ==="); range_sel = 0; // 选择低频量程 generate_signal(1000, 10); // 1kHz,持续10ms #10_000_000; // 等待10ms (10,000,000 ns) // 测试2:高频信号测量 (1MHz) $display("\n=== Test 2: High frequency measurement (1MHz) ==="); range_sel = 1; // 选择高频量程 generate_signal(1_000_000, 1); // 1MHz,持续1ms #1_000_000; // 等待1ms (1,000,000 ns) // 测试3:边界频率测量 (100Hz) $display("\n=== Test 3: Boundary frequency (100Hz) ==="); range_sel = 0; // 选择低频量程 generate_signal(100, 100); // 100Hz,持续100ms #100_000_000; // 等待100ms // 极高频测量 (10MHz) $display("\n=== Test 4: High frequency boundary (10MHz) ==="); range_sel = 1; // 选择高频量程 generate_signal(10_000_000, 0.1); // 10MHz,持续0.1ms #100_000; // 等待0.1ms (100,000 ns) // 量程切换测试 $display("\n=== Test 5: Range switching test ==="); // 低频量程 range_sel = 0; generate_signal(500, 10); // 500Hz,持续10ms #10_000_000; // 等待10ms // 高频量程 range_sel = 1; generate_signal(500, 10); // 500Hz,持续10ms #10_000_000; // 等待10ms // 结束仿真 #100; $display("\nSimulation completed at time %0t ns", $time); $finish; end // 修改后的信号生成任务(使用整数替代实数) task generate_signal; input integer freq; // 频率值 (Hz) - 整数 input integer duration; // 持续时间 (ms) - 整数 integer half_period; // 半周期时间 (ns) - 整数 integer total_time_ns; // 总时间 (ns) - 整数 integer start_time; // 开始时间 - 整数 integer cycles; // 信号周期数 integer i; // 循环计数器 begin $display("Generating signal: %d Hz for %d ms", freq, duration); // 防止除零错误 if (freq <= 0) begin $display("Error: Frequency must be positive!"); half_period = 1000; // 默认1us半周期 end else begin // 计算半周期时间(纳秒) - 使用整数除法 half_period = 500_000_000 / freq; // 1e9/2 = 500,000,000 end // 计算总时间(纳秒) - 使用整数 total_time_ns = duration * 1_000_000; // 计算完整周期数 cycles = (total_time_ns) / (2 * half_period); $display("Half period: %d ns, Cycles: %d", half_period, cycles); // 使用循环生成信号 for (i = 0; i < cycles; i = i + 1) begin signal_in = 1; #(half_period); signal_in = 0; #(half_period); end // 信号结束后保持低电平 signal_in = 0; end endtask // 数码管显示监控 initial begin reg [23:0] digit_str [0:5]; // 存储每个数码管的字符串表示 integer i; // 循环变量声明在外部 forever begin #100_000; // 每100us检查一次显示 (0.1ms) if (reset_n) begin $display("\n===== Display at time %0t ns =====", $time); $display("Digit select: %b", sel); $display("Segment pattern: %b", seg); // 解码所有数码管 - 使用外部声明的循环变量 for (i = 0; i < 6; i = i + 1) begin decode_digit(seg, sel[i], digit_str[i]); end $display("Decoded digits: %s %s %s %s %s %s", digit_str[0], digit_str[1], digit_str[2], digit_str[3], digit_str[4], digit_str[5]); // 显示单位 case (unit) 2'b00: $display("Unit: Hz"); 2'b01: $display("Unit: kHz"); 2'b10: $display("Unit: MHz"); default: $display("Unit: Unknown"); endcase $display("==================="); end end end // 数码管解码任务 task decode_digit; input [6:0] segs; input sel_bit; output reg [23:0] digit_str; // 字符串输出 begin if (!sel_bit) begin digit_str = "OFF"; end else begin case (segs) 7'b1000000: digit_str = "0 "; 7'b1111001: digit_str = "1 "; 7'b0100100: digit_str = "2 "; 7'b0110000: digit_str = "3 "; 7'b0011001: digit_str = "4 "; 7'b0010010: digit_str = "5 "; 7'b0000010: digit_str = "6 "; 7'b1111000: digit_str = "7 "; 7'b0000000: digit_str = "8 "; 7'b0010000: digit_str = "9 "; 7'b0001000: digit_str = "A "; 7'b0000011: digit_str = "B "; 7'b1000110: digit_str = "C "; 7'b0100001: digit_str = "D "; 7'b0000110: digit_str = "E "; 7'b0001110: digit_str = "F "; default: digit_str = "? "; endcase end end endtask // 内部信号监控 initial begin forever begin #1_000_000; // 每1ms检查一次内部信号 if (reset_n) begin $display("\n--- Internal signals at time %0t ns ---", $time); $display("clk_10Hz: %b", clk_10Hz_test); $display("clk_1MHz: %b", clk_1MHz_test); $display("freq_count: %d", freq_count_test); $display("period_count: %d", period_count_test); $display("display_value: %d", display_value_test); $display("-----------------------"); end end end endmodule Error (10174): Verilog HDL Unsupported Feature error at tb_frequency_meter_top.v(56): system function "$time" is not supported for synthesis Error (10174): Verilog HDL Unsupported Feature error at tb_frequency_meter_top.v(97): system function "$time" is not supported for synthesis Error (12153): Can't elaborate top-level user hierarchy Error: Quartus II 64-Bit Analysis & Synthesis was unsuccessful. 3 errors, 6 warnings Error: Peak virtual memory: 4608 megabytes Error: Processing ended: Mon Jun 16 10:19:08 2025 Error: Elapsed time: 00:00:01 Error: Total CPU time (on all processors): 00:00:00 Error (293001): Quartus II Full Compilation was unsuccessful. 5 errors, 6 warnings 运行时出现这些问题怎么解决
最新发布
06-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值