有没有办法找出特定Raspberry Pi内核的确切源代码树

时间:2015-02-08 19:59:13

标签: linux linux-kernel raspberry-pi linux-device-driver raspbian

我正在尝试在我的覆盆子上编译内核模块,并且在尝试加载已编译的模块时,我一直“不同意对symbol module_layout的版本。”

我想避免编译整个内核,所以我正在做的是使用Raspberry pi基础产生的img(http://downloads.raspberrypi.org/raspbian_latest),然后尝试从https://github.com/raspberrypi/linux安装内核源代码。和来自https://github.com/raspberrypi/firmware/blob/master/extra/Module.symvers

的Module.symvers

我认为问题在于我没有使用内核源代码和Module.symvers的组合来匹配laster RPi图像上的内容。我希望github repo被贴上标签,但事实并非如此。

有没有办法知道用什么分支/提交为Rpi发布创建最新的raspbian?

1 个答案:

答案 0 :(得分:1)

事实证明,在阅读了几个论坛后,我发现了一个答案。这是:

  1. 找出用于在Rpi运行中创建映像的固件提交:
  2. 
        zgrep "* firmware as of" /usr/share/doc/raspberrypi-bootloader/changelog.Debian.gz | head -1 | awk '{ print $5 }'
    
    
    1. 列表项
    2. 通过查看 https://github.com/raspberrypi/firmware/blob/ firmware_commit / extra / git_hash 的内容,找出用于创建固件的linux源代码提交

       3.在raspberry pi上安装Linux源代码:

      
          cd /usr/src/
          sudo wget https://github.com/raspberrypi/linux/archive/source_commit.tar.gz
          sudo gunzip source_commit.tar.gz
          sudo tar -xvf source_commit.tar
          sudo mv linux-source_commit linux
          sudo ln -s linux linux-headers-3.18.5+ (user your kernel version instead of 3.18.5+)
          sudo ln -s linux /lib/modules/3.18.5+/build
      
      

      如果你想编译内核模块而不必编译整个内核,这有点无关但仍然有用:

          cd /lib/modules/3.18.5+/build
          sudo make mrproper
          sudo sh -c 'zcat /proc/config.gz  > .config'
          sudo wget https://github.com/raspberrypi/firmware/raw//extra/Module.symvers
          sudo make modules_prepare
      

      在此之后你应该能够编译你的模块。