LinuxÄں˵ÄPCI×ÜÏßÇý¶¯³ÌʽµÄʵÏÖ·ÖÎö±Ê¼Ç
§1£®PCI×ÜÏßÌåϵ½á¹¹¸ÅÊö
PCI×ÜÏßÌåϵ½á¹¹ÊÇÒ»ÖÖ²ã´ÎʽµÄ£¨Hierarchical£©Ìåϵ½á¹¹¡£ÔÚÕâÖÖ²ã´ÎʽÌåϵ½á¹¹ÖУ¬PCIÇÅÉ豸ռ¾Ý×ÅÖØÒªµÄµØÎ»£¬Ëû½«¸¸×ÜÏߺÍ×Ó×ÜÏßÁ¬½ÓÔÚÒ»Æð£¬´Ó¶øÊ¹Õû¸öϵͳ¿´ÆðÀ´ÏñÒ»¿Åµ¹ÖõÄÊ÷Ðͽṹ¡£Ê÷µÄ¶¥¶ËÊÇϵͳµÄCPU£¬Ëûͨ¹ýÒ»¸ö½ÏÎªÌØ±ðµÄPCIÇÅÉ豸??Host£¯PCIÇÅÉ豸ºÍ¸ùPCI×ÜÏߣ¨root pci bus£©Á¬½ÓÆðÀ´¡£ÏÂͼ1ÊǸö½ÏΪµäÐ͵ÄPCI×ÜÏßÌåϵ½á¹¹Í¼¡£
£¨Í¼1£©
´ÓÉÏͼҲÄÜ¿´³ö£¬×÷ΪһÖÖÌØ±ðµÄPCIÉ豸£¬PCIÇÅÓÖ°üÀ¨ÒÔϼ¸ÖÖ£º
£¨1£©Host/PCIÇÅ£ºÓÃÓÚÁ¬½ÓCPUºÍPCI¸ù×ÜÏߣ¨×¢Ò⣬the first root bus×ÜÊDZàºÅΪ0£©¡£ÓÉÓÚÏñMemory ControllerÕâÑùµÄÉ豸ͨ³£Ò²±»¼¯³Éµ½Host/PCIÇÅÉ豸оƬÖУ¬Òò´Ë£¬Host/PCIÇÅͨ³£Ò²±»³ÆÎª“±±ÇÅоƬ×飨North Bridge Chipset£©”¡£
£¨2£©PCI/ISAÇÅ£ºÓÃÓÚÁ¬½ÓÒÅÁôµÄISA×ÜÏß¡£Í¨³££¬Ïñi8359AÖжϿØÖÆÆ÷ÕâÑùµÄÉ豸Ҳ»á±»¼¯³Éµ½PCI/ISAÇÅÉ豸ÖУ¬Òò´Ë£¬PCI/ISAÇÅͨ³£Ò²±»³ÆÎª“ÄÏÇÅоƬ×飨South Bridge Chipset£©”¡£
£¨3£©PCI-to-PCIÇÅ£ºÓÃÓÚÁ¬½ÓPCIÖ÷×ÜÏߣ¨primary bus£©ºÍ´Î×ÜÏߣ¨secondary bus£©¡£PCIÇÅËù´¦µÄPCI×ÜÏß³ÆÎª“Ö÷×ÜÏß”£¨¼´´Î×ÜÏߵĸ¸×ÜÏߣ©£¬ÇÅÉ豸ËùÁ¬½ÓµÄPCI×ÜÏß³ÆÎª“´Î×ÜÏß”£¨¼´Ö÷×ÜÏßµÄ×Ó×ÜÏߣ©¡£
¸ü¶àÀàÐ͵ÄPCIÇÅ·ÖÀàÄܲμû¡¶PCI Local Bus Specification¡·Revision2.2µÄ¸½Â¼D¡£
±¾ÎÄÒÔϲ¿·Ö¼ÙÉè¶ÁÕß¶ÔPCI×ÜÏ߹淶ÓÐÒ»¶¨µÄÁ˽⣬Òò´Ë±¾ÎÄÊÇΪÄÇЩÏëÒªÉîÈëÁ˽âLinuxÄÚºËÊÇÔõôʵÏÖPCI×ÜÏßÇý¶¯³ÌʽµÄKernel Hacker¶øÐ´µÄ¡£
§2 PCI×ÜÏßÇý¶¯³ÌʽµÄºËÐÄÊý¾Ý½á¹¹
´ÓÇ°ÃæµÄͼ1ÄÜ¿´³ö£¬ÔÚPCI×ÜÏßÌåϵ½á¹¹ÖУ¬ÓÐÁ½¸öºËÐĵĸÅÄî´æÔÚ£ºPCI×ÜÏߺÍPCIÉ豸£¨ÇÅÉ豸ÊÇÒ»ÖÖÌØ±ðµÄPCIÉ豸£©¡£»ùÓÚ¶ÔÕâÁ½¸öºËÐĸÅÄîµÄ³éÏó£¬Linux PCI×ÜÏßÇý¶¯³Ìʽ¶¨ÒåÁËÁ½¸ö¹Ø¼üµÄÊý¾Ý½á¹¹£º½á¹¹ÀàÐÍpci_busºÍ½á¹¹ÀàÐÍpci_dev£¬ÒÔ·Ö±ðÃèÊöpci×ÜÏߺÍpciÉ豸¡£ÔÚ´Ë»ù´¡ÉÏ£¬ Linux PCI×ÜÏßÇý¶¯³ÌʽÓÖ½«ÏµÍ³Öе±Ç°´æÔÚµÄËùÓÐPCI×ÜÏßµÄpci_bus½á¹¹×éÖ¯³ÉÒ»ÕŲã´ÎʽµÄÁ´±íͼ£¬ÏÔÈ»¸ÃÁ´±íͼµÄ¶¥²ãÁ´±íÊÇϵͳÖÐËùÓиù×ÜÏßµÄ pci_bus½á¹¹Á´±í£¬Òò´ËÓÃÒ»¸ölist_head½á¹¹ÀàÐ͵ÄÈ«¾Ö±äÁ¿pci_root_busesÀ´ÃèÊö¸ÃÁ´±íͼÖеĶ¥²ãÁ´±í±íÍ·£¬Ò²¼´¸ù×ÜÏßÁ´±íµÄ±íÍ·¡£ÏµÍ³Öе±Ç°´æÔÚµÄËùÓÐPCIÉ豸µÄpci_dev½á¹¹Ò²±»×éÖ¯³ÉÒ»ÌõÁ´±í£¬³ÆÎª“È«¾ÖpciÉ豸Á´±í”£¬ÓÃÒ»¸ölist_head½á¹¹ÀàÐ͵ıäÁ¿ pci_devicesÀ´±íʾ¸ÃÁ´±íµÄ±íÍ·¡£Í¨¹ýÕâÁ½Ìõ×ÜÁ´±í£¬LinuxÄں˾ÍÄܵõ
Ïà¹ØÎĵµ£º
ΪÁË·½Ã棬ÎÒдÁ˸ö½Å±¾×Ô¶¯sshµÇ¼Զ¶Ë»úÆ÷£¬ÈçÏ£¬Õâ¸ö½Å±¾ÐèÒª°²×°expect°ü
================================
#!/usr/bin/expect
set timeout 30
spawn ssh -l root 192.168.1.117
expect "password:"
send "nopasswd\r"
interact
================================
set timeout 30
ÉèÖÃ ......
Ê×ÏÈ£¬ÄÚ´æµÄ´óСÔÚlinuxÄÚºËÖеĻñÖª·½·¨
1.ͨ¹ýbootloader µÄ tag mem´«Èë¡£
Setup.c Öеĺ¯ÊýÈçÏ£º
static int __init parse_tag_mem32(const struct tag *tag)
{
if (meminfo.nr_banks >= NR_BANKS) {
printk(KERN_WARNING
"Ignoring memory bank 0x%08x size %dKB\n",
tag->u.mem.start, tag->u.mem ......
¶ÔÓںܶàÆÕͨÓû§À´ËµLinuxÊÇÉñÃØµÄ£¬ºÜ¶àÅóÓÑ´Ó½Ó´¥PC¿ªÊ¼½Ó´¥µÄ¾ÍÊÇwindow£¬Ò»ÇÐϰ¹ß¶¼Ô´ÓÚwindow£¬ÅóÓÑLinuxϵͳ¼¸ºõÊøÊÖÎ޲ߣ¨±ÊÕß»ù±¾¾ÍÕâÑù£¬ËùÒÔÔÚŬÁ¦Ñ§Ï°ing…£©£¬ÄÇôLinuxµ½µ×ÄÜ×öЩʲô£¬ÓÖÓÐʲôÓÃÍ¾ÄØ£¿ÈÃÎÒÃÇÀ´Ò»Ì½¾¿¾¹¡£ÊÀ½çÉÏ×î´óµÄ¼¼ÊõÖ§³Ö¡¢Èí¼þºÍÓ²¼þ¹«Ë¾Ã¿ÌìÊ¹Ó ......
Linuxϳ£ÓÃѹËõ¸ñʽµÄѹËõÓë½âѹ·½·¨
---------------------------------------------
.tar
´ò°ü£ºtar cvf *.tar *.*(ÔÎļþ»òĿ¼)
½â°ü£ºtar xvf *.tar
---------------------------------------------
.gz
½âѹ1£ºgunzip *.gz
½âѹ2£ºgzip -d *.gz
ѹËõ£ºgzip *.*(ÔÎļþ»òĿ¼)
--------------------------- ......