精华内容
下载资源
问答
  • 首先选择的是 Install,就是文字安装,安装的时候经过选择国家语言,到探测网络硬件,屏幕上显示“探测网络硬件”,然后就一直卡在那。然后又用了 Graphical Install,结果还是一样,等了半个小时还是卡着不动。 在...

    在虚拟机上安装 Kali 的时候什么问题都没有,在实体机上安装就出现问题了。

    首先选择的是 Install,就是文字安装,安装的时候经过选择国家语言,到探测网络硬件,屏幕上显示“探测网络硬件”,然后就一直卡在那。然后又用了 Graphical Install,结果还是一样,等了半个小时还是卡着不动。

    在网上找了有方法可以跳过探测网络硬件的,但是我试过了发现还是不行,因为他跳过探测网络硬件的话,后面的获取网络地址还是会卡住。

    然后没办法了,就准备先从 Live 进系统看看,进这个倒是一点问题都没有,然后在主菜单的系统工具看到了一个 Install Kali,通过这个安装就成功了。

    不过如果是多系统的话,在后面的安装 Grub 引导可能会出现问题,如果无法安装引导的话,就用主菜单-系统工具-系统管理-Gparted 分区编辑器把要安装的分区删除,重来一遍,就能正常安装引导了。

    本文固定链接:http://www.itechzero.com/kali-linux-install-stuck-on-detect-network-hardware-solution.html,转载请注明出处。

    展开全文
  • 网络堆栈是硬件中独立出来的部分,主要用来支持TCP/IP等多种协议,网络设备驱动层是连接网络堆栈协议层和网络硬件的中间层。 网络设备驱动程序的主要功能是: (1)模块加载或内核启动相关的初始化处理 (2)...

    在Linux,网络分为两个层,分别是网络堆栈协议支持层,以及接收和发送网络协议的设备驱动程序层。网络堆栈是硬件中独立出来的部分,主要用来支持TCP/IP等多种协议,网络设备驱动层是连接网络堆栈协议层和网络硬件的中间层。

    网络设备驱动程序的主要功能是:

    (1)模块加载或内核启动相关的初始化处理

    (2)清除模块时的处理

    (3)网络设备的检索和探测

    (4)网络设备的初始化和注册

    (5)打开或关闭网络设备

    (6)发送网络数据

    (7)接收网络数据

    (8)中断处理(在发送完数据时,硬件向内核产生一个中断,告诉内核数据已经发送完毕,在网络设备接收到数据时,也要发生一个中断,告诉内核,数据已经到达,请及时处理)

    (9)超时处理

    (10)多播处理

    (11)网络设备的控制ioctl

    而Linux网络设备驱动的主要功能就是网络设备的初始化,网络设备的配置,数据包的收发。

    下面代码是关于虚拟硬件的网络驱动的例子

    2、代码

    1. #undef PDEBUG             /* undef it, just in case */  
    2. #ifdef SNULL_DEBUG  
    3. #  ifdef __KERNEL__  
    4.      /* This one if debugging is on, and kernel space */  
    5. #    define PDEBUG(fmt, args...) printk( KERN_DEBUG "snull: " fmt, ## args)  
    6. #  else  
    7.      /* This one for user space */  
    8. #    define PDEBUG(fmt, args...) fprintf(stderr, fmt, ## args)  
    9. #  endif  
    10. #else  
    11. #  define PDEBUG(fmt, args...) /* not debugging: nothing */  
    12. #endif  
    13. #undef PDEBUGG  
    14. #define PDEBUGG(fmt, args...) /* nothing: it's a placeholder */  
    15.   
    16. /* These are the flags in the statusword */  
    17. #define SNULL_RX_INTR 0x0001  
    18. #define SNULL_TX_INTR 0x0002  
    19. /* Default timeout period */  
    20. #define SNULL_TIMEOUT 6   /* In jiffies */  
    21. #include <linux/module.h>  
    22. #include <linux/sched.h>  
    23. #include <linux/kernel.h> /* printk() */  
    24. #include <linux/slab.h> /* kmalloc() */  
    25. #include <linux/errno.h>  /* error codes */  
    26. #include <linux/types.h>  /* size_t */  
    27. #include <linux/interrupt.h> /* mark_bh */  
    28. #include <linux/in.h>  
    29. #include <linux/netdevice.h>   /* struct device, and other headers */  
    30. #include <linux/etherdevice.h> /* eth_type_trans */  
    31. #include <linux/ip.h>          /* struct iphdr */  
    32. #include <linux/tcp.h>         /* struct tcphdr */  
    33. #include <linux/skbuff.h>  
    34. #include <linux/if_ether.h>  
    35. #include <linux/in6.h>  
    36. #include <asm/uaccess.h>  
    37. #include <asm/checksum.h>  
    38.   
    39. static int lockup = 0;  
    40. static int timeout = SNULL_TIMEOUT;  
    41. struct net_device snull_devs[2];//这里定义两个设备,一个是snull0,一个是snull1  
    42. //网络设备结构体,作为net_device->priv  
    43. struct snull_priv {  
    44.     struct net_device_stats stats;//有用的统计信息  
    45.     int status;//网络设备的状态信息,是发完数据包,还是接收到网络数据包  
    46.     int rx_packetlen;//接收到的数据包长度  
    47.     u8 *rx_packetdata;//接收到的数据  
    48.     int tx_packetlen;//发送的数据包长度  
    49.     u8 *tx_packetdata;//发送的数据  
    50.     struct sk_buff *skb;//socket buffer结构体,网络各层之间传送数据都是通过这个结构体来实现的  
    51.     spinlock_t lock;//自旋锁  
    52. };  
    53.   
    54. void snull_tx_timeout (struct net_device *dev);  
    55.   
    56. //网络接口的打开函数  
    57. int snull_open(struct net_device *dev)  
    58.  {  
    59.     printk("call snull_open/n");  
    60.     memcpy(dev->dev_addr, "/0SNUL0", ETH_ALEN);//分配一个硬件地址,ETH_ALEN是网络设备硬件地址的长度  
    61.      
    62.     netif_start_queue(dev);//打开传输队列,这样才能进行数据传输  
    63.   
    64.     return 0;  
    65. }  
    66. int snull_release(struct net_device *dev)  
    67. {  
    68.     printk("call snull_release/n");  
    69.     netif_stop_queue(dev); //当网络接口关闭的时候,调用stop方法,这个函数表示不能再发送数据  
    70.     return 0;  
    71. }  
    72.   
    73. //接包函数  
    74. void snull_rx(struct net_device *dev, int len, unsigned char *buf)  
    75. {  
    76.      
    77.     struct sk_buff *skb;  
    78.     struct snull_priv *priv = (struct snull_priv *) dev->priv;  
    79.    
    80.     /* 
    81.      * The packet has been retrieved from the transmission 
    82.      * medium. Build an skb around it, so upper layers can handle it 
    83.      */  
    84.   
    85.   
    86.     skb = dev_alloc_skb(len+2);//分配一个socket buffer,并且初始化skb->data,skb->tail和skb->head  
    87.     if (!skb) {  
    88.         printk("snull rx: low on mem - packet dropped/n");  
    89.         priv->stats.rx_dropped++;  
    90.         return;  
    91.     }  
    92.     skb_reserve(skb, 2); /* align IP on 16B boundary */   
    93.     memcpy(skb_put(skb, len), buf, len);//skb_put是把数据写入到socket buffer  
    94.     /* Write metadata, and then pass to the receive level */  
    95.     skb->dev = dev;  
    96.     skb->protocol = eth_type_trans(skb, dev);//返回的是协议号  
    97.     skb->ip_summed = CHECKSUM_UNNECESSARY; //此处不校验  
    98.     priv->stats.rx_packets++;//接收到包的个数+1  
    99.       
    100.     priv->stats.rx_bytes += len;//接收到包的长度  
    101.     netif_rx(skb);//通知内核已经接收到包,并且封装成socket buffer传到上层  
    102.     return;  
    103. }  
    104.      
    105.          
    106. /* 
    107.  * The typical interrupt entry point 
    108.  */  
    109. //中断处理,此程序中没有硬件,因此,没有真正的硬件中断,只是模拟中断,在发送完网络数据包之后,会产生中断  
    110. //用来通知内核已经发送完数据包,当新的数据包到达网络接口时,会发生中断,通知新的数据包已经到来了  
    111. void snull_interrupt(int irq, void *dev_id, struct pt_regs *regs)  
    112. {  
    113.     
    114.     int statusword;//用来标识是发送完毕还是接收到新的数据包  
    115.     struct snull_priv *priv;  
    116.     /* 
    117.      * As usual, check the "device" pointer for shared handlers. 
    118.      * Then assign "struct device *dev" 
    119.      */  
    120.     struct net_device *dev = (struct net_device *)dev_id;  
    121.     /* ... and check with hw if it's really ours */  
    122.     if (!dev /*paranoid*/ ) return;  
    123.     /* Lock the device */  
    124.     priv = (struct snull_priv *) dev->priv;  
    125.     spin_lock(&priv->lock);  
    126.     /* retrieve statusword: real netdevices use I/O instructions */  
    127.     statusword = priv->status;  
    128.     if (statusword & SNULL_RX_INTR) {//如果是接收  
    129.         /* send it to snull_rx for handling */  
    130.         snull_rx(dev, priv->rx_packetlen, priv->rx_packetdata);  
    131.     }  
    132.     if (statusword & SNULL_TX_INTR) {//如果发送完毕  
    133.         /* a transmission is over: free the skb */  
    134.         priv->stats.tx_packets++;  
    135.         priv->stats.tx_bytes += priv->tx_packetlen;  
    136.         dev_kfree_skb(priv->skb);//释放skb 套接字缓冲区  
    137.     }  
    138.     /* Unlock the device and we are done */  
    139.     spin_unlock(&priv->lock);  
    140.     return;  
    141. }  
    142.   
    143. /* 
    144.  * Transmit a packet (low level interface) 
    145.  */  
    146. //真正的处理的发送数据包  
    147. //模拟从一个网络向另一个网络发送数据包  
    148. void snull_hw_tx(char *buf, int len, struct net_device *dev)  
    149.   
    150. {  
    151.   
    152.    /* 
    153.      * This function deals with hw details. This interface loops 
    154.      * back the packet to the other snull interface (if any). 
    155.      * In other words, this function implements the snull behaviour, 
    156.      * while all other procedures are rather device-independent 
    157.      */  
    158.     struct iphdr *ih;//ip头部  
    159.     struct net_device *dest;//目标设备结构体,net_device存储一个网络接口的重要信息,是网络驱动程序的核心  
    160.     struct snull_priv *priv;  
    161.     u32 *saddr, *daddr;//源设备地址与目标设备地址  
    162.     /* I am paranoid. Ain't I? */  
    163.     if (len < sizeof(struct ethhdr) + sizeof(struct iphdr)) {  
    164.         printk("snull: Hmm... packet too short (%i octets)/n",  
    165.                len);  
    166.         return;  
    167.     }  
    168.   
    169.     /* 
    170.      * Ethhdr is 14 bytes, but the kernel arranges for iphdr 
    171.      * to be aligned (i.e., ethhdr is unaligned) 
    172.      */  
    173.     ih = (struct iphdr *)(buf+sizeof(struct ethhdr));  
    174.     saddr = &ih->saddr;  
    175.     daddr = &ih->daddr;  
    176.     //在同一台机器上模拟两个网络,不同的网段地址,进行发送网络数据包与接收网络数据包  
    177.     ((u8 *)saddr)[2] ^= 1; /* change the third octet (class C) ^是位异或操作符把第三个部分的网络地址与1进行异或,由于同一网络的数据不进行转发*/   
    178.     ((u8 *)daddr)[2] ^= 1;  
    179.     ih->check = 0;         /* and rebuild the checksum (ip needs it) */  
    180.     ih->check = ip_fast_csum((unsigned char *)ih,ih->ihl);  
    181.     if (dev == snull_devs)  
    182.         PDEBUGG("%08x:%05i --> %08x:%05i/n",  
    183.                ntohl(ih->saddr),ntohs(((struct tcphdr *)(ih+1))->source),  
    184.                ntohl(ih->daddr),ntohs(((struct tcphdr *)(ih+1))->dest));  
    185.     else  
    186.         PDEBUGG("%08x:%05i <-- %08x:%05i/n",  
    187.                ntohl(ih->daddr),ntohs(((struct tcphdr *)(ih+1))->dest),  
    188.                ntohl(ih->saddr),ntohs(((struct tcphdr *)(ih+1))->source));  
    189.   
    190.     /* 
    191.      * Ok, now the packet is ready for transmission: first simulate a 
    192.      * receive interrupt on the twin device, then  a 
    193.      * transmission-done on the transmitting device 
    194.      */  
    195.     dest = snull_devs + (dev==snull_devs ? 1 : 0);//如果dev是0,那么dest就是1,如果dev是1,那么dest是0  
    196.     priv = (struct snull_priv *) dest->priv;//目标dest中的priv  
    197.     priv->status = SNULL_RX_INTR;  
    198.     priv->rx_packetlen = len;  
    199.     priv->rx_packetdata = buf;  
    200.     snull_interrupt(0, dest, NULL);  
    201.     priv = (struct snull_priv *) dev->priv;  
    202.     priv->status = SNULL_TX_INTR;  
    203.     priv->tx_packetlen = len;  
    204.     priv->tx_packetdata = buf;  
    205.     if (lockup && ((priv->stats.tx_packets + 1) % lockup) == 0) {  
    206.         /* Simulate a dropped transmit interrupt */  
    207.         netif_stop_queue(dev);  
    208.   
    209.     
    210.         PDEBUG("Simulate lockup at %ld, txp %ld/n", jiffies,  
    211.                         (unsigned long) priv->stats.tx_packets);  
    212.     }  
    213.     else  
    214.         snull_interrupt(0, dev, NULL);  
    215. }  
    216.    
    217.   
    218. /* 
    219.  * Transmit a packet (called by the kernel) 
    220.  */  
    221.   
    222. //发包函数  
    223. int snull_tx(struct sk_buff *skb, struct net_device *dev)  
    224. {  
    225.     
    226.     int len;  
    227.     char *data;  
    228.     struct snull_priv *priv = (struct snull_priv *) dev->priv;  
    229.   
    230.     if ( skb == NULL) {  
    231.         PDEBUG("tint for %p,  skb %p/n", dev,  skb);  
    232.         snull_tx_timeout (dev);  
    233.         if (skb == NULL)  
    234.             return 0;  
    235.     }  
    236.   
    237.     len = skb->len < ETH_ZLEN ? ETH_ZLEN : skb->len;//ETH_ZLEN是所发的最小数据包的长度  
    238.     data = skb->data;//将要发送的数据包中数据部分  
    239.     dev->trans_start = jiffies; //保存当前的发送时间  
    240.     priv->skb = skb;  
    241.     snull_hw_tx(data, len, dev);//真正的发送函数  
    242.    return 0; /* Our simple device can not fail */  
    243. }  
    244. /* 
    245.  * Deal with a transmit timeout. 
    246.  */  
    247.   
    248. //一旦超出watchdog_timeo就会调用snull_tx_timeout  
    249. void snull_tx_timeout (struct net_device *dev)  
    250. {  
    251.    printk("call snull_tx_timeout/n");  
    252.     struct snull_priv *priv = (struct snull_priv *) dev->priv;  
    253.     PDEBUG("Transmit timeout at %ld, latency %ld/n", jiffies,  
    254.                     jiffies - dev->trans_start);  
    255.     priv->status = SNULL_TX_INTR;  
    256.     snull_interrupt(0, dev, NULL);//超时后发生中断  
    257.     priv->stats.tx_errors++;//发送的错误数  
    258.     netif_wake_queue(dev); //为了再次发送数据,调用此函数,重新启动发送队列  
    259.     return;  
    260. }  
    261.    
    262. /* 
    263.  * Ioctl commands 
    264.  */  
    265. int snull_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)  
    266. {  
    267.    
    268.     PDEBUG("ioctl/n");  
    269.     return 0;  
    270. }  
    271. /* 
    272.  * Return statistics to the caller 
    273.  */  
    274. struct net_device_stats *snull_stats(struct net_device *dev)  
    275. {  
    276.     struct snull_priv *priv = (struct snull_priv *) dev->priv;  
    277.     return &priv->stats;//得到统计资料信息  
    278. }  
    279.   
    280.   
    281. //设备初始化函数  
    282. int snull_init(struct net_device *dev)  
    283. {  
    284.    printk("call snull_init/n");  
    285.   
    286.     /* 
    287.      * Then, assign other fields in dev, using ether_setup() and some 
    288.      * hand assignments 
    289.      */  
    290.     ether_setup(dev);//填充一些以太网中的设备结构体的项  
    291.     dev->open            = snull_open;  
    292.     dev->stop            = snull_release;  
    293.     //dev->set_config      = snull_config;  
    294.     dev->hard_start_xmit = snull_tx;  
    295.     dev->do_ioctl        = snull_ioctl;  
    296.     dev->get_stats       = snull_stats;  
    297.     //dev->change_mtu      = snull_change_mtu;   
    298.    // dev->rebuild_header  = snull_rebuild_header;  
    299.     //dev->hard_header     = snull_header;  
    300.   
    301.     dev->tx_timeout     = snull_tx_timeout;//超时处理  
    302.     dev->watchdog_timeo = timeout;  
    303.   
    304.     /* keep the default flags, just add NOARP */  
    305.     dev->flags           |= IFF_NOARP;  
    306.     dev->hard_header_cache = NULL;      /* Disable caching */  
    307.     SET_MODULE_OWNER(dev);  
    308.     /* 
    309.      * Then, allocate the priv field. This encloses the statistics 
    310.      * and a few private fields. 
    311.      */  
    312. //为priv分配内存  
    313.     dev->priv = kmalloc(sizeof(struct snull_priv), GFP_KERNEL);  
    314.   if (dev->priv == NULL)  
    315.        return -ENOMEM;  
    316.     memset(dev->priv, 0, sizeof(struct snull_priv));  
    317.     spin_lock_init(& ((struct snull_priv *) dev->priv)->lock);  
    318.     return 0;  
    319. }  
    320.   
    321.   
    322. struct net_device snull_devs[2] = {  
    323.     { init: snull_init, },  /* init, nothing more */  
    324.     { init: snull_init, }  
    325. };  
    326.   
    327. int snull_init_module(void)  
    328. {  
    329.    int i,result=0;  
    330.    strcpy(snull_devs[0].name,"snull0");//net_device结构体中的name表示设备名  
    331.    strcpy(snull_devs[1].name,"snull1");//即定义了两个设备,snull0与snull1  
    332.     for (i=0; i<2;  i++)  
    333.         if ( (result = register_netdev(snull_devs+i)) )//注册设备  
    334.             printk("snull: error %i registering device /"%s/"/n",  
    335.                    result, snull_devs[i].name);  
    336.      return 0;  
    337. }  
    338. void snull_cleanup(void)  
    339. {  
    340.     int i;  
    341.    
    342.     for (i=0; i<2;  i++) {  
    343.         kfree(snull_devs[i].priv);  
    344.         unregister_netdev(snull_devs+i);  
    345.     }  
    346.     return;  
    347. }  
    348.   
    349. module_init(snull_init_module);  
    350. module_exit(snull_cleanup); 

    展开全文
  •  Linux查看硬件信息以及驱动设备的命令 分类: Red Linux 2012-07-31 15:14 ...用硬件检测程序kuduz探测硬件:service kudzu start ( or restart) 查看CPU信息:cat /proc/cpuinfo 查看板卡信息:
    

    Linux查看硬件信息以及驱动设备的命令

    分类: Red Linux 3876人阅读 评论(0) 收藏 举报
    用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)
    查看CPU信息:cat /proc/cpuinfo
    查看板卡信息:cat /proc/pci
    查看PCI信息:lspci (相比cat /proc/pci更直观)
    查看内存信息:cat /proc/meminfo
    查看USB设备:cat /proc/bus/usb/devices
    查看交换分区信息: cat /proc/swap
    查看内存使用情况: free
    查看键盘和鼠标:cat /proc/bus/input/devices
    查看系统硬盘信息和使用情况:fdisk & disk - l & df
    查看各设备的中断请求(IRQ):cat /proc/interrupts
    查看系统体系结构:uname -a
    查看Linux的版本: cat /etc/issue  或 cat /proc/version 
    查看CPU信息(型号): # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
    查看CPU实际上核的数: # cat /proc/cpuinfo | grep physical | uniq -c
    当前CPU运行在32bit模式下:# getconf LONG_BIT
    结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit: # cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
    
    查看当前操作系统发行版信息:  # cat /etc/issue | grep Linux
    查看机器型号: # dmidecode | grep "Product Name" 
    查看网卡信息: # dmesg | grep -i eth
    

    查看进程开始时间、结束时间、运行时间:ps -o stime,etime  28486 (SPID)

    系统

    # uname -a               # 查看内核/操作系统/CPU信息
    # head -n 1 /etc/issue   # 查看操作系统版本
    # cat /proc/cpuinfo      # 查看CPU信息
    # hostname               # 查看计算机名
    # lspci -tv              # 列出所有PCI设备
    # lsusb -tv              # 列出所有USB设备
    # lsmod                  # 列出加载的内核模块
    # env                    # 查看环境变量

    资源

    # free -m                # 查看内存使用量和交换区使用量
    # df -h                  # 查看各分区使用情况
    # du -sh <目录名>        # 查看指定目录的大小
    # grep MemTotal /proc/meminfo   # 查看内存总量
    # grep MemFree /proc/meminfo    # 查看空闲内存量
    # uptime                 # 查看系统运行时间、用户数、负载
    # cat /proc/loadavg      # 查看系统负载

    磁盘和分区

    # mount | column -t      # 查看挂接的分区状态
    # fdisk -l               # 查看所有分区
    # swapon -s              # 查看所有交换分区
    # hdparm -i /dev/hda     # 查看磁盘参数(仅适用于IDE设备)
    # dmesg | grep IDE       # 查看启动时IDE设备检测状况

    网络

    # ifconfig               # 查看所有网络接口的属性
    # iptables -L            # 查看防火墙设置
    # route -n               # 查看路由表
    # netstat -lntp          # 查看所有监听端口
    # netstat -antp          # 查看所有已经建立的连接
    # netstat -s             # 查看网络统计信息

    进程

    # ps -ef                 # 查看所有进程
    # top                    # 实时显示进程状态

    用户

    # w                      # 查看活动用户
    # id <用户名>            # 查看指定用户信息
    # last                   # 查看用户登录日志
    # cut -d: -f1 /etc/passwd   # 查看系统所有用户
    # cut -d: -f1 /etc/group    # 查看系统所有组
    # crontab -l             # 查看当前用户的计划任务

    服务

    # chkconfig --list       # 列出所有系统服务
    # chkconfig --list | grep on    # 列出所有启动的系统服务

    程序

    # rpm -qa                # 查看所有安装的软件包
    展开全文
  • 硬件检测程序kudzu探测硬件:service kudzu start ( or restart)查看CPU信息:cat /proc/cpuinfo查看板卡信息:cat /proc/pci查看PCI信息:lspci (相比cat /proc/pci更直观)查看内存信息:cat /proc/meminfo...

    转自网络

    用硬件检测程序kudzu探测新硬件:service kudzu start ( or restart)
    查看CPU信息:cat /proc/cpuinfo
    查看板卡信息:cat /proc/pci
    查看PCI信息:lspci (相比cat /proc/pci更直观)
    查看内存信息:cat /proc/meminfo
    查看USB设备:cat /proc/bus/usb/devices

    {

        

    方法一:在/etc/init.d/rcS中添加mount -t usbfs none /proc/bus/usb.

    方法二:在shell中输入mount -t usbfs /proc/bus/usb /proc/bus/usb.

    前提是在编译内核时选中usb device filesystem。

    # cat   /proc/bus/usb /device

    }
    查看键盘和鼠标:cat /proc/bus/input/devices
    查看系统硬盘信息和使用情况:fdisk & disk - l & df
    查看各设备的中断请求(IRQ):cat /proc/interrupts
    查看系统体系结构:uname -a
    在LINUX环境开发驱动程序,首先要探测到新硬件,接下来就是开发驱动程序。
    常用命令整理如下:
    用硬件检测程序kudzu探测新硬件:service kudzu start ( or restart)
    查看CPU信息:cat /proc/cpuinfo
    查看板卡信息:cat /proc/pci
    查看PCI信息:lspci (相比cat /proc/pci更直观)
    查看内存信息:cat /proc/meminfo
    查看USB设备:cat /proc/bus/usb/devices
    查看键盘和鼠标:cat /proc/bus/input/devices
    查看系统硬盘信息和使用情况:fdisk & disk - l & df
    查看各设备的中断请求(IRQ):cat /proc/interrupts
    查看系统体系结构:uname –a

     

    看看系统认出的盘先: cat /proc/partitions
    dmidecode查看硬件信息,包括bios、cpu、内存等信息
    dmesg | more 查看硬件信息
    对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:
    Cpuinfo 主机CPU信息
    Dma 主机DMA通道信息
    Filesystems 文件系统信息
    Interrupts 主机中断信息
    Ioprots 主机I/O端口号信息
    Meninfo 主机内存信息
    Version Linux内存版本信息

     
     

    转载于:https://www.cnblogs.com/sea-star/archive/2012/10/19/2730638.html

    展开全文
  • 前段时间,项目在线上出现问题,项目部署在Linux(Centos7)服务器上,本文主要讨论一下使用相关命令进行...lsof: 可以给出进程所有打开的文件,而Linux 下一切皆文件,比如硬件设备、网络连接等 Linux观察工具 使...
  • Linux设备驱动之网络设备驱动

    千次阅读 2011-04-14 22:03:00
    网络堆栈是硬件中独立出来的部分,主要用来支持TCP/IP等多种协议,而网络设备驱动层是连接网络堆栈协议层和网络硬件的中间层。网络设备驱动程序的主要功能是:(1)模块加载或内核启动相关的初始化处理(2)清除模块时的...
  • 传统上,Linux网络接口被枚举为eth[0123...],但这些名称并不一定符合实际的硬件插槽,PCI位置,USB接口数量等,这引入了一个不可预知的命名问题(例如,由于不确定的设备探测行为),这可能会导致不同的网络配置...
  • 传统上,Linux网络接口被枚举为eth[0123...],但这些名称并不一定符合实际的硬件插槽,PCI位置,USB接口数量等,这引入了一个不可预知的命名问题(例如,由于不确定的设备探测行为),这可能会导致不同的网络配置...
  • 比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(protoc
  • 传统上,Linux网络接口被枚举为eth[0123...],但这些名称并不一定符合实际的硬件插槽,PCI位置,USB接口数量等,这引入了一个不可预知的命名问题(例如,由于不确定的设备探测行为),这可能会导致不同的网络配置...
  • Linux系统 日常优化

    2019-09-26 02:55:27
    linux 系统基础查看查看主机负载参数 uptime查看cpu使用率 sar 1 4查看内存 free -m查看网络流量 iostat查看本机IP ifconfig查看最大文件打开数 ulimit -n查看磁盘使用率 df -h用硬件检测程序 kuduz探测硬件:...
  • Linux高级配置详解

    2011-06-11 06:59:29
    【图书目录】-Linux高级配置详解第l章Linux系统简介1.1Linux的起源1.2Linux系统的特点和功能1.3基本硬件要求1.4Linux的版本1.4.1Linux内核版本号1.4.2Linux的发行版本1.5Linux的发展1.6Linux网络资源第2章软件的...
  • Linux内核源码+电子书

    热门讨论 2011-02-21 15:13:10
    第二章 Linux运行的硬件基础 2.1 i386的寄存器 2.1.1通用寄存器 2.1.2段寄存器 2.1.3状态和控制寄存器 2.1.4 系统地址寄存器 2.1.5 调试寄存器和测试寄存器 2.2 内存地址 2.3 段机制和描述符 2.3.1 ...
  • Linux中namp命令概述

    2019-12-30 16:16:33
    Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统。 Nmap是一款非常强大的实用工具,可用于: 检测活在网络上的主机(主机发现) 检测主机...
  • linux下namp简单使用

    2016-05-28 13:33:51
    一....Nmap是一款非常强大的实用工具,可用于:检测活在网络上的主机(主机发现)检测主机上开放的端口(端口发现或枚举)检测到相应的端口(服务发现)的软件和版本检测操作系统,硬件地址,以及...
  • RED HAT LINUX 6大全

    热门讨论 2011-10-21 18:46:06
    本书全面系统地介绍了Red Hat Linux 6。全书共分为五个部分,包括35章和四个附录。第一部分为Red Hat Linux的介绍和安装;第二部分为服务配置;第三部分为系统管理;第四部分为Linux编程;第五部分为附录。本书内容...
  • RedHat Linux 7.2的新特性 RedHat Linux 7.2的研发代号为“enigma”,已经于10月22日正式对外发行。...更加出色的网络配置、用户管理、硬件探测工具(Network Configuration, User Management, Hardware Viewing
  • 本设计主要以嵌入式Cortex_A8设备、ZigBee CC2530节点、路由交换设备为主要核心硬件,以Boa嵌入式web服务器、mjpeg-steamer开源视频项目、Zstack协议栈、GTK图形界面开发工具、嵌入式Linux操作系统为主要软件核心。...
  • Linux的Kernel工作特点

    2012-02-27 00:03:41
    Kernel的任务硬件探测设备驱动程序的初始化(initrd,模块形式)挂载根文件系统(以只读方式)装载/sbin/init 启动系统的PID为1的进程Kernel组成部分 一、 kernel 平台架构 设备驱动管理 文件系统 网络相关 内存管理...
  •  DarkShell((DDOS)集群防火墙压力测试系统)是一款由DarkShell工作室独立开发的标准的网络压力测试软件、集DDOS、WEB、ISS连接测试于一身的集群压力测试软件,可广泛应用于机房、路由、软、硬件防火墙测试,机房带宽...
  • ARM-Linux系统移植

    2012-07-07 15:30:27
    硬件环境......................................................................................................................................8 1.1主机硬件环境.........................................
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使用 shutdown命令,系统管理员会通知所有...
  • 传统上,Linux网络接口被枚举为eth[0123...],但这些名称并不一定符合实际的硬件插槽,PCI位置,USB接口数量等,这引入了一个不可预知的命名问题(例如,由于不确定的设备探测行为),这可能会导致不同的网络配置...
  • Nmap是一款非常强大的实用工具,可用于:检测活在网络上的主机(主机发现)检测主机上开放的端口(端口发现或枚举)检测到相应的端口(服务发现)的软件和版本检测操作系统,硬件地址,以及软件版本检测脆弱性的漏洞...
  • 传统上,Linux网络接口被枚举为eth[0123...],但这些名称并不一定符合实际的硬件插槽,PCI位置,USB接口数量等,这引入了一个不可预知的命名问题(例如,由于不确定的设备探测行为),这可能会导致不同的网络配置...
  • Nmap非常强大且实用,可用于:检测活在网络上的主机(主机发现)检测主机上开放的端口(端口发现或枚举)检测到相应的端口(服务发现)的软件和版本检测操作系统,硬件地址,以及软件版本检测脆弱性的漏洞(Nmap的...
  • 首先查看网络设置里面-以太网设备--硬件设备要对应后面有显示网卡的,还有重新探测mac地址, 如果不行再看看--常规--把由networkmanager控制取消-只选当计算机启动时激活设备---然后进入服务--禁用networkm
  • 系统安装注意事项及相关的概念安装的硬件需求及相关概念安装方法和一些安装选项硬盘...Linux内核包括了访问计算机关键硬件(如CPU)的代码、通常Linux自动探测和配置这些硬件 通常Linux通过内核设备驱动程序实现对外部

空空如也

空空如也

1 2 3 4
收藏数 64
精华内容 25
关键字:

linux探测网络硬件

linux 订阅