<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [dpdk][kernel][driver] 如何讓DPDK的UIO開機自動加載到正確的網卡上

       0. 前言

      開了虛擬機,開始dpdk之前,我每天都干這幾件事:

      [root@dpdk potatos]# modprobe uio
      [root@dpdk potatos]# insmod /root/dpdk/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko 
      [root@dpdk potatos]# /root/dpdk/tools/dpdk-devbind.py -b igb_uio 0000:00:04.0

       

      作為一個有理想的人,很明顯,這件事需要讓機器自己干 --! 做了上百次之后,我終于開竅了。。。

      1. linux啟動過程

        BOIS/UEFI --> MBR --> grub2 -> linux kernel --> initrd --> root_fs --> sys init / systemd / busybox --> shell --> logind/display manager --> X

      可參考另一篇:https://i.cnblogs.com/PostDone.aspx?postid=6652739&actiontip=%E5%8F%91%E5%B8%83%E6%88%90%E5%8A%9F

        涉及到驅動的地方:

        A:linux kernel,有一部分驅動是直接編譯到內核里邊去的 /boot/vmlinuz-linux ,另一部分是動態加載的,在/usr/lib/modules/4.10.6-1-ARCH/kernel/ 下面。還有一部分是沒有的。

          我們在編譯內核之前,可以修改內核編譯選項,有三個選項 Y / M / N  一一對應。

        B:initrd: 但是我們是兩階段啟動,所以,initrd中也被集成了一部分驅動,他們的目的只是為了strap起 rootfs。可以在/etc/mkinitcpio.conf中指定。

        C:rootfs,也就是/usr/lib/modules/4.10.6-1-ARCH/kernel/ 下面的驅動。

       

      2. 我們討論 rootfs中的內容。

        A:我們可以手動加載卸載他們,用modprobe。了解modprobe的大概用法,配置。

      # man modprobe
      # man modprobe.d

        B:udev, 設備插拔之類的,udev會根據事件,自動的加載卸載驅動。

      https://wiki.archlinux.org/index.php/udev

      http://www.reactivated.net/writing_udev_rules.html

      https://www.kernel.org/pub/linux/utils/kernel/hotplug/udev/udev.html

        看完兩篇文檔,我依然對udev了解不深。

      所以,我應該把dpdk的uio放進udev么? 還是加入啟動腳本里,在里邊調用 modprobe? 

      了解一下sys init 和 systemd 的流程,應該會找到正確的方式。

      3.   sys init / systemd 流程

        略。好像沒啥關系

      4.   來個別人總結的番外篇:(為了防止這位博友把原文刪掉,我已經另存本地了。)

        http://www.rzrgm.cn/image-eye/archive/2011/08/19/2145858.html

      5.  按照番外片里的說法,所有設備在被內核發現的時候,內核就會發內核事件出來,而外面正在監聽的udev就會捕獲到,然后根據modprobe.alias 和 modprobe.dep中的內容,加載一系列的模塊了。

        所以,我應該去改modprobe的配置,blacklist掉相應的網卡,使之使用dpdk的驅動。

      6. https://wiki.archlinux.org/index.php/Kernel_modules#Blacklisting

       

      CentOS 7 里邊的方法:紅色為關鍵操作。

      [root@dpdk ~]# cd /lib/modules/3.10.0-514.6.1.el7.x86_64/extra/                 
      [root@dpdk extra]# mkdir dpdk                                                   
      [root@dpdk extra]# cp /root/dpdk/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko dpdk/
      [root@dpdk etc]# cd modules-load.d/                                             
      [root@dpdk modules-load.d]# touch dpdk.conf                                     
      [root@dpdk modules-load.d]# vim dpdk.conf     
      [root@dpdk ~]# cat /etc/modules-load.d/dpdk.conf 
      igb_uio
      [root@dpdk ~]# depmod 
      [root@dpdk ~]# modprobe igb_uio
      [root@dpdk ~]# reboot
      [root@dpdk ~]# lsmod |grep igb
      igb_uio                13224  0 
      uio                    19259  1 igb_uio
      [root@dpdk ~]# 

      http://stackoverflow.com/questions/34800731/module-not-found-when-i-do-a-modprobe

      至此,UIO已經開機自動加載了,接下來的問題是,讓UIO自動驅動網卡。

       

      截至到目前,只能自動加載。卻不知道如何讓指定的網卡默認加載UIO,畢竟我不能blacklist intel的驅動。而

      且從udev里卸載一個驅動去加載另一個是否常規呢?這些疑問都需要深入的理解了udev之后才能回答。

      算了,放棄了。。。。 不然人家dpdk為啥要提供個腳本。。。

      當然,實現功能是沒問題的,只需要自啟動一個腳本,調用這個驅動。

      如果,有幸有人讀到此處并愿意分享的話,歡迎留言。

       

      -------- update@20170412 --------

      driver_override: 可能有點關系吧,還沒有時間細研究。

      https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-bus-platform

      https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-bus-pci

       

      -----------  update@20170918 -------------

      自動加載hugepage.

      1. 增加內核參數: hugepages=1024

      http://dpdk.org/doc/guides/linux_gsg/sys_reqs.html#use-of-hugepages-in-the-linux-environment

      2. 修改fstab自動掛載. 增加行

      nodev /mnt/huge hugetlbfs defaults 0 0

       

      ------------  update@20170918 -----------------------

      清除igb_uio自動加載的逆過程.

      1. 刪除

      /etc/modules-load.d/dpdk.conf

      2. 刪除

      /usr/lib/modules/3.10.0-693.2.2.el7.x86_64/weak_updates/dpdk/

      3. depmod

      與安裝時不同的是, 還有后兩個步驟

      4. 卸載uio

      rmmod igb_uio
      modprobe -r uio

      5. 重新生成initramfs

      mkinitrd /boot/initramfs-3.10.0-693.2.2.el7.x86_64.img.new 3.10.0-693.2.2.el7.x86_64

      6. reboot

       

      -------------- update @ 2018-07-25 ------------------------------------

      [administrator][driver] driverctl 是如何在udev上層管理設備驅動的

      igb_uio 自動加載問題.

      偶然發現的,可以用 driverctl  做.

      driverctl 設置了udev的rules,  同時留下了pci的ID在配置里:

      [root@D129 copyright]# rpm -ql driverctl
      /etc/driverctl.d
      /usr/lib/udev/rules.d/05-driverctl.rules
      /usr/lib/udev/rules.d/89-vfio-uio.rules
      /usr/lib/udev/vfio_name
      ... ...
      [root@D129 copyright]# cat /etc/driverctl.d/pci-0000\:00\:04.0 
      igb_uio
      [root@D129 copyright]# 

       

      posted on 2017-04-04 20:44  toong  閱讀(1735)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 国产人与zoxxxx另类| 精品久久人人做爽综合| 视频一区视频二区制服丝袜 | 亚洲午夜香蕉久久精品| 白丝乳交内射一二三区| 国产99久久精品一区二区| 国产精品天天看天天狠| 国产片AV国语在线观看手机版| 日本伊人色综合网| 亚洲熟妇色xxxxx亚洲| 亚洲嫩模一区二区三区| 欧美浓毛大泬视频| 国产三级国产精品国产专| 国产不卡一区二区四区| 国产香蕉尹人综合在线观看| 长腿校花无力呻吟娇喘| 丁香婷婷在线观看| 视频一区视频二区在线视频| 国产偷人爽久久久久久老妇app | 中文字幕精品久久久久人妻红杏1| 国产精品久久欧美久久一区| 性一交一黄一片| 午夜精品福利一区二区三| 免费现黄频在线观看国产| 又大又黄又粗高潮免费| 精品久久久久久国产| 国产一级小视频| 丰满高跟丝袜老熟女久久| 在线涩涩免费观看国产精品| 亚洲精品毛片一区二区 | 在线看片免费不卡人成视频| 亚洲精品一区久久久久一品av| 国产精品久久精品| 黑巨人与欧美精品一区| 四虎国产精品成人免费久久| 亚洲精品国产电影| 久久综合97丁香色香蕉| 黑人巨大videos极度另类| 久久国产乱子精品免费女| 国产在线无码视频一区二区三区| 日本欧洲亚洲高清在线|